protection, exploit

Avira Scout und Exploit-Abwehrtechniken

Exploit-Abwehrtechniken und Avira Scout

Bei der Abwehr von Exploits gibt es zwei interessante Techniken: Zum einen die Speicher- bzw. Adressverwürfelung (ASLR; Address Space Layout Randomization) und zum anderen die Datenausführungsverhinderung (DEP; Data Execution Prevention). Im Folgenden wird noch erläutert, was unter diesen Begriffen zu verstehen ist. Auf jeden Fall wurden diese Technologien von Computerexperten entwickelt, von Compilerteams in die aktuellen Compiler integriert und vom Chromium-Team im Buildprozess aktiviert. Damit auch unser Browser Avira Scout, der auf Chromium basiert, diese Sicherheitsmaßnahmen übernimmt, heißt es für uns: Hände weg von ASLR/DEP!

Denn wenn ASLR und DEP im Buildprozess aktiviert werden, werden die Flags im PE-Header der kompilierten Dateien geändert. (Mit PE – Portable Executable – wird das Binärformat von ausführbaren Programmen beschrieben.) Das Schreiben eines Scripts, mit dem Erfolge überprüft werden können, bevor eine neue Scout-Version auf den Markt kommt, sollte nicht allzu kompliziert sein. Daher haben wir unserem angehenden Jedi-Ritter Lars folgende Prüfung auferlegt: Er sollte ein Script schreiben, das nach dem Buildprozess und direkt vor der Veröffentlichung ausgeführt wird. Damit können wir sicherstellen, dass die Einstellungen für ASLR und DEP im Kompilierungsschritt in Ordnung sind.

Lars, der seinen Jedi-Vorbildern nacheiferte, gab nicht auf, ehe er sein Ziel erreicht hat. Sie können deshalb bei jeder neuen Version von Avira Scout darauf vertrauen, dass die ASLR-/DEP-Einstellungen den Mindesteinstellungen in Chrome entsprechen. Das heißt, Sie profitieren von den ASLR-/DEP-Einstellungen im Browser Scout, der auf Chromium 49 basiert. Versprochen!

ASLR und DEP – wozu ist das gut?

Dies lässt sich ganz einfach und unkompliziert an einem Beispiel erklären. Hacker nutzen eine Schwachstelle in der Software (z. B. Avira Scout) aus, um binären Programmcode in den Heap einzuschleusen. Der manipulierte Funktionszeiger oder die manipulierte Absenderadresse führen dazu, dass dieser eingeschleuste Code dann ausgeführt wird.

Das Ziel der Angreifer ist es, den Programmablauf zu steuern sowie Funktionen aufzurufen und zusammenzubringen, um beispielsweise eine Datei unter der URL „http://foo.bar“ herunterzuladen und sie dann auszuführen.

Exploit-Abwehrmechanismen erschweren es also Hackern, ihr Ziel zu erreichen, oder verhindern dies sogar. (Hacker lassen sich immer wieder etwas Neues einfallen, um sich unerlaubt Zugang zu verschaffen. Aber gottseidank wird dies für Hacker immer schwieriger und Exploits werden zunehmend unzuverlässiger.)

Speicher- bzw. Adressverwürfelung (ASLR; Address Space Layout Randomization):

Wenn Teile einer ausführbaren Datei (z. B. EXE- oder DLL-Datei) in den Speicher geladen werden, werden diesen Teilen immer zufällig ausgewählte Adressbereiche zugewiesen. Das macht es Hackern sehr schwer, die Funktionen zusammenzufassen, da sie nicht wissen, wo sich die gesuchten Funktionen im Speicher befinden.

Datenausführungsverhinderung (DEP; Data Execution Prevention):

Speicherbereiche sind entweder „Daten“, die während der Programmausführung geändert, aber nicht ausgeführt werden können (Heap-Speicher), oder „Code“, der nicht ausgeführt werden kann. So weit, so gut. Mit DEP wird schlicht und ergreifend verhindert, dass die Ausführungsabfolge zum Heap umgeleitet wird.

Werden diese beiden Techniken miteinander kombiniert, haben die meisten Exploits keine Chance mehr. Daher sollte ASLR/DEP auf jeden Fall auf Ihrer Wunschliste ganz oben stehen.

Ihre Hausaufgabe

Denken Sie deshalb beim Entwickeln von Software bitte daran, DEP und ASLR in den Compiler-Einstellungen zu aktivieren!

TL;DR:

Hebeln Sie nie bestehende Sicherheitsfunktionen aus. Wirklich niemals.

Dieser Artikel ist auch verfügbar in: EnglischFranzösischItalienisch

I use science to protect people. My name is Thorsten Sick and I do research projects at Avira. My last project was the ITES project where I experimented with Sandboxes, Sensors and Virtual Machines. Currently I am one of the developers of the new Avira Browser