Sikkerhed med Option ROM i macOS
Bemærk: Option ROM understøttes i øjeblikket ikke på en Mac med Apple Silicon.
Sikkerhed med Option ROM på en Mac med Apple T2-sikkerhedschippen
Både Thunderbolt og PCIe-enheder kan have en “Option ROM (OROM)”, som er sluttet fysisk til enheden. (Det er som regel ikke ægte ROM, men en chip, der kan overskrives, og som firmwaren opbevares på). På UEFI-baserede systemer er denne firmware typisk en UEFI-driver, der indlæses af UEFI-firmwaren og afvikles. Den afviklede kode skal initialisere og konfigurere den hardware, den blev hentet fra, så hardwaren kan bruges af resten af firmwaren. Denne funktion er påkrævet, så specialiseret tredjepartshardware kan indlæses og fungere i de tidligste faser af starten, f.eks. i forbindelse med start fra eksterne RAID-matrixer.
Men da OROM generelt kan overskrives, afvikles en hackers kode tidligt i startprocessen, hvis vedkommende overskriver OROM i en godkendt ekstern enhed, og koden bliver dermed i stand til at påvirke afviklingsmiljøet og kompromittere integriteten af den software, der indlæses senere. På samme måde kan en hacker afvikle skadelig kode, hvis vedkommende slutter sin egen enhed med skadeligt indhold til systemet.
I macOS 10.12.3 blev virkemåden for Mac-computere solgt efter 2011 ændret til ikke at eksekvere OROM som standard, når Mac-computeren blev startet, medmindre der blev trykket på en bestemt tastkombination. Denne tastkombination beskyttede mod, at OROM med skadeligt indhold utilsigtet kunne introduceres i macOS-startprocessen. Standardindstillingen i Hjælpeprogram til firmwareadgangskode blev også ændret, så OROM ikke kunne afvikles, når en bruger havde indstillet en firmwareadgangskode, heller ikke selvom der blev trykket på tastkombinationen. Det forhindrede en hacker med fysisk adgang til systemet i med vilje at introducere OROM med skadeligt indhold. Brugere, der stadig har behov for at bruge OROM, når de har indstillet en firmwareadgangskode, kan konfigurere en anden indstilling end standardindstillingen ved hjælp af kommandolinjeværktøjet firmwarepasswd
i macOS.
Sikkerhed med OROM-sandbox
I macOS 10.15 blev UEFI-firmwaren opdateret til at indeholde en mekanisme til at afvikle OROM i et isoleret miljø (“sandbox”) og til at fjerne OROMs rettigheder. UEFI-firmware afvikler typisk al kode, herunder OROM, på højeste rettighedsniveau i CPU’en (ring 0) og har et enkelt delt virtuelt hukommelsesområde til al kode og alle data. Ring 0 er det rettighedsniveau, som macOS-kernen afvikles med, mens apps afvikles på det lavere rettighedsniveau ring 3. OROM-sandbox nedgraderede OROM-rettighederne ved at benytte samme opdeling af den virtuelle hukommelse, som kernen bruger, og lade OROM blive afviklet i ring 3.
Sandboxing begrænser desuden i betydelig grad de grænseflader, som OROM kan kalde (stort set som filtrering af systemkald i kerner), og den type enheder, som en OROM kan registreres som (stort set som godkendelse af apps). Fordelene ved denne arkitektur er, at OROM med skadeligt indhold ikke længere kan skrive direkte inden for ring 0-hukommelse. De er i stedet begrænset til en meget snæver og veldefineret sandboxgrænseflade. Denne begrænsede grænseflade reducerer angrebsfladen betydeligt og tvinger hackere til først at omgå det isolerede miljø (sandbox) og eskalere rettigheder.