Onderzoekers van de Vrije Universiteit Amsterdam hebben het voor elkaar gekregen om beschermde gegevens uit werkgeheugen af te lezen door het geheugenbeheer te misleiden. Dit is een nieuwe variant van het type Spectre beveiligingslekken. Wat opvallend is is dat dit nieuwe zwaktepunt in de beveiliging niet in huidige processoren te vinden is. De aanval maakt namelijk gebruik van 'Linear Address Masking (LAM)', wat pas volgend jaar bij zowel Intel als AMD processors zijn intrede moet doen. De nieuwe kwetsbaarheid is SLAM genoemd, een combinatie van (S)pectre en LAM.
Spectre-aanvallen maken gebruik van het zogenaamde 'branch prediction' van moderne cpu's. Deze functie verbeterd de prestaties van de processor door te voorspellen wat er gevraagd zal worden van de cpu. Door deze mogelijke taak alvast uit te gaan voeren, voordat hij gegeven is, kan de processor dus sneller klaar zijn dan anders mogelijk is. Het nadeel van deze functies is dat deze te misleiden is, waardoor aanvallers delen van programma's kunnen uitvoeren die zonder branch prediction niet uitgevoerd zouden moeten worden. Vervolgens kunnen deze gegevens uitgelezen worden waardoor er gegevens beschikbaar komen die normaal verborgen moeten blijven. Hoewel Spectre al sinds 2018 een bekend probleem is en er sindsdien andere aanverwante zwaktes zijn gevonden, zoals 'Inception', lijken er in de praktijk weinig aanvallen te zijn geweest met deze kwetsbaarheden.
In de Linux-kernel kan er code misbruikt worden om spectre-aanvallen uit te voeren. Het gaat dan bijvoorbeeld om 'canonicality checks' voor geheugenadressen. Deze controle zorgt ervoor dat de bovenste 16 en 7 bits van een 64-bit virtueel geheugenadres altijd een kopie zijn van de 47e en 45e bit respectievelijk. Als dit niet het geval is veroorzaakt dit een geheugentoegangsfout. Er zijn echter beveiligingsmechanismen die hetzelfde adresbereik gebruiken voor metadata, wat de geldigheidscontrole ondermijnt.
Om deze problemen op te lossen moeten toekomstige Intel en AMD chips een functie krijgen waarmee specifieke adresbits uitgesloten kunnen worden van de geldigheidscontrole. Dit wordt bij Intel 'Linear Address Masking (LAM)' genoemd, bij AMD heet dit 'Upper Address Ignore (UAI)', en bij ARM is er een vergelijkbare functie die 'Top Byte Ignore' heet. De Onderzoekers van de Vrije Universiteit hebben nu dus al een manier gevonden om van deze nieuwe beveiligingsmaatregel misbruik te maken. Door middel van complexe manipulaties van caches en de 'Translation Lookaside Buffer (TLB)' kan er een nieuwe soort Spectre-aanval uitgevoerd worden op de theoretische nieuwe cpu's.
Een video van de onderzoekers die laat zien hoe het root-wachtwoord-hash ontfutseld kan worden van het systeem.
Op dit moment hebben de onderzoekers dit enkel in een simulatie getest, omdat er nog geen processors met deze nieuwe beveiligingsfuncties beschikbaar zijn van Intel of AMD. De eerste processors van Intel die hier gebruik van moeten maken zijn Sierra Forest serverprocessors of Arrow Lake laptopprocessors. De onderzoekers moesten dus gebruik maken van LAM-software-emulatie. Binnen deze emulatie lukte het de onderzoekers om als gewone Linux-gebruiker binnen een paar seconden een bestand uit te lezen dat enkel toegankelijk moest zijn voor beheerders van het systeem. In mei volgend jaar zullen de wetenschappers hun bevindingen presenteren op het IEEE Security en Privacy Symposium in San Francisco. Ook hebben ze nu al een zestien pagina's tellende essay gepubliceerd, een Github-repository online gezet, en een website opgezet met demonstraties van de beveiligingsproblemen samen met mogelijke oplossingen.
Bron: Heise