Menü
Security

Die Rückkehr der Pufferüberläufe

Von
vorlesen Drucken Kommentare lesen 355 Beiträge

Zwei Experten stellen auf der Sicherheitskonferenz Black Hat Techniken vor, die das Sicherheitsproblem Nummer eins der letzten Jahre wieder akut werden lassen könnten: Die Ausnutzung von Pufferüberläufen. Dabei gelingt es einem Angreifer, einer Applikation eigenen Maschinencode unterzujubeln und ihn mit deren Rechten zur Ausführung zu bringen.

Microsoft hat in den Windows-Betriebssystemen der letzten Jahre einige Maßnahmen ergriffen, die vor dieser Art von Angriffen schützen sollen. Eine davon ist die Data Execution Prevention (DEP, auch bekannt als NX, "no-execute"): Die Zugriffsbits für die mit Daten belegten Speicherbereicht, insbesondere den Stack, werden so gesetzt, dass der Prozessor dort keinen Code ausführt. Code, der durch einen Pufferüberlauf auf den Stack gelangt, kann dadurch nicht zur Ausführung kommen.

Dummerweise macht Suns virtuelle Java-Maschine den Schutz wieder zunichte: Sie hat ihre eigene Speicherverwaltung und fordert vom System allen Speicher mit gesetztem PAGE_EXECUTE_READWRITE an, also ausführbar. Das lässt sich "über die Bande" ausnutzen: Man schreibt ein Java-Applet, das Speicher anfordert und ihn mit Schadcode füllt. Es selbst kann nun aus seiner Sandbox zwar nicht ausbrechen, aber wenn es gelingt, durch einen Pufferüberlauf in irgendeiner anderen Komponente des Browsers oder eines Plug-ins einen Sprung in den Java-Speicher zu veranlassen, wird der Schadcode ausgeführt.

Eine weitere Technik soll in Vista die Ausnutzung von Buffer Overflows erschweren: Die Address Space Layout Randomisation (ASLR). Beim Laden eines Prozesses wählt Vista sowohl für den Code als auch für DLLs und Datenobjekte wie Stack und Heap nach Möglichkeit zufällige Adressen. Angriffstechniken, bei denen man Pufferüberläufe ausnutzt, um bestimmte bekannte Adressen anzuspringen, laufen so ins Leere. Dem begegnen die Hacker mit "Spraying"-Techniken: Sie duplizieren ihren Schadecode einfach über einen Speicherbereich von Hunderten von Megabyte. Auch wenn die Anfangsadresse zufällig ist, so gibt es doch nur einen gewissen Bereich, in dem sie liegen kann. Springt man ein paar Megabyte dahinter, dann wird man schon eine der Kopien des Schadcodes erwischen.

Das sind nur zwei der Techniken, die Alexander Sotirov und Mark Dowd in ihrem 53-seitigen Paper Bypassing Browser Memory Protections vorstellen. Weitere Angriffe zielen auf das Flash-Plug-in oder auf .NET User Controls, die der Internet Explorer in der Default-Konfiguration ohne Rückfrage beim Benutzer ausführt, weil sie in der .NET-Sandbox als sicher gelten.

Die Beiden sind beileibe keine Unbekannten. Alexander Sotirov ist Sicherheitsspezialist bei VMware und hat unter anderem die 2007 bekannt gewordene, kritische ANI-Lücke entdeckt. Mark Dowd von ISS/IBM hat erst kürzlich mit einem Paper zu Angriffen auf die virtuelle Umgebung von Flash ActionScript für Aufsehen gesorgt. Von daher ist ihre Ansage, dass das Paper die Browser-Sicherheit "um 10 Jahre zurückwirft", durchaus ernst zu nehmen. Ob die neuen Techniken aber tatsächlich gleich wie in manchen amerikanischen Medien behauptet das Ende der Vista-Sicherheitstechniken bedeuten, werden erst genauere Analysen zeigen.

Microsofts letzter Schutzwall gegen Browser-Bugs scheint jedenfalls noch nicht gefallen zu sein. In der Veröffentlichung ist mit keiner Silbe die Rede davon, dass die mit Vista eingeführte Sicherheitsarchitektur der Mandatory Access Control angekratzt worden wäre. In Vista läuft der Internet Explorer und alle von ihm gestarteten Prozesse auf dem Integrity Level Low, von wo aus er nur eingeschränkten Zugriff auf die Dateien und Prozesse des Benutzers (Level Medium) und erst recht keinen auf das System (High und System) hat. Mehr dazu im Artikel Rechte und Rechtschaffenheit auf heise security. (bo)