If you look at Glenn's Fleishman's
last post on the "Hijack" story, he posits there are two remaining questions:
First, did Maynor and Ellch have a root exploit, not just a way to crash 10.4.6? Maynor has now said unequivocally yes
Second, did Apple lie about what Maynor and Ellch provided?I tried to
answer the second of Glenn's questions a few days ago, and now I want to try and address the first of these.
(
John Gruber also has a list of questions, but I think in many ways the questions are too specific. Gruber wants to know if 1) WAS MAYNOR AND ELLCH’S DEMO VIDEO LEGITIMATE? and 2) DO THEY HAVE A WORKING HIJACK EXPLOIT AGAINST ANY APPLE AIRPORT CARD?)
Now, in order to look at Glenn's question you first need to have a model of what Maynor and Ellch did. What follows is guesswork. It is educated guesswork, but it is model to test theories against. As before, we're basing this on mostly on what Maynor as publicly said. I'll try to provide links where appropriate.
First, again, let's add some facts to the timeline:
June 3, 2006: The Blackhat agenda is released. Maynor and Ellch are going to
talk about device drivers.
June 21, 2006: In a
leak, Maynor and Ellch confirm that the Blackhat presentation will be about how to hijack a laptop. No word on the type of laptop or chipset vulnerable.
June 27, 2006: Mac OSX 10.4.7 released.
July 15, 2006: Maynor
buys a MacBook and it crashes during setup due to fuzzing of "other devices" MacBooks at this time come with a stock Atheros chipset.
August 1, 2006: Private demo to Krebs. We are not told of what version OS the MacBook is running. Quote:
Maynor: Yes, it's a device driver. The thing is, there's a flaw in the OS, but I don't want to specifically point to it, so in the video you'll see I used a third-party USB device. What I'm trying to do is highlight the problems in device drivers themselves, not any one particular flaw. [Maynor misspoke here, and I later clarified this point with him. The wireless device driver that powers the internal wireless card on the Macbook contains flaws that -- when exploited -- give the attacker the ability to create or delete files, or modify system settings. The flaw is in fact in the Macbook's wireless device driver, which is made by a third party. So again, to be clear, the flaw is not, as he suggests in the transcript of this interview, in the Mac OS X operating system itself.]August 4, 2006: Apple is told details of the problem with Broadcom drivers (“overly long SSID”) because, in Maynor’s words, “…we were finished with the broadcom work” and “this is a cross platform problem and you don’t coordinate it you could be leaving millions of other users at risk.” No other details on what the problem with the Atheros chipset are.
November 12, 2006. As part of the Month of Kernel Bugs, Ellch releases a
notice about a flaw in the Broadcom drivers that is based on “by improper handling of 802.11 probe responses containing a long SSID field.”
March 1, 2007. Dave Maynor claims he has discovered three flaws in Mac – in the Broadcom, Atheros and Bluetooth drivers. He does a live demo with a MacBook running 10.4.6 that crashes. He then runs the identical exploit with against a MacBook running 10.4.8 that does not crash, and claims that the only changes to the airport code were the updates that Apple released after the “Hijack”story.
What do we know?
It seems clear that Maynor and Ellch discovered something. What they did discover is that wireless fuzzing will discover flaws in device drivers that might cause crashes. Whether that is the same as what they presented is another story.
Broadcom vs. Atheros
Broadcom drivers were used in PPC macs; the newer MacBooks used an Atheros chipset. Maynor now claims to have discovered problems with both chipsets. Because he can’t (or won’t) release all his emails, he only shows evidence he told Apple about the problems with the Broadcom drivers.
10.4.6 vs. 10.4.8
In his March demo, Maynor runs an exploit against a Mac with 10.4.6 that crashes the Mac – while does nothing against a MacBook with 10.4.8. One key question: is this the same MacBook? Is it possible to have both two partitions with different systems? We also don’t know what internal wireless card was being used, although in at least one report Maynor claims it is an Atheros card.
Maynor is correct that the only changes to the AIRPORT code between 10.4.6 and 10.4.8 are the updates that were released as a result of the internal audit Apple ran after the August Blackhat.
Exploit vs. kernel shellcode
In his presentation released during Blackhat DC, Maynor makes the point “Finding the vulnerabilities was not hard…Writing the kernel shellcode was”. From other sources, which will remain unnamed at this point but were told this information by Maynor, one key difference is that a change in 10.4.7 – unrelated to the Airport code – defeated Maynor’s shellcode. Therefore, under 10.4.7 the Mac would crash, but the shellcode as seen in the video demonstration did not work.
We’re now moving from fact to speculation. Almost every guess I’ve made about this mystery has been wrong so far, but with the new facts we have a much better picture:
1. What Krebs saw:
We now can believe that Maynor has an exploit that will CRASH a MacBook running 10.4.6 with the standard Atheros chipset. However, if you believe Krebs’s account, that is not what he saw. So two possibilities:
1. Krebs saw the real deal. It was a MacBook, running 10.4.6, with the Atheros card and drivers. The wireless exploit was run and the computer hijacked through the shellcode.
What is missing in this picture? A lot. First, the wireless exploit that Maynor demoed in March has STILL not been released. Second, we don’t have any email evidence from Maynor on problems with the Atheros driver. Third, the shell code has not been released (Maynor claims it will also be released in the future). Fourth, if it is a problem with the Atheros driver, no other company that uses the Atheros drivers has been notified. Fifth, the man who maintains the Atheros drivers for Linux has ALSO not been notified of any problems.
2. Krebs saw a modified Mac. It’s clear from Krebs’s account that there was NOT a third party USB card attached to the MacBook. What is NOT clear is whether the MacBook had the stock Airport Extreme card installed. My understanding is the Atheros and Broadcom cards can be swapped out – and that a default MacOSX installation will include drivers for both. If Krebs saw a MacBook being hacked with the Broadcom card installed, then a lot more makes sense. First, we now have some evidence of problems with the Broadcom drivers -- both from Maynor and from the later MoKB exploit. Second, as Maynor says, writing shellcode is hard. Presumably the Atheros and Broadcom exploits are a bit different. Ellch is an
old timeMac user. He presumably was testing some of the wireless fuzzing on an older Powerbook, but after July 15, when they bought a new intel MacBook, they released they had not finished working out the shellcode on the Atheros problem. The easy solution was to swap out the wireless cards. Third, I’ve criticized both of them for giving Apple little to no notice for fizing the drivers. However, this scenario makes them do the right thing. By NOT talking about the problems with the Broadcom drivers in public, they had enough time to tell other companies of the problem. Clearly that wasn’t enough, which is why the Broadcom exploit was released to the public in November.
So my bet is on the second door – what Krebs saw was a MacBook with a different internal wireless card.
What did we see in the video?
It’s probably true, as Maynor says, “That was 5 minutes edited together from 4 hours of shooting” and frame by frame analysis is futile.. But there are two telling pieces of information. First, from the video analysis is appeared as if the INTERNAL apple card was being used – both from the MAC address and other evidence (that they were using the upper right menu bar to connect to a wireless network – a USB card might need third party software to do the same). Second, either the MacBook was hijacked using the internal Atheros chipset (so the USB thing was a McGuffin) OR it was hacked with a Broadcom based 802.11 USB card. As far as I know – none of those cards work on a Mac.
The more likely option is that what we saw the same MacBook with a switched internal card. As a proof of concept – fine. But thanks to Krebs’s botched reporting, this turned into a blog and media firestorm. And to answer Glenn's question: Yes -- there is a way to hijack a Broadcom based Intel Mac. However, since that machine only exists after minor surgery, it is just that -- a proof of concept.
All this can be solved by 1) showing evidence that Atheros exploit existed in August; 2) releasing the Atheros exploit, and 3) showing that the shellcode works with the Atheros exploit. NONE of that evidence has been released.
What has been released is evidence that had an exploit on the Broadcom drivers. Assuming all that information is true, you can explain BOTH Krebs’s account and the video demo. There may well be an Atheros exploit – but one without the necessary shellcode for a demo. That would explain why we’re still waiting to see it….