Sikkerhet for signert systemvolum
I macOS 10.15 introduserte Apple det skrivebeskyttede systemvolumet, et reservert, isolert volum for systeminnhold. macOS 11 og nyere legger til sterk, kryptografisk beskyttelse for systeminnhold på et signert systemvolum (SSV). SSV har en kjernemekanisme som verifiserer integriteten til systeminnholdet ved kjøring og avviser alle data, både kode og ikke-kode, som ikke har en gyldig kryptografisk signatur fra Apple. Fra og med iOS 15 og iPadOS 15 har systemvolumet på en iPhone eller iPad også den kryptografiske beskyttelsen med et signert systemvolum.
SSV hjelper ikke bare til med å forhindre manipulering av Apple-programvare som er en del av operativsystemet, men det gjør også macOS-programvareoppdateringer mer pålitelige og mye tryggere. Og siden SSV benytter APFS-øyeblikksbilder (Apple File System) kan den gamle systemversjonen gjenopprettes uten ny installering hvis en oppdatering ikke kan utføres.
APFS har siden introduksjonen dannet integritet for filsystemets metadata ved å bruke ikke-kryptografiske kontrollsummer på den interne lagringsenheten. SSV styrker integritetsmekanismen ved å legge til kryptografiske hasher, noe som utvider den for å omfatte alle byte av fildata. Data fra den interne lagringsenheten (inkludert filsystemets metadata) blir kryptografisk hashet i lesebanen, og hashen sammenlignes deretter med en forventet verdi i filsystemets metadata. I tilfeller med manglende samsvar antar systemet at dataene har blitt tuklet med, og det vil ikke returnere dem til programvaren som sender forespørselen.
Hver SSV SHA256-hash lagres i hovedfilsystemets metadatatre, som selv er hashet. Og fordi hver node av treet rekursivt verifiserer integriteten av hashene til de underordnede elementene, tilsvarende et binært hashtre (Merkle), omfatter rotnodens hashverdi, kalt en forsegling, alle byte av data i SSV, noe som betyr at den kryptografiske signaturen dekker hele systemvolumet.
Under installasjon og oppdatering av macOS beregnes forseglingen på nytt fra filsystemet på enheten, og denne målingen verifiseres mot målingen som Apple signerte. På Macer med Apple-chip verifiserer bootloaderen forseglingen før kontrollen overføres til kjernen. På Intel-baserte Macer med Apple T2-sikkerhetsbrikke videresender bootloaderen målingen og signaturen til kjernen, som deretter verifiserer forseglingen direkte før den aktiverer rotfilsystemet. I begge tilfeller, hvis verifiseringen mislykkes, stopper oppstartsprosessen, og brukeren blir bedt om å installere macOS på nytt. Denne prosedyren gjentas ved hver oppstart med mindre brukeren har valgt å gå inn i en lavere sikkerhetsmodus og har selv valgt å deaktivere det signerte systemvolumet.
Under oppdateringer av iOS og iPadOS forberedes og beregnes systemvolumet på nytt på en lignende måte. Bootloaderne for iOS og iPadOS kontrollerer at forseglingen er uskadet, og at den stemmer med en Apple-signert verdi før enheten kan starte kjernen. Avvik ved oppstart fører til at brukeren blir bedt om å oppdatere systemprogramvaren på enheten. Brukere kan ikke deaktivere beskyttelsen for et signert systemvolum i iOS og iPadOS.
SSV og kodesignering
Kodesignering er fortsatt i bruk og håndheves av kjernen. Det signerte systemvolumet gir beskyttelse for når hvilke som helst byte leses fra den interne lagringsenheten. Kodesignering gir derimot beskyttelse når Mach-objekter minnetilordnes som kjørbare. Både SSV og kodesignering beskytter kjørbar kode på alle lese- og kjøringsbaner.
SSV og FileVault
I macOS 11 eller nyere utføres tilsvarende beskyttelse av systeminnhold på disk av SSV, og systemvolumet trenger derfor ikke lenger å krypteres. Alle endringer utført i filsystemet mens det er på disk, oppdages av filsystemet når de leses. Hvis brukeren har slått på FileVault, er brukerens innhold på datavolumet fortsatt kryptert av en brukeroppgitt hemmelighet.
Hvis brukeren velger å deaktivere SSV, blir systemet sårbart for manipulering, og denne manipuleringen kan gjøre det mulig for en angriper å trekke ut krypterte brukerdata neste gang systemet starter opp. Derfor vil ikke systemet tillate at brukeren deaktiverer SSV hvis FileVault er slått på. Beskyttelse av diskinnhold må aktiveres eller deaktiveres for begge volumer på en konsekvent måte.
I macOS 10.15 og eldre beskytter FileVault operativsystemprogramvare på disk ved å kryptere bruker- og systeminnhold med en nøkkel beskyttet av en brukeroppgitt hemmelighet. Dette hindrer at en angriper med fysisk tilgang til enheten får tilgang til eller gjør endringer i filsystemet som inneholder systemprogramvaren.
SSV og Macer med Apple T2-sikkerhetsbrikke
På Macer med Apple T2-sikkerhetsbrikke er kun selve macOS beskyttet av SSV. Programvaren som kjører på T2-brikken og verifiserer macOS, er beskyttet av sikker oppstart.