211service.com
De voortdurende dreiging van cold-boot-aanvallen
Van de vele verschillende manieren om computerinhoud aan te vallen, is een van de interessantste de cold-boot-aanval. Dit kwam aan het licht in 2008 toen een groep onderzoekers van Princeton University aankondigde dat ze een geheel nieuwe manier hadden ontdekt om schijfversleuteling te omzeilen, het standaardmechanisme voor het beschermen van gevoelige gegevens op laptops, smartphones, netbooks, pc's en Macs.
Vandaag schetst Jos Wetzels van de Technische Universiteit Eindhoven de techniek en bespreekt de verschillende opties om dit soort aanvallen te voorkomen. Zijn ontnuchterende conclusie is dat ondanks de tijd sinds de eerste ontdekking van cold boot-aanvallen, deze vorm van aanval nog steeds een duidelijk en aanwezig gevaar vormt.
De cold-boot-aanval is mogelijk vanwege een weinig bekende eigenschap van de random access-geheugens die in computers worden gebruikt om gegevens snel op te slaan en te lezen. Random Access Memory is vluchtig, wat betekent dat het constant moet worden herschreven over perioden gemeten in milliseconden. Deze eigenschap betekent dat alles wat in het RAM-geheugen is opgeslagen tijdelijk is: wanneer de machine wordt uitgeschakeld en het geheugen geen stroom meer krijgt, gaat de datum snel verloren.
Tenminste dat dacht iedereen. In 2008 toonde de Princeton-groep aan dat gegevens die zijn opgeslagen in het RAM-geheugen gedurende een periode van vele seconden na stroomuitval bewaard blijven. Bovendien kan het koelen van het geheugen deze periode verlengen tot vele minuten en mogelijk uren. (Een manier om het RAM-geheugen te koelen is door het te besproeien met een ondersteboven blikje vloeibare lucht, waardoor koude vloeistof vrijkomt in plaats van gas.)
Gedurende deze korte periode nadat de stroom uitvalt, ligt alle informatie in het random access memory voor het oprapen. En dit is precies hoe de cold-boot-aanval werkt.
Het idee is om de stroomtoevoer naar het apparaat uit te schakelen en het vervolgens onmiddellijk opnieuw op te starten naar een USB-flashstation, zodat het besturingssysteem niet onmiddellijk de inhoud van het RAM-geheugen overschrijft. Zoek vervolgens in het random access memory naar gevoelig materiaal, download het en wegwezen.
En dat is het. Het is duidelijk dat de aanvaller toegang moet hebben tot de computer in kwestie. Maar het hele proces kan heel snel voorbij zijn.
Cold-boot-aanvallen zijn speciaal ontworpen om informatie te extraheren wanneer de inhoud in versleutelde vorm op schijf is opgeslagen. De meeste coderingssystemen doen dit door de coderingssleutel op te slaan in het RAM-geheugen, zodat deze snel beschikbaar is wanneer dat nodig is. Maar dat betekent dat de sleutel kan worden afgelezen bij een cold-boot-aanval.
Na de inhoud van het geheugen te hebben geëxtraheerd, moet de aanvaller nog steeds de sleutel vinden, wat niet altijd helemaal eenvoudig is. Een manier om dit te doen is met brute kracht: elke mogelijke bytereeks testen als een potentiële sleutel. Maar dat is tijdrovend en inefficiënt. Een andere manier is om te zoeken naar de metadata die zijn gekoppeld aan sleutels, zoals de ASN.1-prefixen die worden gebruikt met RSA-sleutels.
Nog een andere mogelijkheid is om te zoeken naar de wiskundige eigenschappen van de sleutels, zoals hun hoge entropie. Maar dit kan een groot aantal valse positieven opleveren.
Waarschijnlijk is de beste manier om de sleutels te extraheren door al deze technieken en andere beschikbare technieken te gebruiken.
Beveiligingsexperts hebben met succes cold-boot-aanvallen gebruikt om schijfversleuteling op een groot aantal verschillende computers te verslaan. Ze hebben het gebruikt om BitLocker aan te vallen dat wordt geleverd met Windows Vista, FileVault, dat wordt geleverd met Mac OS X en dm-crypt dat het wordt gebruikt met Linux. Ze hebben het ook gebruikt op verschillende Android-smartphones met gecodeerde gegevens.
Dus wat kan er worden gedaan om te beschermen tegen cold-boot-aanvallen? Wetzels zegt dat er verschillende opties zijn met verschillende mate van effectiviteit.
Een voor de hand liggende benadering is om cryptografische sleutels niet langer dan nodig in het RAM-geheugen op te slaan. Hiervoor is software nodig die de sleutel verwijdert wanneer deze is gebruikt en dat gedeelte van het geheugen overschrijft. Een voorbeeld is een applicatie genaamd Deadbolt voor Android-smartphones, die elke sleutel die in het geheugen is opgeslagen, veilig overschrijft zodra het scherm van de smartphone wordt vergrendeld.
Een andere veelbelovende benadering is om gevoelige sleutels buiten het RAM-geheugen op te slaan. Een voorgestelde categorie oplossingen bestaat uit kernelmodificaties die gevoelig cryptografisch sleutelmateriaal veilig buiten het RAM opslaan, op een zodanige manier dat ze niet gemakkelijk toegankelijk zijn voor applicaties die draaien met reguliere privileges en verloren gaan zodra de computer opnieuw opstart, zegt Wetzel.
Het is ook mogelijk om hardware te krijgen die niet vatbaar is voor cold-boot-aanvallen. Het is bijvoorbeeld mogelijk om informatie die is opgeslagen in een willekeurig toegankelijk geheugen te coderen en deze te decoderen wanneer deze wordt gebruikt.
Een andere optie is om schijven te gebruiken die hun eigen cryptografische chip hebben die gegevens decodeert wanneer dat nodig is. Op deze manier wordt de sleutel nooit opgeslagen in het RAM-geheugen of gebruikt door de systeem-CPU.
Natuurlijk hangt de beveiliging van deze systemen af van het garanderen dat elke sleutel waarop ze vertrouwen, wordt gewist wanneer de stroom uitvalt.
Geen van deze is natuurlijk perfect, en Wetzels conclusie is dat cold-boot-aanvallen een haalbare en realistische vector zijn voor een aanvaller die gevoelige informatie in het geheugen wil extraheren.
Je bent gewaarschuwd!
Referentie: arxiv.org/abs/1408.0725 : Verborgen in de sneeuw, onthuld in dooi: Cold Boot Attacks Revisited