I feel fuzzy
Apple just released an update for quicktime, no surprise there. Doing some digging I found the five security issues patched:
Playing maliciously crafted QuickTime content in QuickTime Player may lead to arbitrary code execution
Viewing maliciously crafted Indeo video media content may lead to an unexpected application termination or arbitrary code execution
Opening a maliciously crafted PICT image file may lead to an unexpected application termination or arbitrary code execution
Opening a maliciously crafted AAC-encoded media content may lead to an unexpected application termination or arbitrary code execution
Opening a maliciously crafted PICT image file may lead to an unexpected application termination or arbitrary code execution
Five exploits, all in how a variety of media (video, audio, and picture) parses code. This tells me two things pretty much immediately- 1) Apple does not do a great deal of Fuzz testing on their formats, but researchers are happy to do so for them and 2) if I do fuzz testing on quicktime myself I will probably find something exploitable as well.
Fuzzing is a horribly brute force method for security testing. It requires a lot of work to wire things to adequately monitor an application (you want to see memory spikes, process spikes, and all of the myriad of crashes) and automate the loading of media. Regardless, it is very effective at breaking parsing and validation code. Microsoft requires 100,000 iteration on all parsed formats. For complex formats (office docs, media files), they basically never stop. Apple would be well served by doing the same (or caring about security at all).
Fuzzing is also applicable to web apps. They process an immense amount of data from end users, and other than specific known attacks done by pen testers, most companies don’t seem to test for various malformed input. The problem is that it is very hard to detect where and why something failed when fuzzing a remote machine. It would be nice to see a good distributed testing harness that can monitor the application state on the server and produce decent debugging logs.
~ Joshbw
Leave a reply