SANS Digital Forensics and Incident Response Blog

Open Source Android Digital Forensics Application

For some time now, I've spent most of my R&D time on Android Forensics. Gartner predicts that Android will be the #2 smart phone platform by 2012, exceeding the iPhone and leaving only Nokia/Symbia in front. With an estimated 95 million devices on the market by that time, forensic examiners will inevitably begin to run across them (if you have not already).

The techniques we've developed will provide a full forensic image of supported Android devices. With the introduction of a new file system (YAFFS2) and a host of other new challenges, our community has considerable work to do to more deeply understand the device.

In an effort to give back to the community, we have released our logical Android Forensic application as open source. You can download it on Google Code and additional details are on my blog.

Application Architecture

The application was developed with a generic architecture which will allow other programmers to easily add support for new applications and data sources. Currently, we pull the following information in CSV files on the SD Card:

  • Browser history
  • Call logs
  • Contact Methods (email, phones, etc.)
  • Organizations (companies that contacts are in)
  • People (the individual people)
  • SMS

While security on Android phone is pretty decent, applications can (and do) share data. We take advantage of this sharing (via ContentProviders) and extract the data for forensic purposes.

Browser History Example

However, we have found ways to extract far more information. Take, for example, the browser. Currently, it exposes the visited websites via a ContentProvider. By querying the application's Content Provider, we can now supply the devices web history. We are confident that significantly more information can be extracted from the device. As such, we hope that this release will forensics folks who have Java experience to join our project. Also, since we have released the code under GPLv3, you not only have full access to the source code but if large commerical entities use our code, they are legally bound to provide their enhancements back to the project (for a recent ruling on this, see A Big Victory for F/OSS: Jacobsen v. Katzer is Settled).

How to install

If you have an Android device (or run the emulator from the SDK), you can install the application (an .apk file). To do this, you can either download the application online and install directly however you need to enable the Settings -> Application Settings -> Unknown sources option (until we sign the .apk which we hope to do soon).

An alternate method (and my preference) is to install using the Android Debug Bridge (adb). To do this, you must first install the Android SDK on your workstation. For Windows, you need to install the USB drivers and on Linux you must tweak udev but there are plenty of online tutorials about this. You also need to enable USB Debugging on the phone, which you can do under Settings -> Application Settings -> Development -> USB Debugging.

Download the AndroidForensics.apk from Google Code and save it to c:\af. Connect the Android device to your computer via USB and do the following from a cmd prompt:

List devices

C:\af>adb devices
List of devices attached
HT91YGZ08111 device

Install application

C:\af>adb install AndroidForensics.apk
419 KB/s (20138 bytes in 0.046s)
pkg: /data/local/tmp/AndroidForensics.apk
Success

On phone, run viaForensics application and click capture

You will receive a message when the application completes

Copy CSV files to computer

C:\af>adb pull /sdcard/forensics c:\af
pull: building file list...
pull: /sdcard/forensics/20100225.0915.SMS.csv -> c:\af/20100225.0915.SMS.csv
pull: /sdcard/forensics/20100225.0915.People.csv -> c:\af/20100225.0915.People.csv
pull: /sdcard/forensics/20100225.0915.Organizations.csv -> c:\af/20100225.0915.Organizations.csv
pull: /sdcard/forensics/20100225.0915.ContactMethods.csv -> c:\af/20100225.0915.ContactMethods.csv
pull: /sdcard/forensics/20100225.0915.CallLogCalls.csv -> c:\af/20100225.0915.CallLogCalls.csv
pull: /sdcard/forensics/20100225.0915.Browser.csv -> c:\af/20100225.0915.Browser.csv
6 files pulled. 0 files skipped.
30 KB/s (38729 bytes in 1.249s)

Conclusion

We have considerably more work to do on the application but it has been tested on the G1, T-Mobile myTouch, Motorola Droid and a number of Android virtual devices. We hope the community will not only find this application useful but that they will join us in expanding the functionality.

Andrew Hoog is a computer scientist, certified forensic analyst (GCFA and CCE), computer and mobile forensics researcher, former adjunct professor (assembly language) and owner of viaForensics, an innovative computer and mobile forensic firm. He divides his energies between investigations, research and training about the computer and mobile forensic discipline. He writes computer/mobile forensic how-to guides, is interviewed on radio programs and lectures and trains both corporations and law enforcement agencies. As the foremost expert in Android Forensics, he leads expert level training courses, speaks frequently at conferences and is writing a book on Android forensics.

5 Comments

Posted April 30, 2010 at 7:06 AM | Permalink | Reply

HarshReality

Wonderful work! I think I will be following this just to see how far you go. Have you also considered a tar or gz file of the images/camera with the locations information? In the case of pedophilia it could be useful for prosecution purposes though I doubt they would keep such a thing in the open like that.
Also, is this reliant on R00T or will it run on a stock access system?

Posted May 11, 2010 at 12:40 PM | Permalink | Reply

Barry Walden

I'm have made numerous unsuccessful attempts to download the forensic tool .iso file. It's really making me crabby.
Barry

Posted May 11, 2010 at 12:47 PM | Permalink | Reply

Dave Hull

What's happening when you try to download the iso? Does it finish and leave you without a working iso or does it not finish downloading?

Posted June 15, 2010 at 7:20 AM | Permalink | Reply

Navnendu

How to download the .apk file''''
I want the call Log, means details of Incoming, outgoing and Missed calls''
Please guide me properly all the steps to download this .apk file.
Thanks in anticipation..

Posted October 11, 2011 at 4:21 AM | Permalink | Reply

george

Hi
Is it possible to extract deleted sms with this tool.
If possible could help me undetstand how to make them
visible.
Thanks
george