Een perongeluk gelekte private key compromitteerde de bescherming van Secure Boot in 2022. Andere keys werden eveneens expliciet ongeschikt verklaard, maar dat weerhield OEM’s er niet van honderden systemen ermee uit te rusten. De integriteit van Secure Boot komt daardoor in het geding.
Secure Boot draait op het niveau van UEFI (Unified Extensible Firmware Interface), de opvolger van de welbekende BIOS. Elke desktop, laptop, server en talloze embedded devices gebruiken het als onderlaag voor besturingssystemen. Naast het feit dat het alle randapparatuur aanstuurt, is de UEFI-laag cruciaal voor security. Het legitieme OS maakt gebruik van een private key voor goedkeuring door Secure Boot. Deze zogeheten Platform Key is een root-of-trust sleutel die geheim moet blijven voor malware-makers. Dat is niet gelukt, blijkt uit onderzoek van Binarly.
“Heilige graal”
Binarly noemt Secure Boot de “heilige graal” van platform-security, deels omdat het lang onbereikbaar leek. Sinds 2014 is boot-security nauwelijks geëvolueerd, stellen de onderzoekers. Intel Boot Guard, dat tevens uit 2014 stamt, bleek in 2023 uit Binarly-onderzoek gecompromitteerd door een supply chain-incident. Eerder dit jaar ontdekte het team dat één van de private keys gerelateerd aan de Platform Key die door talloze apparaten werd gebruikt, was gelekt. De apparaten die van deze private key gebruikmaken, zijn in veel gevallen erg recent, laat Binarly weten. Een medewerker had de source-code waarin de Platform Key staat op GitHub geplaatst. Daarin werd het private component van de key beschermd met een wachtwoord van vier karakters. Die bescherming werd binnen een mum van tijd gekraakt.
Het is daarnaast zeer opmerkelijk dat bepaalde private keys alsnog worden gebruikt. In het certificaat vallen de termen “DO NOT TRUST” en “DO NOT SHIP” te lezen, duidend op test-keys die niet in de praktijk hadden moeten worden gebruikt. Gebruikers hebben de afgelopen jaren meermaals op het internet zich publiekelijk afgevraagd waarom hun key gemarkeerd was met een “DO NOT TRUST”-label. Het gebruik van een “Untrusted AMI Test Certificate/Key” is al sinds 2016 een gedocumenteerde kwetsbaarheid, CVE-2016-5247. Onveilige keys zwermen dus al jaren rond.
Aanvalsmethode
Een aanval via “PKfail”, zoals Binarly de kwetsbaarheid omschrijft, is relatief eenvoudig. “Het vertrouwt op standaard tooling die normaliter wordt gebruikt om Secure Boot aan te spreken,” aldus de onderzoekers. Een aanvaller moet gepriviligieerde toegang hebben tot een systeem en de private key hebben van de gebruikte Platform Key. Vanaf dat moment kan men een nieuwe Key Exchange Key (KEK) genereren en de gecompromitteerde private key toevoegen aan de KEK-database. Vanaf dat moment kan een kwaadwillende eigen code tekenen met signatures die doorgaans onbereikbaar zijn.
Vooralsnog is een exploitatie van de kwetsbaarheid slechts een proof-of-concept. Ook lijkt het erop dat de gelekte key op GitHub nauwelijks is gezien. Toch valt het niet uit te sluiten dat een kwaadwillende er ooit van gebruik zou maken. Gebruikers kunnen via deze link controleren of ze kwetsbaar zijn op hun systeem. Daarvoor is wel een firmware binary nodig.
Lees ook: Oude encryptie-techniek in RADIUS-protocol opent deuren voor hackers