Krypterede Android-telefoner kan hackes efter en time i fryseren

Ved at fryse en krypteret telefon ned, kan man boote telefonen uden kryptering og få adgang til data. Det har forskere demonstreret med den nyeste Android-udgave.

Du har sat pin-kode på din telefon og krypterer data. Men disse to forsvarsværker kan en hacker faktisk snige sig uden om ved hjælp af noget så lavteknologisk som en dybfryser.

Ved at fryse en telefon ned til minus 15 grader, vil indholdet i telefonens RAM nemlig blive hængende længe nok til, at den kan bootes uden om kryptering og adgangskontrol. Det skriver Forbes.com, ud fra en artikel som tyske forskere fra Erlangen Universität står bag.

Med en Samsung Galaxy Nexus-telefon med den nyeste udgave Android som forsøgskanin demonstrerer de, hvordan en time i dybfryseren gør det muligt at genstarte telefonen i en særlig fastboot-tilstand, uden adgangskode.

Ved normal temperatur vil dataene i telefonens RAM-lager nemlig forsvinde i løbet af 1-2 sekunder. Men i kold tilstand går der 5-6 sekunder, og så er der tid nok til at frakoble og tilkoble batteriet lynhurtigt og derefter genstarte telefonen i fastboot-tilstand. Derfra kan man med hjælp fra en computer hente data ud af telefonen, uden om krypteringen.

Faktisk fik forskerne også adgang til hovednøglen til krypteringen og kunne dermed dekryptere alle data på telefonen, ikke blot dem i RAM-lageret. Men det kræver en ulåst bootloader, og netop her har Samsung på de seneste modeller sat ind med højere sikkerhed, så telefonen automatisk sletter alle data, hvis der bliver pillet ved bootloaderen.

Tricket med at fryse RAM-klodser ned for at fastholde data i længere tid er ikke nyt og har tidligere været demonstreret på traditionelle computere. Men i forhold til fortrolige data er problemet større med en telefon, mener de tyske forskere, da man sjældent genstarter sin telefon. Der gemmer sig derfor mange forskellige data i RAM-lageret, som en hacker kunne være interesseret i.

Læs om alle detaljer i angrebet i forskernes rapport

Kommentarer (15)

Casper Bang

De fleste (gode) sikkerhedsprogrammer på en tlf. sørger for ikke at have keys i RAM længere ting af gangen end højest nødvendigt. Derudover, er det de færreste der kører med en tlf. med åben bootloader.

Med andre ord, fedt proof-of-concept, of måske er der plads til forbedringer ved Dalvik/fastboot, men ellers ikke det helt store drama.

Jakob Damkjær

Er en låst bootloader som er det sikring man fjerner når man rooter en android telefon ?

Gør det så at android telefoner der har en låst bootloader og ikke får en opdatering fra producenten vil med tid blive sårbare ?

Enten fordi den version af android de er låst af producenten på har en sårbarhed der bliver eksponeret eller ved at roote den bliver bootloader låsen kompromiteret og den bliver sårbar for fryser sårbarheden ? Eller er der noget med rooting jeg har misforstået ?

Kasper Lund

Er en låst bootloader som er det sikring man fjerner når man rooter en android telefon ?

Man kan godt vælge at låse den igen efter du har låst den op. Det kan også lade sig gøre at roote sin telefon, uden at gøre brug af at låse den op. Såfremt telefonen er loaded med en known exploit i Kernel/OS/SW. Når det er sagt, har jeg altid rootet igennem CWM Recovery image - hvilket som ofte har krævet en åbnet bootloader før at jeg har kunnet installere samme :)

Gør det så at android telefoner der har en låst bootloader og ikke får en opdatering fra producenten vil med tid blive sårbare ?

Jeg mindes at telefoner godt kan modtage OTA updates, med en låst bootloader - er ikke helt sikker på hvad du mener?

Enten fordi den version af android de er låst af producenten på har en sårbarhed der bliver eksponeret eller ved at roote den bliver bootloader låsen kompromiteret og den bliver sårbar for fryser sårbarheden ? Eller er der noget med rooting jeg har misforstået ?

Jeg tror der er lidt forvirring omkring det med at roote din telefon - det har ikke rigtig så meget med den måde de lister nøglerne ud af din telefon på. Jeg formoder, at ved du har en oplåst bootloader vil dennes "hovednøgle" automatisk ligge i din telefons hukommelse allerede fra boot - og derfor også kan få hivet denne ud, ved selv samme "fryser-trick".

Men for at slå fast - men kan sagtens have en oplåst bootloader, uden at roote sin telefon og vice versa :)

Sune Foldager

Jeg tror der er lidt forvirring omkring det med at roote din telefon - det har ikke rigtig så meget med den måde de lister nøglerne ud af din telefon på. Jeg formoder, at ved du har en oplåst bootloader vil dennes "hovednøgle" automatisk ligge i din telefons hukommelse allerede fra boot - og derfor også kan få hivet denne ud, ved selv samme "fryser-trick".

Nøglerne bliver ikke lagt i hukommelsen efter boot, men de ligger der stadig efter batteriet har været taget ud (og sat i igen), fordi kulden forhindrer dem i at forsvinde fra RAM hurtigt. Sålænge de adresser så ikke bliver overskrevet, og så længe der ikke går for lang tid, kan de måske læses ud.

Jakob Damkjær

"Man kan godt vælge at låse den igen efter du har låst den op. Det kan også lade sig gøre at roote sin telefon, uden at gøre brug af at låse den op. Såfremt telefonen er loaded med en known exploit i Kernel/OS/SW. Når det er sagt, har jeg altid rootet igennem CWM Recovery image - hvilket som ofte har krævet en åbnet bootloader før at jeg har kunnet installere samme :)"

Der er lidt mange "såfremt" og "det er muligt" i det svar...

Kan man det på alle android telefoner fra alle leverandøre ?

eller er det noget der i høj grad variere fra telefon til telefon og operatør ?

Ville man kunne gøre det på de låste bootloaders som Samsung benytter ?
Mener jeg læste noget om at nogle typer af rooting trippede bootloaderens
failsafe og brickede telefonerne som konsekvens ?

Kasper Lund

Der er lidt mange "såfremt" og "det er muligt" i det svar...

Det er med ganske god grund - som du nok har hørt, er Android platformen en anelse fragmenteret (for at sige det mildt) og samtidig findes der forskellige exploits til forskellige versioner af eks. Touchwiz, til forskellige version af enheder til forskellige versioner af Android - should
I continue? :)

Kan man det på alle android telefoner fra alle leverandøre ?

Hvis du mener at roote din telefon igennem userland? Potentielt, ja. Google dig frem ;)

eller er det noget der i høj grad variere fra telefon til telefon og operatør ?

Det varierer i høj grad fra producent til producent - og exploits kan jo blive fixet i løbet af en opgradering af bl.a. telefonens Android OS osv.

Ville man kunne gøre det på de låste bootloaders som Samsung benytter ?
Mener jeg læste noget om at nogle typer af rooting trippede bootloaderens
failsafe og brickede telefonerne som konsekvens ?

Alt det der med at bricke sin telefon - såfrem du ikke har en krypteret bootloader, er det "ret" svært at dræbe den totalt - man plejer blot at kunne flashe sit recovery/backup image over på telefonen uden de store problemer.

Jeg kender til en userland exploit i SGS2 og GNexus - men i hvad, og hvilken android version - det har jeg ærlig talt glemt :)

Casper Bang

Der er lidt mange "såfremt" og "det er muligt" i det svar...

Kan man det på alle android telefoner fra alle leverandøre ?
eller er det noget der i høj grad variere fra telefon til telefon og operatør ?

Ville man kunne gøre det på de låste bootloaders som Samsung benytter ?
Mener jeg læste noget om at nogle typer af rooting trippede bootloaderens
failsafe og brickede telefonerne som konsekvens ?

Kasper har rimelig godt styr på det, men jeg vil alligevel lige smide et par ord i tråden. Som udgangspunkt er der 3 begreber i spil når man leger med en Android telefon; rooting, bootloader og after-marked ROM.

Rooting:
At roote en telefon svarer til dét der i iOS verdenen kaldes jail-break; dvs. man sniger sig uden om den sikkerhedsmodel enheden egentlig er designet til. I nix verdenen (som Android er baseret på) er det normalt at tilpasse rettigheder både af hensyn til producent og forbruger. Stort set alle normale consumer Android enheder bliver solgt uden root. Når en ny Android enhed kommer til verden, går der imidlertid ikke langt tid før en hacker har fundet et sikkerhedshul og kan erstatte visse filer på enheden og derved opnår root. Enten ændres brugerniveauet til altid at køre som såkaldt root, eller også lægges et superuser (su) værktøj ind der gør at Android spørger om man ønsker at køre noget som superbruger/administrator. Når dette kan være interesant, skyldes det mulighed for at få adgang til resourcer og/eller køre programmer man ellers ikke er i stand fil, f.eks. adgang til skærmbufferen (screenshots), seriel-port (/dev/tty), CPU throttling osv.

Bootloader:
Før selve Android OS'et får lov at køre, startes op via en bootloader. Dette er meget hardware specifikt; hvorfra, hvornår og hvordan der læses. En alm. bootloader på en consumer telefon indeholder instruktioner omkring hvor Android partition ligger samt debugging, recovery og opdateringslogik. Derfor er dét at opdatere bootloaderen normalt første trin når man vil installere en anden after-marked ROM. De fleste bootladers er dog låste, dvs. de er ikke lavet til at skulle opdateres, fordi hardware producenter ikke kan se nogen ide i at supportere andet software end dét de har lavet. Nogle enheder er dog lavet til at du kan låse den op med en specifik komando (fastboot oem unlock) men dette gælder desværre kun officielle Google produkter og man mister garantien. Nogle produkter kan "låses" igen, mens andre desværre benytter såkaldte "eFuses" (Motorola) der gør det fysisk umuligt. Heldigvis er de største spillere på markedet HTC og Samsung blevet til at tale med. Tæt forbundet med emnet bootloader er recovery image; hvor mange enheder har indbygget funktion til at reetablere selve Android partitionen (nogen sågar automatisk hvis de synes du har rodet for meget) og hvor folk typisk lægger ClockWorkmod eller NandDroid ind. Oftest er installation af disse recovery partitioner det andet skridt på vejen til en custom after-marked ROM. Det er som regel når man roder med boot-loaderen at man skal holde tungen lige i munden, fordi man potentielt kan ende med en såkaldt "bricket" enhed (enhed der er lige så anvendelig som en mursten).

After-marked ROM:
Erstatning af selve Android OS'et på en Android enhed. Der findes mange forskellige, en af de mest populære er Steve Kondik's (arbejder for Samsung forresten) CyanogenMod. Der findes mange grunde til at ville køre med en anden ROM end dén telefonen er født med, måske er man bare ikke til dét UI der er lagt på (Samsung TouchWiz, Motorola Blur, HTC Sense etc.) eller også er det bare fordi interessen for at holde den opdateret fra producentens side er faldet med tiden. Man kan forlæge levetiden på sin Android enhed betydeligt, ved at installere en after-marked ROM. Som regel er en after-marked ROM rooted som standard.

Der findes et par andre koncepter så som baseband mv. men det er ikke så tit man roder med dét.

Jakob Damkjær

Men det virker a som en jungle specielt når den sammenlignes med iOS og opdateringer der bare ruller ud på launch day og ikke 3 4 6 9 måneder senere når de er blevet tilpasset den specifikke model enten sf producenten eller online grupper...

Og en lille ting der slap igennem kvalitetsfilteret iOS er også en "nix" det er bare ikke en Linux men en kombination af BSD services oven på en MACH kernel.

Og hvad er konsekvenserne ved en rooting sikkerhedsmægsigt ?

På iOS er det ikke bare at man sniger sig gennem en sidedør og overtar kontrollen med borgen. Der er det at man sprænger borgporten, voldgraven og borgmuren bort i en fæstnings analogi. Borgen er nu "åben" men Det er en procedure der efterlader iOS meget mere sårbart for hacking og virus... (Og er derfor mildest talt ret idiotisk at gøre).

Casper Bang

Men det virker a som en jungle specielt når den sammenlignes med iOS og opdateringer der bare ruller ud på launch day og ikke 3 4 6 9 måneder senere når de er blevet tilpasset den specifikke model enten sf producenten eller online grupper...


Ja der er fordele og ulemper ved begge. Du vil ofte høre om "fragmentering" når vi snakker Android. Da der er langt flere producenter og versioner af Android end der er iOS enheder (sikkert med en faktor der nærmer sig 1000) så er der pr. definition også mere fragmentering. Når jeg alligevel synes det er overvurderet skyldes det at Android OS'et har nogle udemærkede (uden at være perfekte) design aspekter, der langt hen af vejen gør det nemt at udvikle til disse mange enheder. På det seneste er iOS også ramt af fragmentering (du skal have processor A6 for at kunne køre X, Y og Z, ekstra widescreen håndtering af iPhone5 osv.) og modsat Android, er iOS teknisk set dårligere forberedt på sådanne fremtidige ændringer end Android. Det bedste eksempel på dette jeg lige kan komme på, er da Android 4.2 blev introduceret, blev det til et fler-bruger system (nemt at deles om en tablet), uden den store fanfare.

Mht. opdateringer, så er man langt hen af vejen afh. af sin mobilproducent. Android producenter forpligter sig kontraktmæssigt til at levere opdateringer i 1½ år efter launch, og indtil viddere over de sidste 9 måneders tid har jeg da også modtaget 4-5 opdateringer fra Samsung til min SG3.

Og hvad er konsekvenserne ved en rooting sikkerhedsmægsigt ?

På iOS er det ikke bare at man sniger sig gennem en sidedør og overtar kontrollen med borgen. Der er det at man sprænger borgporten, voldgraven og borgmuren bort i en fæstnings analogi. Borgen er nu "åben" men Det er en procedure der efterlader iOS meget mere sårbart for hacking og virus... (Og er derfor mildest talt ret idiotisk at gøre).

Konsekvenserne ved rooting sikkerhedsmæssigt er, at applikationer nu ikke er indkapslet på samme måde som oprindeligt tiltænkt. Det betyder at man f.eks. kan få fat i enhedens skærmbuffer og altså at en applikation kan lure med hvad du foretager dig. F.eks. er det et krav for at køre en VNC server på sin enhed, at denne er rootet. Derfor skal man, som udgangpunkt, være noget mere på vagt over for apps når man er rootet, for ondsindet kode har stort set adgang til alt uden om Android's etablerede sikkerhedsmodel.

CyanogenMod ROM'en har dog valgt en mellemvej, hvor du har mulighed for at køre root selektivt (su tool) hvor du først skal give applikationen ret til dette... denne model er derfor noget mere sikker, og minder på mange måder om hvordan du normalt benytter dig af et nix OS.

Jakob Damkjær

Flere informative svar, dog vil jeg med respekt være uenig med det lighedstegn du stiller mellem fragmentering på iOS og android. Mener det har vist sig at på andet end meget simple apps (der ikke behøver testning af bruger oplevelsen) er fragmentering en udfordring der er størrelsesordner større på android end på iOS. Den lille håndfuld devices/skærmstørrelser/opløsninger/processor og der benytter iOS har vist sig ikke at være et problem for udviklere i virkeligheden. Men det kan du jo selvfølgeligt være uenig i og det er så en holdning du er beretiget til.

Konsekvenserne ved rooting sikkerhedsmæssigt er, at applikationer nu ikke er indkapslet på samme måde som oprindeligt tiltænkt.

Indkapselet ? og med det mener du ? at den eksekverbare fil er kryptografisk signeret så det kun er apps der er godkendt af google play/amazon der er istand til at eksekvere ? og eksekverbare filer der ikke har den kan ikke opnå rettighed til at blive eksekvere/få adgang til hukommelsen (og kun den hukommelse som OSet har allokeret til den APP osv ? Du ved nogen af de der helt fundamentale sikkerhedsmekanismer som gør at mobil OSer er langt langt mere sikre end desktop OSer (læs borgporten voldgraven og borgmuren fra tidligere).

En screen buffer der er læsbar af alle baggrunds applikationer... yay det lyder totalt sikker.

Ikke at jeg tvivler på at det i et ekstremt bizart use case er praktisk men for at være helt ærlig WTF skal man anvende en VNC server på ens telefon til ? Er det når man skal etablere et alibi for en forbrydelse og man ikke vil ha at politiet skal kunne spore ens mobil til en sendemast i nærheden af forbrydelsen men man ikke kan overleve uden lige et spil angry birds mere ?

Casper Bang

Flere informative svar, dog vil jeg med respekt være uenig med det lighedstegn du stiller mellem fragmentering på iOS og android. Mener det har vist sig at på andet end meget simple apps (der ikke behøver testning af bruger oplevelsen) er fragmentering en udfordring der er størrelsesordner større på android end på iOS. Den lille håndfuld devices/skærmstørrelser/opløsninger/processor og der benytter iOS har vist sig ikke at være et problem for udviklere i virkeligheden. Men det kan du jo selvfølgeligt være uenig i og det er så en holdning du er beretiget til.


Vi kan også sagtens være uenige... der er mere fragmentering på Android, jeg mener så bare det er håndteret så godt som det er teknisk muligt.

Indkapselet ? og med det mener du ? at den eksekverbare fil er kryptografisk signeret så det kun er apps der er godkendt af google play/amazon der er istand til at eksekvere ? og eksekverbare filer der ikke har den kan ikke opnå rettighed til at blive eksekvere/få adgang til hukommelsen (og kun den hukommelse som OSet har allokeret til den APP osv ? Du ved nogen af de der helt fundamentale sikkerhedsmekanismer som gør at mobil OSer er langt langt mere sikre end desktop OSer (læs borgporten voldgraven og borgmuren fra tidligere).


Indkapslet i en sikkerhedsmodel, sådan som de fleste OS'er og sandkasser (JVM, CLR, Flash osv.) i dag er designet. Android's sikkerhedsmodel giver dig kun adgang til visse dele af enheden, og mange af disse rettigheder skal brugeren eksplicit godkende. Men en app der kører på en rootet enhed, kan jo bare gå udenom denne sikkerhedsmodel (Dalvik og runtime) og tilgå resourcer direkte via JNI. Udover Dalvik og runtime, er man jo begrænset af Linux kernen og får masser af ting foræret, så som process isolation, sikker IPC, no eXecute support osv. Særlig centralt er jo, at brugerrettigheder styrer stort set alt på et nix system eksponeret via "/dev/", "/proc/" osv.

En screen buffer der er læsbar af alle baggrunds applikationer... yay det lyder totalt sikker. Ikke at jeg tvivler på at det i et ekstremt bizart use case er praktisk men for at være helt ærlig WTF skal man anvende en VNC server på ens telefon til ?


Tja hvordan vil du f.eks. lave et program der kan tage screenshots, eller en remote support app osv. hvis du ikke kan få adgang til skærmbufferen? I mit tilfælde bruger jeg f.eks. små headless Android enheder (mk802) hvor det er super praktisk at kunne styre dem via VNC eller lignende. Det løser Google nok bare med en ny permission på sigt.

Log ind eller opret en konto for at skrive kommentarer

JobfinderJob i it-branchen

TDC skifter koncernchef efter faldende mobilomsætning

Jesper Stein Sandal Mobil og tele 14. aug 2015

Nyeste job

KurserStyrk dine evner med et kursus

Manuskriptudvikling (deltid)

Hvornår: Hvor: Fyn Pris: kr. Efter aftale

Den balancerede kundeservicemedarbejder

Hvornår: Hvor: Storkøbenhavn Pris: kr. Efter aftale

DS 49001/ISO 26000 CSR - kom godt i gang

Hvornår: 2015-11-25 Hvor: Storkøbenhavn Pris: kr. 1650.00

Praktisk legepladssikkerhed kursus

Hvornår: 2015-09-29 Hvor: Fyn Pris: kr. 6500.00

Personcertificering efter DS/INSTA 800, videnniveau 4

Hvornår: 2015-10-26 Hvor: Fyn Pris: kr. 19000.00