In the Android development world, fragmentation has been the bane of the typical app coder's existence for as long as the platform has been running devices. With so many different devices to account for, it's difficult to troubleshoot and ensure apps run uniformly across them. That same frustration is actually amplified in mobile security research, because as white hat hackers dive under the hood of Android devices they find that not only do different devices behave differently, but sometimes even devices advertised under the same name may sport different processors and totally different architectures.
"Each device is kind of like a unique snowflake," says Joshua Drake, director of research science at Accuvant Labs. "Even if we both had a Samsung Galaxy S3, and, say, you had one from Verizon and I had one unlocked, those phones are almost completely different on the inside. Samsung makes the processor for the unlocked one, and Qualcomm's processor runs Verizon's. That core of a change will change a lot of things."
Consequently, understanding how certain vulnerabilities may cut across devices and manufacturers becomes a very difficult nut to crack -- or, at the very least, requires a long nut-cracking process. However, at Black Hat USA next month Drake plans to help the security community save time and focus on finding bugs and reaching other important security conclusions by building what he terms a homemade "Android Army." His talk will discuss how a simple hardware hack, combined with an open-source toolkit he's been refining, can make it easier for researchers to scale their exploration across many different devices at once.
Drake came up with the idea as he was writing and researching the Android Hacker's Handbook. As he explains, the typical way a researcher interacts with an Android device is through the device hooked up via USB and the Android Debug Bridge (ADB) running on a PC.
"That tool works fine, but it is not really designed to be one where you're operating on lots of devices," he says. "I thought to myself: Wouldn't it be great if I could somehow have ADB but add in this extra layer of something that will run across a whole bunch of devices?"
And so, Drake figured out the most expeditious way to nest together multiple USB ports to get dozens of devices running on a PC at once and started working on the scripts that would eventually make up what he calls the Android Cluster Toolkit. Already available as an open-source project, the toolkit makes it easier, not only for the user to identify devices hooked into a computer by human-friendly names rather than long serial codes, but to also run commands on multiple devices at once. Drake says he personally has built up a cluster of about 55 devices but that it is possible for a researcher to cram up to 127 devices at once on a single PC's root USB hub.
"It can be helpful, not just if you are auditing and looking through some source code and trying to connect that to real devices, but also if there has been a vulnerability that's already been identified and disclosed -- then you can quickly get an idea of which devices out there that are actually affected. Most of what the software part of this toolkit was designed to do was to help me find a way to type less and get more done."