0x02 Video Tutorial: Buffer Overflow – Exploiting the Heap

mx_security_border

Wenn es um Buffer Overflow geht, reden die meisten Leuten von einem Überlauf im Stack Segment. Aber was ist mit dem Heap – dem Speicher, in dem dynamische Variablen zur Laufzeit eines Programms abgelegt werden?

In meinem ersten Video habe ich über Buffer Overflow im Stack Speicher gesprochen. Dabei habe ich gezeigt, wie die Datenstruktur aufgebaut ist und wie Variablen dort verarbeitet werden. Ich erkläre auf einfache Art und Weise, wie es zum einem Überlauf kommt und wie dieser ausgenutzt werden kann.

Über Stack Overflow findet man recht viele Informationen im Netz – allerdings fast nichts zu Heap Overflow. Wodurch wird diese Lücke verursacht und wie kann sie exploited werden?

Buffer Overflow ist die Folge einer Schwachstelle in Computer Software: Indem über Speichergrenzen heraus geschrieben wird, wird dieser Exploit von Angreifern benutzt, um das verwundbare Programm zum Absturz zu bringen. Und sogar Schadcode – der sogenannte Payload – kann hierdurch in das betroffene System eingefügt und ausgeführt werden.

In diesem Video Tutorial erkläre ich zunächst die Struktur des Heap- und des Stack-Segments und wie diese sich unterscheiden. Anschließend exploite ich mein eigenes Demo-Programm und erkläre, was zur Laufzeit des Programms im Speicher passiert.

Erfahren Sie in meinem Video, warum Usereingaben abgesichert werden müssen und wie ein potentieller Hacker diese Schwachstelle ausnutzen kann.

Video: Buffer Overflow -Exploiting the Heap (Englisch)

Wenn für ein Programm während der Laufzeit Speicher reserviert wird, so wird ein Chunk (bestehend aus Meta Daten und den gespeicherten Daten) auf dem Heap abgelegt. Sofern kein Speicher frei gegeben wurde, wird ein neu geschriebener Chunk direkt hinter dem zuletzt geschriebenen Chunk abgespeichert.

Durch die Architektur des Heaps ist es deutlich schwieriger als im Stack, Schadcode in ein System einzufügen. Wichtige Adressen – wie zum Beispiel die Rücksprungadresse – können nicht überschrieben werden und der Angreifer muss wissen, wie das Programm zur Laufzeit reagiert. Daher ist ein Überlauf im Stack Segment deutlich weiter verbreitet als ein Overrun im Heap.

0x01 Video Tutorial: Buffer Overflow im Stack Segment

Für das Verständnis des Videos „Buffer Overflow – Exploiting the Heap“ wird empfohlen, dass Sie das Video 0x01 Video Tutorial: Buffer Overflow im Stack Segment bereits angesehen haben.

In diesem Video Tutorial erkläre ich zunächst die Grundlagen für einen Buffer Overflow und reverse engineere meinen Demo Code mit dem Programm Immunity Debugger. Wie werden Variablen im Stack verarbeitet und wie reagiert das Programm zur Laufzeit?

Hintergrund zu diesem Video

Als das Online-Magazin Hakin9 den Wettbewerb „Record your Video Tutorial“ ausrief, hatte ich genau eine Woche Zeit, um ein Video für diesen Wettbewerb zu erstellen.

Da ich mich schon lange für Themen der IT-Sicherheit interessiere, hatte ich mich kurze Zeit vor dem Wettbewerb bereits mit dem komplexen Thema Buffer Overflow beschäftigt und plante ursprünglich einen Blog-Artikel zu verfassen.

Also machte ich mich an die Arbeit und erstellte zunächst ein Beispiel-Programm in C++. Dieses verwendete ich zur Demonstration neben einigen Präsentationsfolien, um die Theorie anschaulich zu machen. Besonders wichtig war mir, dieses komplexe Thema so einfach wie möglich zu erklären, damit es für den Zuschauer gut verständlich ist.

Den Video-Wettbewerb habe ich gewonnen! Daher entschloss ich mich eine Fortsetzung zu drehen und nach dem ersten Theorie-Video auch einen echten Exploit zu schreiben. Ich entschied mich für einen Überlauf im Heap-Segment…

Brauchen Sie Beratung zum Thema IT Sicherheit?

Schauen Sie doch mal in unserem Security-Portfolio nach, welche Sicherheits-Lösungen für Sie bereit stellen…

Haben Sie noch Fragen? Gerne prüfen wir Ihr bereits vorhandenes Sicherheitskonzept: Nehmen Sie Kontakt zu uns auf!

 

-xyra
http://miriamxyra.com – Miriam Wiesner

Miriam Wiesner

Miriam Wiesner arbeitet seit Dezember 2013 für Proact Deutschland. Dort war sie zunächst als System Engineer für die internen Systeme verantwortlich.
Aktuell ist sie als Consultant mit Fokus auf IT-Security tätig.
Neben der Consulting-Tätigkeit führt sie IT-Sicherheit Audits und Penetrationstests durch, um Kundensysteme auf potentielle Schwachstellen zu prüfen.
Vor ihrer Zeit bei teamix konnte sie bereits Erfahrungen als Systemadministrator sowie als Softwareentwickler sammeln.

 
Kommentare

Noch keine Kommentare vorhanden.

Hinterlassen Sie einen Kommentar