Jeden Tag entdecken und nutzen Hacker auf der ganzen Welt neue Schwachstellen in Websites, Anwendungen und sogar in der Systemarchitektur. Allen elektronischen Geräten, ob alt oder neu, ist gemeinsam, dass sie von Programmen betrieben werden, die im Speicher gespeichert sind. Hacker haben dies ausgenutzt und Sicherheitslücken gefunden, die als Pufferüberläufe bekannt sind.

Obwohl nicht neu, haben Pufferüberlaufangriffe und Sicherheitslücken im Cyberspace Chaos angerichtet. Hier erklären wir Ihnen, was Buffer-Overflow-Angriffe sind und wie Sie sie verhindern können.

Verständnis von Puffern und Systemspeicher

Um zu verstehen, was ein Pufferüberlaufangriff ist und wie er funktioniert, müssen Sie wissen, was ein Puffer ist und wie der Speicher eines Computers funktioniert.

Stack- und Heap-Speicher sind zwei Hauptmerkmale des Arbeitsspeichers eines Computers. Sie sind Datenstrukturen, die für die Speicherzuordnung verwendet werden. Obwohl sie ähnlich sind, Stack- und Heap-Speicher unterscheiden sich in mehrfacher Hinsicht.

instagram viewer

Der Stapel, der das Last-in-First-out (LIFO)-Konzept verwendet, wird im RAM (Random Access Memory) verwendet Programmausführungen temporär speichern, während der Heap Speicher über dynamische Allokation global zuweist Variablen. Aber das einzige, was sie gemeinsam haben, ist ein Puffer.

Was ist ein Puffer?

Ein Puffer ist ein Speicherbereich, in dem Daten gespeichert werden, höchstwahrscheinlich im RAM eines Computers, während sie von einem Ort zum anderen verschoben werden. Diese Daten sind in der Regel Programme, die ausgeführt werden müssen. Puffer werden im Stack oder Heap gespeichert. Sie optimieren die Ausführung von Daten.

Was ist ein Pufferüberlauf?

Ein Pufferüberlauf tritt auf, wenn der Puffer mehr Daten als seine Speicherkapazität empfängt. Da es diese Datenmenge nicht verarbeiten kann, läuft es über.

Jetzt ist im Speicher eines Computers direkt nach einem Puffer oder einem Pufferraum eine Rückkehradresse. Diese Rücksprungadresse wird eigentlich als Extended Instruction Pointer (EIP) bezeichnet. Seine Funktion besteht darin, den Computer auf ein bestimmtes Programm zu verweisen, wenn es gefüllt ist. Wenn ein Puffer mehr Daten enthält, als er aufnehmen kann, und überläuft, läuft er in die Rücksprungadresse über.

Um dies zu verstehen, nehmen wir an, Sie haben einen Pufferspeicher, der nur fünf Buchstaben aufnehmen kann. Wenn Sie also Wörter wie „Zucker“ oder „Frieden“ eingeben, kann der Pufferfluss diese enthalten. Aber wenn Sie ein Wort wie „Authentifizierung“ haben, wird es unweigerlich überschwappen. Dies führt zu einem Fehler oder Absturz im System. Aber Hacker können diese Schwachstelle ausnutzen, um einen Pufferüberlaufangriff zu starten.

Was ist ein Buffer Overflow-Angriff und wie funktioniert er?

Pufferüberlaufangriffe treten auf, wenn der Hacker die Kontrolle über die Absenderadresse oder EIP übernimmt. Wenn der Angreifer die Größe des Speichers eines Systems kennt, kann er absichtlich Daten in dieses System schreiben, nur um es zu überfluten. Dann stellen sie sicher, dass die EIP oder Absenderadresse so geschrieben ist, dass sie auf ein Programm verweist, das ihnen Zugriff auf das System verschaffen oder auf dem System gespeicherte vertrauliche Informationen preisgeben kann.

Der Angreifer kann sogar einige Daten schreiben, die bösartigen Code enthalten und den Puffer zum Überlaufen bringen. Das EIP wird dann geschrieben, um das System zurück zum bösartigen Code umzuleiten, und es wird ausgeführt. Dann erlangt der Hacker die Kontrolle über das System.

Es gibt fünf Hauptschritte bei Pufferüberlaufangriffen:

  1. Spicken
  2. Fuzzing
  3. Versatz finden
  4. Überschreiben der EIP- oder Absenderadresse
  5. Ausnutzen der Schwachstelle

Spiken ist der erste Schritt. Hier finden die Hacker den Teil des Programmspeichers, der für Pufferüberläufe anfällig ist. Dann kommt Fuzzing, das Spiking ähnelt, aber hier sendet der Hacker Zeichen an das Programm, um zu sehen, ob es geknackt werden kann. Sobald dies erfolgreich war, sucht der Angreifer den Offset, an dem der Puffer übergelaufen ist. Dies geschieht, um die Größe des Puffers und die Rücksendeadresse zu kennen. Dann fügt der Hacker einen schädlichen Shell-Code ein und kontrolliert das System.

Welche Arten von Buffer Overflow-Angriffen gibt es?

Es gibt zwei Haupttypen von Pufferüberlaufangriffen: Stack-basierte und Heap-basierte Angriffe.

1. Stapelbasierte Pufferüberlaufangriffe

Stapelbasierte Pufferüberlaufangriffe sind die beliebteste Art von Pufferüberlaufangriffen. Sie treten auf, wenn der Stapelspeicher des Systems überlaufen und ausgenutzt wird. Es wird auch als Stack Smashing bezeichnet.

2. Heap-basierte Buffer Overflow-Angriffe

Diese Art von Stapelüberlauf ist nicht sehr verbreitet, da sie schwierig zu implementieren und auszunutzen ist. Es tritt auf, wenn der einem Programm zugewiesene Speicher überläuft. Im Januar 2021 entdeckte Google einen Heap-basierten Pufferüberlauf Schwachstelle in der V8-Komponente von Chrome.

Wie können Sie Buffer Overflow-Angriffe verhindern?

Pufferüberlaufangriffe können durch Betriebssystem-Laufzeitschutz, sichere Programmiersprachen, Randomisierung des Adressraumlayouts und die Gewährleistung allgemein angemessener Sicherheitsmaßnahmen abgewehrt werden.

1. Verwenden des OS-Laufzeitschutzes

Laufzeitschutz wird auch als Laufzeit-Array-Begrenzungsprüfung bezeichnet. Dadurch wird sichergestellt, dass sich jeder Programmlauf innerhalb des verfügbaren Pufferspeichers oder Speichers befindet. Und es überprüft alle Daten, die in den Speicher des Systems geschrieben werden. Dadurch wird es Hackern erschwert, Daten in das System zu überschreiben und die Schwachstelle auszunutzen.

2. Verwendung sicherer Programmiersprachen

Programmiersprachen wie C und C++ implementieren keine Array-Begrenzungsprüfung zur Laufzeit, weil es zusätzlichen Code benötigt, um jedes in das System geschriebene Programm zu prüfen, und es verlangsamt. Daher sind sie anfälliger für Pufferüberlaufangriffe. Die Verwendung sichererer Sprachen wie C#, Java und Python ist besser, da sie einem geringeren Risiko von Pufferüberlaufangriffen ausgesetzt sind.

3. Randomisierung des Adressraumlayouts (ASLR) verwenden

Diese Sicherheitsmaßnahme ordnet die Adressen von Programmen und Funktionen im Speicher eines Systems zufällig verschiedenen Datenbereichen zu. Es erschwert einem Angreifer, durch sensible Funktionen im Speicher zu navigieren.

4. Stellen Sie strenge Sicherheitsrichtlinien sicher

Dazu gehört, das System regelmäßig auf dem neuesten Stand zu halten, alle in das System geschriebenen Daten zu validieren und den Benutzern die geringsten Berechtigungen zuzuweisen. Mit den richtigen Sicherheitsrichtlinien sollten Sie sich keine Sorgen über einen Pufferüberlaufangriff machen müssen.

Strenge Sicherheitsvorkehrungen sind unerlässlich, um Buffer Overflow-Angriffe zu bekämpfen

Gemäß einem populären Sprichwort in der Sicherheit „solange ein System von Menschen verwendet wird, besteht eine Schwachstelle“, was wahr und unvermeidlich ist. Man kann die Wahrscheinlichkeit eines Angriffs jedoch immer verringern, indem man sicherstellt, dass angemessene Sicherheitsmaßnahmen vorhanden sind und strikt eingehalten werden.

Denken Sie daran, dass Hacker ständig neue Wege finden, Schwachstellen wie diese auszunutzen. Daher liegt es an Ihnen, ihnen einen Schritt voraus zu sein, indem Sie nach den neuesten Fortschritten im Bereich der Cybersicherheit Ausschau halten.