Zum Inhalt springen

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

↑↓NavigierenEnterÖffnenESCSchließen
Secure Development Glossar

SAST / DAST / SCA (Application Security Testing)

Drei komplementäre Methoden zur Sicherheitsprüfung von Software: SAST analysiert Quellcode statisch, DAST testet laufende Anwendungen dynamisch, SCA prüft Third-Party-Abhängigkeiten auf bekannte CVEs. Zusammen bilden sie die Grundlage moderner CI/CD-Security-Pipelines.

SAST, DAST und SCA sind die drei Säulen der Application Security Testing (AST). Jede Methode findet andere Schwachstellen - erst zusammen in einer CI/CD-Pipeline entsteht umfassende Anwendungssicherheit.

SAST - Static Application Security Testing

SAST analysiert Quellcode, Bytecode oder Binärcode ohne die Anwendung auszuführen.

Wie SAST funktioniert:
  Quellcode → Parser → Abstract Syntax Tree (AST)
  → Dataflow-Analyse (wie fließen Daten?)
  → Taint-Analyse (kommt User-Input unvalidiert in gefährliche Funktion?)
  → Pattern-Matching (bekannte unsichere Code-Muster)

Was SAST findet

# SAST findet diesen Code:
def login(username, password):
    query = "SELECT * FROM users WHERE username='" + username + "'"
    # SAST Alert: "User input directly in SQL query - potential SQL Injection"

# SAST findet auch:
api_key = "sk-proj-abc123def456"  # Hardcoded Secret
md5_hash = hashlib.md5(password)  # Weak Crypto (MD5)

SAST-Tools

ToolLizenzSprachenStärke
SemgrepLGPL + Rules kostenpflichtig30+Schnell, anpassbar
SonarQubeOpen Source / Enterprise30+Code Quality + Security
CodeQLKostenlos für OSS10+GitHub-nativ, mächtig
CheckmarxKommerziell30+Enterprise-Marktführer
VeracodeKommerziell20+Cloud-basiert
Snyk CodeFreemium15+Entwickler-freundlich

SAST in CI/CD

# Semgrep in GitHub Actions
name: SAST
on: [push, pull_request]
jobs:
  semgrep:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: semgrep/semgrep-action@v1
        with:
          config: >-
            p/python
            p/owasp-top-ten
            p/secrets

DAST - Dynamic Application Security Testing

DAST testet die laufende Anwendung von außen - ähnlich wie ein Angreifer.

Wie DAST funktioniert:
  Laufende Anwendung → HTTP-Requests senden
  → Responses analysieren
  → Angriffs-Payloads testen (XSS, SQLi, SSRF, etc.)
  → Fehlverhalten identifizieren

Vorteil: Findet Laufzeit-Schwachstellen die SAST übersieht
  → Fehlkonfigurationen (Security Headers, TLS)
  → Business Logic Fehler (IDOR, Auth-Bypässe)
  → Deserialisierungsfehler

DAST-Tools

ToolTypBesonderheit
OWASP ZAPOpen SourceCI/CD-Integration, Baseline Scan
Burp Suite ProKommerziellManuelle + Auto Scan, Standard bei Pentest
NucleiOpen SourceTemplate-basiert, sehr schnell
NiktoOpen SourceSchnell, Konfigurationscheck
AcunetixKommerziellJavaScript-Rendering, REST-API

DAST im CI/CD

# OWASP ZAP in GitHub Actions (Baseline Scan)
dast:
  runs-on: ubuntu-latest
  steps:
    - name: ZAP Scan
      uses: zaproxy/action-baseline@v0.10.0
      with:
        target: 'https://staging.meineapp.de'
        cmd_options: '-T 120'

SCA - Software Composition Analysis

SCA prüft Third-Party-Bibliotheken und Dependencies auf bekannte CVEs.

Problem:
  Moderne Anwendung hat typisch 500-1000 Dependencies
  (direkte: 30-50, transitive: 450-950)

SCA scannt:
  requirements.txt, package.json, pom.xml, build.gradle
  → Jede Dependency gegen CVE-Datenbanken
  → NVD (NIST), Snyk Vuln DB, GitHub Advisory DB

Bekannte SCA-Funde:
  log4j → CVE-2021-44228 (Log4Shell, CVSS 10.0)
  spring-framework → CVE-2022-22965 (SpringShell)
  requests < 2.31 → SSRF-Risiko

SCA-Tools

ToolLizenzIntegration
SnykFreemiumGitHub, GitLab, npm, pip, maven
OWASP Dependency CheckOpen SourceMaven, Gradle, CLI
pip-auditOpen SourcePython-spezifisch
npm auditBuilt-inNode.js-spezifisch
DependabotGitHub-nativAuto-PRs für Updates
SocketFreemiumSupply Chain Security

SCA-Kommandos (lokal):

pip-audit                    # Python
npm audit --audit-level=high # Node.js

SAST vs. DAST vs. SCA im Vergleich

SASTDASTSCA
WannCompile-TimeRuntime (Staging)Build-Time
WasEigener CodeLaufende AppDependencies
False Positive RateHochNiedrigSehr niedrig
Erkennt Logic-BugsSeltenJaNein
Shift LeftStarkMittelMittel

Empfehlung: Minimale Security-Pipeline

# Pipeline: SAST + SCA + DAST
on: [push, pull_request]
jobs:
  sast:
    steps:
      - name: Semgrep (OWASP Top 10 + Secrets)
  sca:
    steps:
      - name: pip-audit / npm audit
      - name: Snyk (für mehr Coverage)
  dast:
    steps:
      - name: ZAP Baseline (auf Staging)

# Policy:
  SAST Critical + High: Build fails
  SCA Critical: Build fails, High: Warning
  DAST High: Alert für Security-Team

Diese minimale Pipeline deckt die häufigsten Schwachstellen ab - ohne großes Budget oder Team.

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