På WWDC-konferensen förra året tillkännagav Apple planer på att avskaffa macOS “kernel extensions” (KEXTs) och ersätta dem med en ny mekanism som kallas “system extensions.”
Det första steget mot detta tillkännagivande togs i och med lanseringen av macOS Catalina (10.15.0) i september 2019, då system extensions introducerades tillsammans med kernel extensions.
Det sista steget i Apples plan kommer att träda i kraft under de kommande veckorna, med den kommande lanseringen av macOS Catalina 10.15.4.
Enligt Apple kommer man från och med macOS 10.15.4 kommer användningen av kärntillägg att utlösa ett meddelande till användaren om att programvaran innehåller ett föråldrat API och kommer att be användaren att kontakta utvecklaren för att få alternativ.
Vad är skillnaden mellan de två?
Både kärntillägg och systemtillägg tjänar samma syfte. De gör det möjligt för användare att installera appar som utökar de ursprungliga funktionerna i operativsystemet macOS.
Appar installerar kärn-/systemtillägg som gör det möjligt för dem att utföra operationer för vilka macOS inte har några ursprungliga egenskaper eller funktioner.
Mac antivirusprogram, brandväggar, VPN-klienter, DNS-proxies, USB-drivrutiner och andra använder sig alla av kärnutvidgningar.
Skillnaden mellan dessa två nya utvidgningssystem är att de äldre kärnutvidgningarna utför sin kod på macOS-kärnnivå, medan de nyare systemutvidgningarna körs i ett mer strikt kontrollerat användarutrymme.
Stort steg för säkerheten
“Ur Apples synvinkel är detta ett stort steg mot att förbättra säkerheten för macOS”, sade Patrick Wardle, huvudansvarig säkerhetsforskare på Jamf och välkänd macOS-säkerhetsexpert, till ZDNet i en intervju i veckan.
“Tredjepartskärntillägg utgör en saftig angreppsvektor för angripare som riktar in sig på macOS”, tillade han. “Särskilt om du som angripare kan utnyttja ett kärntillägg eller ladda ditt eget (förutsatt att det är signerat).”
Och attacker som involverar KEXTs har inträffat tidigare.
“Det är verkligen game over för macOS”, säger Wardle. “Många säkerhetsmekanismer är implementerade/förstärkta i kärnan.”
Wardle säger att en attack som denna inte skulle fungera med systemtillägg, eftersom de körs i användarläge.
“Eftersom de inte körs i kärnan, ger en exploatering dig inte längre tillgång till kärnan, vilket den gjorde med en KEXT-exploatering”, säger Wardle.
“Så Apple vill i princip sparka ut alla, till stor del av säkerhetsskäl.”
Potentiella nackdelar
Men Wardle menar att det också finns en nackdel med det här draget.
Den första är att genom att sparka ut apputvecklare från kärnan får Apple också mycket mer kontroll över macOS, i likhet med den kontroll som de har över iOS.
Intill nu har macOS varit en fristad för utvecklare och dess användare. Om macOS inte hade en specifik funktion kunde utvecklare bara skapa en app och utnyttja ett kärntillägg för att lägga till de funktioner de behövde.
Den andra nackdelen är att många säkerhetsverktyg i sig själva har förlitat sig starkt på och byggts upp kring den fullständiga åtkomst som kärntillägg ger till en användares Mac. Man skulle kunna hävda att Apples satsning på systemtillägg kan sluta med att säkerhetsprodukterna blir oskadliggjorda, vilket gör att de förlorar en del av sin förmåga att upptäcka och stoppa skadlig kod på vägen.
Men Wardle, som är författare till många gratis säkerhetsverktyg för macOS, säger att Apple har tillhandahållit “några bra ramar för användarläget som ger säkerhetsverktyg från tredje part de möjligheter de behöver”, så det verkar som om Apple inte har skurit av grenen under fötterna ännu.
Men för tillfället är det oklart om systemutvidgningar skulle ge samma mångsidighet och kodningsfrihet som kärnutvidgningar. Detta återstår att se – och är ett ämne för en annan artikel – eftersom vi kommer att behöva mer tid för macOS-utvecklare att långsamt övergå till systemtillägg framöver.
Wardle påpekar dock att steget är bra för macOS-säkerheten överlag, oavsett andra möjliga orsaker till Apples steg.