Software Exploitation - Cheatsheet.pdf

Software Exploitation - Cheatsheet
Software Exploitation - Cheatsheet Definition und Historie von Buffer Overflows Definition: Buffer-Overflow ist ein Sicherheitsproblem, bei dem ein Programm mehr Daten in einen Puffer schreibt, als dieser aufnehmen kann, was zur Überschreibung von benachbarten Speichersegmenten führt. Details: Erste dokumentierte Buffer-Overflow-Attacke: Morris-Wurm (1988). Häufige Ursache für Sicherheitslücken, e...

© StudySmarter 2024, all rights reserved.

Software Exploitation - Cheatsheet

Definition und Historie von Buffer Overflows

Definition:

Buffer-Overflow ist ein Sicherheitsproblem, bei dem ein Programm mehr Daten in einen Puffer schreibt, als dieser aufnehmen kann, was zur Überschreibung von benachbarten Speichersegmenten führt.

Details:

  • Erste dokumentierte Buffer-Overflow-Attacke: Morris-Wurm (1988).
  • Häufige Ursache für Sicherheitslücken, ermöglicht Codeausführung, Systemabstürze oder Datenkorruption.
  • Schutzmaßnahmen: Bounds-Checking, Stack Canaries, ASLR (Address Space Layout Randomization), DEP (Data Execution Prevention).

Typische Angriffsmethoden und Beispiele von Buffer Overflows

Definition:

Buffer Overflows entstehen, wenn mehr Daten in einen Puffer geschrieben werden, als dort gespeichert werden können, was zu Speicherfehlern führt und potenziell ausgenutzt werden kann.

Details:

  • Stack-based Buffer Overflow: Überschreiben des Rücksprungadressenspeichers, um bösartigen Code auszuführen.
  • Heap-based Buffer Overflow: Manipulation von Speichersteuerinformationen, um das Programmverhalten zu ändern.
  • Format String Attack: Einfügen von Formatierungszeichenfolgen, um Speicherinhalte zu lesen oder zu schreiben.
  • Beispiel: char buf[10]; gets(buf);

Schutzmechanismen und Best Practices zur Vermeidung von Buffer Overflows

Definition:

Techniken und Methoden zur Verhinderung von Pufferüberläufen in Software; Ziel ist es, Sicherheitslücken zu vermeiden und Programmstabilität zu gewährleisten.

Details:

  • Verwende sichere Funktionen: Vermeide unsichere Funktionen wie strcpy, nutze stattdessen sichere wie strncpy.
  • Stack Canaries: Platzierung von Werten (Canaries) am Ende des Speicherstapels zum Erkennen von Überläufen.
  • Address Space Layout Randomization (ASLR): Zufällige Anordnung von Speicheradressen zur Erschwerung von Angriffen.
  • Data Execution Prevention (DEP): Markiere Speicherbereiche als nicht ausführbar.
  • Größenprüfungen: Überprüfe Eingabepuffergrößen strikt.
  • Boundary Checks: Implementiere Check-Befehle zum Vermeiden von Überläufen.
  • Code Reviews: Regelmäßige Überprüfung von Code auf potenzielle Sicherheitslücken.

Grundlagen und Entstehung von Format String Vulnerabilities

Definition:

Ausnutzung von unsicheren Formatstrings zur Manipulation des Programmspeichers und zu unerwünschten Operationen.

Details:

  • Tritt auf bei Verwendung von unsicheren Formatstrings in Funktionen wie printf, fprintf, sprintf, etc.
  • Angreifer kann Spezialzeichen wie %x, %n, %s einfügen, um Speicherinhalte auszulesen oder zu überschreiben.
  • Ermöglicht Ausführen von beliebigem Code oder Abruf sensibler Informationen.
  • Prävention durch Verwendung sicherer Funktionen und Format-Überprüfungen.
  • Beispiel: printf(buf); mit buf = %x%x%x führt zur Auslesung von Speicheradressen.

Werkzeuge und Techniken für die Binäranalyse im Reverse Engineering

Definition:

Tools und Techniken zur Analyse von Binärdateien im Rahmen des Reverse Engineerings.

Details:

  • Disassembler: Wandeln Binärcode in lesbaren Assemblercode um (z.B. IDA Pro, Ghidra)
  • Debugger: Erlauben schrittweises Ausführen und Überwachen von Programmen (z.B. GDB, OllyDbg)
  • Statische Analyse: Untersuchung des Binärcodes ohne Ausführung (z.B. Radare2, Binary Ninja)
  • Dynamische Analyse: Überprüfung des Verhaltens von Programmen zur Laufzeit (z.B. WinDbg, Strace)
  • Deobfuskation: Techniken zur Umkehrung von Obfuskation oder Komprimierungsmethoden (z.B. Unpacker, Deobfuscator)
  • Automatisierte Werkzeuge: Scripte und Frameworks für Routineanalysen (z.B. angr, R2pipe)
  • Cryptanalyse: Analyse verschlüsselter Daten innerhalb von Binärdateien

Techniken zur Malware-Analyse und -Dekompilierung

Definition:

Methoden und Werkzeuge zur Untersuchung und Demontage von Schadsoftware, um deren Funktionsweise, Ursprünge und Auswirkungen zu verstehen.

Details:

  • Statische Analyse: Untersuchung ohne Ausführung des Codes (Disassembling, Stringextraktion)
  • Dynamische Analyse: Untersuchung durch Ausführung des Codes in einer kontrollierten Umgebung (Sandboxing, Monitoring-Tools)
  • Reverse Engineering: Rückgewinnung des Quellcodes aus dem Binärcode (Decompiling, Debugging)
  • Signaturbasierte Erkennung: Vergleich mit bekannten Malware-Signaturen
  • Verhaltensbasierte Erkennung: Analyse des Verhaltens der Software zur Erkennung von Anomalien

Detaillierte Untersuchung gängiger Exploitation-Techniken

Definition:

Analyse und Anwendung von Methoden zur Ausnutzung von Softwareschwachstellen.

Details:

  • Pufferüberlauf (Buffer Overflow)
  • Format-String-Angriffe
  • Return-Oriented Programming (ROP)
  • Heap-basierte Überläufe
  • Use-After-Free (UAF)
  • Code-Injection
  • Bypassing DEP & ASLR

ASLR und DEP als fortgeschrittene Schutztechnologien

Definition:

ASLR: Address Space Layout Randomization. DEP: Data Execution Prevention.

Details:

  • ASLR: Zufällige Anordnung des Adresse-Bereichs von Prozessen im Speicher
  • Erhöht die Komplexität von Buffer Overflow-Angriffen
  • DEP: Verhindert Code-Ausführung in bestimmten Speicherbereichen (z.B. Stack, Heap)
  • Zusammen erhöhen sie die Sicherheit durch Einschränkung der Ausführbarkeit und Vorhersagbarkeit von Speicheradressen
  • Erfordern Betriebssystemunterstützung und können durch bestimmte Techniken (z.B. ROP) umgangen werden
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden