De laatste jaren verschijnen er met regelmaat nieuwe onderzoeken die laten zien hoe data uit processorcaches kan worden achterhaald. Een nieuw onderzoek genaamd Æpic Leak doet dat ook, maar met een twist. "In tegenstelling tot Spectre of Meltdown is dit geen sidechannel-aanval", vertelt Pietro Borrello aan Tweakers. Dat maakt de bug veel 'betrouwbaarder' én gevaarlijker.
Borrello en zijn medeonderzoeker Andreas Kogler noemen hun onderzoek Æpic Leak, maar het wordt ook geregistreerd als CVE-2022-21233. Ze presenteerden het op securityconferentie Black Hat, die deze week plaatsvindt. Æpic Leak is een woordspeling op APIC, de Advanced Programmable Interrupt Controller. Dat is de component in Intel-cpu's die Borrello en Kogler wisten uit te buiten.
Tweakers op Black Hat en DEF CON
Tweakers is deze week op de beveiligingsconferenties Black Hat en DEF CON in Las Vegas. Black Hat is een conferentie voor securityprofessionals, waar onderzoek wordt gepresenteerd, maar waar ook bedrijven nieuwe tools presenteren. DEF CON vindt in de dagen erna plaats en is een typisch hackersfeest met hackathons en villages waar hard- en software worden gekraakt.
Æpic Leak is een kwetsbaarheid in moderne generaties Intel-processors. Borrello en Kogler noemen specifiek sommige Tiger Lake-, Ice Lake- en Alder Lake-cpu's, maar Intel heeft een complete lijst met kwetsbare socs online staan, naast een advisory. Borrello en Kogler ontdekten een manier om allerlei data uit de cpu te laten uitlekken, inclusief gegevens uit de Software Guard Extensions (SGX), de trusted execution environment of tee van Intel-chips. Ze gaven de bevindingen door aan Intel, dat inmiddels een patch voor de microcode heeft uitgebracht en mitigaties heeft gepubliceerd, die Borrello en Kogler zelf ook hebben aangedragen. Intel merkt zelf overigens op dat SGX op Alder Lake-socs is uitgefaseerd. Die chips kunnen nog steeds door de bug worden getroffen, maar doordat de tee daar niet werkt, is de impact daar kleiner.
Trusted environment aflezen
Om data uit de chips te kunnen aflezen, moet een aanvaller rootrechten tot een systeem hebben, legt Borrello uit. Daardoor zou je kunnen redeneren dat de impact van de bug wel meevalt. "De data die je kunt exfiltreren als je die toegang al hebt, kun je op veel makkelijkere manieren vinden dan via dit lek", zegt Borrello. Dan zie je echter één belangrijk aspect over het hoofd: de SGX. Dat is Intels benaming van de beveiligde enclave op de chip waarin alle gevoelige informatie, zoals wachtwoorden, wordt opgeslagen en waar andere processen niet zomaar bij kunnen komen. Tweakers schreef eerder een achtergrondartikel over zulke tee's.
Æpic Leak is misschien niet zo relevant voor het laten uitlekken van 'normale' data, maar dat aanvallers via de bug ook de SGX-tee kunnen uitlezen, geeft het des te meer impact. "Het maakt iedere veiligheidsgarantie kapot die de SGX geeft", zegt Borrello. En omdat de kwetsbaarheid ook betrouwbaar is, maakt dat het risico een stuk realistischer dan eerdere, soortgelijke microcodebugs.
/i/2003839916.png?f=imagenormal)
Roottoegang
Die roottoegang is ook echt nodig om de kwetsbaarheid uit te buiten, vertelt Borrello. "De aard van Æpic Leak maakt het onmogelijk het te misbruiken op gebruikersniveau. Voor een praktische aanval zou je dan ook een serie uitbuitingen moeten gebruiken, bijvoorbeeld door Æpic Leak samen met een local privilege escalation te gebruiken. Je komt dan terug op de eerdere situatie waarin je met hogere toegang in een systeem op andere wijzen data kunt stelen, maar de secure enclave zou dan wel een interessant doelwit zijn." Omdat de roottoegang zo in de aard van Æpic Leak zit, ziet Borrello ook geen mogelijkheid om vervolgonderzoek te doen en te proberen de bug op userniveau te misbruiken. "Dat zou heel impactvol zijn, maar ik zie geen manier voor me om dat te kunnen doen."
Vergis je niet, Æpic Leak is nog steeds een indrukwekkende en vooral significante cpu-bug. In eerste instantie lijkt het veel op bekende bugs, zoals Spectre en Meltdown of de later ontdekte Ridl en Fallout, waarbij data uit de caches van Intel-chips kon worden afgelezen. Dat komt bij die bugs door de manier waarop Intel speculative execution implementeert. Dat is een optimalisatiemethode waarbij een cpu bepaalde taken of berekeningen probeert te voorspellen om de processor sneller te maken. Die informatie wordt dan uitgewisseld tussen verschillende buffers in de cache en het geheugen. Onderzoekers konden bij Spectre, Meltdown en Ridl data uit die buffers aflezen. Maar Æpic Leak werkt heel anders, zegt Borrello.
APIC-mmio
De bug zit specifiek in de Advanced Programmable Interrupt Controller, of APIC, een component die in de cpu is geïntegreerd en die bepaalt welke functies richting de processor moeten worden gestart of juist stopgezet, of prioriteit moeten krijgen. Intel-chips maken het mogelijk de APIC-component in de zogenaamde xAPIC-memory-mapped input-outputmodus of APIC-mmio te zetten. In dat gedeelte wordt informatie uit de APIC aangeroepen en geconfigureerd. En dat is precies het gedeelte dat Borrello en Kogler konden gebruiken om interne componenten van de cpu af te luisteren.
De APIC-mmio-ruimte heeft een maximale grootte van 4096 bytes, maar Borrello en Kogler ontdekten dat de processor die ruimte niet helemaal leegmaakt als dat nodig is. Dat leidt tot wat zij een 'uninitialized memory access' noemen, waarbij ze de data kunnen lezen die in het verleden in de APIC-mmio heeft gestaan en die geflusht had moeten worden, wat niet gebeurde.
Niet in transit, maar in architectuur
Daar zit het grote verschil met Spectre en Meltdown, zegt Borrello. "Bij die bugs lekte de data uit in transit, terwijl die 'reisde' tussen caches. Bij Æpic Leak zit de kwetsbaarheid in de architectuur. De code draait en dat lees je dan af." Dat maakt de kwetsbaarheid ook veel betrouwbaarder dan speculative-executionbugs, zegt hij. "Bij speculative-executionbugs kun je niet alles zomaar uitlezen; je kunt alleen bepaalde gegevens aflezen die toevallig op dat moment zijn verzonden. Dat betekent dat je niet naar iets op zoek kunt gaan." Dat was ook bij Ridl het geval; de onderzoekers konden op een geïnfecteerde machine een commando draaien, afluisteren wat werd verstuurd, maar moesten dan maar hopen dat daar toevallig een wachtwoord bij zat. Was dat niet het geval, dan probeerden ze het commando opnieuw. Het duurde gemiddeld 24 uur voordat ze vonden wat ze zochten. Doordat Æpic Leak data afluistert die door APIC-mmio in het geheugen is gezet, kunnen ze als het ware een kopie downloaden van alles wat er via die functie is gebeurd, praktisch alles dus, inclusief het schrijven of ophalen van wachtwoorden uit Intels SGX.
Gevaar
Alleen een admingebruiker kan die APIC-mmio-data uitlezen. "Er is geen mogelijkheid voor een gewone gebruiker om dat te doen, daarom moet je roottoegang hebben", zegt Borrello. Maar áls dat op de een of andere manier lukt, is de ernst van het lek door de SGX groot. Tijdens het proces wisten de onderzoekers remote attestation-sleutels en RSA-keys uit de Intel SGX-omgeving te halen, maar als een crimineel een laptop zou stelen en daar roottoegang op zou krijgen, heb je als slachtoffer grotere problemen.
Als mitigatie heeft Intel de sdk van SGX bijgewerkt. Daarmee kunnen processen die data uitlezen uit de APIC-mmio, alleen data van een minimumaantal bytes uitlezen, zodat het probleem praktisch niet meer te misbruiken is.
Toekomstig onderzoek
Borrello en Kogler werken als PhD's aan de universiteiten van Sapienza in Rome en Graz in Oostenrijk. Ze tonen op Black Hat nog een tweede onderzoek; ze hebben een tool gebouwd om de microcode van Intel-chips te analyseren. Borrello ziet het als een uitdaging om diep in cpu-problemen te duiken. "Met dit soort onderzoek moet je goed begrijpen hoe een cpu werkt. Bedrijven als Intel houden de microcode goed geheim. Je kunt wel een en ander achterhalen uit documentatie, maar niet alles. Chips vormen dan een mysterie dat ik beter wil begrijpen en dat je dwingt om er dieper in te duiken." Chiponderzoek zoals Spectre en Meltdown en nu Æpic Leak ziet hij in de toekomst nog wel dieper gaan. "Tegenwoordig wordt er veel geld en moeite gestopt in de beveiliging van cpu's, er komen steeds meer mitigaties en het onderzoeken ervan wordt steeds moeilijker, maar er is altijd nog wel iets te vinden waaruit data lekt."
Zelf wil Borrello nog wel door met cpu-onderzoek, maar voorlopig is hij nog met andere dingen bezig. "Het mooie van een PhD is dat je altijd naar andere dingen op zoek kunt gaan. In de afgelopen maanden ben ik vooral met kernelonderzoek bezig geweest. Ik blijf denk ik wel prikken in cpu's, maar wat ik ermee wil doen, weet ik nog niet."