Simovits

Dump av iPhone utan pinkod (Checkm8)

iPhone har länge legat i framkant vad gäller säkerhet och integritet, med delade känslor för många IT-forensiker som hittills i princip omedelbart fått ge upp när en låst iPhone av nyare modell än 4S hamnar på bordet utan att användaren frivilligt lämnat ifrån sig koden.

För någon månad sedan släppte Cellebrite dock sin implementation av exploiten checkm8, som är något av en revolutionär händelse för mobilforensiker.

Deras implementation av checkm8 utför via en bootloader en tillfällig forensiskt sund jailbreak (checkra1n) i telefonens minne, och den innebär två nya möjligheter jämfört med tidigare metoder:

Vad betyder då detta?

Fullt filsystem

Andra tidigare tillgängliga metoder för att få ur data ur en iPhone är oftast beroende av vad telefonen väljer att lämna ifrån sig via dess egna inbyggda funktioner för exempelvis backup. Även om man får ut relativt mycket data från en sådan extraktion, så är viss data ofta begränsad som antingen skyddas lite extra eller inte är relevanta vid en backup, exempelvis lösenord, epost, diverse loggar, vissa gps-positioner, raderade filer och cachar av olika slag. En del av nämnd data kan följa med en vanlig extraktion till viss del, men som sagt ofta begränsat.

Vid en full filsystemextraktion kan man alltså få ut även en stor del ytterligare sådan data, och checkm8 ska göra detta möjligt och enkelt.

Att metoden är forensiskt sund innebär att ingen relevant data ändras på telefonen och att bevisunderlaget därmed är starkt nog att accepteras i en rättsal.

BFU-data

BFU är en förkortning för ”Before First Unlock”. Det mesta på en iPhone är skyddat av kryptering med en krypteringsnyckel som genereras i telefonens ”Secure Enclave” med hjälp av användarens pin-kod/lösenord.

Men för att telefonen ska starta och vissa funktioner fungera även innan man låser upp första gången, såsom kanske visning av vissa notiser på låsskärmen, uppkoppling mot sparade WiFi-nätverk, nödsamtalsfunktion, hälsoinformation (användarens ICE-information) etc. är inte all data skyddad av pin-koden.

Ni kanske tänkt på att man första gången efter uppstart inte kan använda fingeravtrycksläsaren utan ombeds slå in koden för att ”aktivera” iTouch? Det är en effekt av att fingeravtrycksdata är krypterad, och pinkoden alltså måste anges för att kunna dekryptera och läsa dina sparade fingerdata, och därmed jämförelse med ditt riktiga finger kan ske.

Checkm8 gör det alltså möjligt att utan kod extrahera den data som är tillgänglig innan första upplåsning.

Om man har tur kan man sedan bland denna data eventuellt hitta ledtrådar till vad koden faktiskt är, och därmed lyckas komma vidare med en riktig extraktion.

Sårbara iPhone/iOS-versioner

Det intressanta är att checkm8 stöds av iPhones 5S till iPhone X, med iOS version 12.3 och uppåt (det finns ingen patch som skyddar mot exploiten), vilket ironiskt nog betyder att nästan alla som har en någorlunda modern och uppdaterad iPhone, är de som är ofrånkomligt mest utsatta.

Praktiskt test

Givetvis var detta något vi måste testa praktiskt och göra ett blogginlägg om. Vårt test idag fokuserar på BFU-varianten av checkm8, för att undersöka hur mycket intressant data man alltså kan få ut från en låst iPhone.

Extraktionen

Mitt testobjekt är min egna arbetstelefon, en iPhone 8 fullt uppdaterad till i skrivande stund senaste iOS-version 13.3.1.

I Cellebrites extraktionsverktyg UFED 4PC väljer vi aktuell telefonmodell (i mitt fall en iPhone 8, A1905) som nu har ett nytt tillgängligt val ”Full File System (checkm8)”. Trots att vi bara avser göra en BFU-extraktion, så ska vi ändå välja detta val.

Det klurigaste steget var helt klart att få telefonen i DFU-läge. DFU ”Device Firmware Update” är ett underhållsläge inbyggt i iPhones som krävs för att köra exploiten. Hur man för iPhone 8 aktiverar detta läge syns i instruktionerna i bilden och involverar en del knapptryckskombinationer med olika lång tid.

Här är timing tydligen av yttersta vikt, så jag misslyckades ett flertal gånger och började tro antingen att instruktionerna var fel eller att just min iPhone magiskt saknade detta läge. Men efter ett antal försök lyckades jag till sist och kunde komma vidare med extraktionen. När man gjort knapptryckningarna och telefonens skärm förblir svart (istället för att den startar om) samtidigt som UFEDs Continue-knapp tänds, har man lyckats. Därefter kan man klicka vidare för att bli presenterad för Checkm8-loggan på telefonen som antyder att exploiten lyckats.

Nästa steg är att ange koden om man vet om den. I vårat test var scenariot sådant att vi inte har en aning om vad den kan vara, så vi väljer ‘Cancel’ och blir då artigt befrågade om vi vill göra en BFU-extraktion. Se goddag då, det var ju precis detta vi ville, så vi klickar glatt ‘Yes’.

Sedan startar extraktionen och det är bara att vänta på att den blir klar, varefter telefonen startar om som om ingenting har hänt. Under tiden ser man på telefonen hur mycket data som kommer att extraheras, i mitt fall nästan 5,6 GB, vilket är en hel del data man får ut utan kod.

Resultatet

När extraktionen är klar öppnar vi den i analysprogrammet (UFED Physical Analyzer, PA). Vid öppningen kan vi även välja att låta verktyget berika data med positioner från eventuella kända WiFi-accesspunkter, vilket vi väljer att göra.

Nedan bild visar antal poster PA har analyserat/tolkat åt oss, samt totalt antal filer av olika typ.

Det ser imponerande ut, och det är det väl också, men det är nog bara en bråkdel av detta som verkligen är användbart. Många av filerna är standardfiler, och tillhör exempelvis grundinstallationer av appar etc. Exempelvis är inte en enda av de 348 videorna något jag känns vid själv, utan nästan uteslutande filmtrailers från appen iMovie som jag aldrig använt.

Men det finns även en del personlig data som i olika fall kan vara användbar. Nedan bild visar senaste uppkopplingar mot mina sparade WiFi-accesspunkter med bl.a. namn, BSSID och tid (bilden är lite maskerad, men jag kan bekräfta att namnen stämmer). Även position visas eftersom vi tidigare valde att berika denna data. På kartan finns markeringar vid min jobbadress samt min hemadress. Detta kan ju i vissa fall vara väldigt användbart för att binda en misstänkt till en geografisk plats.

Om man dessutom väljer att carva efter positioner, vilket innebär att det görs en mer djupgående sökning i filer, bilder och databaser efter potentiella positionsangivelser, får vi över 52000 positioner i Stockholmsområdet. Carvade positioner är dock av varierande kvalitet och kan alltså vara väldigt inexakta eller rent av felaktiga, men kan även ibland ge någon värdefull insikt.

Tittar man på fliken med bilder som extraherats så är en del även här allmänna systemfiler som tillhör appar, men det finns faktiskt mycket som skulle kunna hjälpa till att åtminstone få en uppfattning om ägarens intressen och vanor. Det är inte helt enkelt att härleda var bilderna kommer ifrån, då de extraherats ur cachar, men jag tycker mig kunna avgöra att det finns bilder från bland annat mitt facebookflöde, diverse nyhets- och reklammail jag fått, LinkedIn, surfhistorik etc.

På bilden nedan visas ett kort utdrag av bilderna från extraktionen, där man kan se exempelvis en bild på mig, min syster, en kompis och en mobilforensikguru jag följer på LinkedIn. Man kanske också kan dra slutsats om att jag på något sätt är relaterad till KTH, kör MC, vad jag gillar för netflix-serier, några butiker jag brukar handla från, att jag kanske vid något tillfälle skjutit pistol m.m.

Det var några exempel på intressant data, och det kan finnas mer beroende på vad man är ute efter. Man kan ju även rota runt bland de filer som inte kategoriserats eller analyserats av PA för att hitta ytterligare artifakter, men detta får räcka för denna gång.

Som slutsats kan man nog säga att trots att en BFU-extraktion är en relativt väldigt begränsad extraktion, så är det imponerande vad man med hjälp av Checkm8 kan få ut från en iPhone utan tillgänglig kod, något som alltså inte varit möjligt alls tidigare. Detta kan tyckas vara något av en revolution för forensikvärlden och ett stort nederlag för Apples hårda integritetsarbete.

Referenser

  1. Cellebrite blog – A practical guide to checkm8:
    https://www.cellebrite.com/en/blog/a-practical-guide-to-checkm8/
  2. Cellebrite blog – iPhone Extractions: 5 Questions That Will Unlock More Data with checkm8:
    https://www.cellebrite.com/en/blog/iphone-extractions-5-questions-to-unlock-more-data/
  3. Elcomsoft blog – BFU Extraction: Forensic Analysis of Locked and Disabled iPhones:
    https://blog.elcomsoft.com/2019/12/bfu-extraction-forensic-analysis-of-locked-and-disabled-iphones/
  4. LinkedIn hashtag #checkm8:
    https://www.linkedin.com/feed/hashtag/?keywords=%23checkm8