# BreakPilot DevSecOps Architecture

## Uebersicht

BreakPilot implementiert einen umfassenden DevSecOps-Ansatz mit Security-by-Design fuer die Entwicklung und den Betrieb der Bildungsplattform.

```
┌─────────────────────────────────────────────────────────────────────────────┐
│                        DEVSECOPS PIPELINE                                    │
│                                                                              │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐   │
│  │  Pre-Commit │───►│  CI/CD      │───►│  Build      │───►│  Deploy     │   │
│  │  Hooks      │    │  Pipeline   │    │  & Scan     │    │  & Monitor  │   │
│  └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘   │
│        │                  │                  │                  │           │
│        ▼                  ▼                  ▼                  ▼           │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐   │
│  │ Gitleaks    │    │ Semgrep     │    │ Trivy       │    │ Falco       │   │
│  │ Bandit      │    │ OWASP DC    │    │ Grype       │    │ (optional)  │   │
│  │ Secrets     │    │ SAST/SCA    │    │ SBOM        │    │ Runtime     │   │
│  └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘   │
└─────────────────────────────────────────────────────────────────────────────┘
```

## Security Tools Stack

### 1. Secrets Detection

| Tool | Version | Lizenz | Verwendung |
|------|---------|--------|------------|
| **Gitleaks** | 8.18.x | MIT | Pre-commit Hook, CI/CD |
| **detect-secrets** | 1.4.x | Apache-2.0 | Zusaetzliche Baseline-Pruefung |

**Konfiguration:** `.gitleaks.toml`

```bash
# Lokal ausfuehren
gitleaks detect --source . -v

# Pre-commit (automatisch)
gitleaks protect --staged -v
```

### 2. Static Application Security Testing (SAST)

| Tool | Version | Lizenz | Sprachen |
|------|---------|--------|----------|
| **Semgrep** | 1.52.x | LGPL-2.1 | Python, Go, JavaScript, TypeScript |
| **Bandit** | 1.7.x | Apache-2.0 | Python (spezialisiert) |

**Konfiguration:** `.semgrep.yml`

```bash
# Semgrep ausfuehren
semgrep scan --config auto --config .semgrep.yml

# Bandit ausfuehren
bandit -r backend/ -ll
```

### 3. Software Composition Analysis (SCA)

| Tool | Version | Lizenz | Verwendung |
|------|---------|--------|------------|
| **Trivy** | 0.48.x | Apache-2.0 | Filesystem, Container, IaC |
| **Grype** | 0.74.x | Apache-2.0 | Vulnerability Scanning |
| **OWASP Dependency-Check** | 9.x | Apache-2.0 | CVE/NVD Abgleich |

**Konfiguration:** `.trivy.yaml`

```bash
# Filesystem-Scan
trivy fs . --severity HIGH,CRITICAL

# Container-Scan
trivy image breakpilot-pwa-backend:latest
```

### 4. SBOM (Software Bill of Materials)

| Tool | Version | Lizenz | Formate |
|------|---------|--------|---------|
| **Syft** | 0.100.x | Apache-2.0 | CycloneDX, SPDX |

```bash
# SBOM generieren
syft dir:. -o cyclonedx-json=sbom.json
syft dir:. -o spdx-json=sbom-spdx.json
```

### 5. Dynamic Application Security Testing (DAST)

| Tool | Version | Lizenz | Verwendung |
|------|---------|--------|------------|
| **OWASP ZAP** | 2.14.x | Apache-2.0 | Staging-Scans (nightly) |

```bash
# ZAP Scan gegen Staging
docker run -t owasp/zap2docker-stable zap-baseline.py \
    -t http://staging.breakpilot.app -r zap-report.html
```

## Pre-Commit Hooks

Die Pre-Commit-Konfiguration (`.pre-commit-config.yaml`) fuehrt automatisch bei jedem Commit aus:

1. **Schnelle Checks** (< 10 Sekunden):
   - Gitleaks (Secrets)
   - Trailing Whitespace
   - YAML/JSON Validierung

2. **Code Quality** (< 30 Sekunden):
   - Black/Ruff (Python Formatting)
   - Go fmt/vet
   - ESLint (JavaScript)

3. **Security Checks** (< 60 Sekunden):
   - Bandit (Python Security)
   - Semgrep (Error-Severity)

### Installation

```bash
# Pre-commit installieren
pip install pre-commit

# Hooks aktivieren
pre-commit install

# Alle Checks manuell ausfuehren
pre-commit run --all-files
```

## Severity-Gates

| Phase | Severity | Aktion |
|-------|----------|--------|
| Pre-Commit | ERROR | Commit blockiert |
| PR/CI | CRITICAL, HIGH | Pipeline blockiert |
| Nightly Scan | MEDIUM+ | Report generiert |
| Production Deploy | CRITICAL | Deploy blockiert |

## Security Dashboard

Das BreakPilot Admin Panel enthaelt ein integriertes Security Dashboard unter **Verwaltung > Security**.

### Features

**Fuer Entwickler:**
- Scan-Ergebnisse auf einen Blick
- Pre-commit Hook Status
- Quick-Fix Suggestions
- SBOM Viewer mit Suchfunktion

**Fuer Security-Experten:**
- Vulnerability Severity Distribution (Critical/High/Medium/Low)
- CVE-Tracking mit Fix-Verfuegbarkeit
- Compliance-Status (OWASP Top 10, DSGVO)
- Secrets Detection History

**Fuer Ops:**
- Container Image Scan Results
- Dependency Update Status
- Security Scan Scheduling
- Auto-Refresh alle 30 Sekunden

### API Endpoints

```
GET  /api/v1/security/tools      - Tool-Status
GET  /api/v1/security/findings   - Alle Findings
GET  /api/v1/security/summary    - Severity-Zusammenfassung
GET  /api/v1/security/sbom       - SBOM-Daten
GET  /api/v1/security/history    - Scan-Historie
GET  /api/v1/security/reports/{tool} - Tool-spezifischer Report
POST /api/v1/security/scan/{type} - Scan starten
GET  /api/v1/security/health     - Health-Check
```

## Compliance

Die DevSecOps-Pipeline unterstuetzt folgende Compliance-Anforderungen:

- **DSGVO/GDPR**: Automatische Erkennung von PII-Leaks
- **OWASP Top 10**: SAST/DAST-Scans gegen bekannte Schwachstellen
- **Supply Chain Security**: SBOM-Generierung fuer Audit-Trails
- **CVE Tracking**: Automatischer Abgleich mit NVD/CVE-Datenbanken

## Tool-Installation

### macOS (Homebrew)

```bash
# Security Tools
brew install gitleaks
brew install trivy
brew install syft
brew install grype

# Python Tools
pip install semgrep bandit pre-commit
```

### Linux (apt/snap)

```bash
# Gitleaks
sudo snap install gitleaks

# Trivy
sudo apt-get install trivy

# Python Tools
pip install semgrep bandit pre-commit
```
