Titelaufnahme

Titel
Aktuelle Techniken gegen Stack-/Heap-Smashing
Weitere Titel
Actual techniques against Stack-/Heap-Smashing
VerfasserFilz, Manuel
Betreuer / BetreuerinKrüger, Michael
Erschienen2012
Datum der AbgabeJuni 2012
SpracheDeutsch
DokumenttypBachelorarbeit
Schlagwörter (DE)Stack-Smashing / Heap-Smashing / Pufferüberlauf / ASLR / NX-Bit
Schlagwörter (EN)Stack-Smashing / Heap-Smashing / Buffer Overflow / ASLR / NX-Bit
Zugriffsbeschränkung
 _
Klassifikation
Zusammenfassung (Deutsch)

Seit mehr als zwei Jahrzehnten beschäftigen sich Entwickler und Sicherheitsexperten mit dem Thema Buffer Overflow. Trotzdem stellen sie heutzutage noch immer eine Schwachstelle in Programmen dar, die von Angreifern ausgenutzt werden können. Die Ursache liegt meistens in einem achtlosen Programmierstil. Dieses Dokument beschäftigt sich mit einer speziellen Form des Buffer Overflows, dem sogenannten Stack-/Heap-Smashing. Im Detail soll das Verhalten anhand von aktuellen Betriebssystemen analysiert werden. Als Basis werden Grundlagen zur technischen Informatik betrachtet, um ein Grundverständnis für die Thematik zu kreieren. Im Kapitel Schutzmechanismen werden die Verfahren ASLR und NX-Bit im Detail betrachtet. Sie stellen heutzutage die Standardabwehr gegen Stack-/Heap-Smashing dar. Auf einer anderen Ebene arbeiten die Compiler, die üblicherweise Sicherheitsbereiche in den Assemblercode einfügen, um Manipulationen zu detektieren. Die Verfahren variieren hinsichtlich der Initialisierung und Sicherung des Schutzbereiches. Trotz der unterschiedlichen Ansätze gibt es Methoden und Tricks, um die Schutzmechanismen zu umgehen. Die Durchführung mehrerer praktischer Tests bezüglich der Funktionalität der Schutzmechanismen und deren Umgehung stellen das Hauptziel dieser Arbeit dar.

Zusammenfassung (Englisch)

Buffer overflow vulnerabilities exist since more than two decades and they are still frequently exploited by attackers. By exploiting these existing vulnerabilities, attackers are able to completely compromise target systems. In most cases because of only one unsecure line of code. However, the aspect that will be discussed in this thesis is related to a particular type of buffer overflows called stack-/heap-smashing. In detail, the behavior on the basis of modern operating system will be investigated. First of all the analysis will concentrate on basical theoretical aspects behind the concept of stack-/heap-smashing. The theoretical part includes considerations concerning the science of computer engineering like the functionality of CPU register, the construction of the stack layout and the process mechanism of the memory management. The purpose is to help the reader to understand the content of this document and make the subject less mysterious.

In a further step some of the protections that have been developed in order to counter and defeat stack-/heap-smashing will be considered. These countermeasures are provided at different levels ranging from hardware- to compiler-based.

The goal is to create a practical scenario in order to analyze the situation on Windows and Linux. In addition, some tricks will be tried and discussed to bypass these protections. Attempts will be carried out to exploit the vulnerabilities even if a countermeasure has been applied.