Zou het kunnen dat de snelheid van je processor juist de oorzaak is van de problemen met je beveiliging? Om te begrijpen hoe processors hun snelheid bereiken , moeten we bedenken dat ze werken door "de toekomst te voorspellen"... Nee, ze zijn niet magisch en hebben geen glazen bol...
De manier waarop processoren werken, is dat ze niet wachten om te zien welk pad een programma zal volgen, maar de chip de waarschijnlijke route voorspellen en daarop anticiperen. Als de voorspelling onjuist is, wordt het werk weggegooid, maar blijven er sporen in het geheugen achter. Dit is waar Spectre om de hoek komt kijken , een van de meest significante kwetsbaarheden die de afgelopen jaren zijn ontdekt. ​​Sinds de ontdekking ervan hebben aanvallers geleerd hoe ze deze sporen moeten lezen, waardoor steeds geavanceerdere varianten zijn ontstaan; TONTOU is een van deze nieuwe kwetsbaarheden.
Onderzoekers van MIT hebben TONTOU (Time-of-Neutralization to Time-of-Use) ontdekt , een geavanceerde nieuwe techniek om Spectre v2-kwetsbaarheden te misbruiken , waardoor kernelgeheugen vanuit de gebruikersruimte kan worden uitgelezen.
Hoewel fabrikanten en ontwikkelaars al jaren diverse beschermingsmechanismen tegen voorspellende aanvallen hebben ontworpen, zijn aanvallers erin geslaagd nieuwe routes te ontdekken. Deze nieuwe studie van CSAIL laat zien hoe deze beschermingen omzeild kunnen worden.
Onderzoekers ontdekten dat er een onvermijdelijke tijdsspanne bestaat tussen het moment dat de buffer wordt gewist en het moment dat de voorspellingen worden gebruikt. In deze korte periode wordt code (soms slechts een handvol instructies) geïnjecteerd via systeeminterrupties, waardoor het mogelijk wordt de hardware opnieuw te besmetten en cruciale gegevens te bemachtigen.
Betreffende de aanval: verstoringen en de inbreuk op Safe-RET
AMD heeft een verdediging tegen SRSO- kwetsbaarheden (Speculative Return Stack Overflow) genaamd Saferet, die het voorspellingsmechanisme vlak voor elk gebruik opschoont. Dit laat een kwetsbaarheidsvenster achter dat in enkele tientallen nanoseconden kan worden uitgebuit. Om zo'n klein venster aan te vallen, ontwikkelden onderzoekers een techniek die ze Interrupt Injection noemden.
Processors onderbreken hun taken voortdurend om interrupties af te handelen, en gangbare programma's kunnen deze timers configureren . Met dit in gedachten hebben onderzoekers een timer nauwkeurig afgesteld en, met behulp van een techniek om de CPU te vertragen, ervoor gezorgd dat de processor precies op het verkeerde moment werd onderbroken . Tijdens deze interruptie kan een aanvaller een groot aantal aanroepen forceren, waardoor de adresstack overloopt. Wanneer de foutieve uitvoering eindigt, verwijdert de processor het proces, maar de benaderde gegevens blijven in de gedeelde caches , van waaruit ze kunnen worden geëxtraheerd door de toegangstijden te analyseren.
Wachtwoordextractie en -testen op echte systemen
Om de ernst van TONTOU aan te tonen, bouwde het team een ​​werkende exploit op een AMD-systeem met een recente Linux-kernel. De eerste hindernis was het omzeilen van de beveiliging die de positie van het besturingssysteem in het geheugen randomiseert, wat ze in tien pogingen lukte, waarbij elke test ongeveer negen minuten duurde.
Vervolgens demonstreerden ze een lokale aanval als gebruiker zonder beheerdersrechten om de hash van het rootwachtwoord te achterhalen. Ze slaagden erin gegevens te extraheren met een snelheid van 5.47 bytes per seconde en een nauwkeurigheid van 91.97%. In 50% van de tests (die gemiddeld 18 minuten duurden) detecteerden en extraheerden ze de inhoud van het wachtwoordbestand. Hoewel dit een lage snelheid is, is het meer dan voldoende om een ​​server ernstig te compromitteren.
Impact op Intel, AMD en de oplossingspatch
Het team testte vier generaties Intel- en AMD-processoren en slaagde erin om op beide architecturen voorspellingsfouten te maken. Hoewel de techniek werkte op AMD's Zen 1 tot en met 4- families , omzeilde de aanval op Intel-chips twee verschillende beveiligingen . Er werd echter inconsistent gedrag waargenomen tussen de verschillende Intel-generaties, wat suggereert dat de nominale verdedigingsmechanismen in de hardware verschillend zijn geïmplementeerd.
Als oplossing stellen de onderzoekers voor om het voorspellingsmechanisme een tweede keer te wissen nadat de interrupt is voltooid. Hoewel deze maatregel haalbaar lijkt voor AMD, zou het contraproductief kunnen zijn voor Intel, aangezien de aanval afhankelijk is van het feit dat de interrupt een consistente toestand verlaat en de aanval daardoor betrouwbaarder zou kunnen worden.
De onderzoekers brachten AMD en Intel begin februari op de hoogte en de beheerders van de Linux-kernel in maart. Als gevolg hiervan werd de code die de kwetsbaarheid verhelpt op 5 augustus in de Linux-kernel geïntegreerd.
Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.