ARM's 'TIKTAG'-aanval treft Google Chrome- en Linux-systemen

Onlangs heeft een team van Koreaanse onderzoekers van Samsung, Seoul National University en Georgia Institute of Technology een nieuwe speculatieve executieaanval getest, genaamd TIKTAG. Het is nogal verrassend dat deze speciaal ontworpen aanval zich richt op ARM's Memory Tagging Extension, waardoor datalekken mogelijk zijn met een slagingspercentage van meer dan 95%. De praktische implicaties van deze ontdekking zijn aanzienlijk, omdat het hackers in staat stelt belangrijke beschermingsmechanismen tegen geheugencorruptie te omzeilen.

Inzicht in de geheugentagging-extensie van ARM

Geïntegreerd als basisoptie met de ARM v8. Met name de 5-A-architectuur, MTE, is een verbetering in de aanpak van het probleem van geheugencorruptie, een van de grootste categorieën beveiligingsproblemen. Bij MTE wordt tagging met een lagere overhead gebruikt, waarbij tags ter grootte van vier bits worden toegewezen aan geheugenblokken van 16 bytes. Dit mechanisme helpt bij het vaststellen dat de aanwijzer die aan een label is bevestigd, verwijst naar het label van het geheugengebied waartoe toegang wordt verkregen, waardoor gevallen van ongeautoriseerde geheugentoegang en -misbruik worden verminderd.

MTE bestaat, zoals eerder aangegeven, in drie categorieën namelijk; synchroon, asynchroon en asymmetrisch en elk wordt geleverd met een uitgebalanceerd type beveiliging en prestaties. Toch brengt de TIKTAG-aanval kwetsbaarheden in het systeem aan het licht, waaruit blijkt dat zelfs bescherming op het hoogste niveau kan worden verslagen.

ARM's 'TIKTAG'-aanval treft Google Chrome- en Linux-systemen
Afbeelding tegoed: arxiv.org

De onderzoekers observeerden twee hoofdprogramma's met hoge efficiëntie en snelheid, waaronder TIKTAG-v1 en TIKTAG-v2, die zich richtten op de uitvoering van speculaties om MTE-geheugentags te lekken.

TIKTAG-v1: vertakkingsvoorspelling en prefetching van gegevens

De functies die in TIKTAG-v1 worden gebruikt, zijn onder meer het inkrimpen van speculaties in vertakkingsvoorspellingen en het vooraf ophalen van gegevens van de CPU. Deze gadget is resistent geweest tegen de Linux-kernel, vooral in de functies waarbij geheugenspeculaties betrokken zijn. Schadelijke code verandert kernelaanwijzers en gebruikt cache-zijkanalen via systeemoproepfunctie-aanroepen; ze hebben vervolgens toegang tot en meten de status van een cache om geheugentags te verkrijgen.

tiktag 1tiktag 1
Afbeelding tegoed: arxiv.org

TIKTAG-v2: doorsturen van winkel naar laad

TIKTAG-v2 richt zich op het doorsturen van store-to-load bij timingspeculatie van de processor. De eerste stap is het opslaan van de waarde op een geheugenadres en het tegelijkertijd laden vanaf hetzelfde adres. De waarde wordt doorgegeven aan de volgende tag, waardoor de gedeelde cachestatus met succes wordt geladen en gewijzigd. Aan de andere kant verhindert een mismatch het doorsturen, de cachestatus blijft in dezelfde staat. Als aanvallers de cachestatus na speculatieve uitvoering onderzoeken, kunnen ze de uitkomst van de tagcontrole afleiden.

TIKTAG-v2 bleek effectief te zijn tegen het kwetsbare doelproces – de Google Chrome-browser, met de nadruk op de onderdelen, waaronder de V8 JavaScript-engine: de exploitatie van kwetsbaarheden voor geheugencorruptie in het rendererproces is ook hier in dit artikel aangetoond .

tiktag 2tiktag 2
Afbeelding tegoed: arxiv.org

Implicaties en reactie van de industrie

Het lekken van MTE-tags houdt geen verband met het lekken van wachtwoorden, coderingssleutels, enz. Het verzwakt echter effectief de beveiliging die MTE beweert te bieden. Daarom worden aanvallen op geheugencorruptie mogelijk gemaakt die heimelijk van aard zijn. Het veldonderzoek eindigde in november en december 2023, waarbij het team de bevindingen aan de entiteiten voorlegde. Hoewel de algemene ontvangst vrij positief was, werden er geen snelle pleisters onmiddellijk aangebracht.

In een technisch artikel dat is gepubliceerd op een repository bekend als arxiv.org, stelden de onderzoekers verschillende maatregelen voor om TIKTAG-aanvallen tegen te gaan. Ten eerste: sta niet toe dat speculatie de cachestatus wijzigt nadat de tagcontrole is uitgevoerd. Ten tweede helpt het insluiten van speculatiebarrières ('sb'- of 'isb'-instructies) het uitvoeren van gevoelige geheugenprocedures te voorkomen. Ten derde, vul extra tijd in tussen vertakkingsinstructies en geheugentoegang met opvulinstructies. Verbeter ten slotte de sandbox-strategieën om de constructiefheid van AMA's in gevoelige geheugenruimten zo veilig mogelijk proactief te beperken.

mte bypassmte bypass
Afbeelding tegoed: arxiv.org

ARM en Chrome's reacties

ARM begreep dat de TIKTAG-aanval erg krachtig was en wees er vervolgens op dat het nog steeds veilig is om de tags vrij te geven voor toewijzing op architectuurniveau met behulp van speculatieve methoden. Hun bulletin benadrukte dat toewijzingstags niet verborgen zijn in de adresruimte.

Aan de andere kant wees het beveiligingsteam van Google Chrome op deze problemen, maar koos ervoor deze niet op te lossen en merkte op dat de V8-sandbox geen geheugengegevens en MTE-tags geheim houdt. Bovendien heeft Chrome op dit moment geen op MTE gebaseerde verdediging ingeschakeld, dus het oplossen van de bugs is niet dringend.

Hoewel het MTE-orakelmechanisme van het Pixel 8-apparaat later in april 2024 aan het Google Android-beveiligingsteam werd bekendgemaakt en werd bevestigd dat het een hardwareprobleem was dat in aanmerking kwam voor een premie. De aanvallen waren niet mogelijk geweest zonder misbruik van de opstart- en herstelimages van het Pixel 8-apparaat.

Thijs Van der Does