Zum Inhalt springen

Services, Wiki-Artikel, Blog-Beiträge und Glossar-Einträge durchsuchen

↑↓NavigierenEnterÖffnenESCSchließen
Anwendungssicherheit Glossar

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:

SeverityZiel
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

Cookielose Analyse via Matomo (selbst gehostet, kein Tracking-Cookie). Datenschutzerklärung