15Sep

Was ist ASLR und wie schützt es Ihren Computer?

aslr_cpu

Adressraum-Layout-Randomisierung( ASLR) ist eine Sicherheitstechnik, die in Betriebssystemen verwendet wird und erstmals 2001 eingeführt wurde. Die aktuellen Versionen aller gängigen Betriebssysteme( iOS, Android, Windows, macOS und Linux) verfügen über ASLR-Schutz. Aber in der vergangenen Woche wurde eine neue Methode zur Umgehung von ASLR gefunden. Also, sollten Sie sich Sorgen machen?

Für Benutzer ohne Hintergrundprogrammierung kann ASLR verwirrend sein. Um es zu verstehen, müssen Sie zuerst den virtuellen Speicher verstehen.

Was ist ein virtueller Speicher?

Virtual Memory ist eine Speicherverwaltungstechnik mit vielen Vorteilen, wurde aber hauptsächlich entwickelt, um die Programmierung zu vereinfachen. Stellen Sie sich vor, Sie haben Google Chrome, Microsoft Word und mehrere andere Programme auf einem Computer mit 4 GB RAM geöffnet. Insgesamt benötigen die Programme auf diesem Computer viel mehr als 4 GB RAM.Nicht alle Programme sind jedoch jederzeit aktiv oder benötigen gleichzeitig Zugriff auf dieses RAM.

Das Betriebssystem weist --Seiten Speicherbereiche zu. Wenn nicht genügend RAM vorhanden ist, um alle Seiten gleichzeitig zu speichern, werden die Seiten, die am wenigsten benötigt werden, auf der langsameren( aber geräumigeren) Festplatte gespeichert. Wenn die gespeicherten Seiten benötigt werden, wechseln sie auf Bereiche mit weniger notwendigen Seiten, die sich derzeit im RAM befinden. Dieser Prozess wird als Paging bezeichnet und verleiht der Datei pagefile.sys unter Windows seinen Namen.

Virtueller Speicher macht es für Programme einfacher, ihren eigenen Speicher zu verwalten und sie sicherer zu machen. Programme müssen sich nicht darum kümmern, wo andere Programme Daten speichern oder wie viel RAM noch übrig ist. Sie können das Betriebssystem nach Bedarf um zusätzlichen Speicher bitten( oder ungenutzten Speicher zurückgeben).Alles, was das Programm sieht, ist ein einziger fortlaufender Block von Speicheradressen für seine ausschließliche Verwendung, die virtuelle Adressen genannt werden. Das Programm darf den Speicher eines anderen Programms nicht ansehen.

Wenn ein Programm auf den Speicher zugreifen muss, gibt es dem Betriebssystem eine virtuelle Adresse. Das Betriebssystem kontaktiert die Speicherverwaltungseinheit( MMU) der CPU.Die MMU übersetzt zwischen virtuellen und physischen Adressen und gibt diese Information an das Betriebssystem zurück. Zu keinem Zeitpunkt interagiert das Programm direkt mit dem RAM.

Was ist ASLR?

Adressraumlayout Randomization( ASLR) wird hauptsächlich zum Schutz vor Pufferüberlaufangriffen verwendet. Bei einem Pufferüberlauf liefern Angreifer eine Funktion mit so vielen Junk-Daten, wie sie verarbeiten können, gefolgt von einer schädlichen Nutzlast. Die Nutzlast überschreibt Daten, auf die das Programm zugreifen möchte. Anweisungen zum Springen zu einem anderen Punkt im Code sind eine übliche Nutzlast. Die berühmte JailbreakMe-Methode zum Jailbreak von iOS 4 zum Beispiel verwendet einen Pufferüberlauf-Angriff, der Apple dazu auffordert, ASLR zu iOS 4.3 hinzuzufügen.

Pufferüberläufe erfordern, dass ein Angreifer weiß, wo sich jeder Teil des Programms im Speicher befindet. Dies herauszufinden ist normalerweise ein schwieriger Prozess von Versuch und Irrtum. Nachdem sie das festgestellt haben, müssen sie eine Nutzlast herstellen und einen geeigneten Platz finden, um sie zu injizieren. Wenn der Angreifer nicht weiß, wo sich sein Zielcode befindet, kann es schwierig oder unmöglich sein, ihn zu nutzen.

ASLR arbeitet mit der virtuellen Speicherverwaltung zusammen, um die Speicherorte verschiedener Programmteile im Speicher zu randomisieren. Jedes Mal, wenn das Programm ausgeführt wird, werden Komponenten( einschließlich Stack, Heap und Bibliotheken) an eine andere Adresse im virtuellen Speicher verschoben. Angreifer können nicht mehr durch Versuch und Irrtum lernen, wo ihr Ziel ist, weil die Adresse jedes Mal anders sein wird. Im Allgemeinen müssen Anwendungen mit ASLR-Unterstützung kompiliert werden, aber dies wird zum Standard und ist sogar unter Android 5.0 und höher erforderlich.

schützt ASLR Sie noch?

Am vergangenen Dienstag präsentierten Forscher von SUNY Binghamton und der University of California, Riverside, eine Arbeit mit dem Titel Jump Over ASLR: Angriffszweig-Prädiktoren zur Umgehung von ASLR.Das Paper beschreibt eine Möglichkeit, den Branch Target Buffer( BTB) anzugreifen. Der BTB ist ein Teil des Prozessors, der if-Anweisungen beschleunigt, indem er das Ergebnis vorhersagt. Mit der Methode des Autors ist es möglich, Positionen bekannter Verzweigungsbefehle in einem laufenden Programm zu bestimmen. Der fragliche Angriff wurde auf einer Linux-Maschine mit einem Intel Haswell-Prozessor( zuerst im Jahr 2013 veröffentlicht) durchgeführt, könnte aber wahrscheinlich auf jedes moderne Betriebssystem und Prozessor angewendet werden.

Das heißt, Sie sollten nicht unbedingt verzweifeln. Das Papier bot einige Möglichkeiten, wie Hardware- und Betriebssystementwickler diese Bedrohung mindern können. Neuere, feinkörnige ASLR-Techniken würden vom Angreifer mehr Aufwand erfordern, und eine Erhöhung der Entropie( Zufälligkeit) kann den Jump-Over-Angriff unmöglich machen. Höchstwahrscheinlich werden neuere Betriebssysteme und Prozessoren gegen diesen Angriff immun sein.

Was bleibt für , das Sie tun? Der Jump Over Bypass ist neu und wurde noch nicht in freier Wildbahn entdeckt. Wenn Angreifer es ausnutzen, erhöht der Fehler den potenziellen Schaden, den ein Angreifer auf deinem Gerät verursachen kann. Diese Zugriffsebene ist nicht beispiellos;Microsoft und Apple haben ASLR nur in ihren 2007 und später veröffentlichten Betriebssystemen implementiert. Selbst wenn diese Angriffsart an der Tagesordnung ist, werden Sie nicht schlechter gestellt sein als zu Zeiten von Windows XP.

Beachten Sie, dass Angreifer ihren Code weiterhin auf Ihrem Gerät abrufen müssen, um Schaden anzurichten. Dieser Fehler bietet ihnen keine zusätzlichen Möglichkeiten, dich zu infizieren. Wie immer sollten Sie die Best Practices für Sicherheit befolgen. Verwenden Sie Antivirusprogramme, halten Sie sich von skizzenhaften Websites und Programmen fern und halten Sie Ihre Software auf dem neuesten Stand. Indem Sie diese Schritte befolgen und bösartige Schauspieler von Ihrem Computer fernhalten, sind Sie so sicher wie Sie es jemals waren.

Bildquelle: Steve / Flickr