Nieuwe NetSpectre-aanval vereist geen slachtoffer om schadelijke code te downloaden of uit te voeren

Veiligheid / Nieuwe NetSpectre-aanval vereist geen slachtoffer om schadelijke code te downloaden of uit te voeren

NetSpectre bombardeert machinepoorten om toegang te krijgen

4 minuten gelezen

Een nieuwe CPU-aanval van Spectre-klasse heeft de aandacht gekregen van academische wetenschappers toen ze onlangs een onderzoeksartikel publiceerden met de titel 'NetSpectre: Read Arbitrary Memory over Network', dat diepgaande details geeft over hoe deze klasse van CPU-aanvallen werkt.



Wat de nieuwe Spectre CPU-aanval een beetje eng maakt, is dat het heeft niet nodig de aanvaller om zijn slachtoffer voor de gek te houden door kwaadaardige scripts op zijn computer te downloaden en uit te voeren, of zelfs toegang te krijgen tot een website waarop kwaadaardig JavaScript wordt uitgevoerd in de browser van de gebruiker.

NetSpectre zal simpelweg de netwerkpoorten van een machine bombarderen totdat het een manier vindt om zijn doelen te bereiken.



'Spectre-aanvallen zetten een slachtoffer ertoe aan speculatief operaties uit te voeren die niet zouden plaatsvinden tijdens strikt geserialiseerde in-order verwerking van de programma-instructies, en die de vertrouwelijke informatie van een slachtoffer via een verborgen kanaal naar een aanvaller lekken'



NetSpectre komt echter niet zonder zijn eigen gebreken. Het heeft een ongelooflijk lage exfiltratiesnelheid, ongeveer 15 bits per uur om aanvallen uit te voeren via een netwerkverbinding en gericht op gegevens die zijn opgeslagen in de cache van de CPU.



In het onderzoekspaper konden de academici tot 60 bits / uur halen met een speciale variant van NetSpectre die gericht was op gegevens die werden verwerkt via de AVX2-module van de CPU, die specifiek is voor Intel CPU's.

In beide gevallen wordt NetSpectre momenteel als te traag beschouwd om waardevol te zijn voor aanvallers, wat betekent dat NetSpectre slechts een theoretisch bedreiging, niet iets waar bedrijven dekking voor moeten zoeken net . Naarmate de technologie vordert, zullen de exfiltratiesnelheden echter ongetwijfeld toenemen en dan hebben we een geheel nieuwe klasse van levensvatbare en ongelooflijk eenvoudig uit te voeren CPU-aanvallen om ons zorgen over te maken.

De nieuwe NetSpectre-aanval houdt verband met de Spectre V1-kwetsbaarheid (CVE-2017-5753) die Google-onderzoekers eerder dit jaar (2018) onthulden. Dit betekent dat alle CPU's die kunnen worden beïnvloed door Spectre V1, ook worden beschouwd als NetSpectre, als het wordt geïmplementeerd met het juiste besturingssysteem en CPU-firmware.



Er zijn momenteel twee aanvalsvarianten voor NetSpectre: het extraheren van gegevens uit het doelsysteem en het op afstand breken van ASLR (Address Space Layout Randomization) op het doelsysteem.

De reeks gebeurtenissen voor de eerste soort aanval verloopt als volgt:

  1. Misleid de branchevoorspeller.
  2. Reset de status van het microarchitecturale element.
  3. Lek een beetje naar het microarchitecturale element.
  4. Stel de staat van het microarchitecturale element bloot aan het netwerk.
  • In stap 1 misleidt de aanvaller de vertakkingsvoorspeller van het slachtoffer om een ​​Spectre-aanval uit te voeren. Om de branchevoorspeller verkeerd te trainen, gebruikt de aanvaller het lekgadget met geldige indices. De geldige indices zorgen ervoor dat de vertakkingsvoorspeller leert altijd de vertakking te nemen, d.w.z. de vertakkingsvoorspeller speculeert dat de voorwaarde waar is. Merk op dat deze stap alleen afhankelijk is van de lekgadget. Er is geen feedback naar de aanvaller, en dus hoeft de microarchitectuurstatus niet te worden gereset of verzonden.
  • In stap 2 moet de aanvaller de microarchitectuurstatus resetten om de codering van gelekte bits mogelijk te maken met behulp van een microarchitecturaal element. Deze stap is in hoge mate afhankelijk van het gebruikte microarchitecturale element, bijv. Bij gebruik van de cache downloadt de aanvaller een groot bestand van het slachtoffer; als AVX2 wordt gebruikt, wacht de aanvaller gewoon langer dan 1 milliseconde. Na deze stap is aan alle vereisten voldaan om een ​​beetje uit het slachtoffer te lekken.
  • In stap 3 maakt de aanvaller misbruik van de Spectre-kwetsbaarheid om een ​​enkel bit van het slachtoffer te lekken. Aangezien de vertakkingsvoorspeller in stap 1 verkeerd is getraind, zal het verstrekken van een index buiten het bereik aan het lekgadget het pad binnen het bereik uitvoeren en het microarchitecturale element wijzigen, d.w.z. het bit wordt gecodeerd in het microarchitecturale element.
  • In stap 4 moet de aanvaller de gecodeerde informatie via het netwerk verzenden. Deze stap komt overeen met de tweede fase van de oorspronkelijke Spectre-aanval. De aanvaller verzendt een netwerkpakket dat wordt afgehandeld door het verzendgadget en meet de tijd vanaf het verzenden van het pakket tot het moment dat het antwoord arriveert.

Aanvalsmethode # 2: ASLR op afstand doorbreken

  1. Misleid de branchevoorspeller.
  2. Toegang tot een out-of-bounds-index om een ​​(bekende) geheugenlocatie te cachen.
  3. Meet de uitvoeringstijd van een functie via het netwerk om af te leiden of de out-of-bounds-toegang een deel ervan in de cache heeft opgeslagen.

Spectre-tegenmaatregelen

Intel en AMD raden aan de lfence-instructie te gebruiken als een speculatiebarrière. Deze instructie moet worden ingevoegd na controle van de veiligheidskritieke grenzen om de speculatieve uitvoering te stoppen. Het toevoegen van dit aan elke grenscontrole heeft echter een aanzienlijke prestatieoverhead.

Aangezien NetSpectre een netwerkgebaseerde aanval is, kan deze niet alleen worden voorkomen door Spectre te verzachten, maar ook door tegenmaatregelen op de netwerklaag. Een triviale NetSpectre-aanval kan gemakkelijk worden gedetecteerd door een DDoS-bescherming, aangezien meerdere duizenden identieke pakketten vanaf dezelfde bron worden verzonden.

Een aanvaller kan echter elke afweging kiezen tussen pakketten per seconde en gelekte bits per seconde. Zo kan de snelheid waarmee bits worden gelekt eenvoudigweg worden verlaagd tot onder de drempel die de DDoS-monitoring kan detecteren. Dit geldt voor elke monitoring die voortdurende aanvallen probeert te detecteren, bijvoorbeeld inbraakdetectiesystemen.

Hoewel de aanval theoretisch niet kan worden voorkomen, wordt de aanval op een gegeven moment onhaalbaar, omdat de tijd die nodig is om een ​​beetje te lekken drastisch toeneemt. Een andere methode om NetSpectre te verminderen, is door kunstmatige ruis toe te voegen aan de netwerklatentie. Omdat het aantal metingen afhangt van de variantie in netwerklatentie, vereist extra ruis dat een aanvaller meer metingen uitvoert. Dus als de variantie in netwerklatentie hoog genoeg is, worden NetSpectre-aanvallen onhaalbaar vanwege het grote aantal vereiste metingen.