Software Exploitation - Cheatsheet
Einführung in Bedrohungs- und Risikoanalyse
Definition:
Grundlegende Einführung in Methoden zur Identifikation und Bewertung von Bedrohungen und Risiken in der Softwareentwicklung.
Details:
- Bedrohungsanalyse: Identifikation potenzieller Angreifer, Schwachstellen und Angriffsvektoren.
- Risikobewertung: Einschätzung der Wahrscheinlichkeit und Auswirkungen potentieller Sicherheitsvorfälle.
- Häufig verwendete Methoden: STRIDE, DREAD, Risiko-Matrix.
- STRIDE: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.
- R = P \times I: Risiko = Wahrscheinlichkeit \times Impact (Auswirkung).
Stack-basierte Overflow-Techniken
Definition:
Techniken zum Ausnutzen von Pufferüberläufen im Stack, um Programmfluss zu manipulieren oder Kontrolle zu erlangen.
Details:
- Ausnutzung basiert auf Überschreiten der Puffergrenzen im Stack
- Veränderung von Rücksprungadressen (\texttt{return addresses}) und lokalen Variablen
- Kann zu beliebigem Code-Execution führen (Shellcode)
- Verteidigungsmaßnahmen: Stack-Canaries, ASLR, DEP/NX
Erhöhung von Privilegien
Definition:
Technik, um höhere Berechtigungen auf einem System zu erlangen. Wird oft von Angreifern genutzt, um administrative Rechte zu bekommen.
Details:
- Lokale und ferne Privilegien-Eskalation
- Ausnutzung von Software-Schwachstellen (z.B. Buffer Overflow)
- Fehlkonfigurationen und unsichere Standardeinstellungen
- Speichermanipulation: \texttt{/etc/passwd} oder \texttt{/etc/shadow}
- Exploits: z.B. Kernel-Exploits, Exploits für unsichere SUID-Binaries
Nutzung von Zero-Day-Exploits
Definition:
Ausnutzung von Sicherheitslücken, die dem Hersteller unbekannt sind.
Details:
- Sicherheitslücke ohne vorhandenes Patch
- Gefährlich, da keine Schutzmechanismen existieren
- Hoher Schadenspotenzial und häufig von Angreifern ausgenutzt
- Compliance-Anforderungen treffen
- Sofortige Patching-Priorität
Sicherheitsaudit-Methoden
Definition:
Sicherheitsaudit-Methoden bewerten die Sicherheit von Software durch systematische Analyse und Prüfung.
Details:
- Quellcodeprüfung: Manuelle oder automatische Analyse des Quellcodes auf Sicherheitslücken.
- Penetrationstests: Simuliertes Angriffsszenario zur Identifizierung von Schwachstellen.
- Statische Analyse: Untersuchung des Codes ohne Ausführung, z.B. mittels Code-Scans.
- Dynamische Analyse: Prüfung von Software im Betrieb, z.B. mit Fuzzing.
- Review und Inspektion: Manual Reviews von Code oder Design durch Security-Experten.
Techniken zur Code-Rekonstruktion und De-Obfuskation
Definition:
Techniken zur Rückführung verschleierten Codes in eine verständlichere Form
Details:
- Statische Analyse: Code wird ohne Ausführung analysiert
- Dynamische Analyse: Code wird ausgeführt und Verhalten beobachtet
- Symbolische Ausführung: Abstrakten Zustände durchlaufen und analysieren
- Dekompilierung: Bytecode zurück in Quellcode umwandeln
- Strukturelle Mustererkennung: Identifikation von bekannten Mustern
- Signal-based De-Obfuscation: Nutzung von Signalen aus der Codeausführung für Entschleierung
Stack Canaries und ASLR
Definition:
Stack Canaries und ASLR sind Sicherheitsmechanismen zur Erhöhung der Laufzeitsicherheit von Programmen.
Details:
- Stack Canaries: Platzierung eines speziellen Werts (Canary) vor dem Rücksprungzeiger im Stack. Manipulation des Canaries weist auf einen Stack Overflow hin.
- ASLR (Address Space Layout Randomization): Zufallsgenerierung der Adressen von Speicherbereichen (z.B. Stack, Heap, Bibliotheken) während des Programmstarts, um Vorhersagbarkeit der Adressen zu verhindern.
Analyse von Malware und Schadsoftware
Definition:
Analyse von bösartiger Software, um Funktionalität, Verbreitung und potenzielle Schadenwirkungen zu verstehen und zu mildern
Details:
- Statische Analyse: Untersuchung des Quellcodes, Bytecodes oder Binärcodes ohne Ausführung
- Dynamische Analyse: Beobachtung der Malware in einer kontrollierten Umgebung während der Ausführung
- Reverse Engineering: Zerlegung und Untersuchung des Binärcodes, um ursprünglichen Quellcode und Funktionalitäten offenzulegen
- Heuristiken und Signaturen: Einsatz von Mustern zur Identifizierung bekannter Malware
- Sandboxing: Isolierte Testumgebungen zur sicheren Ausführung und Analyse
- Verhaltensanalyse: Überwachung von Interaktionen mit dem System und Erkennung abweichender Aktivitäten
- Tools: IDA Pro, Ghidra, OllyDbg, Wireshark, Sandboxie
- Ziel: Schutz vor Bedrohungen, Entwicklung von Abwehrmechanismen und Verbesserung der IT-Sicherheit