Thunderstrike – Apple EFI firmware vulnerability
trmm.net
trmm.net
Basically the upshot of this article is (for me) that if you own some piece of hardware you can only really trust it if it has never been out of your sight after you bought it (and hopefully it wasn't compromised before you bought it).
Shipping your laptop as checked in luggage, leave it on your desk overnight or go to lunch and when you see it the next time around it might not be your computer any longer.
Another very impressive bit to me was the fact that a financial institution took its security serious enough that they commissioned this work.
The whole thing is reminiscent of the inception hack:
http://www.breaknenter.org/projects/inception/
I'm imagining this guy working for the Apple center on Wall Street or near it plugging a little dongle into every macbook before it gets sold.
And those are just the features I could easily equate to money. There's also the zebra striping and so many other features I can't think of right now.
Magic Lantern is beautiful.
[0] http://www.bhphotovideo.com/c/product/164271-REG/Canon_2477A...
Apparently this is a result of some informal or undisclosed agreement with Canon, as the pro cameras are where Canon's recurring revenue lies.
Through the thunderbolt port, an attacker can put code that controls the firmware updates onto a mac. This cannot be removed by software, and could do all sorts of nasty stuff.
Anyone with physical access to the computer and a weaponized version of this exploit could do this. This includes intercepting hardware en-route to its recipients, spending a few minutes with a laptop while its owners are away, or while crossing international borders.
According to the author, this exploit works with every Mac with a thunderbolt port that they tested. Apple has a partial fix coming as a firmware update soon, but the author expresses concern that the proposed fix could still be bypassed.
Did I dream about that feature, and is that applicable to Thunderbolt?
Note that what Apple refers to as the SMC (it's usually known as the EC/embedded controller/keyboard controller in other laptops) is another programmable controller, one that runs as long as the system has power - even from the battery - and is responsible for actually powering up the main CPU, so an exploit could hide itself there too and be even more difficult to detect. The main difference is the SMC/EC has much less memory so what can be hidden there is relatively limited.
Now I wonder if anyone has made a port-80 diagnostic card (dongle?) for Thunderbolt... http://en.wikipedia.org/wiki/POST_card
As cool as the raw power you get from Thunderbolt is, I wonder if externalizing an internal bus was a fundamental design flaw. PCIe descends from PCI, which descends from ISA, bringing along all sorts of backward compatible cruft, including the Option ROM support used by this exploit.
However, you're right that the security characteristics of an external bus are quite different from an internal one. I haven't looked in detail at the specs but I've worked with PCI/PCIe and it should certainly be possible to distinguish between a device plugged into the external port (it likely appears as a separate bus with a PCI-PCI bridge) and an internal one, allowing a BIOS (EFI, whatever it's called these days) option to control it. Something like "Execute Thunderbolt Option ROM [Yes/No/Prompt]"? But then, knowing Apple, they'd be more inclined to want everything to "just work" and default it to Yes without allowing the user to change it...
Basically, when a MacBook is booted it allows random code to be executed from an attached Thunderbolt device (in a form of a legacy mechanism of Option ROM). The Option ROM is loaded unconditionally, including the case when the host system is rebooted to update its firmware. During such upgrade its primary on-board ROM is writable, so the exploit can write itself in it, replace RSA key used to verify firmware upgrades and thus prevent re-flashing the host with any official updates. Additionally, all this is possible because ROM includes only rudimentary self-integrity checks (in a form of CRC32) and proper crypto-signature checks are only applied during the update and not on every boot.
This particular exploit is pluggable by making firmware not use Option ROM during upgrades, which is a fix being deployed by Apple. Meanwhile you may want to superglue your TB port.
Also worth mentioning that this isn't specific to Thunderbolt - Expresscard also breaks out PCIe to an externally-accessible port.
For me, reading this really hammers home just how feasible evil maid type attacks really are (considering attacks aimed at defeating Eg. Full disk encryption). But at the same time, if I am still typing the passphrase for my encrypted disks at each boot, simply filming me use my laptop would seem easier... So using that logic, I have been working on passwordless unlock before fiddling with the very tedious task of maintaining a SecureBoot Linux installation.
Can anyone say how strong the x86/TPM-equipped machines out there are against malicious firmware updates, assuming one has their BIOS admin password set?
A machine with VT-d (IOMMU), TPM and TXT is needed.
http://theinvisiblethings.blogspot.com/2011/09/anti-evil-mai...
Look for changes to pcr-2 and pcr-3 when you plug or unplug cards with option ROMs:
cat /sys/devices/* /* /pcrsSo basically a File Vault disk encryption is useless? Any clarification would be welcome :)
The WiGig Bus Extension (WBE), which can enable a wireless
version of the PCI Express (PCIe) slots used to connect
everything from video cards to hard drives. WBE is now a
published specification available to members of the
consortium.
WiGig Bus Extension (WBE) aka PCIe over Wi-Fi, coming to a laptop near you.WBE would essentially replace the cable. It is invisible to upper stacks. There is encryption/scrambling. I'm sure there are vectors for snooping attacks but I don't see viable "imitation" attacks where you could issue commands on behalf of the other device.
If your peripheral device is compromised by a third party (say NSA) then it doesn't matter if it is over wireless or cable.
During boot time, it would read your BootROM and compare it against a known good and visually let you know if your ROM is compromised or not.
To the best of my knowledge, the only solution is something sitting on top of the BootROM chip, monitoring for writes. It may also be possible to alter the write-protect/write-enable pin (forget which it has) on the ROM to prevent all writes.
However, I can't see how that would be possible. While it is possible for the BootROM to block reads to ROM once it is done executing or not execute external Optional ROMs but both of those would be detectable by the external accessory.
It is not possible for the ROM however to return a different set of data than what is in the ROM.
The only thing I can think of is if the PCIe bridge had aperture/remapping registers and it would alter those to point to RAM instead of ROM and copy a "good" ROM into that range but that would be detectable by writing to the address over PCIe and seeing if the region is writable.
Also I liked it was somewhat step-by-step without jumping too far and losing the reader. This must be related to his class experience and is really awesome to broaden the access.
I would like to see way more of this kind of presentation/article had this step-by-step guiding through the discovery process.
Well done! That makes me wish to return to the field after some time _sleeping_.
"Three can keep a secret, if two of them are dead."
Maybe our new world version is: "Your computer can keep your secrets as long as it's dead".
Or maybe better: "Computers will keep secret anything you don't share with them."I suppose you could make a dongle with a tpm for macs.. Perhaps there would be a market for it.
Includes other Thunderstrike implementations and official Apple updates.
</s>
The Apple-I and Apple-II family were 6502 based machines and the 6502 was little-endian, would be my guess. Any takers?
Intel x86 processors are little-endian.
http://en.wikipedia.org/wiki/Endianness#Endianness_and_hardw...
Apple machines are little-endian, as are any other IA32e machines. The rest of the common 'full' architectures (ARM, MIPS, Power, SPARC, ...) are bi-endian, that is they can switch endianness on demand via a register.
People have finally realized Little Endian is the only true endianness ;).
If you want to understand anything at all you'll end up branching out into tons of other fields besides the one you started out in. Want to understand something about biology? Off you go to Chemistry, Physics and even Math...
Naming something makes it more real as a thing and easy to speak about.
It's not a great trend but if that's what it takes to improve global security...