Ny NetSpectre Attack kräver inte offer för att ladda ner eller köra skadlig kod

säkerhet / Ny NetSpectre Attack kräver inte offer för att ladda ner eller köra skadlig kod

NetSpectre bombarderar maskinportar för att få inträde

4 minuter läst

En ny CPU-attack från Spectre-klassen har fått uppmärksamhet från akademiska forskare när de nyligen släppte ett forskningsdokument med titeln 'NetSpectre: Read Arbitrary Memory over Network', som går i djupgående detaljer om hur denna klass av CPU-attack fungerar.



Vad som gör den nya Spectre-attacken lite skrämmande är att den krävs inte angriparen för att lura sitt offer för att ladda ner och köra skadliga skript på sin maskin eller till och med komma åt en webbplats som kör skadlig JavaScript i användarens webbläsare.

NetSpectre kommer helt enkelt att bombardera en maskins nätverksportar tills den hittar ett sätt att nå sina mål.



”Specterattacker får ett offer att spekulativt utföra operationer som inte skulle inträffa under strikt serieiserad orderbehandling av programmets instruktioner, och som läcker ut offrets konfidentiella information via en hemlig kanal till en angripare”



NetSpectre kommer dock inte utan sina egna brister. Den har en otroligt långsam exfiltreringshastighet, cirka 15 bitar per timme för att attacker ska kunna genomföras via en nätverksanslutning och inriktas på data som lagras i processorns cache.



I forskningsdokumentet kunde akademikerna uppnå upp till 60 bitar / timme med en speciell variant av NetSpectre som riktade data som bearbetades via processorns AVX2-modul, som är specifik för Intel-processorer.

I båda fallen anses NetSpectre för närvarande vara för långsamt för att vara värdefullt för angripare, vilket innebär att NetSpectre bara är en teoretisk hot, inte något som företagen borde tappa för skydd från ännu . Men när tekniken utvecklas kommer exfiltreringshastigheterna utan tvekan att öka och sedan har vi en helt ny klass av livskraftiga och otroligt enkla att utföra CPU-attacker att oroa sig för.

Den nya NetSpectre-attacken är relaterad till Spectre V1-sårbarheten (CVE-2017-5753) som Google-forskare avslöjade tidigare i år (2018). Detta innebär att alla processorer som kan påverkas av Spectre V1 också tros vara NetSpectre, om den används med rätt OS och CPU-firmware.



Det finns för närvarande två attackvarianter för NetSpectre: Extrahera data från målsystemet och fjärrbryta ASLR (Address Space Layout Randomisation) på målsystemet.

Händelsekedjan för den första typen av attack går så här:

  1. Felaktig grenen prediktor.
  2. Återställ tillståndet för det mikroarkitektoniska elementet.
  3. Läcka lite till det mikroarkitektoniska elementet.
  4. Exponera tillståndet för mikroarkitekturelementet till nätverket.
  • I steg 1, misstänker angriparen grenprediktorn för offret för att köra en Spectre-attack. För att felsöka grenprediktorn utnyttjar angriparen läckagadget med giltiga index. De giltiga indexen säkerställer att grenprediktorn lär sig att alltid ta grenen, dvs grenprediktorn spekulerar i att villkoret är sant. Observera att detta steg bara är beroende av läckagadgeten. Det finns ingen återkoppling till angriparen och därför behöver mikroarkitektoniskt tillstånd inte återställas eller överföras.
  • I steg 2 måste angriparen återställa mikroarkitektoniskt tillstånd för att möjliggöra kodning av läckta bitar med hjälp av ett mikroarkitektoniskt element. Detta steg beror i hög grad på det använda mikroarkitekturelementet, till exempel när hävstången utnyttjas laddar angriparen ner en stor fil från offret. om AVX2 används väntar angriparen helt enkelt mer än 1 millisekund. Efter detta steg är alla krav uppfyllda för att läcka lite från offret.
  • I steg 3 utnyttjar angriparen Spectre-sårbarheten för att läcka en enda bit från offret. Eftersom grenprediktorn är felaktig i steg 1, tillhandahåller ett ut-av-gräns-index till läckagadgeten in-bounds-banan och modifierar det mikroarkitektoniska elementet, dvs. biten är kodad i det mikroarkitektoniska elementet.
  • I steg 4 måste angriparen överföra den kodade informationen via nätverket. Detta steg motsvarar den andra fasen av den ursprungliga Spectre-attacken. Angriparen skickar ett nätverkspaket som hanteras av sändningsgadgeten och mäter tiden från att skicka paketet tills svaret kommer.

Attack Method # 2: Remotely Breaking ASLR

  1. Felaktig grenen prediktor.
  2. Gå till ett index utanför gränserna för att cacha en (känd) minnesplats.
  3. Mät exekveringstiden för en funktion via nätverket för att avgöra om tillgången utanför gränserna cachade en del av den.

Specter motåtgärder

Intel och AMD rekommenderar att du använder lfence-instruktionen som en spekulationsbarriär. Denna instruktion måste infogas efter säkerhetskritiska gränskontroller för att stoppa spekulativ körning. Att lägga till detta till varje gränskontroll har dock en betydande prestationsomkostnad.

Eftersom NetSpectre är en nätverksbaserad attack kan det inte bara förhindras genom att mildra Spectre utan också genom motåtgärder på nätverkslagret. En trivial NetSpectre-attack kan enkelt upptäckas med ett DDoS-skydd, eftersom flera tusen identiska paket skickas från samma källa.

En angripare kan dock välja vilken avvägning som helst mellan paket per sekund och läckta bitar per sekund. Således kan hastigheten med vilken bitar läcker helt enkelt minskas under tröskeln som DDoS-övervakningen kan upptäcka. Detta gäller för alla övervakningar som försöker upptäcka pågående attacker, t.ex. intrångsdetekteringssystem.

Även om attacken teoretiskt inte förhindras, blir attacken någon gång omöjlig, eftersom tiden som krävs för att läcka lite ökar drastiskt. En annan metod för att mildra NetSpectre är att lägga till artificiellt brus i nätverkets latens. Eftersom antalet mätningar beror på variansen i nätverkslatens kräver ytterligare buller att en angripare utför fler mätningar. Således, om variansen i nätverkslatens är tillräckligt hög, blir NetSpectre-attacker omöjliga på grund av det stora antalet mätningar som krävs.