Säkerhet för signerade systemvolymer
I macOS 10.15 introducerade Apple den skrivskyddade systemvolymen, vilket är en dedikerad, isolerad volym för systeminnehåll. Med macOS 11 eller senare tillkommer starka kryptografiska skydd för systeminnehåll på en signerad systemvolym (SSV). SSV har en kärnmekanism som verifierar integriteten hos systeminnehållet vid körning och avvisar alla data – kod och icke-kod – som saknar giltig kryptografisk signatur från Apple. Från och med iOS 15 och iPadOS 15 har systemvolymen på en IPhone eller iPad även det kryptografiska skyddet hos en signerad systemvolym.
SSV hjälper inte bara till att förhindra manipulering av någon Apple-programvara som ingår i operativsystemet, utan det gör dessutom uppdateringen av macOS-programvara tillförlitligare och mycket säkrare. Och eftersom SSV använder APFS (Apple File System)-ögonblicksbilder kan den gamla systemversionen återskapas utan ominstallation om en uppdatering inte kan utföras.
Sedan introduktionen har APFS tillhandahållit integritet för filsystemets metadata genom användning av icke-kryptografiska kontrollsummor på den interna lagringsenheten. SSV stärker integritetsmekanismen genom att lägga till kryptografiska hashvärden och utökar den på så vis till att omfatta alla fildatabyte. Data från den interna lagringsenheten (inklusive filsystemmetadata) hashas kryptografiskt i lässökvägen, och hashvärdet jämförs sedan med ett förväntat värde i filsystemets metadata. Om värdena inte stämmer antar systemet att data har manipulerats och skickar inte tillbaka något till den programvara som skickat förfrågan.
Varje SSV-SHA256-hash lagras i huvudmetadataträdet för filsystemet, vilket i sig också hashas. Och eftersom varje nod i trädet rekursivt verifierar integriteten för hashvärdena för dess underordnade noder – ungefär som ett binärt hash-träd (Merkel-träd) – omfattar rotnodens hashvärde (kallas sigill) därför alla databyte i SSV, vilket innebär att den kryptografiska signaturen täcker hela systemvolymen.
Under installation och uppdatering av macOS beräknas sigillet om från filsystemsenheten och det värdet verifieras mot värdet som Apple har signerat. På Mac-datorer med Apple Silicon verifierar bootloadern sigillet innan styrningen överförs till kärnan. På Intel-baserade Mac-datorer med Apple T2-säkerhetskrets vidarebefordrar bootloadern mätvärdet och signaturen till kärnan som sedan verifierar sigillet direkt innan inlänkning av rotfilsystemet. I båda fallen avbryts startprocessen om verifieringen misslyckas och användaren blir uppmanad att installera om macOS. Den här processen upprepas vid varje start om inte användaren har valt ett lägre säkerhetsläge och dessutom separat har valt att avaktivera den signerade systemvolymen.
Under iOS- och iPadOS-programuppdateringar blir systemvolymen förberedd och beräknas om på ett liknande sätt. iOS- och iPadOS-bootloaders verifierar att sigillet är intakt och matchar ett Apple-signerat värde innan enheten får starta kärnan. Ifall en matchning inte stämmer vid start uppmanas användaren att uppdatera systemprogramvaran på enheten. Användare får inte avaktivera skyddet hos en signerad systemvolym i iOS och iPadOS.
SSV och kodsignering
Kodsignering sker fortfarande och genomdrivs av kärnan. Den signerade systemvolymen tillhandahåller skydd varje gång byte läses från den interna lagringsenheten. Kodsignering tillhandahåller däremot skydd när Mach-objekt minnesmappas som körbara. Både SSV och kodsignering skyddar körbar kod på alla läs- och körsökvägar.
SSV och FileVault
I macOS 11 eller senare tillhandahålls motsvarande skydd för systeminnehåll under vila av SSV-volymen, och därför behöver systemvolymen inte längre vara krypterad. Eventuella ändringar som görs i filsystemet under vila upptäcks av filsystemet när de läses. Om användaren har slagit på FileVault är användarens innehåll på datavolymen fortfarande krypterat med en hemlighet som tillhandahålls av användaren.
Om användaren väljer att avaktivera SSV-volymen blir systemet sårbart för manipulering vid vila, och sådan manipulering kan göra det möjligt för angripare att extrahera krypterade användardata nästa gång systemet startar. Därför tillåter systemet inte att användaren avaktiverar SSV-volymen om FileVault är påslaget. Skydd under vila måste konsekvent vara aktiverat eller avaktiverat för båda volymerna.
I macOS 10.15 eller tidigare skyddar FileVault operativsystemprogramvara under vila genom att kryptera användar- och systeminnehåll med en nyckel som skyddades av en hemlighet tillhandahållen av användaren. Detta skydd innebär att angripare med fysisk tillgång till enheten inte kan komma åt eller effektivt ändra det filsystem som innehåller systemprogramvaran.
SSV och Mac-datorer med Apple T2-säkerhetskrets
På Mac-datorer med Apple T2-säkerhetskrets skyddas endast själva macOS av SSV-volymen. Den programvara som körs på T2-kretsen och verifierar macOS skyddas av säker start.