Auftreten von Buffer Overflow-Exploits
Angreifer verwenden Buffer Overflow-Exploits zum Ausführen von Code, indem die für einen Eingabeprozess reservierten Speicherpuffer mit fester Größe überflutet werden. Mit diesem Code kann der Angreifer den Zielcomputer übernehmen oder seine Dateien schädigen.
Die folgenden Prozesse stellen stapelbasierte Buffer Overflow-Angriffe dar:
- Normaler Stapelspeicherprozess: Das Stapelspeicherobjekt mit fester Größe ist in der Regel leer und wartet auf Benutzereingaben. Wenn ein Programm Eingaben des Benutzers empfängt, werden die Daten am Anfang des Stapels gespeichert, und ihnen wird eine Absenderspeicheradresse zugewiesen. Beim Verarbeiten des Stapels werden die Eingaben des Benutzers an die vom Programm angegebene Absenderadresse gesendet.
- Stapelüberlauf: Beim Schreiben des Programms wird eine bestimmte Menge an Speicherplatz für die Daten reserviert. Der Stapel läuft über, wenn die Menge der geschriebenen Daten größer ist als der für sie im Stapelspeicher reservierte Speicherplatz. Dies stellt nur in Kombination mit bösartigen Eingaben ein Problem dar.
- Ausnutzen des Überlaufs: Wenn das Programm darauf wartet, dass ein Benutzer seinen Namen eingibt, aber der Angreifer einen ausführbaren Befehl eingibt, der die Stapelgröße überschreitet, wird der Befehl außerhalb des reservierten Speicherplatzes gespeichert.
- Ausführen des bösartigen Codes: Der Befehl wird nicht automatisch ausgeführt, nur weil er den Stapelpufferspeicherplatz überschreitet. Dies könnte jedoch der Fall sein, wenn vom Angreifer eine Absenderadresse angegeben wird, die auf den bösartigen Befehl verweist. Zunächst stürzt das Programm aufgrund des Buffer Overflows ab, aber es versucht, eine Wiederherstellung vorzunehmen, indem es die vom Angreifer angegebene Absenderadresse verwendet. Wenn es sich bei der Absenderadresse um eine gültige Adresse handelt, wird der bösartige Befehl ausgeführt.
- Ausnutzen der Berechtigungen: Da Programme in der Regel im Kernel-Modus oder mit von einem Dienstkonto geerbten Berechtigungen ausgeführt werden, wird der bösartige Code mit denselben Berechtigungen wie die beschädigte Anwendung ausgeführt. Dies bedeutet, der Angreifer könnte vollständige Kontrolle über das Betriebssystem erlangen.