We zien het afgelopen jaar (dat is vijf Internet-jaren) regelmatig berichten opduiken over het ‘hacken’ van BIOSsen. Waardoor al wat we aan beveiliging kunnen verzinnen, wordt omzeild door op het laagst denkbare niveau een of meer onbekende, onafgesloten achterdeurtjes te hebben.
Na een week of wat is meestal het nieuws er al weer vanaf, en horen we weinig meer. Mede doordat het hier gaat om een dermate diep ingrijpend probleem, een hoogstaand kustje van class break, dat het naar het lijkt weinig zin heeft om erover na te denken. De daders, meestal verondersteld geheim opererende diensten van grote Westerse, Oosterse, of daartussenin, mogendheden te zijn, lijken vooral elkaar te bevechten en daar kunnen wij alleen maar tussen worden gemangeld. De een tast de BIOS aan op chips die in het andere land worden gemonteerd, de ander doet hetzelfde andersom. En hoe lang geleden is het niet dat u zélf in de BIOS wat zat te ‘spelen’ in assembler of lager niveau ..?
Maar, en dat is natuurlijk ook het geval als het om het al of niet verbieden van cryptografie-toepassingen gaat, kwaadwillenden zouden net zo goed de achterdeurtjes kunnen misbruiken als de goeien (bovenstaande, die hebben toch het beste met uw privacy voor?). En we willen toch wel een béétje in control blijven, nietwaar ..?
Vraag is dus: Wat zijn de belemmeringen tegen een oplossing van ‘isolatie’ van een eventueel aangetaste BIOS ..? Ik denk hierbij aan een vorm van omgekeerde sandbox-structuur. Die alle berichtgeving van en naar de BIOS isoleert en test, en al het kwaadwillende, ongeautoriseerde daarvan er tussenuit filtert.
Dit vraagt natuurlijk om duidelijke en volledige regels over wat gewoon goed is versus wat kwaadwillend is. Dat zou kunnen worden opgelost door checksums, hashes of uitputtende lijsten van fuctionaliteit die wél is toegestaan. Maar wie berekent waarmee die checksums, en hoe betrouwbaar is de baseline als al af-fabriek mogelijk malware in de BIOS wordt geleverd; wie kan je in dezen vertrouwen? En die uitputtende lijsten (white listing): Is er niet een grote context-afhankelijkheid of een op het oog, qua format betrouwbaar bericht, daadwerkelijk onschuldig is of in uitwerking kwaad doet?
Met een sandbox plaatsen we het probleem op een iets inzichtelijker niveau. Zij het wat ‘hoger’ in de architectuur, waardoor het de vraag is of de afscherming wel volledig is of kan zijn. En ook de sandbox moet draaien op … de chip met (behulp van de) BIOS… Dit maakt een wapenwedloop waarschijnlijk waarin de kwaadwillenden (geen-veilige-BIOS-willenden) zullen proberen om de BIOS code mee te geven om de sandbox te omzeilen, en de goedwillenden reparaties zullen moeten bouwen om dat volgende lek af te dichten. Het lijkt wel informatiebeveiliging zoals we die al kennen.
En ook hier geldt: Wie kunnen we wél vertrouwen? De sandbox moet worden gemaakt en onderhouden door een paar volstrekt onafhankelijke vakkundigen. Kennen we die Lone Wolves wel genoeg, hoe weten we of ze technisch voldoende diepgang halen, wat zijn hun belangen, worden ze niet stiekum omgekocht of door bedreiging overgehaald om toch die ene agency wel binnen te laten? Bovendien: de lone wolves moeten er überhaupt maar zijn, bij OpenSSL ging dit niet heel goed… En, hoe weten we zeker dat de patches die we krijgen, betrouwbaar zijn? Als we gewone apps al niet bij voorbaat vertrouwen, hoe kunnen we dan zeker zijn niet alweer een besmette sandbox te downloaden?
Kortom, de simpele vraag of een sandbox over de BIOS te plaatsen valt die de boel veilig houdt, brengt een hoop vervolgvragen met zich mee – maar dat zijn allemaal vragen die we ons nu ook al stellen op andere, ‘hogere’ niveaus van beveiliging: Zijn de patches van applicaties die we in huis hebben wel te vertrouwen? De anti-malwaresoftware die we gebruiken? De medewerkers van de Managed Security Provider die we hebben ingehuurd (nota bene, we kozen de lowest-cost provider)?
Maar ook daarom is mijn vraag: Mis ik wat; zijn er principiële, logische onmogelijkheden of is het een kwestie van (enorm veel) effort die we bereid zijn, zouden moeten zijn, om erin te steken?