Säker utökning av kärnan i macOS
Om kärntillägg från tredje part är aktiverade kan de inte läsas in i kärnan på begäran från och med macOS 11. De slås istället samman i en AuxKC (Auxiliary Kernel Collection) som läses in under startprocessen. För Mac-datorer med Apple Silicon loggas mätvärdet för AuxKC i LocalPolicy (AuxKC fanns på datavolymen för äldre maskinvara). Att bygga om AuxKC kräver användarens godkännande och att macOS startar om för att läsa in ändringarna i kärnan, och det kräver att säker start konfigureras som Minskad säkerhet.
Viktigt: Kärntillägg rekommenderas inte längre för macOS. Kärntillägg riskerar operativsystemets integritet och tillförlitlighet och Apple rekommenderar användare att välja lösningar som inte kräver kärntillägg.
Kärntillägg på Mac-datorer med Apple Silicon
Kärntillägg måste aktiveras särskilt för Mac-datorer med Apple Silicon genom att strömknappen hålls in vid start så att datorn går in i 1TR-läge (One True Recovery). Nedgradera sedan till Minskad säkerhet och markera rutan så att kärntillägg aktiveras. Åtgärden kräver också att ett administratörslösenord anges för att godkänna nedgraderingen. Kombinationen av 1TR och lösenordskrav gör det svårt för programvaruangripare som börjar inuti macOS att överföra kärntillägg till macOS som de sedan kan utnyttja för att få kärnbehörigheter.
När en användare godkänner att kärntillägg läses in används det ovanstående flödet Användargodkänd inläsning av kärntillägg till att godkänna installationen av kärntillägg. Godkännandet som används för ovanstående flöde används också till att samla in en SHA384-hash för UAKL (User Authorized Kext List) i LocalPolicy. Kärnhanteringsdemonen (kmd
) ansvarar sedan för att validera endast de kärntillägg som finns i UAKL och inkludera dem i AuxKC.
Om SIP (systemintegritetsskydd) är aktiverat verifieras signaturen för varje kärntillägg innan det läggs till i AuxKC.
Om SIP är avaktiverat krävs inte kärntilläggssignaturen.
Den här metoden gör det möjligt att använda flöden för Tillåtande säkerhet för utvecklare eller användare som inte deltar i Apple Developer Program när de testar kärntillägg innan de signeras.
När AuxKC är skapad skickas dess mätvärde till Secure Enclave för signering och inkluderas sedan i en Image4-datastruktur som kan utvärderas av iBoot vid start. Ett kärntilläggskvitto genereras också som en del av AuxKC-konstruktionen. Det här kvittot innehåller listan med kärntillägg som faktiskt inkluderades i AuxKC eftersom uppsättningen kan vara en undermängd av UAKL om förbjudna kärntillägg hittades. En SHA384-hash av Image4-datastrukturen i AuxKC och kärntilläggskvittot läggs till i LocalPolicy. Image4-hashen för AuxKC används för extra verifiering av iBoot vid start för att säkerställa att det inte går att starta en äldre Secure Enclave-signerad Image4-fil för AuxKC med en nyare LocalPolicy. Kärntilläggskvittot används av undersystem som Apple Pay till att avgöra om det finns några kärntillägg som läses in för tillfället och som kan minska trovärdigheten hos macOS. Om det finns sådana kärntillägg kan Apple Pay-funktioner avaktiveras.
Systemtillägg
I macOS 10.15 får utvecklare utöka funktionerna i macOS genom att installera och hantera systemtillägg som körs i användarutrymmet istället för på kärnnivå. Det faktum att systemtilläggen körs i användarutrymmet ökar stabiliteten och säkerheten i macOS. Även om kärntillägg till sin natur har full åtkomst till hela operativsystemet har tillägg som körs i användarutrymmet endast de behörigheter som krävs för att utföra deras avsedda funktion.
Utvecklare kan använda ramverk som DriverKit, EndpointSecurity och NetworkExtension till att skriva drivrutiner för USB- och användargränssnitt, verktyg för slutpunktssäkerhet (förhindra dataförlust eller andra slutpunktsagenter) och VPN- och nätverksverktyg utan att behöva skriva kärntillägg. Säkerhetsagenter från tredje part ska endast användas om de utnyttjar dessa API:er eller om de har en stabil plan för att övergå till dem och bort från kärntillägg.
Användargodkänd inläsning av kärntillägg
För att förbättra säkerheten krävs godkännande av användaren för att läsa in kärntillägg som har installerats med eller efter installationen av macOS 10.13. Den här processen kallas User-Approved Kernel Extension Loading. Auktorisering på administratörsnivå krävs för att godkänna ett kärntillägg. Kärntillägg kräver inte auktorisering om de:
Installerades på en Mac som körde macOS 10.12 eller tidigare
Ersätter tidigare godkända tillägg.
Är tillåtna att läsas in utan användarens godkännande via kommandoradsverktyget
spctl
som är tillgängligt när datorn startats från recoveryOS.Är tillåtna att läsas in via en MDM-konfiguration.
Från och med macOS 10.13.2 kan användarna använda MDM till att ange en lista över kärntillägg som läses in utan att användaren behöver godkänna det. Det här alternativet kräver en Mac med macOS 10.13.2 som är registrerad i MDM via Apple School Manager, Apple Business Manager eller en MDM-registrering som användaren har gjort.