Kwetsbaarheid in AMD-cpu’s zorgt voor controverse

hardware bug

Beveiligingsonderzoekers ontdekten een lek in AMD-processors, maar AMD claimt dat het onderzoek niets nieuws aan het licht brengt. De studie zelf lijkt dan weer deels gesponsord door Intel.

In een studie gepubliceerd door de technologische universiteit van Graz in Oostenrijk brengen onderzoekers een nieuw side channel-lek aan het licht in processors van AMD. Chips van 2011 tot nu zijn kwetsbaar. Het tweevoudige lek kreeg de naam ‘Take A Way’ mee.

Chache-voorspeller

Take A Way maakt misbruik van de L1D cache way predictor die een vast onderdeel is van AMD’s chip-architectuur. De voorspeller gebruikt een systeem van tags om op een efficiënte manier bij te houden waar bepaalde berekeningen in het cpu-geheugen plaats vinden. Het systeem zorgt voor een snellere en zuinigere processor, en is deel van de fysieke schakelingen op de chip. Het gaat dus niet om een softwarefeature die AMD zomaar kan patchen.

Het lek bestaat uit twee onderdelen: Collide+Probe en Load+Reload. De aanvallen misbruiken de manier waarop de predictor werkt om zelf te achterhalen waar acties van bepaalde applicaties binnen de processor gebeuren. Een essentieel onderdeel van cpu-beveiliging is de scheiding tussen toepassingen: in theorie mag het niet mogelijk zijn voor één applicatie om te zien wat een andere uitvoert. Anders kan een malafide toepassing bijvoorbeeld stiekem mee kijken terwijl een legitieme app een cryptografische sleutel genereert.

De predictor werkt zo dat een respons op een bepaalde geheugenquery een variabele tijd heeft die beïnvloed wordt door de vraag naar een gegeven geheugenadres. Heeft een toepassing een adres aangesproken, dan duurt de volgende query naar datzelfde adres langer. Via Take A Way misleiden onderzoekers de cache way predictor zodat ze naar de activiteit op zelfgekozen geheugenadressen kunnen peilen. Dit luik van de ontdekking is nieuw en wordt niet bediscussieerd.

Javascript

Vervolgens claimen de onderzoekers dat ze het lek kunnen uitbuiten via javascript-code in de browser. Ter illustratie gebruikten ze hun techniek om een AES-sleutel te stelen, wat meteen het potentiële gevaar van de aanval in de verf zet. De aanvalsmethode combineert echter Take A Way met andere op speculatieve uitvoering gebaseerde lekken. Hierbij komen we in het domein van Spectre en Meltdown. Die bugs laten een aanvaller toe om ook effectief informatie uit het cachegeheugen te stelen, en treffen in theorie alle moderne chips. In de praktijk was vooral Intel kop van jut, maar ook AMD-cpu’s zijn kwetsbaar.

AMD claimt in een reactie dat de studie geen nieuwe defecten in de chips aantoont, en geeft aan dat bestaande technieken om de gevaren van speculatieve uitvoering tegen te gaan in dit geval volstaan. De onderzoekers zelf houden vol dat hun ontdekking wel degelijk nieuw is, en dat AMD nieuwe firmware-patches kan uitrollen. In welke mate die een impact hebben op de prestaties, is onduidelijk. Patches hebben immers de onaangename bijwerking om cpu’s zodanig veel te vertragen dat ze niet in verhouding staan met het gemitigeerde risico.

Intel-sponsoring

Dan is er nog de kwestie van de sponsors van de paper. Fondsen komen van allerhande bronnen waaronder Europa, maar ook Intel deed een duit in het zakje. Dat zorgt natuurlijk voor argwaan aangezien de bevindingen wijzen op veiligheidsproblemen bij AMD. Na de problemen bij Intel kan de chipreus een dergelijke bliksemafleider we leven gebruiken.

Het ziet er echter naar uit dat er geen kwaad opzet in het spel is. De fondsen zouden kaderen binnen een sponsorprogramma dat al enige jaren loopt en dat niet gefocust is op een specifieke fabrikant. Studenten die gesponsord worden door Intel hebben in dit geval aan het onderzoek meegewerkt, wat vermelding verklaart.

Een opfrisser nodig over wat speculatieve uitvoering precies is, en hoe dat voor problemen zorgt? We analyseerden dat eerder in meer detail in dit stuk: De vloek van Spectre: waarom blijft het jou en Intel achtervolgen?

nieuwsbrief

Abonneer je gratis op ITdaily !

  • This field is for validation purposes and should be left unchanged.