Buffer Overflow

Buffer Overflow

Copyright ┬ę Shutterstock/Virrage Images

Was ist Buffer Overflow?

Bei einem Buffer Overflow handelt es sich um einen Programmierfehler im Quellcode von Computerprogrammen. Diese Fehler sind ├Ąu├čerst gef├Ąhrlich und k├Ânnen dazu f├╝hren, dass der Zwischenspeicher (Buffer) eines Rechners, auf dem der fehlerhafte Code ausgef├╝hrt wird, mit mehr Daten versorgt wird, als er in der Lage ist tempor├Ąr zu speichern. Dadurch landen die Daten nicht nur im vorgesehenen Puffer, sondern k├Ânnen die Speicherstellen ├╝berschreiten.

Diese Tatsache k├Ânnen Computerhacker ausnutzen, um unerlaubte Codes auszuf├╝hren, und so auf diese Weise ein System kompromittieren. Die Behebung von Puffer├╝berl├Ąufen ist ├Ąu├čerst kompliziert, da in vielen F├Ąllen die tieferen Schichten eines Computerprogramms betroffen sind.

Funktionsweise

Bei der Ausf├╝hrung eines Computerprogramms werden w├Ąhrend seiner Laufzeit Funktionsparameter sowie lokale und globale Variablen im Arbeitsspeicher des Computers abgelegt. Moderne Betriebssysteme weisen jeder definierten und initialisierten Datenstruktur einen eigenen Adressraum im Arbeitsspeicher zu. Dieser Adressraum ist virtuell und die Gr├Â├če wird dynamisch angepasst. Bei der Ausf├╝hrung eines Programms werden drei Speicher-Segmente angelegt, und zwar:

  • ein Code-Segment
  • ein Heap-Segment
  • ein Stack-Segment

Stack-Segment

Der Stack-Segment wird bei der Ausf├╝hrung von Programmen als Zwischenspeicher verwendet und befindet sich am Anfang des virtuellen Adressraums. Der Stack basiert auf einer sogenannten “LIFO-Datenstruktur” (Last in First out). Um ├Ąltere Datensegmente abzurufen, muss der Stack zun├Ąchst entleert werden. Genau hier, kann es zu einem Buffer Overflow kommen.

Es kann passieren, dass eine Variable im Stack mit Daten gef├╝llt wird, die gr├Â├čer sind als der vorgesehene Platz innerhalb der Variable. Dabei kann die┬áR├╝cksprungadresse┬áverloren gehen, was zu einem Buffer Overflow f├╝hrt.

Gefahren durch Buffer Overflow

Ein Puffer├╝berlauf kann sich auf unterschiedliche Weisen ├Ąu├čern. Programmabst├╝rze, Verf├Ąlschung von Daten und Besch├Ądigungen von Datenstrukturen sind die h├Ąufigsten Folgen eines Buffer Overflows. Besonders problematisch ist, wenn die R├╝cksprungadresse einer Subroutine mit verf├Ąlschten Daten ├╝berschrieben wird. Damit kann sich ein Angreifer durch Ausf├╝hrung unautorisierter Befehle die Kontrolle bzw. den Zugang zum System verschaffen.

Ein besonders begehrtes Ziel ist der Root-Zugang bei Unix– und Linux-Systeme, der dem Angreifer volle Admin-Rechte verleiht.

Angriffe auf Basis von Buffer Overflows sind in der Computer- und Netzwerksicherheit ein wichtiges Thema. Sie k├Ânnen nicht nur ├╝ber s├Ąmtliche Netzwerkarchitekturen, sondern auch lokal auf einem System realisiert werden. Die Fehler im Programmcode werden in der Regel durch Patches der Hersteller behoben. Neben Fehlern bei der Entwicklung von Programmen wird ein Buffer Overflow prim├Ąr durch die moderne Computer-Architektur beg├╝nstigt, die auf dem Modell von Von-Neumann basiert.

Problematische Programmiersprachen

Die prim├Ąre Ursache f├╝r Buffer Overflows ist der Einsatz von Programmiersprachen, bei denen die Speicherbereiche manuell ├╝berwacht werden m├╝ssen, um das ├ťberschreiten von Speicherbereichen zu verhindern. Zu diesem Kreis geh├Âren insbesondere die Programmiersprachen C und C++, die einen hohen Wert auf Performance legen, und auf Mechanismen zur automatischen Speicher-├ťberwachung verzichten.

Gegenma├čnahmen

Eine sehr wirksame Gegenma├čnahme gegen einen Buffer Overflow ist der Einsatz typischer Programmier- und Script-Sprachen, wie beispielsweise Java, Go oder C#. Bei diesen werden die zugewiesenen Speicherbereiche bereits beim Transpilieren in Maschinensprache durch den Compiler kontrolliert und zur Laufzeit kontinuierlich ├╝berwacht. Dar├╝ber hinaus sind spezielle ├ťberpr├╝fungstools erh├Ąltlich. Diese bieten Entwicklern die M├Âglichkeit, den Quellcode zu analysieren, um m├Âgliche Schwachstellen fr├╝hzeitig zu erkennen und zu beheben.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte