I slutet av oktober släppte Apple macOS Monterey, årets stora uppgradering till Mac-operativsystemet. Vi skrev om några av säkerhetsbristerna som Monterey löste, varav en fick smeknamnet “Shrootless.”
Låt oss ta en närmare titt på denna spännande sårbarhet, som överraskande upptäcktes av en medlem av Microsofts säkerhetsteam.
Men redan innan vi kommer till det är det värt att se över macOS-skyddstekniken som Shrootless kringgår: SIP.
En kort förklaring av SIP: System Integrity Protection
System Integrity Protection, eller SIP, introducerades 2015 med lanseringen av OS X 10.11 El Capitan. Det är en säkerhetsfunktion inbyggd i Mac OS som är utformad för att skydda de flesta systemmappar, appar och processer och kärntillägg från att skrivas till, ändras eller ersättas.
SIP tillät operativsystemet att köras “rotlöst” – det vill säga utan ett root- eller superanvändarkonto, till synes. Systemet fungerar faktiskt inte utan ett root-konto; det finns fortfarande, men införandet av SIP begränsade dess potential för missbruk.
Mapparna som hanteras av SIP inkluderar:
- /Systemet
- /usr
- /bin
- /sbin
- Alla appar förinstallerade av Apple
Ett antal saker i daglig datoranvändning kräver dock åtkomst till dessa platser. Av denna anledning tillåts vissa privilegierade processer och appar – inklusive Apples programuppdateringar och installationsprogram – komma åt dem utan användarens godkännande. Processen eller appen måste vara signerad av Apple och ha en speciell rättighet att tillåtas en SIP-bypass.
SIP har genomgått en del förändringar genom åren men är för det mesta fortfarande detsamma som det som introducerades 2015. Sedan macOS 10.14 Mojave skyddar SIP nu även tredjepartsappar så att de inte kan manipuleras. Om ett kärntillägg behöver installeras är det enda sättet att komma förbi SIP om det är signerat med ett Apple Developer ID som specifikt tillåter signerade kext (kärntillägg)-certifikat.
Sammantaget var SIP ett välkommet tillskott till operativsystemet och har hjälpt till att skydda Mac-operativsystemet från att modifieras av skadlig programvara och andra hot.
Hur vissa processer kan kringgå SIP
Som nämnts tillåts vissa processer och appar att kringgå SIP. En av dessa processer är system_installd, som har fått rätt av Apple, och som därmed kan göra vad den vill, när den vill, åtminstone upp till en viss punkt. Det beror på att system_installd är en Apple-programvaruinstallationsdemon som anropas när en programuppdatering eller annat installationsprogram behöver utföra sina funktioner, och det kan i sin tur starta underordnade processer för att hantera specifika uppgifter. Dessa underordnade processer är utrustade med samma privilegier som deras förälder – vilket i det här fallet inkluderar rätten att kringgå SIP.
Många installationsprogram inkluderar efterinstallationsskript som hanterar rensning, installation, överföring av inställningar ifall installationen var en uppdatering, etc. När ett efterinstallationsskript vill köras anropar system_installd ett skal med namnet zsh (“Z-skal”), vilket letar i sin tur efter filen /etc/zshenv. Den här zshenv-filen (Z-skalmiljövariabler, eller med andra ord, zsh-inställningar) innehåller kommandon efter installationen enligt instruktionerna i skriptet.
Forskare fann att att plantera en skadlig /etc/zshenv-fil (som finns i en mapp som inte är skyddad av SIP), kan vara ett mycket effektivt sätt att infektera ett system med skadlig programvara. Vänta helt enkelt på att ett Apple-installationsprogram ska köras, kör kommandon från den skadliga zshenv-filen, som sedan kan köras med SIP-bypass-behörigheten, och voilà! SIP förbigått.
Shootless exploit demonstrerad i ett proof-of-concept
Microsofts Jonathan Bar Or, som upptäckte och skrev om sårbarheten Shrootless, satte sig för att skapa en proof-of-concept (PoC) exploatering. Processen involverade:
- Ladda ner ett Apple-signerat paket (med wget) som är känt för att ha ett efterinstallationsskript
- Plantera en skadlig /etc/zshenv som skulle leta efter sin överordnade process; om det är system_installd, skulle det skriva till begränsade platser
- Anropa installationsverktyget för att installera paketet
Följande bild visar att Shrootless kunde åsidosätta uteslutningslistan för kärntillägg (klicka för att förstora):
Jonathan fortsätter med att notera:
“Under vår forskning fick vi också reda på att zshenv också kunde användas som en allmän attackteknik förutom att användas för en SIP-bypass. Vi upptäckte att /etc/zshenv har en motsvarighet för varje användarprofil under ~/.zshenv, som har samma funktion och beteende men inte kräver root-behörighet för att skriva till.”
Zshenv-filen kan användas antingen som en beständighetsmekanism (dvs. ett sätt för skadlig programvara att köras igen efter en omstart) eller som en mekanism för utökning av privilegier.
Att plantera en skadlig zshenv-fil kan mycket enkelt göras av en installatör, som PoC visar. För alla falska Flash Player-installationsprogram eller annan skadlig programvara, om den bad om ditt användarlösenord, hade den tillräckligt med privilegier för att ersätta den legitima filen med en skadlig fil.
Apple började använda zsh (Z-skal) som standard, och ersatte bash-skalet, i macOS 10.15 Catalina, så denna sårbarhet verkar inte vara ett problem för versioner av macOS äldre än så. (MacOS 10.14 Mojave och äldre får dock inte längre säkerhetsuppdateringar och är inte längre säkra att använda.)
Kris avvärjt; de bra vinner den här omgången
Efter upptäckt rapporterade Microsoft Shrootless-sårbarheten till Apple. I tur och ordning, Apple fixade sårbarheten i macOS Monterey, Big Sur och Catalina. Se till att du har installerat de senaste uppdateringarna för att säkerställa att din Mac är skyddad.
Ett typiskt operativsystem består av tusentals och åter tusentals filer, som alla arbetar tillsammans för att ge dig slutanvändarupplevelsen. Det fortsatta sökandet efter, upptäckten och undersökningen av potentiella sårbarheter är vad de med illvilliga avsikter – och de som försöker skydda oss – ständigt arbetar med. Lyckligtvis i det här fallet kom de goda till det först!
Eftersom säkerheten är så komplex är det viktigt att ta ett skiktat tillvägagångssätt och använda alla verktyg som står till ditt förfogande. Intego VirusBarrier-del av Mac Premium Bundle X9 säkerhets- och verktygssvit – kan skydda din Mac från skadlig programvara innan den har en chans att försöka utnyttja några sårbarheter. Läs mer och ladda ner en free rättegång idag. Och från 19 november till 2 december 2021 kan du spara upp till 65 % rabatt under vår Black Friday-rea!
Hur kan jag lära mig mer?
Även om Apple gjorde rätt sak genom att korrigera alla tre för närvarande stödda macOS-versioner (Monterey, Big Sur och Catalina), är det viktigt att notera att Apple inte nödvändigtvis alltid korrigerar alla berörda operativsystem. För mer om det ämnet, se Intego Chief Security Analyst Josh Longs senaste artikel om Apples korrigeringspolicy:
Apples dåliga korrigeringspolicyer kan potentiellt göra användarnas säkerhet och integritet osäkra
Varje vecka på Intego Mac Podcast, Integos Mac-säkerhetsexperter diskuterar de senaste Apple-nyheterna, säkerhets- och integritetsberättelser och ger praktiska råd om hur du får ut det mesta av dina Apple-enheter. Var säker på att följ podden för att se till att du inte missar några avsnitt.
Du kan också prenumerera på vår e-post nyhetsbrev och håll ett öga här Mac-säkerhetsbloggen för de senaste nyheterna om Apples säkerhet och integritet. Och glöm inte att följa Intego på dina favoritkanaler för sociala medier:
Om Mike Jones
Mike Jones är en IT-konsult med en passion för Mac-säkerhetsforskning. Visa alla inlägg av Mike Jones → Det här inlägget postades i Säkerhet och integritet och märkte sårbarheter. Bokmärk permalänken.