Contest Winner: Vista More Secure than Mac OS
Dino Dai Zovi, the New York-based security researcher who took home US$10,000 in a highly-publicized MacBook Pro hijack on April 20, has been at the center of a week's worth of controversy about the security of Apple Inc.'s operating system. In an e-mail interview with ComputerWorld, Dai Zovi talked about how finding vulnerabilities is like fishing, the chances that someone else will stumble on the still-unpatched bug, and what operating system -- Windows Vista or Mac OS X -- is the sturdiest when it comes to security.
Friday, the vulnerability was first identified as within Safari, but by Monday, QuickTime was tagged. Why the confusion? I knew exactly where the vulnerability was when I wrote the exploit; that is part of the basic vulnerability research usually required to write a reliable exploit. I intentionally did not reveal where exactly the vulnerability was in order to prevent others from reverse engineering the vulnerability from those details. Initially, I was only revealing that the vulnerability affected Safari on Mac OS X, the target of the contest. However, now ZDI [3com TippingPoint's Zero Day Initiative] has been willing to publicly reveal that it affects many more system configurations, including all Java-enabled browsers on Mac OS X and Windows if QuickTime is installed.
As you were working with the vulnerability and exploit, did you know that it would impact non-Mac OS X systems? I had suspected that it might affect other platforms running QuickTime, but I did not have time to look into it.
You found the vulnerability and crafted an exploit within 9 or 10 hours. And you've said 'there was blood in the water.' Does that mean you had a head start -- in other words, prior research -- or was it all built from scratch? Is it really that easy to dig up a vulnerability? I had found other vulnerabilities in Mac OS X and even QuickTime in the past, so I had some familiarity with the code, but I only discovered this vulnerability that night. My quote that there was "blood in the water" referred to the fact that there were reports of other vulnerabilities in QuickTime, and even Java-related vulnerabilities in QuickTime over the last few years. In my experience, if a certain software package has had vulnerabilities in the past, it is more likely to contain other undiscovered vulnerabilities.
Halvar Flake and Dave Aitel, two prominent security researchers, use the fishing metaphor to explain vulnerability finding. Some days you go out and catch nothing, some days you catch something great. Sometimes you hear about some great fishing happening in a stream somewhere and there are lots of fish to catch until everyone else starts fishing there and the stream becomes overfished. In this case, I suspected that there would be good fishing in QuickTime and I got lucky and found something good in a short amount of time. This is far from the first time that I've gone fishing for vulnerabilities, however.
After the positive ID of the vulnerability, there were some unconfirmed claims that your exploit had been snatched at CanSecWest. Although those reports have been discounted, what can you tell us about how you protect your findings? And what are the chances that someone will independently dig out the vulnerability based on the limited information made public? I do everything that I consider reasonable to protect my security research. I keep exploits in encrypted disk images that are only mounted when necessary on hardened systems that are not always powered on. I am very conservative in what details I share and with whom in order to tightly control knowledge of the vulnerabilities. I often give my exploits non-obvious code names so that I can refer to them over non-encrypted channels without revealing anything about them. [But] with the details that have been released so far, I believe that is a very real possibility that someone may be able to independently dig out the vulnerability, but it won't exactly be trivial and I hope that whoever does acts responsibly with it.
With the ongoing 'Mac OS X is safe' vs. 'You're in denial' debate, what would you recommend to a Mac user as reasonable security precautions? I recommend that Mac users make their primary user a non-admin account, use a separate keychain for important passwords, and store sensitive documents in a separate encrypted disk image. I think these are fairly straightforward steps that many users can take to better protect their sensitive information on their computer.
As a researcher who works often in Mac OS X, what's your take on the amount of information that Apple releases when it patches vulnerabilities? I think that the amount of information that Apple releases with its patches is sufficient in the level of detail for a knowledgeable user to determine the criticality of the vulnerabilities. They do not, however, provide guidance on the level of criticality of the security update for less technical users. I do not think this is too much of an issue, though, as I believe that the vast majority of users should simply patch the security vulnerabilities as soon as possible regardless of their criticality.
How important in this case was it that 3com TippingPoint stepped up with a $10,000 prize? Would you have bothered if the prize money had not been there? For me the challenge, especially with the time constraint, was the real draw. I also hoped that the live demonstration of a Mac OS X exploit would provide some much needed hard evidence in the recent Mac security debates.
From your research on both platforms, is there a winner between Mac OS X 10.4 and Vista on security? I have found the code quality, at least in terms of security, to be much better overall in Vista than Mac OS X 10.4. It is obvious from observing affected components in security patches that Microsoft's Security Development Lifecycle (SDL) has resulted in fewer vulnerabilities in newly-written code. I hope that more software vendors follow their lead in developing proactive software security development methodologies.
What are you spending most of your time on these days? Last October, for instance, there were news stories that mentioned you showed a VM rootkit to developers at Microsoft. I recently co-authored a book, The Art of Software Security Testing: Identifying Software Security Flaws, which was just published by Addison-Wesley Professional in December. Also since around that time, I have been managing information security for a financial firm in New York City. I do still spend some of my free time researching software vulnerabilities, VM hypervisor rootkits, and 802.11 wireless client security.