Static Source Code Analysis Schulung

Während der Static Source Code Analysis Schulung wird der Quellcode mit der statischen Prüfmethode Static Source Code Analysis auf Sicherheitslücken und Fehlern hin geprüft. Die Prüfung erfolgt semi-automatisch (möglichst) begleitend zur Software-Entwicklung während der Implementierung noch bevor dynamische Modultests durchgeführt werden.

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).

Static Source Code Analysis Schulung

Im Bereich Static Code Analysis werden drei Tool-Klassen unterschieden:

  • Style Checking Tools verifizieren den Source-Code bezüglich der Einhaltung syntaktischer Programmier-Richtlinien. Diese einfachen Tools finden meist keine Fehler, die einen Software-Defekt hervorrufen.
  • Semantic Analysis Tools fügen zusätzlich semantische Informationen zum Syntaxbaum des Compilers hinzu. Diese werden mithilfe verschiedener Regeln auf statisch feststellbare Fehler verifiziert. Typische Fehler sind Datentyp-Probleme, nicht initialisierte Variablen und ungenutzte Methoden.
  • Deep Flow Static Analysis ist die effektivste Toolklasse: Die semantische Analyse wird um eine „control-flow graph“-Generierung und eine Data Flow Analyse ergänzt. Somit ist es möglich, komplexe Fehler, die etwa auf Race Conditions, Deadlocks oder falsche Pointerverwaltung basieren, zu identifizieren.

Zielgruppe

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

Lernziele
Die Teilnehmer lernen während der Static Source Code Analysis Schulung die Methode Static Source Code Analysis kennen und Tools auszuwählen, einzusetzen und die Ergebnisse zu analysieren. Es werden Empfehlungen erarbeitet, wie Static Analysis in den Software-Entwicklungsprozess integriert werden kann. Die Arten von Programmierfehler verursachenden Sicherheitslücken werden erläutert.

Inhalt
Security Development Lifecycle (SDL)

  • Sicherheitsorientierte Software-Entwicklung und Test
  • Security by Design
  • Threat Modeling
  • Static Source Code Analysis
  • Penetration Testing
  • Fuzzing

Funktionen, Methoden und Tool-Klassen

  • Style Checking
  • Semantic Analysis
  • Deep Flow

Integration in Software Development Lifecycle

  • Waterfall Model
  • Agile Development

Live Präsentation: Static Source Code Analysis mit Yasca an Joomla

  • Scannen mit Yasca
  • Auswertung der Ergebnisse
  • Exploitation

Live Präsentation: Vergleichende Bewertung bekannter Tools

  • Yasca
  • CppCheck

Beispiel: Sicherheitslücken

  • Buffer Overflow
  • Null Pointer Dereference
  • Memory Leaks
  • Deadlocks

Live Präsentation: Vorführung eines False Positives und False Negatives
Übung: Static Source Code Analysis an Beispiel-Code
Abschlußempfehlungen, Diskussion