Was ist ASLR und wie hält es Ihren Computer sicher?
Adress Space Layout Randomization (ASLR) ist eine Sicherheitstechnik, die in Betriebssystemen zum ersten Mal 2001 implementiert wurde. Die aktuellen Versionen aller gängigen Betriebssysteme (iOS, Android, Windows, MacOS und Linux) verfügen über ASLR-Schutz. In der letzten Woche wurde jedoch eine neue Methode zur Umgehung von ASLR gefunden. Also sollten Sie sich Sorgen machen?
Für diejenigen ohne Programmierhintergrund auf niedriger Ebene kann ASLR verwirrend sein. Um dies zu verstehen, müssen Sie zunächst den virtuellen Speicher verstehen.
Was ist virtueller Speicher??
Virtueller Speicher ist eine Speicherverwaltungsmethode mit vielen Vorteilen, die jedoch hauptsächlich zur Vereinfachung der Programmierung entwickelt wurde. 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 mehr als 4 GB RAM. Allerdings sind nicht alle Programme zu jeder Zeit aktiv oder benötigen gleichzeitigen Zugriff auf diesen RAM.
Das Betriebssystem weist den aufgerufenen Programmen Speicherblöcke zu Seiten. Wenn nicht genügend RAM zum Speichern aller Seiten auf einmal vorhanden ist, werden die am wenigsten benötigten Seiten auf der langsameren (aber umfangreicheren) Festplatte gespeichert. Wenn die gespeicherten Seiten benötigt werden, werden die Speicherplätze umgestellt, wobei sich weniger benötigte Seiten im RAM befinden. Dieser Vorgang wird als Paging bezeichnet und verleiht der Datei pagefile.sys unter Windows seinen Namen.
Virtueller Speicher erleichtert es Programmen, ihren eigenen Speicher zu verwalten, und macht sie außerdem sicherer. Programme müssen sich nicht darum kümmern, wo andere Programme Daten speichern oder wie viel RAM noch vorhanden ist. Sie können das Betriebssystem lediglich nach zusätzlichem Speicher fragen (oder ungenutzten Speicher zurückgeben). Alles, was das Programm sieht, ist ein einziger fortlaufender Block von Speicheradressen für die ausschließliche Verwendung, virtuelle Adressen genannt. Das Programm darf den Speicher eines anderen Programms nicht anzeigen.
Wenn ein Programm auf den Speicher zugreifen muss, gibt es dem Betriebssystem eine virtuelle Adresse. Das Betriebssystem kontaktiert die Memory Management Unit (MMU) der CPU. Die MMU übersetzt zwischen virtuellen und physischen Adressen und gibt diese Informationen an das Betriebssystem zurück. Zu keinem Zeitpunkt interagiert das Programm direkt mit dem RAM.
Was ist ASLR??
Adressraum-Layout-Randomisierung (ASLR) wird hauptsächlich zum Schutz vor Pufferüberlaufangriffen verwendet. Bei einem Pufferüberlauf versorgen Angreifer eine Funktion mit so vielen Junk-Daten, wie sie verarbeiten können, gefolgt von einer böswilligen Nutzlast. Die Nutzdaten überschreiben die Daten, auf die das Programm zugreifen möchte. Anweisungen, um zu einem anderen Punkt im Code zu springen, sind eine übliche Nutzlast. Die bekannte JailbreakMe-Methode zum Jailbreaking von iOS 4 verwendete beispielsweise einen Pufferüberlaufangriff, der Apple dazu aufforderte, ASLR zu iOS 4.3 hinzuzufügen.
Bei Pufferüberläufen muss ein Angreifer wissen, wo sich jeder Teil des Programms im Speicher befindet. Dies herauszufinden, ist in der Regel ein schwieriger Prozess von Versuch und Irrtum. Nach der Feststellung müssen sie eine Nutzlast herstellen und einen geeigneten Platz finden, um sie einzuspritzen. Wenn der Angreifer nicht weiß, wo sich sein Zielcode befindet, kann es schwierig oder unmöglich sein, ihn auszunutzen.
ASLR arbeitet mit der Verwaltung des virtuellen Speichers zusammen, um die Positionen der verschiedenen Teile des Programms im Speicher zufällig zu bestimmen. Bei jeder Ausführung des Programms werden Komponenten (einschließlich Stapel, Heap und Bibliotheken) an eine andere Adresse im virtuellen Speicher verschoben. Angreifer können nicht mehr durch Versuch und Irrtum herausfinden, wo sich ihr Ziel befindet, da die Adresse jedes Mal anders ist. Im Allgemeinen müssen Anwendungen mit ASLR-Unterstützung kompiliert werden. Dies wird jedoch zur Standardeinstellung und ist sogar für Android 5.0 und höher erforderlich.
So schützt ASLR Sie immer noch?
Vergangenen Dienstag präsentierten Forscher von SUNY Binghamton und der University of California, Riverside, einen Artikel mit dem Titel Jump Over ASLR: Angriff auf Zweigprädiktoren, um ASLR zu umgehen. In dem Artikel wird detailliert beschrieben, wie Sie den Branch Target Buffer (BTB) angreifen können. Die BTB ist ein Teil des Prozessors, der if-Anweisungen durch Vorhersagen des Ergebnisses beschleunigt. Mit der Autorenmethode können Standorte bekannter Verzweigungsbefehle in einem laufenden Programm ermittelt werden. Der fragliche Angriff wurde auf einem Linux-Computer mit Intel-Haswell-Prozessor (erstmals veröffentlicht im Jahr 2013) durchgeführt, könnte jedoch auf jedes moderne Betriebssystem und jeden Prozessor angewendet werden.
Das heißt, Sie sollten nicht unbedingt verzweifeln. Das Papier bot einige Möglichkeiten, wie Hardware- und Betriebssystementwickler diese Bedrohung abmildern können. Neuere, feinkörnige ASLR-Techniken würden vom Angreifer mehr Aufwand erfordern, und die Erhöhung der Entropie (Zufälligkeit) kann den Sprung über dem Angriff unmöglich machen. Höchstwahrscheinlich sind neuere Betriebssysteme und Prozessoren gegen diesen Angriff immun.
Was bleibt also noch? Sie machen? 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 Ihrem Gerät verursachen kann. Diese Zugriffsstufe ist nicht beispiellos. Microsoft und Apple haben ASLR nur in ihren Betriebssystemen implementiert, die 2007 und später veröffentlicht wurden. Selbst wenn diese Art von Angriffen alltäglich wird, wird es Ihnen nicht schlechter gehen als zu Zeiten von Windows XP.
Denken Sie daran, dass Angreifer immer noch ihren Code auf Ihr Gerät laden müssen, um Schaden zu verursachen. Dieser Fehler bietet ihnen keine zusätzlichen Möglichkeiten, Sie zu infizieren. Wie immer sollten Sie die bewährten Sicherheitsmethoden einhalten. Verwenden Sie Antivirus-Programme, halten Sie sich von skizzenhaften Websites und Programmen fern und halten Sie Ihre Software auf dem neuesten Stand. Wenn Sie diese Schritte ausführen und bösartige Akteure von Ihrem Computer fernhalten, sind Sie so sicher wie nie zuvor.
Bildnachweis: Steve / Flickr