# Security-Feed-Approval-Dossier

anrufer.info: Security-Feed-Dossier ist vorbereitet; 5 blockierende Betreiberaktion(en) bleiben offen.

> Approval-Dossier ist ein Freigabe- und Nachweispaket. Es aktiviert keine Feeds, speichert keine Treffer und enthaelt keine Secret-Werte.

## Go/No-Go
- Empfehlung: no_go
- Entscheidung: No-Go bis offene Gates geschlossen sind
- Grund: 5 Signoff(s) und 5 blockierende Aktion(en) sind offen.

### Vor Go-Live erforderlich
- DB-Owner: Security-Feed-Storage-Schema produktiv freigeben. (https://saferpage.de/sicherheit/feed-storage-readiness-json)
- Betreiber/Datenschutz: Retention, Reviewstatus und Publikationsregeln fuer Feed-Observations freigeben. (https://saferpage.de/sicherheit/feed-storage-readiness-json)
- IT/Security: Produktive Feed-Credentials serverseitig setzen und Rotation dokumentieren. (https://saferpage.de/sicherheit/anrufer.info/feed-secrets-json)
- IT/Security: Webhook-/Operator-Delivery nur signiert aktivieren. (https://saferpage.de/sicherheit/anrufer.info/feed-activation-json)
- Programm-Owner: Security-Feed-Go-Live erst nach allen Gates freigeben. (https://saferpage.de/sicherheit/feed-launch-board-json)

### Abnahmekriterien
- Launch-Board status=ready und blocked_gate_count=0.
- Storage-Readiness zeigt Tabellen/Indizes/Trigger ready und Storage-Freigabe aktiv.
- Secret-Readiness zeigt Feed- und Delivery-Secrets nur als Present/Missing, nie als Wert.
- Runner-State zeigt kontrollierten Erstlauf ohne Secret-Werte, Rohpayloads oder ungeprüfte öffentliche Treffer.
- Security-Alerts-Delivery-Dry-Run ist signiert und Idempotency-Key ist dokumentiert.
- Decision Record ist von DB-Owner, Datenschutz, IT/Security, Webbetrieb und Programm-Owner freigegeben.

### Nicht starten wenn
- Produktive Feed-Credentials fehlen oder Rotation ist nicht dokumentiert.
- SAFERPAGE_SECURITY_FEED_STORAGE_APPROVED ist ohne Betreiberentscheidung aktiv.
- Storage-Migration-Hash weicht vom Dossier ab.
- Delivery-HMAC fehlt oder Testpayload ist nicht verifizierbar.
- Runner speichert oder veroeffentlicht Treffer vor Review.

## Evidence Manifest
- **Launch-Board**: blocked - https://saferpage.de/sicherheit/feed-launch-board-json
  anrufer.info: Security-Feed-Launch ist blockiert; 5/7 Gate(s) offen.
- **Storage-Readiness**: blocked - https://saferpage.de/sicherheit/feed-storage-readiness-json
  Security-Feed-Storage ist noch nicht schreibbereit: 11 Datenbank-Artefakt(e) fehlen oder die Serverfreigabe ist nicht aktiv.
- **Dedizierte Storage-SQL-Migration**: hash_available - https://saferpage.de/sicherheit/feed-storage-migration.sql
  SHA-256 306a569bdf0d59054861ddc8ddfcf0d09a825f097f3d1dbe88993e481f048314; Bytes 3885
- **systemd Runner-State**: available - https://saferpage.de/sicherheit/feed-runner-json
  Security-Feed-Runner: 50 Domain(s) geprüft, 0 aktivierungsbereit, 0 externe Feed-Run(s), 0 Observation(s) gespeichert, 37 durch Gates blockiert, 13 ohne Reportseite, 0 technische Fehler.
- **Feed-Aktivierung**: blocked - https://saferpage.de/sicherheit/anrufer.info/feed-activation-json
  Credential-, Storage-, Delivery-, Runner- und Review-Gates fuer kontrollierte Aktivierung.

## Signoffs
- **DB-Owner**: required - Security-Feed-Storage-Schema produktiv freigeben.
  Evidenz: Security-Feed-Storage ist noch nicht schreibbereit: 11 Datenbank-Artefakt(e) fehlen oder die Serverfreigabe ist nicht aktiv.
- **Betreiber/Datenschutz**: required - Retention, Reviewstatus und Publikationsregeln fuer Feed-Observations freigeben.
  Evidenz: Clean-Momentaufnahmen 30 Tage, Treffer mit Review/Audit 365 Tage, inconclusive 14 Tage.
- **IT/Security**: required - Produktive Feed-Credentials serverseitig setzen und Rotation dokumentieren.
  Evidenz: Secret-Werte werden nicht exportiert; nur Present/Missing-Status ist oeffentlich.
- **IT/Security**: required - Webhook-/Operator-Delivery nur signiert aktivieren.
  Evidenz: HMAC-Secret muss serverseitig vorhanden sein; Dry-Run bleibt ohne Secret blockiert.
- **Webbetrieb**: ready - systemd Runner im Daily-Betrieb ueberwachen und Guardrails beibehalten.
  Evidenz: Security-Feed-Runner: 50 Domain(s) geprüft, 0 aktivierungsbereit, 0 externe Feed-Run(s), 0 Observation(s) gespeichert, 37 durch Gates blockiert, 13 ohne Reportseite, 0 technische Fehler.
- **Programm-Owner**: required - Security-Feed-Go-Live erst nach allen Gates freigeben.
  Evidenz: anrufer.info: Security-Feed-Launch ist blockiert; 5/7 Gate(s) offen.

## Change Plan
- **1. Migration** (DB-Owner): Dedizierte DDL aus infra/postgres/migrations/security-feed-storage.sql mit autorisierter Rolle anwenden.
  Abnahme: Storage-Readiness meldet 3/3 Tabellen, 6/6 Indizes und 2/2 Trigger ready.
- **2. Secrets** (IT/Security): Feed- und Delivery-Secrets serverseitig setzen; Werte nie in Exporten, Tickets oder Logs ablegen.
  Abnahme: Secret-Readiness und Activation-Gate melden keine fehlenden Secret-Referenzen.
- **3. Betreiberfreigabe** (Betreiber/Datenschutz): Retention, Review, Publish-Entscheidung, Alert-Routing und Incident-Pfad freigeben.
  Abnahme: SAFERPAGE_SECURITY_FEED_STORAGE_APPROVED=yes erst nach dokumentierter Entscheidung aktiv.
- **4. Kontrollierter Erstlauf** (Webbetrieb): Runner einmal manuell starten, danach Launch-Board und Runner-State pruefen.
  Abnahme: Keine Secret-Werte, keine Rohpayloads, keine ungeprueften oeffentlichen Treffer; gespeicherte Observations passen zu aktivierungsbereiten Domains.

## Risiken
- **raw_payload_leak**: Feed-Rohpayload oder Secret landet in oeffentlichem Export. Kontrolle: Forbidden-Fields-Vertrag, No-Secret-Export, HMAC nur als Status.
- **false_positive_publication**: Blacklist-Treffer wird ohne Review oeffentlich sichtbar. Kontrolle: publish_decision bleibt review/suppressed bis Betreiber-Review.
- **unbounded_crawl_load**: Feed-Lauf belastet externe oder eigene Systeme unkontrolliert. Kontrolle: systemd Timer, Run-Gates, Timeout, begrenzte Batchgroesse und Runner-State.
- **retention_overrun**: Observations werden laenger als fachlich freigegeben gespeichert. Kontrolle: expires_at, Retention-Vertrag und Auditlog.
