Files
2026-07-21 10:09:31 +02:00

6.1 KiB
Raw Permalink Blame History

SecWatch — IT-Sicherheitsbriefing

Erstellt von Holger Coenen · Version 1.0 · 202607 · Mit Hilfe von KI


Was ist SecWatch?

SecWatch ist eine eigenständige HTML-Datei (secwatch.html), die aktuelle IT-Sicherheitsmeldungen, CVEs und Cybervorfälle aus mehreren kostenfreien, öffentlichen Quellen zusammenfasst und übersichtlich darstellt.

Kein API-Key, kein Backend, kein Server, keine Kosten. Einfach die HTML-Datei im Browser öffnen.


Datenquellen

Quelle Inhalt Abrufmethode
Heise Security Deutsche Sicherheitsnews, Analysen, Warnungen RSS-Feed via rss2json.com
CERT-Bund / BSI Offizielle deutsche Schwachstellenwarnungen RSS-Feed via rss2json.com
NIST NVD Nationale Vulnerability Database — CVEs mit CVSS-Scores Direkte REST API (services.nvd.nist.gov)
CISA KEV Katalog aktiv in der Praxis ausgenutzter Schwachstellen Direkte JSON-Datei (CORS-eingeschränkt)

Hinweise zu den Quellen

  • Heise & CERT-Bund: RSS-Feeds werden über rss2json.com in JSON umgewandelt, da RSS-Feeds keine CORS-Header liefern. Der Dienst ist kostenfrei und benötigt keinen API-Key.
  • NVD: Die API ist komplett frei zugänglich und liefert CORS-Header (access-control-allow-origin: *). Ohne API-Key gilt ein Rate-Limit von 5 Anfragen pro 30 Sekunden.
  • CISA KEV: Die JSON-Datei (~2 MB) enthält keine CORS-Header und kann daher aus dem Browser heraus eingeschränkt sein. Die App behandelt einen Ausfall fehlerfrei.

Funktionen

Kernfunktionen

  • Tagesbericht abrufen — Lädt parallel alle 4 Quellen und zeigt die Ergebnisse
  • Automatische Aktualisierung — Alle 2 Stunden wird der Bericht aktualisiert
  • 24-Stunden-Verlauf — Frühere Berichte bleiben als Chips gespeichert (localStorage)
  • PDF-Export — Ein-Klick-Export als PDF (via jsPDF)

Sicherheitsklassifikation

Jeder Meldung wird automatisch ein Schweregrad zugewiesen:

Schweregrad Farbe Kriterium
Kritisch Rot CVSS >= 9.0, CISA KEV-Eintrag, Zero-Day
Hoch Orange CVSS 7.08.9
Mittel Türkis CVSS 4.06.9, Standardwert
Niedrig Grün CVSS < 4.0

CISA KEV-Sonderstatus

Einträge aus dem CISA-Katalog (aktiv ausgenutzte Schwachstellen) erhalten zusätzlich ein rotes KEV-Badge. Ransomware-Verbindungen werden in den Zusammenfassungen explizit erwähnt.


Technische Details

Architektur

  • Eine einzige HTML-Datei — kein Build, kein npm, kein Bundler
  • Vanilla JavaScript — keine Frameworks, keine Abhängigkeiten (außer jsPDF)
  • localStorage für die 24h-Verwaltung der Berichte

Externe Abhängigkeiten

Abhängigkeit Version Zweck
IBM Plex Mono Google Fonts Monospace-Schriftart
IBM Plex Sans Google Fonts Sans-Schriftart
jsPDF 2.5.1 (CDN) PDF-Generierung
rss2json.com RSS-zu-JSON-Umwandlung

Dateistruktur

SecWatch/
├── secwatch.html    # Die komplette Anwendung
└── README.md        # Diese Dokumentation

JavaScript-Modulübersicht

Funktion Beschreibung
storage localStorage-Wrapper für 24h-Berichtsverwaltung
fetchHeise() Lädt Heise Security RSS (letzte 48h)
fetchCertBund() Lädt CERT-Bund RSS (Schwachstellenwarnungen)
fetchNVD() Lädt aktuelle CVEs der letzten 3 Tage (Score >= 7.0)
fetchCISA() Lädt CISA KEV der letzten 14 Tage (optional)
renderItems() Gruppiert und rendert Meldungen nach Kategorie
buildPdf() Generiert PDF-Export via jsPDF
scheduleAutoRefresh() Plant Auto-Refresh mit Countdown
guessSeverity() Erkennt Schweregrad aus Text-Schlüsselwörtern
extractCertSeverity() Extrahiert Schweregrad aus CERT-Bund Titeln
mapCvssSeverity() Mappt CVSS-Score auf Schweregrad-Stufen
buildCveSummary() Erstellt deutsche Zusammenfassungen aus CVE-Beschreibungen

Nutzung

  1. secwatch.html im Browser öffnen
  2. Auf "Tagesbericht abrufen" klicken
  3. Warten, bis die 4 Quellen geladen sind (310 Sekunden)
  4. Optional: PDF exportieren oder Auto-Aktualisierung aktivieren

Tastatur-Shortcut

Leider keine definiert — der Button ist die einzige Interaktionsmöglichkeit.

Offline-Nutzung

Einmal geladene Berichte bleiben 24 Stunden im localStorage verfügbar und können auch ohne Internetverbindung angesehen werden.


Bekannte Einschränkungen

  • CISA KEV: Kann aus dem Browser nicht immer geladen werden (fehlende CORS-Header). In diesem Fall wird die Quelle als "Übersprungen" angezeigt — die restlichen 3 Quellen funktionieren weiterhin.
  • NVD Rate-Limit: Ohne API-Key max. 5 Anfragen / 30 Sek. Bei der normalen Nutzung (alle 2 Stunden) kein Problem.
  • rss2json.com: Kostenfreier Dienst mit Rate-Limit. Bei sehr häufigem manuellen Abruf kann es kurzfristige Verzögerungen geben.
  • Kein Server-Rendering: Die Zusammenfassungen werden maschinell aus Metadaten erstellt und sind keine KI-generierten Texte.

Entwicklung

Voraussetzungen

  • Jeder moderne Browser (Chrome, Firefox, Safari, Edge)
  • Keine Build-Tools, kein Node.js, kein lokaler Server nötig

Lokale Entwicklung

# Einfach im Browser öffnen:
open secwatch.html

# Oder mit lokalem Server (optional):
python3 -m http.server 8000
# Dann http://localhost:8000/secwatch.html öffnen

Anpassungen

Neue Quelle hinzufügen

  1. Neue async function fetchXYZ() erstellen
  2. Im fetchBriefing()-Promsie hinzufügen
  3. In sourceStates registrieren

Farben anpassen

CSS-Variablen in :root ändern:

:root {
  --crit: #E5484D;   /* Kritisch */
  --high: #F5A623;   /* Hoch */
  --med: #3FB8AF;    /* Mittel */
  --low: #4CAF7D;    /* Niedrig */
}

Lizenz

Dieses Projekt wurde von Holger Coenen erstellt. Verwendung auf eigenes Risiko.


Changelog

Version 1.0 (202607)

  • Erstveröffentlichung
  • 4 Datenquellen: Heise, CERT-Bund, NVD, CISA KEV
  • PDF-Export via jsPDF
  • Automatische Aktualisierung alle 2 Stunden
  • 24-Stunden-Verlauf im localStorage
  • Responsives Design (Dark Theme)