Thread: This would perhaps be a good time to point out that while it’s absolutely true that Windows’ UEFI SecureBoot is intentionally not designed to defend against physical presence, that’s actually an improvement I shot for with Mac SecureBoot, first on T2 and then M1
I termed the security goal “P != X” meaning mere physical possession *in and of itself* should not equal code execution. Rather, possession must be combined with knowledge of an administrator password before you could disable that critical security feature.
I was able to shoot for this because Macs have a couple things going for them: 1) the first user which is set up is an administrator user by default 2) all Macs have a “recovery OS” (originally an HFS partition, and then an APFS volume), which has always been digitally signed
(The “everyone has an admin password” is in contrast to PCs which have an option for a BIOS password, which as David has said previously and which I agree with 100%, optional security gets incredibly low adoption rate,here’s my reminder to set a Mac firmware password on pre-M1s!)
The recovery OS gave us a presumably-intact environment from which to perform security-sensitive policy changes. On T2 systems then there was an admin password prompt in front of Startup Security Utility in recoveryOS before you could downgrade the boot security policy
(I would sometimes get complaints from people who’d open a new Mac, and go to recoveryOS immediately and try to turn off SecureBoot, but it wouldn’t work because they didn’t have an admin yet, to which the response was “sorry, gotta make an admin first ¯\_(ツ)_/¯”)
On T2 Macs that’s really just a policy enforcement within recoveryOS running on the x86. For M1 we then sought to improve it to make the locus of control be the SEP with cryptographic entanglement with the user password too
That becomes achievable because the the entire LocalPolicy (LP) (which is what has the security policy settings that are consumed at boot) is signed by the SEP. As soon as the first administrator is set up, the Owner Identity Key (OIK), which is what signs the LP, becomes
protected by the Key Encryption Key (KEK) which is inaccessible without knowledge of the user’s password + the correct firmware and software measurements (key hierarchy shown here: support.apple.com/guide/security… and the protection of the OIK by KEK is here support.apple.com/guide/security…)
So anyway, that’s all just to say that when defending against mere-presence attacks, we then still tried to evolve it to be more hardened against actual exploitation attacks. Because the presumption is that getting code execution on the SEP is harder than in a full recoveryOS
(Because recoveryOS is a stripped down macOS which obviously has a lot more attack surface.)
I suppose I should caveat all this by saying that P != X presumed use of FDE, without which of course someone could simply mount a drive (Target Disk Mode anyone?) and steal all your data and inject Mac autorun malware of course
So, if P != X requires the opt-in of FDE, can PCs ever achieve similar guarantees? It’s less user-friendly, but clearly BitLocker + TPM + preboot PIN gets you pretty far there
But it’s been a while since I’ve looked into what other avenues still exist on PCs so I can’t at this time say how much farther remains to go
Correction on 2nd link: support.apple.com/guide/security…
(To self: “wait, farther, or further?” From google: "farther is for physical distance and further is for figurative distance.". So “further” I guess ;))
Oh right, but I should say that even though the password check is just a policy check in recoveryOS, the T2 actually can tell whether you booted recoveryOS vs. macOS, so even kernel code execution in macOS with a user password wouldn’t be able to ask the T2 for the downgrade

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Xeno Kovah

Xeno Kovah Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @XenoKovah

22 Nov 19
Check it out for more about the first-in-the-world work @coreykal & Rafal Wojtczuk have done for UEFI DMA protection and UEFI sandboxing of PCIe Option ROMs
@coreykal Or for the work @NikolajSchlej and I did on bringing SecureBoot to the Mac
@coreykal @NikolajSchlej Enabling VT-d before there's even RAM available? It's what you gotta do ¯\_(ツ)_/¯ Image
Read 4 tweets
6 Oct 19
Thread: A while back I was asked to add SGX attack papers to the timeline. That seemed reasonable to me, so I started collecting them...and then got distracted before I had worked through cross-references and such...
In general I'm not super interested in capturing the SGX/SideChannel category of papers, because they're mostly academic papers, which already do a good job of citation. So you can always just look at the end of the latest few papers to find most of the previous papers...
Whereas, the stuff I normally capture is conference talks / blog posts, and the non-academic security community does a *terrible* job of citing related work, hence why it needs collection
Read 23 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(