Physical Attacks via FireWire
This is pretty scary — a proof-of-concept attack that disables authentication in Windows within seconds, just by plugging in a special FireWire peripheral. It’s well-known that with physical access to a computer you can compromise it; but generally that involves activities that are time-consuming or blatantly obvious, like rebooting from a CD or swapping out hard drives. This new attack, though, takes only a few seconds; and the peripheral might look as innocuous as an iPod.
Worse, what enables this is not a bug in a driver, but a feature of the FireWire interface; so (as I understand it) there’s no real way to disable it, short of disabling the FireWire port entirely. These slides by the author of the exploit describe it in more detail. It turns out that the FireWire protocol directly allows any device on the bus to read and write the physical RAM of any other device on the bus. (Any old-school BASIC programmers out there remember PEEK and POKE? Same idea.) That’s physical RAM, below the VM layer, so there are no access privileges; it’s all available. The drawback is that mapping from that to the virtual address space that the OS uses is pretty complicated, and then the attack has to locate the desired kernel data structures (in this case the ones that enable password authentication) … but it’s clearly do-able, and has been demonstrated on Windows XP.
Now I’m looking at that FireWire port on my MacBook Pro with some concern. It’s basically a hole into the innards of the kernel, bypassing any security mechanisms. I feel like my computer’s been trepanated.
![]()
(*Update:* The comments on Bruce Schneier’s blog post about this are interesting, particularly this one by Chris Adams:
I find it interesting to see the time delay between the Mac and Windows security worlds – the first Firewire DMA-based hack I remember was the 2002 FireStarter attack. Apple modified their drivers to disable device DMA by the time 10.3 came out.
This was very widely discussed in various Mac news forums, blogs, etc. and a few security conferences. At some point the Linux crowd started making the same fixes and yet, somehow, it took half a decade before this finally got the Windows security community?
Previously: Did I Miss The Boat For Developer Keys?
Next Post: iPhone Developer Rejections Top 10,000
- By
- Jens Alfke
- On
- March 13, 2008
- at
- 6:56 pm
- As
- Computers
- See
- 8 comments;
- Add
- your comment
8 Comments:
comments feed | trackback uri