Security-Feed-Runner

Geplante Malware-/Blacklist-Feeds bleiben gate-gesteuert

Security-Feed-Runner: 50 Domain(s) geprüft, 0 aktivierungsbereit, 0 externe Feed-Run(s), 0 Observation(s) gespeichert, 0 durch Gates blockiert, 0 ohne Reportseite, 50 technische Fehler.

Dieser Export zeigt nur Betriebsstatus, Gate-Entscheidungen und öffentliche Reportlinks. Er veröffentlicht keine Secret-Werte, keine Rohpayloads externer Feeds und keine personenbezogenen Besucherlogs.

attentionStatus 50geprüft 0bereit 0extern ausgeführt 0Feed-Attempts 0gespeichert 0/4Cred-Refs 0Canary 0geblockt 50Fehler

Betriebs-Runbook

So wird der Runner kontrolliert freigegeben

Betriebsnachweis für den täglichen Runner: Timer, letzter Lauf, Dry-Run-Gates, Secret-Schutz, Storage-Freigabe und Stop-Bedingungen sind ohne Secret-Ausgabe prüfbar.

Freigabeakte
systemd-Prüfungen Timer, Service, Logs und öffentlicher State

Diese Befehle prüfen, ob der tägliche Lauf sauber geplant ist und keine vertraulichen Inhalte im Betrieb sichtbar werden.

Timer sichtbar
systemctl list-timers saferpage-security-feed.timer --no-pager
NEXT, LAST und UNIT sind sichtbar; Timer ist für den täglichen Lauf geplant.
Service-Status
systemctl status saferpage-security-feed.service --no-pager
Type=oneshot, ExecStart zeigt run-security-feed-schedule.py mit --execute-ready.
Letzte Logs
journalctl -u saferpage-security-feed.service -n 80 --no-pager
Abschlusszeile done evaluated=... errors=0; keine Secret-Werte in Logs.
Storage-Canary-Timer sichtbar
systemctl list-timers saferpage-security-feed-canary.timer --no-pager
Separater Canary-Timer ist sichtbar; Service nutzt --storage-canary ohne --execute-ready.
Environment-Datei kontrollieren
systemctl cat saferpage-security-feed.service saferpage-security-feed-canary.service --no-pager
EnvironmentFile=-/etc/saferpage/security-feed.env ist gesetzt; fehlende Datei blockiert Dry-Run nicht.
Öffentlicher State
curl -fsS https://saferpage.de/sicherheit/feed-runner-json
JSON enthält metrics, last_run.user_agent, schedule und rows ohne Rohpayloads.
Dry-Run vor Go-Live keine externe Ausführung, keine Speicherung

Vor produktiver Freigabe müssen die öffentlichen Exports zeigen, dass Gates, Secrets, Storage und Launch-Board erwartbar blockieren.

Runner lokal ohne externe Feed-Ausführung testen
python3 scripts/run-security-feed-schedule.py anrufer.info --base-url http://127.0.0.1 --max 1 --timeout 15
executed_count bleibt 0, stored_observation_count bleibt 0.
Isolierten Dry-run-Smoke ausführen
scripts/run-security-feed-dry-run-smoke.sh
Schreibt nur temporaere State-Dateien, external_feed_run_attempt_count=0 und no_secret_export=true.
Storage-Canary ohne Freigabe blockiert testen
python3 scripts/run-security-feed-schedule.py anrufer.info --base-url http://127.0.0.1 --max 1 --timeout 15 --storage-canary
storage_canary.status ist blocked_without_storage_approval und es werden keine externen Feeds abgefragt.
Aktivierungs-Gates einzeln prüfen
curl -fsS https://saferpage.de/sicherheit/anrufer.info/feed-activation-json
activation_ready ist nur true, wenn Credentials, Delivery, Storage- und Review-Gates passend sind.
Secret-Readiness ohne Secret-Werte prüfen
curl -fsS https://saferpage.de/sicherheit/anrufer.info/feed-secrets-json
Nur present/missing und Setup-Vorlagen, keine API-Keys oder Webhook-Secrets.
Launch-Board vor Freigabe prüfen
curl -fsS https://saferpage.de/sicherheit/feed-launch-board-json
status bleibt blocked/approval_required, solange Feed-Credentials oder Storage-Freigabe fehlen.
Stop-Bedingungen sofort anhalten und prüfen

Bei diesen Signalen bleibt der Timer aus oder wird gestoppt, bis Betreiberfreigabe und Nachweis wieder sauber sind.

Stop 1
error_count größer 0 oder journalctl zeigt wiederholte HTTP-/DB-Fehler.
Stop 2
executed_count größer 0, obwohl Approval-Dossier nicht auf go steht.
Stop 3
stored_observation_count größer 0 ohne SAFERPAGE_SECURITY_FEED_STORAGE_APPROVED=yes und dokumentierte Freigabe.
Stop 4
Öffentliche Exports enthalten API-Keys, Webhook-Secrets, Rohpayloads oder personenbezogene Besucherlogs.
Stop 5
Timer-Last überschreitet geplantes Fenster oder verursacht sichtbare Web-Antwortzeitprobleme.
Go-Live-Sequenz Freigabe in prüfbarer Reihenfolge

Produktive Feed-Abfragen und Speicherung werden erst nach Migration, Secret-Setup, Dossier-Freigabe und kontrolliertem Start geprüft.

Schritt 1
Migration security-feed-storage.sql prüfen und nur nach Betreiberfreigabe anwenden.
Schritt 2
Secrets und SAFERPAGE_SECURITY_FEED_STORAGE_APPROVED bei Freigabe in /etc/saferpage/security-feed.env setzen, nie in Unit-Dateien.
Schritt 3
Nach Storage-Freigabe den separaten Canary-Service starten und storage_canary_stored_observation_count=1 prüfen.
Schritt 4
systemd daemon-reload ausführen und Daily- sowie Canary-Timer kontrollieren.
Schritt 5
Feed-Approval-Dossier auf recommendation=go bringen und Change-Fenster dokumentieren.
Schritt 6
Timer manuell mit systemctl start saferpage-security-feed.service auslösen.
Schritt 7
feed-runner-json, feed-launch-board-json und Alert-Delivery-Exports nach dem Lauf prüfen.
Öffentlicher Vertrag User-Agent, Storage und No-Secret-Export

Der Runner bleibt für Seitenbetreiber nachvollziehbar und begrenzt öffentliche Nachweise auf Betriebsstatus und Reportlinks.

Regel 1
Externe Feeds werden nur für aktivierungsbereite Domains und nur mit --execute-ready abgefragt.
Regel 2
Der Storage-Canary läuft in separater Unit ohne --execute-ready und ruft keine externen Feeds auf.
Regel 3
Gespeichert werden nur normalisierte Observationen nach Storage-Freigabe, nie Rohpayloads externer Feeds.
Regel 4
Der User-Agent verweist auf /bot und macht Zweck, Kontakt und Frequenz nachvollziehbar.
Regel 5
Der öffentliche State begrenzt Domainzeilen auf 100 und zeigt keine Secret-Werte.

Letzter Lauf

Was systemd zuletzt ausgeführt hat

User-Agent erklären
Unitsaferpage-security-feed.service Timersaferpage-security-feed.timer Start2026-07-30T01:31:32+00:00 Ende2026-07-30T01:31:33+00:00 Run-Gateaktiv mit --execute-ready Storagenicht freigegeben Fenster03:20-03:40 Europe/Berlin plus RandomizedDelaySec 20min
User-Agent SaferPageFeedRunner/0.1 (+https://saferpage.de/bot; scheduled security feed readiness and gated feed runs)

Der Runner identifiziert sich mit Link zur Bot-Seite und prüft erst die Aktivierungs-Gates, bevor externe Feeds abgefragt werden.

Gate-Regel

activation_ready=true und Runner mit --execute-ready gestartet.

Der letzte öffentliche State zeigt keine externen Feed-Ausführungen.

Run-Policy

Externe Feed-Calls nur wenn: activation_ready=true and --execute-ready was passed

Storage nur wenn: SAFERPAGE_SECURITY_FEED_STORAGE_APPROVED=yes and a live connector was executed

Credential-Manifest

0/4 Referenzen gesetzt · Connectoren blockiert

Only env_ref and present flags are exported; never secret values, tokens, request payloads or webhook URLs.

Storage Canary

Storage Canary wurde in diesem Runner-State nicht angefordert.

Status: · gespeichert: 0

Canary-Vertrag öffnen

Domain-Entscheidungen

Zuletzt bewertete Feed-Aktivierungen

Wettbewerbsmatrix
stuehrenberg-holzbau.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
stupa-viadrina.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
stunt-scooter.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
stylebreaker.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
stuttgarter-urologen.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
stuttgarter-hautarzt.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
studymed.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
stura-btu.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.tsg-hoffenheim.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.trisor.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.trauringmanufaktur.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.tire-trooper.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.tipes.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.tickee.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.traintrackapp.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
studio2-motorsport.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.tanz-zentrale.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.teatro.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.taulin.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.t21industries.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.theater-ulm.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.suzuki-griesbeck.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.stromer-bike.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.stromberg-zabergaeu.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.starpizzakiel.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.spruegel-hometex.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.sport-basti.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.stiers.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.stober-online.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL
shop.stadtwerke-schorndorf.de blocked · 2026-07-30T01:31:33+00:00

HTTP Error 402: Payment Required

Gates
0 blockiert
Storage
nicht freigegeben
Aktivierung
öffnen
Report
Kurz-URL