Computer

tr hamer

Tr hamer duidt een ontwerpfout in geheugenmodules, waarin bepaalde bit in het geheugen ( DRAM blanco) geen schrijftoegang tot deze verandering. Deze fout laat een aanvaller in theorie toe door dergelijke veranderingen van bepaalde bits z. B. Bypass veiligheidsmaatregelen. De eerste praktische aanval op basis van dit effect werd in maart 2015 wijd verspreid door Mark Seaborn, Matthew Dempsky en Thomas Dullien. Volgens Mark Seaborn maakte hij misbruik van de kwetsbaarheid op 15 van de 29 laptops. [1]

Functionaliteit

Het geheugen is fysiek in rijen georganiseerd. Om toegang tot het geheugen te krijgen, wordt het geheugen vanuit een dergelijke rij gekopieerd naar een buffer die dan kan worden geopend. Alleen wanneer een andere rij moet worden benaderd, wordt deze rij teruggeschreven en de andere rij in de rijbuffer geladen. Bij het openen van een geheugenadres met een hoge frequentie (afgewisseld met een ander adres), moet het geheugen de rijen ook zo vaak lezen en terugschrijven. Hier interageren de elektrische veldende rijen waartoe een aanvaller toegang heeft met aangrenzende rijen geheugen. De lading “lekt” vervolgens, wat kan leiden tot het wisselen van een aangrenzend bit. Dit leidt tot storingen van de computer, zoals het crashen van programma’s of het besturingssysteem, datacorruptie of – indien opzettelijk misbruikt – tot ongeoorloofde toegang tot de volledige computer. [2] [3]

Bij normaal gebruik is het optreden van het Rowhammer-effect onwaarschijnlijk, omdat geheugentoegangen worden gebufferd door de cache en daarom niet voorkomen in deze frequentie. De processor biedt echter de optie om specifiek geheugen uit de cache te verwijderen met de clflush- opdracht. Als dit commando met opzet wordt gebruikt, moet het geheugen feitelijk rijen lezen en schrijven. [3]

Een programma geschreven door Mark Seaborn toont aan dat het effect van de rijgham inderdaad een veiligheidsgat is. Het schrijft naar bepaalde geheugengebieden totdat een bit waarvoor het huidige programma geen schrijftoegang had, is gewijzigd. [4] Het programma van Seaborn is gebaseerd op voorbereidende werkzaamheden door een onderzoeksgroep van de Carnegie Mellon University en Intel Labs. [3]

Praktische toepassing

Omdat RAM-compromis niet gebonden is aan specifieke programma’s, zijn verschillende aanvallen mogelijk. Bewezen door Seaborn is een aanval op de NaCl-sandbox in de Chrome -webbrowser en het verkrijgen van rootprivileges op Linux. In juli 2015 konden ook het onderzoeksteam Gruss, Maurice en Mangard via JavaScript een aanval op een systeem uitvoeren. Seaborn gaat ervan uit dat niet alleen Linux wordt getroffen door het probleem. Theoretisch is het ook mogelijk om uit een virtuele machine te breken. Deze aanval is nog niet praktisch getest, maar zou mogelijk moeten zijn op servers zonder (foutcorrigerende) ECC-geheugen (zie verdedigingsmethoden ) . [2]

NaCl

De NaCl-sandbox controleert de machinecode voor gevaarlijke oproepen voordat deze wordt uitgevoerd. Dit is om de uitbraak van de zandbak te voorkomen, tot nu toe werd de sandbox als veilig beschouwd. Rowhammer kan de code manipuleren nadat deze is gevalideerd, waarbij het permanent aanroepen van de clflush-opdracht voorkomt dat de geheugentoegang in de cache wordt opgeslagen. Nieuwere versies van NaCl laten daarom Clflush niet meer toe. Het ontbrekende filter in eerdere versies wordt uitgevoerd als beveiligingsopening CVE -2015-0565 [5] . Seaborn valt momenteel verder aan zonder clflushGeen van hen werd echter besproken. Daarom pleit Seaborn ervoor gebruikers te verbieden de opdracht Clflush uit te voeren. Buiten de kernel zijn er enkele redenen om de opdracht in te roepen. [1] [6]

Rootrechten

Hiertoe wordt geprobeerd de controle over een paginatabel van het eigen proces te verkrijgen met behulp van bitwijzigingen . Hierdoor kan een aanvaller het fysieke geheugen lezen en wijzigen. [7]

JavaScript

In juli 2015 hebben Gruss, Maurice en Mangard via JavaScript het Rowhammer-effect geactiveerd. De aanval is niet gebaseerd op het gebruik van speciale JavaScript-functies, maar op het simuleren van de Clflush- opdracht via gerichte geheugenbezoeken. Waarschijnlijk kan dezelfde aanpak ook op andere talen worden toegepast. De onderzoekers bewezen slechts dat de aanval mogelijk is in de Mozilla Firefox -webbrowser , maar het is waarschijnlijk dat de aanval ook in andere webbrowsers mogelijk zal zijn. [8] [9] De uitvoering van de aanval is inmiddels vrijgelaten GitHub. [10]

Verdedigingsmethoden

Aangezien dit beveiligingslek de eigenaardigheden van de hardware benut, is een oplossing niet mogelijk met eenvoudige softwareoplossingen zoals de verandering van de virusscanner of het besturingssysteem. Gedeeltelijke bescherming tegen roetslagaanvallen wordt geboden door RAM die fouten corrigeert, zoals het gebruik van ECC-geheugenmodules . [2] Daartoe is het noodzakelijk dat ofwel het werkgeheugen onafhankelijk correcties of de ECC-enabled RAM met ECC-enabled voert CPUgecombineerd. Het gevolg was echter dat alleen een bescherming tegen het kantelen van afzonderlijke delen, maar niet tegen het kantelen van meerdere tegelijk werd bereikt.

Voortijdige beveiliging biedt de u. a. PaX uitgebreide GrSecurity-patch voor de Linux-kernel, omdat de toegang tot de “paginakaarten” van gebruikersprocessen wordt geblokkeerd. De patch biedt echter geen echte beveiliging. Om de aanval moeilijker te maken, maakte Linux-kernel 4.0 de toegang tot de “/ proc” -directory moeilijker. [8]

In één geval was Seaborn in staat om de aanval uit te stellen met een opnieuw ontworpen BIOS . In plaats van een paar minuten had de onderzoeker nu 40 minuten nodig voor de aanval. Deze methode biedt echter geen effectieve bescherming. [6]

Bronnen

  1. ↑ Ga naar:a b Mirko Lindner: »Row Hammer«: geheugenverschijnselen leiden tot beveiligingslacunes. In: prolinux.de. 10 maart 2015, toegankelijk op 14 maart 2015 .
  2. ↑ Ga naar:a c Hanno Böck: Aanval van Bitschubser. In: TIME online. 10 maart 2015, toegankelijk op 14 maart 2015 .
  3. ↑ springen om:a c Yoongu Kim, Ross Daly, Jeremie Kim, Chris Fallin, Ji Hye Lee, Donghyuk Lee, Chris Wilkerson, Konrad Lai, Onur Mutlu: flippen bits in geheugen zonder Them: een experimentele studie van DRAM Disturbance Fouten , Geraadpleegd op 14 maart 2015 (PDF).
  4. Jumping Up↑ programma voor het testen van de DRAM “rij hamer” probleem. In: GitHub. Geraadpleegd op 14 maart 2015 (Engels).
  5. Hoogspringen↑ CVE-2015-0565 op MITRE (Engels)
  6. ↑ Ga naar:a b Hanno Böck: RAM-chips geven aanvallers rootrechten. In: Golem.de. 10 maart 2015, toegankelijk op 14 maart 2015 .
  7. JumpUp ↑ Een gedetailleerde gids voor de aanval is hier beschikbaar
  8. ↑ Ga naar:a b Hanno Böck: Rowhammer: geheugenbit draait om met javascript. In: Golem.de. 28 juli 2015, toegankelijk op 30 juli 2015 .
  9. Jump up↑ Daniel Gruss, Clémentine Maurice, Stefan Mangard: Rowhammer.js: A Remote Software -uced Fault Attack in JavaScript . 27 juli 2015, arxiv : 1507.06955 .
  10. Jump-up↑ Daniel Gruss, Clémentine Maurice: IAIK / rowhammerjs: rowhammerjs / rowhammer.js at master . 27 juli 2015. Betreden op 29 juli 2015.