Secure boot en uefi: Windows 8 grijpt de macht

Het oude, enigszins vertrouwde bios verdwijnt. Moderne pc's worden gestart door de unified extensible firmware interface (uefi). En als de pc is gecertificeerd voor Windows 8, dan werkt de uefi met 'secure boot' ingeschakeld en zal hij weigeren om oudere besturingssystemen te accepteren - waaronder XP, Vista en zelfs Windows 7.

Microsoft eist dat secure boot zich laat uitschakelen, zodat de hardware niet volstrekt gebonden is aan Windows 8. Maar zonder secure boot ontstaat een gapend gat in de beveiliging, want de uefi biedt veel meer mogelijkheden dan het bios. Hij is pakweg honderd keer zwaarder en complexer, in megabytes vergelijkbaar met het oude Windows 98. Er valt heel wat aan te programmeren en het is een prettige, efficiënte werkomgeving. Niet alleen voor legitieme softwaremakers. Onderzoekers van de Italiaanse beveiliger Itsec noemen het een paradijs voor crackers: 'Het schrijven van een bootkit kan niet makkelijker zijn, veel eenvoudiger dan vroeger, toen malwaremakers nog in assembly moesten werken', zegt Itsecs directeur Marco Giuliani.

Keuze uit één

Wil een zakelijke gebruiker de veiligste pc in huis halen - en wie kan zich veroorloven om dat niet te willen - dan kopen we alleen nog maar uefi-pc's en blijft secure boot ingeschakeld. Daarmee wordt de keus aan besturingssystemen beperkt tot Windows 8 en enkele Linuxdistributies, waaronder recente versies van Ubuntu en Fedora. Voor verreweg de meeste gebruikers betekent dat keuze uit één: Windows 8.
Een prettige bijkomstigheid voor de Microsofties, die graag veel nieuwe Windows verkopen? Zou kunnen. En de beveiligingstechnologie van W8 bevat ook andere elementen die een commercieel belang (kunnen) dienen, waarover straks meer. Wat niet wegneemt dat een betere beveiliging geen luxe is.

Witte lijst

Nog niet zo lang geleden werd de pc uitsluitend verdedigd via zwarte lijsten. Nieuwe malware verscheen op internet, werd meestal na korte tijd gesignaleerd en door beveiligers op hun lijsten van ellende gezet, waarna automatische poortwachters ermee konden afrekenen. Crackers reageerden met snel veranderende malware. Nieuwe versies verschijnen vaak al binnen enkele uren. Bovendien houden sommige criminelen hun producten lang onder de radar door heel gericht te werken met kleine oplages.

Klassieke virusscanners blijven nuttig maar zijn niet meer afdoende. Vandaar de opkomst van de witte lijst, in de vorm van cryptografisch gecertificeerde software. iOS, Windows RT en Windows Phone zijn ver gevorderd op dat pad. Als een app niet aantoonbaar op een witte lijst staat, zullen de mobiele besturingssystemen van Apple en Microsoft weigeren om de software te starten. iOS en Android bewijzen samen het nut. Malware is in de mobiele wereld aan een snelle opmars bezig, maar iOS blijft er zo goed als vrij van; de crackers concentreren zich op Android, waar apps niet op een witte lijst hoeven te staan

Ketens van (on)betrouwbaarheid

Gecertificeerde applicaties hebben weinig betekenis als onderdelen van het besturingssysteem zelf - zoals de kernel, drivers en services - zich ongemerkt door een cracker laten verbouwen. Infectie via zwakke plekken in en om browsers (Flash, Java) blijft immers mogelijk. Er is een keten van betrouwbaarheid nodig, die bij de fundamenten begint en garandeert dat alle componenten afkomstig zijn van bekende en vertrouwde leveranciers. Een al wat ouder voorbeeld is het protected media path van Vista, dat uit gecertificeerde onderdelen bestaat. Primair om illegaal kopiëren van audio en video te voorkomen, maar het mes van betrouwbaarheid snijdt aan twee kanten.

Tot de komst van de uefi en secure boot begonnen zulke ketens van betrouwbaarheid pas na de start van het besturingssysteem. Maar het bios komt als eerste tot leven, en wekt op zijn beurt allerlei andere pre-boot software op de harde schijf, zoals boot records (mbr, vbr) en een boot manager en/of boot loader. Al die schakels zijn kwetsbaar voor infectie door bootkits.

Bios gekraakt

In de zomer van 2010 verscheen een nieuwe versie van Alureon, een bootkit die zich eerder had beperkt tot 32-bitversies van Windows. De nieuwe variant wist ook de gecertificeerde structuur van 64-bit Windows 7 onderuit te halen. Alureon nestelde zich in het mbr van de harde schijf. Van daaruit zorgde de malware tijdens de boot dat W7 'vergat' te vragen om geldige certificaten, zodat Alureon moeiteloos delen van zichzelf in het besturingssysteem kon plaatsen. Zelfs de kernel was niet veilig. Alleen al in het voorjaar van 2011 infecteerde Alureon meer dan vier miljoen pc's.

Zonder secure boot kan ook het mechanisme dat bios firmware-updates mogelijk maakt worden misbruikt voor de kraak van het bios zelf, waarna malware vanuit het bios kan starten voordat om het even welke software een kans heeft om de pc te verdedigen. Een dergelijke infectie is bijzonder vuurvast - zelfs het vervangen van de harde schijf is niet voldoende om de malware te verwijderen.
De eerste bios-bootkit die in het wild werd gezien was Mebromi (Mybios), een trojaan die malware kan installeren in een bios van leverancier Award. Mebromi verscheen in 2011, en werd in het voorjaar van 2012 gevolgd door Niwa, een verdere ontwikkeling van dezelfde malware. Beide bootkits richten zich tot nu toe op de Chinese markt.

Uefi-bugs

De betere beveiliging van recente besturingssystemen zoals W7 en de economische waarde van een goed gekraakte pc maken aannemelijk dat crackers meer bootkits zullen ontwikkelen, ook al is dat relatief veel werk. Met Alureon gekraakte pc's werden onder andere voor 100 dollar per maand verhuurd als anonieme proxyservers, aan lieden die hun gebruik van internet serieus wilden verbergen. Als extra service werd er een plugin voor Firefox meegeleverd, om gemakkelijk van de ene proxy naar de andere te kunnen schakelen.

Zelfs in de wereld van open source software (zoals Linux) wordt secure boot door velen gezien als een goed idee, of althans een noodzakelijk kwaad, ook al kan het betekenen dat een cryptografische sleutel van Microsoft nodig is om de software te certificeren. De vrijheid van open source wordt stevig aan banden gelegd als de kernel, drivers en andere kernel mode software allemaal gecertificeerd moeten zijn. Er valt mee te leven - als secure boot correct is geïmplementeerd in de uefi van de pc waar de eindgebruiker mee te maken heeft. Dat blijkt vaak niet het geval, ook bij bekende leveranciers zoals Lenovo.
Het grootste bezwaar tegen de uefi in het algemeen en secure boot in het bijzonder is voorlopig de slechte kwaliteit van de implementaties. De vele bugs vormen een hindernis voor legitieme toepassingen, en mogelijk aanknopingspunten voor crimineel misbruik.

Clrokrs hack

Er is nog een ander probleem. De ontwerpers van de uefi en secure boot hebben een klassieke pc in gedachten, een machine die dagelijks zo niet vaker wordt uitgezet en opgestart. Een snel verouderend concept.

Begin januari dit jaar werd de gecertificeerde structuur van Windows RT gekraakt. RT is Windows 8, vertaald voor arm-hardware zoals Microsofts eigen Surface RT. Als W8 zich laat vertalen, geldt dat dan niet ook voor al die andere voor Intel x86 geschreven software, die pc-Windows zo aantrekkelijk maakt? In sommige gevallen wel, maar het grootste deel van die software past gewoon niet lekker in de zuinige, lichte arm-hardware. Bovendien wil Microsoft dat verleden zoveel mogelijk achter zich laten. Windows RT werd daarom enigszins kunstmatig beperkt tot gecertificeerde WinRT-apps. Er is wel een 'desktop mode', maar die draait uitsluitend een klein aantal applicaties van Microsoft zelf, zoals een aangepaste versie van Office. Althans, dat is de bedoeling.

Een hacker (geen cracker) met Clrokr als pseudoniem beschreef in januari hoe Windows RT 'weet' dat alle applicaties gecertificeerd moeten zijn; het gaat om een enkele byte, 'diep in de kernel' en 'beschermd door de uefi secure boot.' Normaal bevat die byte het cijfer 8 om aan te geven dat alleen door Microsoft gecertificeerde software is toegestaan. Clrokr beschreef ook de methode die hij gebruikte om die byte op nul te zetten - in werkgeheugen, niet op schijf - zodat RT alle software toelaat. Althans, tot de volgende boot.

Secure boot onvoldoende

Binnen een dag verschenen de eerste successen. Bekende x86-software zoals 7Zip, snel vertaald voor arm en draaiend op de Surface RT. Microsoft reageerde direct, bevestigde de hack en stelde dat de beveiliging van Windows RT er niet minder om was. De hack kan niet leiden tot een crack, was in essentie de boodschap. En dat is juist als we niet verder kijken dan RT en Clrokrs aanpak.

Windows 8 is een veel makkelijker doelwit voor kraakwerk aan de kernel, want daar mag althans in desktop mode ongecertificeerde software draaien. Als malware zich in het besturingssysteem weet te nestelen, is het tijdelijk; want een cracker kan de gecertificeerde delen niet zodanig verbouwen (op de harde schijf) dat zijn werk de volgende boot overleeft. Dan ziet de uefi immers dat een meegeleverd certificaat niet meer past en wordt de start van het gekraakte systeem geweigerd. Daarom verandert Clrokrs hack de kernel uitsluitend in werkgeheugen. Wie na de volgende boot nog steeds ongecertificeerde software wil draaien, moet de magische byte eerst weer op nul zetten.

Maar steeds meer hardware wordt zelden gestopt en gestart. Smartphones draaien maanden of jaren zonder reboot. Tablets worden ook zelden helemaal uitgeschakeld. Zelfs desktops blijven lange tijd actief of worden hooguit standby gezet. En dan krijgt secure boot weinig kans om grote schoonmaak te houden.

Smartscreen

Microsoft weet dat secure boot slechts een deel van het antwoord kan zijn. Vandaar onder andere Smartscreen, al bekend van Internet Explorer. In Windows 8 is het een standaard ingeschakeld paardenmiddel geworden, waarmee ook ongecertificeerde applicaties via een witte lijst worden gefilterd. Telkens als de gebruiker software wil installeren in W8, vraagt Smartscreen aan Microsoft of het wel goed zit. Microsoft ziet naast het kenmerk van de software het ip-adres van de gebruiker, en kan dus bijhouden waar welke applicaties worden geïnstalleerd.

Microsoft zegt de adressen periodiek te wissen, en dat de informatie niet wordt verkocht of benut voor reclamedoeleinden. Maar de verleiding is er wel; informatie over het soort apps (en websites) waar een ip-adres belangstelling voor heeft, is heel bruikbaar voor gericht adverteren. En Microsoft plaatst al advertenties van derden in eigen apps voor Windows 8. Er dreigt een verstrengeling van belangen tussen beveiliging van de gebruiker - waarvoor Smartscreen een uitstekend middel is - en het scoren van kliks. Iets waar de gebruiker zich maar beter van bewust kan blijven.