Een ontwerpfout in x86-cpu's van Intel van enkele jaren oud maakt het mogelijk om vanuit een proces met administratieve gebruikersrechten vergaande toegang te krijgen tot een systeem. Dat maakt rootkits mogelijk die nooit kunnen worden gedetecteerd. Nieuwere cpu's zijn niet getroffen.
De ontwerpfout maakt het mogelijk om vanuit een proces met administratieve rechten door te breken tot system management mode, de diepste laag waarin x86-cpu's kunnen opereren. Dat maakte beveiligingsonderzoeker Christopher Domas bekend op de Black Hat-beveiligingsconferentie in Las Vegas. Intel heeft het probleem opgelost in Core i-cpu's sinds 2011 (Sandy Bridge en later) en Atom-cpu's sinds 2013. "Intel was het iets eerder op het spoor dan ik", aldus Domas, die echter benadrukt dat nog steeds 'honderden miljoenen' apparaten kwetsbaar zijn. Mogelijk zijn ook cpu's van AMD kwetsbaar, maar dat heeft Domas niet onderzocht.
Normaal kan het besturingssysteem niet bij smm, omdat die modus een eigen deel van het geheugen gebruikt dat niet door het besturingssysteem te beschrijven is. Door een ongerelateerde feature die Intel twintig jaar geleden toevoegde vanwege compatibiliteit met oudere systemen, kan vanuit het besturingssysteem toch toegang worden verkregen tot dit zogenoemde smram.
System management mode is oorspronkelijk ingebouwd voor energiebeheer, maar heeft inmiddels tal van functionaliteit aan boord. Zo is de trusted platform module, waar encryptiesleutels in kunnen worden opgeslagen, in smm ondergebracht. Het besturingssysteem kan niet zien wat er op het niveau van smm gebeurt, en ook voor eventuele hypervisors is dat onzichtbaar, wat smm een perfecte plek maakt om er malware in onder te brengen. Ook secure boot wordt door smm geregeld.
Tijdens zijn presentatie toonde Domas hoe hij dankzij de ontwerpfout - die geen bug is, benadrukt de onderzoeker - root kon krijgen op een Linux-systeem, maar de fout werkt ook op andere besturingssystemen, omdat het om een fysieke ontwerpfout in de processor gaat. Een aanvaller zou verder een rootkit kunnen installeren die onzichtbaar is voor het besturingssysteem en aanwezig blijft als een besturingssysteem opnieuw wordt geïnstalleerd. In theorie zou een aanvaller zelfs een kwetsbare laptop in brand kunnen laten vliegen, omdat smm over het energiebeheer gaat, stelt Domas.
Voor een geslaagde aanval zou een aanvaller wel eerst code moeten kunnen uitvoeren op een systeem. Dat kan bijvoorbeeld door een gebruiker ertoe te verleiden om een programma uit te voeren, maar ook kunnen kwetsbaarheden in programma's worden misbruikt. Vooral als gebruikers beveiligingsupdates vergeten te installeren, is dat een realistisch probleem. Ook moet de gebruiker rootrechten kunnen verkrijgen; daarvoor zal een andere exploit moeten worden gebruikt.
De fout bevindt zich in code die ooit is gebouwd voor de advanced programmable interrupt controller, een deel van een x86-cpu dat inmiddels niet meer wordt gebouwd. De apic besloeg een deel van het geheugen dat op eerdere cpu's voor andere doeleinden werd gebruikt. Om problemen met oudere cpu's te voorkomen, werd een feature ingebouwd om apic naar een ander adres in het geheugen te verplaatsen.
Hoewel de apic inmiddels geen zelfstandig onderdeel meer is van een x86-cpu, is de legacycode van Intel nog steeds aanwezig, en kan die code worden gebruikt om eigen instructies in te laden in system management mode. Dat kan met slechts acht instructies, benadrukt Domas.
"De enige manier om het probleem volledig op te lossen, is het uitbrengen van een nieuwe cpu", aldus Domas; firmware-updates zijn volgens hem mosterd na de maaltijd, omdat een gebruiker dan al geïnfecteerd kan zijn. Inmiddels heeft Intel al een nieuwe versie uitgebracht. Volgens Domas is het de tweede kwetsbaarheid die in x86-cpu's zelf is gevonden. "Maar ik denk dat er nog meer problemen zijn", stelt hij. De x86-architectuur bevat namelijk veertig jaar aan legacy en is ontzettend ingewikkeld.
Update, 03:18: In dit artikel stond aanvankelijk dat een proces met normale rechten de fout kan exploiteren. Een proces moet echter administratieve rechten hebben. Het artikel is hierop aangepast.