Application Security (AppSec)
Application Security (AppSec) umfasst alle Maßnahmen, Prozesse und Technologien, um Software-Anwendungen vor Angriffen zu schützen - von der Entwicklung über den Test bis zum Betrieb. Ziel ist es, Schwachstellen in Code, Architektur, Konfiguration und Abhängigkeiten zu finden und zu beseitigen, bevor Angreifer sie ausnutzen.
Application Security (AppSec) ist die Disziplin, Sicherheit in jede Phase des Software-Lebenszyklus zu integrieren: von der Anforderungsanalyse über Design und Entwicklung bis zu Test, Deployment und Betrieb. Moderne AppSec folgt dem Prinzip “Security by Design” - Sicherheit ist kein Nachgedanke, sondern Grundanforderung.
AppSec im SDLC - Sicherheit im gesamten Lebenszyklus
Phase 1: Requirements / Design
- Threat Modeling: Welche Angriffe sind auf diese Funktion möglich?
- Security Requirements: Was MUSS die App leisten?
- Architektur-Review: Authentication, Authorization, Datenflüsse
Phase 2: Development
- Secure Coding Guidelines (OWASP Cheat Sheets)
- IDE-Plugins: Semgrep, SonarLint, CodeQL direkt im Editor
- Pre-commit Hooks: SAST-Scan vor jedem Commit
- Peer Code Review: 4-Augen-Prinzip für sicherheitskritische Komponenten
Phase 3: Testing
- SAST (Static Application Security Testing): Code-Analyse
- SCA (Software Composition Analysis): Abhängigkeiten auf CVEs prüfen
- DAST (Dynamic Analysis): Laufende Applikation angreifen
- IAST (Interactive Analysis): Agent im Laufzeit-Test
Phase 4: Deployment
- Container-Images scannen (Trivy, Grype)
- IaC-Scanning (Checkov, tfsec): Fehlkonfigurationen in Terraform/K8s
- Secrets-Scan: keine API-Keys im Image oder Konfiguration
Phase 5: Operation / Monitoring
- WAF (Web Application Firewall): Angriffe blockieren
- RASP (Runtime Application Self-Protection): In-App-Schutz
- SIEM-Integration: Anwendungs-Logs auswerten
- Vulnerability Management: CVEs in Abhängigkeiten verfolgen
OWASP Top 10 - Die wichtigsten Schwachstellen
A01: Broken Access Control
- Häufigste Kategorie (94% der Apps betroffen)
- User kann auf Daten anderer User zugreifen (IDOR)
- Horizontale + vertikale Privilege Escalation
- Fehlende Berechtigungsprüfungen in APIs
A02: Cryptographic Failures
- Unverschlüsselte Übertragung sensibler Daten
- Schwache Algorithmen: MD5/SHA-1 für Passwörter
- Hartkodierte Schlüssel, vorhersehbare Keys
A03: Injection
- SQL Injection, OS Command Injection, LDAP Injection
- Unbereinigte Benutzereingaben werden ausgeführt
A04: Insecure Design
- Fehlendes Threat Modeling in der Designphase
- Keine Rate Limiting, keine Account-Sperren
A05: Security Misconfiguration
- Default-Credentials, unnötige Features aktiv
- Verbose Error Messages zeigen interne Pfade
- Fehlende Security Headers
A06: Vulnerable and Outdated Components
- Libraries/Frameworks mit bekannten CVEs
- Nicht gepatchte Serversoftware
A07: Identification and Authentication Failures
- Schwache Passwort-Policies, kein MFA
- Predictable Session IDs, fehlende Session-Invalidierung
A08: Software and Data Integrity Failures
- CI/CD Pipelines ohne Verifikation (Supply Chain)
- Unsichere Deserialisierung
A09: Security Logging and Monitoring Failures
- Angriffe werden nicht erkannt
- Keine Alerts bei Brute Force, IDOR-Versuchen
A10: Server-Side Request Forgery (SSRF)
- App macht Requests zu internen Services
- Angreifer liest Metadaten (AWS/Azure Instance Metadata)
Statische Analyse (SAST) - Code prüfen ohne Ausführung
# Semgrep Installation
pip install semgrep
# Scan mit OWASP-Regeln
semgrep --config=p/owasp-top-ten ./src/
# Custom Regel (Python SQL Injection erkennen)
rules:
- id: sql-injection-python
patterns:
- pattern: |
$DB.execute("..." + ...)
message: "SQL Injection: String-Konkatenation in DB-Query"
languages: [python]
severity: ERROR
# Semgrep im CI (GitHub Actions)
- uses: returntocorp/semgrep-action@v1
with:
config: >-
p/owasp-top-ten
p/django
p/java
SonarQube Community (für Enterprise):
- 15+ Sprachen unterstützt
- Security Hotspots + Vulnerabilities trennen
- Quality Gates: “Pipeline schlägt fehl wenn kritische Vuln”
- OWASP Top 10, SANS Top 25, CWE-Mapping
CodeQL (GitHub, kostenlos für Open Source):
- Semantische Analyse: versteht Datenfluss
- Findet Schwachstellen über mehrere Dateien hinweg
- 2000+ vorgebaute Abfragen
Dynamische Analyse (DAST) - Laufende App testen
# OWASP ZAP Baseline Scan (für CI/CD)
docker run -t owasp/zap2docker-stable zap-baseline.py \
-t https://staging.example.com \
-r zap-report.html
# ZAP Full Scan (mit Authentifizierung)
docker run -t owasp/zap2docker-stable zap-full-scan.py \
-t https://staging.example.com \
-r full-report.html \
-z "-config replacer.full_list(0).matchtype=REQ_HEADER \
-config replacer.full_list(0).matchstring=Authorization \
-config replacer.full_list(0).replacement=Bearer\ TOKEN"
# Nuclei (schnelle Template-basierte Scans)
nuclei -u https://example.com -t nuclei-templates/http/
nuclei -u https://example.com -t cves/ -severity critical,high
ZAP-Ergebnisse:
- PASS (0): kein Problem
- WARN (1): Medium/Low Risk - prüfen
- FAIL (2): High Risk - Pipeline fehlschlagen lassen
Software Composition Analysis (SCA)
# npm audit (Node.js)
npm audit
npm audit --audit-level=high # nur High/Critical zeigen
# pip-audit (Python)
pip-audit
pip-audit --requirement requirements.txt
# OWASP Dependency-Check (Java/Multi-Language)
./dependency-check.sh --project "MyApp" \
--scan ./target/ \
--format HTML \
--out ./reports/
# Snyk (kommerziell, gut für CI)
snyk test --severity-threshold=high
snyk monitor # Kontinuierliches Monitoring
# SBOM generieren (Software Bill of Materials)
syft myapp:latest -o spdx-json > sbom.json
grype sbom:./sbom.json # CVE-Scan gegen SBOM
Warum SBOM wichtig:
- NIS2 + Executive Order USA fordern SBOM
- Zeigt bei Log4Shell sofort: “Nutzen wir log4j?”
- Basis für Vulnerability Management
AppSec-Metriken und KPIs
Schwachstellenmetriken
Mean Time to Remediate (MTTR) nach Severity:
| Severity | Ziel |
|---|---|
| Critical | < 24h |
| High | < 7 Tage |
| Medium | < 30 Tage |
| Low | < 90 Tage |
- Vulnerability Debt: offene Findings über Zeit
- False Positive Rate: SAST-Qualität messen
Prozessmetriken
- SAST-Coverage: % der Repos mit SAST
- SCA-Coverage: % der Repos mit Dependency-Check
- Security Testing in CI: % der Pipelines mit Security Gates
- Secure Code Training: % der Entwickler geschult
Reifegradmodelle
OWASP SAMM (Software Assurance Maturity Model):
- 5 Funktionen: Governance, Design, Implement, Verify, Operations
- 3 Reifegrade pro Funktion
- Kostenlos: owaspsamm.org
BSIMM (Building Security In Maturity Model):
- Benchmark gegen andere Unternehmen