Impressum
Aktuelles
Unternehmensprofil
Sicherheitsloesungen
Dienstleistungen
Trainings
Presse
Startseite
Wir ueber uns
Unsere Kunden
Das Team
Unsere Kompetenz
Advisories
Jobs und Karrriere
Anfahrtsskizze
Buffer-Overflows und Format String Schwachstellen

Eine Einführung in die Thematik von Tobias Klein

Bei näherer Betrachtung beruhen die meisten Schwachstellen, welche zur erfolgreichen Kompromittierung eines Systems ausgenutzt werden können, auf Fehlern innerhalb der eingesetzten Software. Solche Software-Schwachstellen lassen sich dabei in verschiedene Klassen unterteilen, wobei jeder Einzelnen in der Regel eine jeweils unterschiedliche Ursache zugrunde liegt. So stellen beispielsweise Buffer Overflows, Format-String-Schwachstellen, Race Conditions, Integer Overflows, sowie das so genannte Cross Site Scripting (XSS) eine jeweils eigenständige Klasse von Software-Schwachstellen dar. Diese Liste ist dabei bei weitem nicht vollständig, sondern soll lediglich die Komplexität dieser Thematik veranschaulichen.

Diese Art von Schwachstellen, welche bei näherer Betrachtung stets aufgrund unvorsichtiger oder fehlerhafter Programmierung entstehen, können in jeder Art von Software auftreten. Von Betriebssystemen, Server-Diensten, Client-Anwendungen, Web-Applikationen bis hin zu Embedded Systems, überall treten solche Fehler mit einer mitunter erschreckenden Häufigkeit auf. Auch regelmäßig und gewissenhaft überprüfte Software ist nicht immun gegen entsprechende Programmierfehler. Zudem sollte man stets beachten, dass auch Sicherheitsprodukte vor solchen Schwachstellen nicht gefeit sind. So bedeutet Sicherheits-Software nicht unmittelbar auch sichere Software.

Viele Software-Schwachstellen lassen sich beiderseits remote oder lokal ausnutzen, so dass sie dazu missbraucht werden können, in einen entfernten Rechner einzubrechen, oder um lokal die entsprechenden Rechte zu erweitern (Privilege Escalation). Zudem lässt sich die gezielte Ausnutzung solcher Schwachstellen mit Hilfe entsprechender Programme oder Skripte (Exploits) weitgehend automatisieren. Dies ermöglicht, neben einem manuellen Einbruch, ebenfalls die Erstellung so genannter Mass Rooter oder Würmer (Sapphire, Code Red, Slapper,...), welche neben dem eigentlichen Einbruch ebenfalls die Verbreitung vollständig automatisieren.

Das im September 2003 im dpunkt Verlag erscheinende Buch „Buffer Overflows und Format-String-Schwachstellen“ gibt ein Überblick über zwei der wohl am häufigsten ausgenutzten Klassen von Software-Schwachstellen: Buffer-Overflow- und Format-String-Schwachstellen. Ziel soll es sein, die Ursachen der beiden Schwachstellen sowie die gezielten Angriffsmethoden, aber auch die zur Verfügung stehenden Gegenmaßnahmen darzustellen. Trotz des Überblickcharakters handelt es sich jedoch um keine umfassende Darstellung, die alle erdenklichen Bereiche im Zusammenhang mit der Buffer-Overflow- bzw. der Format-String-Problematik in erschöpfendem Maße behandelt. Dies wäre aufgrund der Vielschichtigkeit sowie der stets vorherrschenden Dynamik in diesem Bereich bei objektiver Betrachtung gar nicht zu verwirklichen. Deshalb konzentriert sich dieses Buch darauf, zumindest die grundlegenden Konzepte in einem angemessenen Rahmen zu behandeln.

Funktionsweisen, Exploits und Gegenmaßnahmen

Buffer Overflows und Format-String-Schwachstellen sind Ausgangspunkt für den Großteil aller Systemeinbrüche. Das Wissen über die Funktionsweise und die gezielte Ausnutzung dieser Software-Schwachstellen ermöglicht es Angreifern, in Systeme aller Art einzudringen und Schaden anzurichten.

Dieses Buch gibt einen umfassenden Überblick über diese beiden bedrohlichen Sicherheitslücken. Zunächst werden ihre Ursachen sowie entsprechende Angriffsmethoden detailliert erläutert:
• klassische Stack-basierte Buffer Overflows
• Off-By-Ones und Frame Pointer Overwrites
• BSS Overflows und Heap Overflows
• Return-into-Libc und Return-into-PLT
• Zeigermanipulationen
• One-Shot-Methode
• Short-Write-Methode
• Per-Byte-Write-Methode

Anschließend werden Gegenmaßnahmen vorgestellt und hinsichtlich ihrer jeweiligen Möglichkeiten und Grenzen untersucht:
• Sichere Programmierung
• Source Code Audit
• Statische und dynamische Analysen
• Fault Injection
• Reverse Engineering
• Compiler-Erweiterungen
• Wrapper, non-executable Stack, PaX, ...

Die vermittelten Inhalte richten sich gleichermaßen an Programmierer, die ihre Software sicherer entwickeln wollen, als auch an Systemadministratoren und Sicherheitsverantwortliche, die hier erfahren, wie sie sich vor Einbrüchen über diese Software-Schwachstellen schützen können. Vorausgesetzt werden Kenntnisse der Programmiersprache C sowie der Funktionsweise von Unix-Betriebssystemen.

Alle Beispiele beziehen sich auf Unix-Betriebssysteme. Die vorgestellten Konzepte und Techniken lassen sich jedoch ohne weiteres auf andere Plattformen übertragen.
Zielgruppe:
• C/C++-Programmierer
• Administratoren
• IT-Sicherheitsverantwortliche

Hier können Sie das Buch kaufen: Amazon

Weitere Informationen finden Sie auch beim dpunkt.Verlag.

Bild Buch