
Address Space Layout Randomization (ASLR) is een beveiligingstechniek die wordt gebruikt in besturingssystemen, voor het eerst geïmplementeerd in 2001. De huidige versies van alle belangrijke besturingssystemen (iOS, Android, Windows, macOS en Linux) zijn voorzien van ASLR-bescherming. Maar in de afgelopen week is er een nieuwe methode gevonden om ASLR te omzeilen. Dus, moet u zich zorgen maken?
Voor mensen zonder programmeerachtergrond op laag niveau kan ASLR verwarrend zijn. Om het te begrijpen, moet u eerst het virtuele geheugen begrijpen.
Wat is virtueel geheugen?
Virtueel geheugen is een geheugenbeheertechniek met veel voordelen, maar het is vooral gemaakt om programmeren gemakkelijker te maken. Stel je voor dat je Google Chrome, Microsoft Word en verschillende andere programma’s hebt geopend op een computer met 4 GB RAM. In totaal gebruiken de programma’s op deze computer veel meer dan 4 GB RAM. Niet alle programma’s zijn echter altijd actief of hebben gelijktijdige toegang tot dat RAM nodig.
Het besturingssysteem wijst stukjes geheugen toe aan programma’s die worden aangeroepen Pagina’s. Als er niet genoeg RAM is om alle pagina’s tegelijk op te slaan, worden de pagina’s die waarschijnlijk het minst nodig zijn, opgeslagen op de langzamere (maar ruimere) harde schijf. Wanneer de opgeslagen pagina’s nodig zijn, wisselen ze tussen spaties met minder noodzakelijke pagina’s in het RAM. Dit proces wordt paging genoemd en geeft zijn naam aan het bestand pagefile.sys in Windows.
Virtueel geheugen maakt het voor programma’s gemakkelijker om hun eigen geheugen te beheren en maakt ze ook veiliger. Programma’s hoeven zich geen zorgen te maken over waar andere programma’s gegevens opslaan of hoeveel RAM er nog over is. Ze kunnen het besturingssysteem gewoon om extra geheugen vragen (of ongebruikt geheugen retourneren) indien nodig. Het programma ziet alleen een enkel doorlopend stuk geheugenadressen voor exclusief gebruik, virtuele adressen genaamd. Het programma mag niet in het geheugen van een ander programma kijken.
Wanneer een programma toegang tot geheugen nodig heeft, geeft het het besturingssysteem een ​​virtueel adres. Het besturingssysteem maakt contact met de geheugenbeheereenheid (MMU) van de CPU. De MMU vertaalt tussen virtuele en fysieke adressen en stuurt die informatie terug naar het besturingssysteem. Op geen enkel moment heeft het programma directe interactie met RAM.
Wat is ASLR?
Address Space Layout Randomization (ASLR) wordt voornamelijk gebruikt ter bescherming tegen bufferoverloopaanvallen. In een bufferoverloop voeren aanvallers een functie zoveel mogelijk ongewenste gegevens in als deze aankan, gevolgd door een kwaadaardige payload. De payload zal de gegevens overschrijven waartoe het programma toegang wil. Instructies om naar een ander punt in de code te springen, zijn een veel voorkomende payload. De beroemde JailbreakMe-methode voor het jailbreaken van iOS 4, bijvoorbeeld, gebruikte een bufferoverloopaanval, waardoor Apple werd gevraagd ASLR toe te voegen aan iOS 4.3.
Bufferoverflows vereisen dat een aanvaller weet waar elk onderdeel van het programma zich in het geheugen bevindt. Dit uitzoeken is meestal een moeilijk proces van vallen en opstaan. Nadat ze dat hebben vastgesteld, moeten ze een lading maken en een geschikte plaats vinden om deze te injecteren. Als de aanvaller niet weet waar zijn doelcode zich bevindt, kan het moeilijk of onmogelijk zijn om deze te misbruiken.
ASLR werkt samen met virtueel geheugenbeheer om de locaties van verschillende delen van het programma in het geheugen willekeurig te maken. Elke keer dat het programma wordt uitgevoerd, worden componenten (inclusief de stack, heap en bibliotheken) naar een ander adres in het virtuele geheugen verplaatst. Aanvallers kunnen met vallen en opstaan ​​niet meer leren waar hun doelwit is, omdat het adres elke keer anders zal zijn. Over het algemeen moeten applicaties worden gecompileerd met ASLR-ondersteuning, maar dit wordt de standaard en is zelfs vereist op Android 5.0 en hoger.
Dus beschermt ASLR u nog steeds?
Afgelopen dinsdag presenteerden onderzoekers van SUNY Binghamton en de University of California, Riverside, een paper met de titel Jump Over ASLR: Attacking Branch Predictors to Bypass ASLR. De paper beschrijft een manier om de Branch Target Buffer (BTB) aan te vallen. De BTB maakt deel uit van de processor die als uitspraken versnelt door de uitkomst te voorspellen. Met behulp van de auteursmethode is het mogelijk om locaties van bekende vertakkingsinstructies in een lopend programma te bepalen. De aanval in kwestie werd uitgevoerd op een Linux-machine met een Intel Haswell-processor (voor het eerst uitgebracht in 2013), maar kan waarschijnlijk worden toegepast op elk modern besturingssysteem en elke moderne processor.
Dat gezegd hebbende, je hoeft niet per se te wanhopen. De paper bood een paar manieren waarop ontwikkelaars van hardware en besturingssystemen deze dreiging kunnen verminderen. Nieuwere, fijnkorrelige ASLR-technieken zouden meer inspanning van de aanvaller vergen, en het verhogen van de hoeveelheid entropie (willekeur) kan de Jump Over-aanval onhaalbaar maken. Hoogstwaarschijnlijk zijn nieuwere besturingssystemen en processors immuun voor deze aanval.
Dus wat blijft er over u Te doen? De Jump Over-bypass is nieuw en is nog niet in het wild gezien. Wanneer aanvallers hiervan misbruik maken, vergroot de fout de potentiële schade die een aanvaller op uw apparaat kan aanrichten. Dit toegangsniveau is niet ongekend; Microsoft en Apple hebben ASLR alleen geïmplementeerd in hun besturingssystemen die zijn uitgebracht in 2007 en later. Zelfs als deze stijl van aanvallen alledaags wordt, zult u er niet slechter aan toe zijn dan in de tijd van Windows XP.
Houd er rekening mee dat aanvallers hun code nog steeds op uw apparaat moeten krijgen om schade aan te richten. Deze fout biedt hen geen extra manieren om u te infecteren. Zoals altijd moet u de best practices voor beveiliging volgen. Gebruik antivirus, blijf uit de buurt van vage websites en programma’s en houd uw software up-to-date. Door deze stappen te volgen en kwaadwillende actoren van uw computer te weren, bent u net zo veilig als ooit tevoren.
Afbeelding tegoed: Steve / Flickr