SAST und DAST
SAST (Static Application Security Testing) und DAST (Dynamic Application Security Testing) stellen zwei grundlegende und komplementäre Methoden im Bereich der Anwendungssicherheit dar, jede mit unterschiedlichen, aber gleichermaßen wichtigen Ansätzen zur Identifizierung von Schwachstellen. SAST arbeitet durch die statische Analyse von Quellcode, Bytecode oder Binärdateien, ohne die Anwendung auszuführen, und untersucht den Code auf Muster, die auf potenzielle Schwachstellen hinweisen, wie etwa SQL Injection, XSS, Buffer Overflows und Fehler in der Geschäftslogik. Dieser "White-Box"-Ansatz ermöglicht es, Probleme früh im Entwicklungszyklus zu erkennen (Shift-Left-Security), und liefert den Entwicklern präzises Feedback zur exakten Position des verwundbaren Codes. Auf der anderen Seite simuliert DAST reale Angriffe gegen die laufende Anwendung und testet sie als "Black-Box", wie es ein externer Angreifer tun würde, ohne Zugriff auf den Quellcode. Diese Technik deckt Schwachstellen auf, die sich erst zur Laufzeit zeigen, wie Konfigurationsfehler, Authentifizierungs- und Autorisierungsprobleme sowie Schwachstellen, die aus der Interaktion zwischen verschiedenen Komponenten entstehen. Wenn sie gemeinsam in einer integrierten DevSecOps-Strategie eingesetzt werden, decken SAST und DAST die blinden Flecken des jeweils anderen ab und schaffen eine Defense in Depth, die sowohl während der Entwicklung eingeführte Schwachstellen erkennt als auch jene, die während der Ausführung der Anwendung in realen Umgebungen auftreten.
SAST: Statische Analyse
SAST untersucht Quellcode, Bytecode oder Binärdateien, ohne die Anwendung auszuführen, und identifiziert Schwachstellen während der Entwicklung.
Vorteile von SAST
- Early detection: Findet Bugs vor dem Deployment
- Code coverage: Analysiert 100 % des Codes, einschließlich nicht ausgeführter Paths
- Root cause: Zeigt die exakte Zeile des verwundbaren Codes
- No runtime needed: Erfordert keine laufende Anwendung
- CI/CD integration: Automatisierung in der Build-Pipeline
Einschränkungen von SAST
- Hohe False Positives - erfordert Tuning
- Erkennt keine Konfigurationsschwachstellen
- Testet die Geschäftslogik nicht zur Laufzeit
- Language-specific - jede Sprache benötigt einen eigenen Scanner
SAST-Tools
- SonarQube: Open-Source, unterstützt mehr als 25 Sprachen
- Checkmarx: Enterprise-grade, marktführendes SAST
- Fortify: Micro Focus, tiefgehende Analyse
- Semgrep: Open-Source, anpassbare Regeln
- Bandit (Python): Spezifisch für Python
- Brakeman (Ruby): Rails Security Scanner
DAST: Dynamische Analyse
DAST testet die laufende Anwendung und simuliert reale Angriffe durch Black-Box-Testing, ohne Zugriff auf den Quellcode.
Vorteile von DAST
- Runtime testing: Testet die Anwendung wie ein echter Angreifer
- Configuration issues: Erkennt Konfigurationsfehler
- Low false positives: Bestätigte, ausnutzbare Schwachstellen
- Language-agnostic: Funktioniert für jeden Stack
- Production-like: Testet in einer produktionsähnlichen Umgebung
Einschränkungen von DAST
- Late detection - Schwachstellen werden gefunden, nachdem der Code fertig ist
- Begrenzte Code coverage - testet nur zugängliche Flows
- Keine Code-Details - zeigt die verwundbare Zeile nicht an
- Erfordert eine deployte und laufende Anwendung
DAST-Tools
- OWASP ZAP: Open-Source, Proxy Interceptor
- Burp Suite: Industry Standard, Professional Scanner
- Acunetix: Automated Web Vulnerability Scanner
- Netsparker: Proof-based Scanning
- AppScan: Enterprise-Lösung von IBM
SAST + DAST: Kombinierte Strategie
Die gemeinsame Nutzung von SAST und DAST deckt die blinden Flecken jedes Ansatzes ab und schafft ein robustes AppSec-Programm.
# CI/CD-Pipeline mit SAST + DAST
stages:
- build
- sast
- test
- dast
- deploy
sast_scan:
stage: sast
script:
- semgrep --config=auto --json -o sast-results.json
- sonar-scanner
artifacts:
reports:
sast: sast-results.json
dast_scan:
stage: dast
script:
- docker run -t owasp/zap2docker-stable zap-baseline.py
-t https://staging.app.com -r dast-report.html
artifacts:
reports:
dast: dast-report.html
IAST: Interactive Application Security Testing
IAST kombiniert SAST und DAST, indem es die Anwendung instrumentiert, um sie zur Laufzeit zu überwachen, und erzielt so die Code coverage von SAST mit der Runtime Accuracy von DAST.
- Contrast Security: Marktführer bei IAST, eingebettete Agents
- Seeker (Synopsys): Runtime-Analyse mit Code Insight
- Hdiv Security: Runtime Application Self-Protection
DevSecOps-Integration
- SAST in Pre-Commit-Hooks und Pull Requests
- DAST in Staging-Umgebungen vor der Produktion
- Quality Gates: Builds mit kritischen Schwachstellen blockieren
- Developer Feedback Loops: Integration in IDEs (SonarLint)
- Vulnerability Management: Findings auf einer einzigen Plattform zentralisieren
Empfehlungen
Implementieren Sie SAST früh im SDLC (Shift-Left) und DAST in Staging-Umgebungen. Stimmen Sie die Tools ab, um False Positives zu reduzieren - konzentrieren Sie sich zuerst auf kritische Schwachstellen. Erwägen Sie IAST für kritische Anwendungen. Automatisieren Sie alles in der CI/CD-Pipeline und schaffen Sie schnelle Feedback Loops für Entwickler.
