Dynamic Analysis: Fuzzing Schulung

Identifizierung von Zero-Day-Vulnerabilities in Networks, Web Applications, Software und Mobile Apps
Während der Dynamic Analysis: Fuzzing Schulung werden (sehr viele) erfahrungsgemäß erfolgreiche Angriffsdaten in das zu untersuchende Zielprogramm (z.B. Binärcode) eingegeben, mit dem Ziel anomale Zustände des Zielprogramms zu erreichen. Das anomale Zielprogramm-Verhalten wird untersucht und kann auf eine Sicherheitslücke zurückgeführt werden.

Dynamic Analysis: Fuzzing ist ein Verfahren mit dem Vulnerabilities in Soft- und Hardware/Firmware (!) kostengünstig identifiziert werden können. Fuzzing ist auf jede Art Software anwendbar – angefangen von Protokollen bis hin zu Individualsoftware, Standardsoftware wie ERP, CRM, Datenbanksysteme und auch auf unternehmensspezifische Anpassungen an Standardsoftware (Customizing), Web-Applications, Betriebssysteme und auch in Hardware und Embedded Systems.

Fuzzing SchulungFull Fuzzing Process

Security Testing Process

Identifiziert werden Sicherheitslücken und insbesondere die bislang nicht-erkannten, kritischen Zero-Day-Vulnerabilities nach unserem Security Testing Process mit den drei Methoden: ‚Security by Design: Threat Modeling’, Quellcode-Analyse: ‚Static Source Code Analysis‘ und ‘Binärcode-Prüfung: Dynamic Analysis: Fuzzing’. Zugrunde liegt die ISO 27034 sowie der Security Development Lifecycle (SDL).

Zielgruppe

  • Leiter Softwareentwicklung
  • Software Architekten/Designer
  • Software Entwickler
  • Software Tester

Lernziele

Die Teilnehmer lernen Fuzzing-Tools auszuwählen und zielgerichtet zur Identifizierung von bislang nicht-erkannten Sicherheitslücken (Zero-Day-Vulnerabilities) einzusetzen.

Inhalt

Sicherheitsorientierte Software-Entwicklung und Test

  • Security by Design, Threat Modeling, Static Source Code Analysis, Penetration Testing
  • Fuzzing

Fuzzing-Prozess

  • Identifizierung aller Eingabeparameter als vorbereitende Aktivität
  • Auswahl geeigneter Fuzzing-Tools
  • Live Präsentation: Konfiguration, Einsatz Fuzzing-Framework Peach an FTP-Server

Fuzzer-Taxonomie: Klassifikation der Fuzzer nach verschiedenen Dimensionen

  • Fuzzdaten-Generierung
  • Einsatzzweck
  • Unterstützte Protokolle (remote & local)
  • Softwaremodellierung
  • Zielanwendungen: Web Application, File-Format, Mobile Apps,…
  • Häufig verwendete Fuzzing-Tools

Einsatz universeller Fuzzing-Frameworks

  • Live Präsentation: Web Application Fuzzing mit Burb Suite Professional
  • Fuzzing Schulung mit Metasploit – Armitage
  • Fuzzing von Zielanwendungen
    • Webanwendungen
    • Router / Firewalls
    • Lokale Anwendungen (Linux / Windows)
    • Mobile Apps
    • Netzwerke
    • Hardware-Module
    • ICS (Industrial Control Systems)

Entwicklung von Fuzzing-Tools und Module

  • Python-Skript und Metasploit Framework
  • Live Präsentation: SCADA – Fuzzing Siemens SIMATIC S7 SPS

Monitoring

  • System Monitoring
  • Application Monitoring
  • Remote Monitoring
  • Identifizierung von False-Positives

Nicht-identifizierbare Sicherheitslücken?

  • Live Präsentation: Exploitation mit Metasploit Framework

Rating Sicherheitslücken mit DREAD und CVSSv2

  • Fuzzing & OWASP Top10
  • Live Präsentation: Fuzzing von Sicherheitssoftware (z.B. Firewall)

Aufwandsabschätzung
Empfehlungen, Diskussion