Hur Apple satte stopp för iOS-jailbreaking

0 Shares

“iPhone-jailbreaking är död” står det i rubriken. Fyra ord som signalerar slutet på en tio år lång strid mellan Apple och de som ville ha öppen kontroll över sina iOS-enheter. Här är ett erkännande i svartvitt att framstående medlemmar i jailbreaking-samhället ger upp att attackera iOS-enheter. Apple skapade ett system där deras ingenjörer, som soldater i ett slott under belägring, kunde överleva den belejrande armén; kasta tillbaka överfall efter överfall, tills attackerna, besluta belägringen inte längre var värt, packade upp och gick hem.

För tio år sedan var det ganska genomförbart att hitta ett jailbreak, men det krävde skicklighet. När iOS-jailbreaks blev svårare att hitta blev de dock mer värdefulla. Zerodium tillkännagav offentligt att de skulle betala 1 miljon dollar, nu ökat till 1,5 miljoner dollar, för ett fjärranslutet jailbreak-fel (t.ex. fjärrkörning av kod) på iOS. Detta prissatte jailbreak-communityn effektivt från marknaden för iOS-sårbarheter. Marknader tilldelar varor endast sådana värden när de är sällsynta och svåra att få. Om du på något sätt förblir övertygad, tänk på att den sista offentligt tillgängliga bundna (t.ex. ihållande över omstart) jailbreak upptäcktes för mer än ett år sedan och var en del av det attackverktyget Pegasus av regeringen. Den nuvarande generationen jailbreaks kräver att användaren kör en jailbreak-app varje gång de startar om.

Allt detta flyger inför konventionell datasäkerhetsortodoxi som hävdar att fördelen alltid kommer att tillhöra angriparen. Det är lätt att se varför detta tänkande stämmer. Angriparen behöver bara hitta en eller två exploater var som helst i systemet, medan försvararen måste åtgärda alla brister i systemet. Därför har angriparen en enorm fördel eftersom de bara fokuserar på en sak medan försvararna fokuserar på flera saker som att lägga till nya funktioner och lösa kundanvändningsfall. Som Linus Torvalds konstaterade: “Säkerheten i sig är värdelös … uppåtriktad är alltid någon annanstans.” Denna tro på angriparens fördel är så genomgripande att underrättelsetjänster runt om i världen verkar bygga sina cybersäkerhetsstrategier för att avsevärt prioritera attack över försvar.

Om alla tror att angripare alltid kommer att vinna, hur skapade Apple ett system som gynnar försvararna? För att förstå svaret är det viktigt att förstå att skapa en ihållande iOS-jailbreak i allmänhet kräver att man hittar minst fyra separata sårbarheter i iOS:

I en app på enheten I iOS-kärnan I startsekvensen I iOS-kärnan (ofta annorlunda än 2)

App-sårbarheter

Den första utmaningen är att få godtycklig kod att köras på iOS alls. Eftersom Apple kontrollerar noggrant vilka appar som kan köras på iOS, behöver du bara hitta en sårbar applikation för att köra en godtycklig app. I praktiken har detta vanligtvis inneburit att hitta brister i Safari.

Efter att ha utnyttjat den bristen vill en användare troligen ladda ner appar (t.ex. installera och köra appar som inte har godkänts av AppStore). Ursprungligen var detta nödvändigt för att köra appar från tredje part, eftersom det inte fanns någon App Store. Senare aktiverade användare funktioner som Bluetooth-delning som bärare inaktiverade eller debiterade extra pengar för att använda. För icke-iOS-utvecklare kräver körning av sidladdade appar att inaktivera signaturkontrollen iOS gör på alla appar innan de körs. Denna kontroll, som görs inuti kärnan, säkerställer att appar har kommit från AppStore eller ett godkänt företagsekvivalent.

Kärnans sårbarheter

Nu måste vår angripare hitta en brist i kärnan som tillåter exekvering av godtycklig kod för att inaktivera signaturkontrollrutinen. Kärnan i ett operativsystem är som en trafikman. Det ansvarar för att kontrollera åtkomst till maskinvareresurser, hantera processer och kontrollera användarbehörigheter bland andra uppgifter.

Förutsatt att de första två bristerna har hittats och utnyttjats framgångsrikt, är jailbreak bara effektivt tills enheten startar om eftersom signaturkontrollen vid den tidpunkten kommer att återaktiveras och de användarladdade apparna får inte köras. För att bestå jailbreak över omstart måste angriparen hitta en exploatering i startsekvensen på iOS-enheten som kommer att köra angriparens kod.

Boot sårbarheter

När iOS startar verifierar hårdvaran först signaturen på firmware, som sedan verifierar signaturen på startladdaren (faktiskt har iOS två), som sedan verifierar signaturen i kärnan, som sedan kontrollerar signaturerna på alla senare lanserade program . Därför tvingas alla angripare hitta en brist någonstans i den startsekvensen som gör att de kan köra sitt ursprungliga program som inaktiverar kärnans signaturkontroll.

Och därmed avslöjas skönheten i Apples strategi. Först tvingar de sin motståndare att hitta fyra sårbarheter; fixa någon av dem som bryter jailbreak och tvingar angriparen att hitta en ny brist som tjänar samma syfte. För det andra, och kanske mer kritiskt, ser Apple till att åtminstone en av dessa brister måste vara i startsekvensen.

Detta är en enorm fördel eftersom, till skillnad från de flesta program, bootloaders vanligtvis är relativt små (hundratals eller tusentals rader kod, inte miljoner) och de behöver inte lägga till många nya funktioner över tiden. Således kan angripare inte räkna med att startladdarna introducerar nya brister. Detta skapar ett “smalt pass”, och som Sun Tzu rådde (“När det gäller smala pass, om du först kan ockupera dem, låt dem vara starkt garnison och vänta på fiendens tillkomst.”), Apple har befäst det.

Kärnans sårbarheter (redux)

Slutligen behöver angriparen en exploatering för att komma tillbaka till kärnan för att inaktivera signaturkontrollen igen. Det är troligt att detta utnyttjar kommer att kräva en annan brist än den ursprungliga kärnsårbarheten som används. Men om en angripare har lyckats nå så långt kommer jailbreak att fortsätta över omstart. Åtminstone tills nästa version av iOS korrigerar dessa brister och det här loppet börjar om igen.

Inom säkerhetsgemenskapen har det länge varit en debatt om huruvida fixning av en enda fel gör systemet betydligt säkrare. Genom att skapa en “smal punkt” som endast kan innehålla ett begränsat antal buggar har Apple säkerställt att svaret är “ja” för iOS. Varje fel som fixas gör det så mycket svårare att hitta en ny brist. Jag gratulerar Apple för att skapa ett system där försvararna för en gångs skull har fördelen. Ändå måste iOS-användare hoppas att Apple förblir vaksamt. Jailbreaking-communityn arbetade gratis. Nästa omgång av angripare finansieras av organisationer som är villiga att spendera miljoner dollar för att tränga igenom iOS-enheter.

Tim Jackson, senior produktsäkerhetsarkitekt på MobileIron.

Publicerad under licens från ITProPortal.com, en Future plc-publikation. Alla rättigheter förbehållna.

Fotokredit: val laglös / Shutterstock

0 Shares