Costel Maxim

Security QA Lead Intel's Open Source Technology Center (RO)

I started down the path of information security long before my professional career started because of my intense desire to understand how things really worked underneath everything. I am currently the Security QA lead in Intel’s Open Source Technology Center here in Bucharest. We are a team that focuses on the security of numerous open source projects including Android, IOT, Crosswalk, Tizen and many others.

We hunt security bugs by doing feature validation, penetration testing, source code analysis and fuzzing.

Twitter: twitter.com/costelmaxim
Linkedin: https://ro.linkedin.com/in/costelmaxim

Finding media bugs in Android using file format fuzzing

The presentation will give a brief overview on the topic of file format fuzzing and how this process can lead to the discovery of vulnerabilities inside different software components and then focus on exposing how this approach can be used inside an Android environment, more precisely to target the media framework in Android.
A custom fuzzing tool has been developed for this purpose and had good results in terms of discovered issues.The main idea behind developing this fuzzing tool is to create corrupt but structurally valid media files, direct them to the appropriate software components in Android to be decoded and/or played and monitor the system for potential issues (i.e system crashes) that may lead to exploitable vulnerabilities. The malformed audio and video files are created in an automated manner using several open-source tools that have been modified for this project. Custom developed Python scripts are used to send the malformed data across a distributed infrastructure of Android devices, log the findings and monitor for possible issues, in an automated manner. The actual decoding of the media files on the Android devices is done using the Stagefright framework, which represents the core of the media stack in Android and permits decoding media files using both software and hardware decoders.
An example of a fuzzing campaign for this scenario would be as follows: the fuzzing tool was left to run for a period of 8 weeks. During this time, a number of approximately 1 million media files were sent for decoding to the fuzzing infrastructure. This produced an unexpected result of 185000 crashes. After implementing a triage mechanism to sort out through the crashes, a number of 35 unique issues remained. Other similar campaigns were run over time and a total of 4 CVE entries were issued by Google and many bugs are still under consideration.

Presentation @DefCamp 2015