⚡ Quick Start · 📊 Blocklisten · 🎯 Scoring · 🏗️ Architektur · ⚙️ Workflows · 📡 Feeds
|
IP-Quellen (dynamisch) |
Aktive IP-Drohungen (Confidence ≥65) |
CVE/Exploit IPs |
Honeypot IPs |
| 🕒 Letztes Update | 2026-07-29 04:58 UTC | 🔄 Intervall | 8× täglich |
| 📅 IP-Retention | 180 Tage | ⚙️ Aktive Workflows | 23 |
| 🌍 Abdeckung | 250+ Länder | ||
NETSHIELD aggregiert, bewertet und bereinigt täglich IP-Bedrohungsdaten aus über 160 Quellen (dynamisch, wächst laufend durch Auto-Discovery): rund 120 öffentliche Remote-Feeds, 6 lokale Sub-Workflow-Feeds (CVE, Honeypot, Honigtopf, Bot-Detector, TweetFeed und laufend neu per GitHub-Discovery entdeckte Feeds. Das System unterscheidet aktive Bedrohungen von veralteten statischen Listen und liefert daraus qualitativ hochwertige Blocklisten für OPNsense, pfSense und iptables.
| Datei | Zweck | Einträge | Empfohlen für |
|---|---|---|---|
🛡️ active_blacklist_ipv4.txt |
Aktive Bedrohungen · letzte 30 Tage · Score ≥ 65 | 444,040 | OPNsense / pfSense / Firewall |
🔶 blacklist_confidence40_ipv4.txt |
Mittleres bis hohes Vertrauen · Score ≥ 40 | 6,366,440 | Erweiterte Filterregeln |
📦 _part1.txt · _part2.txt |
Alle IPs · 180 Tage · 2 Parts | 8,122,778 | Audit / SIEM |
👁️ watchlist_confidence25to39_ipv4.txt |
Watchlist · Score 25–39 | 51,156 | Monitoring |
💣 cve_exploit_ips.txt |
CVE-Exploits & aktive C2-Server | 30,026 | IDS / IPS |
🍯 honeypot_ips.txt |
Honeypot-bestätigte Angreifer | 170,390 | Ergänzung |
🍯 honigtopf_ips.txt |
Honigtopf Community Honeypot (API) | 43,838 | Ergänzung |
🐦 tweetfeed_ips.txt |
TweetFeed.live Community IOCs | 11,360 | Ergänzung |
🤖 bot_detector_blacklist_ipv4.txt |
Bot- & Scanner-IPs | 1,161,870 | Web-Schutz |
🔗 reputation_blacklist.txt |
Reputation Top-IPs (API, Score ≥50) | 9,974 | Ergänzung |
🌐 asn_blocklist_firewall.txt |
Hochrisiko-ASNs · Score ≥ 50 | 0 | ASN-Blocking |
Note
Combined-Blacklist (2 feste Parts): Die vollständige IPv4-Liste wird als genau zwei committete Dateien combined_threat_blacklist_ipv4_part1.txt und combined_threat_blacklist_ipv4_part2.txt bereitgestellt (IP-sortiert geteilt, je ~48 MB). Diese beiden Parts sind die kanonische Quelle. Die frühere Einzeldatei combined_threat_blacklist_ipv4.txt wird nicht mehr committet (sie würde das 100-MB-GitHub-Limit pro Datei sprengen); interne Workflows erzeugen sie bei Bedarf im Runner aus den Parts. Firewall-Konsumenten (z. B. OPNsense) importieren die beiden Part-URLs als separate Aliase. Hinweis: Bei fix zwei Parts liegt die harte Obergrenze bei ~200 MB gesamt (2 × 100-MB-Limit); ein Frühwarn-Log meldet, sobald ein Part 90 MB überschreitet.
Wann kommen keine neuen IPs mehr in die Hauptdatei? Die Begrenzung erfolgt über die Dateigröße, nicht über eine feste IP-Anzahl. Solange die geschätzte Vollgröße unter 100 MB (HARD_LIMIT_MB) bleibt, enthält die Hauptdatei alle IPs. Sobald sie 100 MB erreichen würde, wird sie auf ~95 MB (TRUNCATE_TARGET_MB) gekürzt – bei der aktuellen durchschnittlichen Zeilenlänge (~14,3 Bytes/IP) entspricht das rund 7 Millionen IPs. Ab diesem Punkt wächst nur noch die Part-Datei-Reihe; zusätzliche IPs landen ausschließlich in den Parts. Es gehen dabei keine IPs verloren – die Parts (und seen_db) enthalten stets die vollständige Liste. Die genaue Schwelle verschiebt sich leicht mit der IP-Zusammensetzung (kurze vs. lange Adressen).
🌍 Geo-Listen
countries/ → IPv4-Ranges pro Land, nach Kontinent sortiert
continents/ → Zusammengefasste Ranges pro Kontinent
all_countries_ipv4.txt → Alle Länder in einer Datei
Jede IP bekommt einen Confidence-Score (0–100) aus vier Dimensionen:
Score = Quellen-Qualität (40) + Aktualität (30) + Persistenz (20) + Bekannt seit (10)
| Dimension | Gewicht | Logik |
|---|---|---|
| 🏅 Quellen-Qualität | 40 |
HQ-Feed = 40 · 5+ Feeds heute = 35 · 3+ heute = 28 · 2+ heute = 20 · 5+ gesamt = 15 · 3+ gesamt = 10 · 2+ gesamt = 5 |
| ⏱️ Aktualität | 30 |
Heute = 30 · ≤ 3 Tage = 25 · ≤ 7 Tage = 20 · ≤ 14 Tage = 12 · ≤ 30 Tage = 6 |
| 🔁 Persistenz | 20 |
14+ Tage = 20 · 7 Tage = 15 · 3 Tage = 10 · 2 Tage = 6 · 1 Tag = 2 |
| 📆 Bekannt seit | 10 |
90+ Tage = 10 · 30+ Tage = 6 · 14+ Tage = 3 |
Important
Nur HQ-Feeds (Feodo, AbuseIPDB, Spamhaus, DataPlane, FireHOL u. a.) bestimmen die Lebenszeit einer IP. Statische Mega-Listen erhöhen den Score, können eine IP aber nicht am Leben halten. Nach 180 Tagen ohne HQ-Bestätigung wird eine IP automatisch entfernt. Watchlist-IPs ohne HQ-Bestätigung laufen bereits nach 30 Tagen ab.
| Score | Liste | Verwendung |
|---|---|---|
| 🔴 ≥ 65 | active_blacklist |
Firewall · direktes Blocking |
| 🟠 ≥ 40 | confidence40 |
Erweiterte Regeln |
| 🟡 25–39 | watchlist |
Nur Monitoring |
| ⚪ < 25 | combined |
Audit / SIEM |
~120 Quellen · dynamisch (Remote + Lokal + Auto-Discovered)
│
▼
┌─────────────────────────────────────────────┐
│ Update Combined Blacklist │ ← Haupt-Engine · 8× täglich
│ │
│ ┌─────────────┐ ┌──────────────────────┐ │
│ │ seen_db │ │ False-Positive-Set │ │
│ │ (Cache) │ │ (Whitelist-Filter) │ │
│ └──────┬──────┘ └──────────────────────┘ │
│ │ │
│ Score-Berechnung · HQ/Non-HQ Trennung │
│ IP-Lebenszeit: 180T (HQ) / 30T (Watchlist)│
└──────────┬──────────────────────────────────┘
│
┌─────┼─────────────────┐
▼ ▼ ▼
active combined confidence40
≥65 180T ≥40 / watchlist
│ │ │
▼ ▼ ▼
OPNsense Audit/SIEM Analyse
Sub-Workflows (vor Combined):
CVE Mapper ──────┐
Honeypot Monitor ├──→ Lokale .txt-Dateien ──→ Combined liest ein
Honigtopf │
Bot-Detector ────┘
Enrichment (nach Combined):
Score Decay ─────→ Alterungs-Report (read-only)
🔧 Kern-Pipeline
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| Update Combined Blacklist | 8× täglich, alle 3h (00:07, 03:07 … 21:07 UTC; +Backups :27/:47) | Feeds laden, seen_db aktualisieren, combined + active Blacklists schreiben |
| Confidence Blacklist | 8× täglich (01:47, 04:47 … 22:47 UTC) | confidence40 + watchlist aus seen_db berechnen |
| False Positive Checker | 3× täglich (05:00, 13:00, 20:00 UTC) | Whitelist-CIDRs prüfen → false_positives_set.json |
| NETSHIELD Report Generator | stündlich (:30) | NETSHIELD_REPORT.md + README-Statistiken aktualisieren |
📡 Datenquellen (Sub-Workflows)
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| CVE-to-IP Mapper | täglich 04:00 | C2/Exploit-IPs → cve_exploit_ips.txt |
| Honeypot Monitor | 4× täglich (05:00, 11:00, 17:00, 23:00) | Honeypot-Feeds → honeypot_ips.txt |
| Honigtopf | stündlich (:15) | Honigtopf API → honigtopf_ips.txt |
| TweetFeed Monitor | täglich 02:45 | TweetFeed.live IOCs → tweetfeed_ips.txt |
| Bot-Detector Blacklist | täglich 22:45 | Bot-IPs → bot_detector_blacklist_ipv4.txt |
| Auto Feed Discovery | wöchentlich So 04:37 (+Backups 07:23, 11:47) | GitHub nach neuen Feeds durchsuchen |
🔍 Enrichment & Monitoring
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| Score Decay Monitor | wöchentlich So 07:00 | Alterungs-Report (read-only) |
| Feed Health Monitor | täglich 01:00 | Feed-URLs auf Erreichbarkeit prüfen |
| Workflow Health Checker | 4× täglich (01:15, 07:15, 13:15, 19:15) | Python-Code + Production Health Checks (seen_db, Output-Sanity, Drift, Feed-Ausfälle) |
| Workflow Health Report | alle 6h (00:05, 06:05, 12:05, 18:05) | Workflow-Status-Report schreiben |
| Watchdog Combined | alle 15 min | Combined-Pipeline auf Stillstand überwachen |
| Watchdog Honigtopf | 4× pro Stunde (:07/:22/:37/:52) | Honigtopf-Workflow auf Stillstand überwachen |
| CodeQL Security Scan | wöchentlich So 03:00 | Statische Sicherheitsanalyse des Codes |
| Update All Countries IPv4 | Mo + Mi 01:30 | Länder/Kontinente IPv4-Ranges synchronisieren |
── Häufig / stündlich (UTC) ───────────────────────────────────
*/15 Watchdog Combined (Stillstands-Check)
:07/:22/:37/:52 Watchdog Honigtopf (Stillstands-Check)
:15 Honigtopf ──────────────────┐ (stündlich)
:30 NETSHIELD Report Generator │ (stündlich)
│
── Combined-Pipeline · 8× täglich, alle 3h ────┤
00:07,03:07 … 21:07 Update Combined Blacklist ┼──→ seen_db Cache
(+Backups :27 / :47) │
01:47,04:47 … 22:47 Confidence Blacklist ─────┘ (8× täglich)
── Täglich · feste Slots (UTC) ────────────────────────────────
00:05,06:05,12:05,18:05 Workflow Health Report
01:00 Feed Health Monitor
01:15,07:15,13:15,19:15 Workflow Health Checker
01:30 (Mo+Mi) Update All Countries
02:45 TweetFeed Monitor
03:00 (So) CodeQL Security Scan
04:00 CVE-to-IP Mapper
04:37 (So) Auto Feed Discovery (+Backups 07:23, 11:47)
05:00,11:00,17:00,23:00 Honeypot Monitor
05:00,13:00,20:00 False Positive Checker
07:00 (So) Score Decay Monitor
22:45 Bot-Detector Blacklist
| Datei | Inhalt |
|---|---|
📊 NETSHIELD_REPORT.md |
Gesamtübersicht + Feed Health (alle 30 min) |
💚 feed_health_report.md |
Status aller Feed-URLs |
⚙️ workflow_health_report.md |
Workflow-Analyse (Python-Syntax, Cron-Timing, Guards) |
🔀 combined_threat_blacklist_report.md |
Feed-Statistik pro Lauf |
📉 score_decay_report.md |
Alterungs-Analyse der seen_db |
🔎 auto_feed_discovery_report.md |
Neu entdeckte Feeds + Bewertung |
NETSHIELD bezieht Daten aus folgenden Kategorien:
| Kategorie | Beispiele | HQ |
|---|---|---|
| Abuse-Tracker | Feodo, ThreatFox, URLhaus (abuse.ch) | ✅ |
| Blocklist-Aggregatoren | FireHOL Level 1–4, blocklist.de, DShield | ✅ |
| Honeypot-Netzwerke | DataPlane, Turris Sentinel, Honigtopf (API) | ✅ |
| Reputation-Feeds | AbuseIPDB (API + Mirrors), ipsum, CINSscore | ✅ |
| C2/Botnet-Tracker | C2-Tracker, MISP C2 Intel Feeds | ✅ |
| Threat Intelligence | Spamhaus DROP, Emerging Threats, Threatview | ✅ |
| Community-Feeds | GitHub-Repos (auto-discovered), Bot-Detector | ❌ |
| Brute-Force-Listen | CrowdSec, danger.rulez.sk, blocklist.de/ssh | ✅ |
Important
HQ-Feeds (rund die Hälfte aller Remote-Quellen) bestimmen die Lebenszeit einer IP. Non-HQ-Feeds erhöhen den Confidence-Score, können IPs aber nicht am Leben halten.
Repository-Layout anzeigen
NETSHIELD/
├── .github/workflows/ # GitHub Actions Workflows
├── continents/ # IPv4-Ranges pro Kontinent
├── countries/ # IPv4-Ranges pro Land
│ ├── africa/ · asia/ · europe/
│ ├── north_america/ · oceania/ · south_america/
│
├── active_blacklist_ipv4.txt # → Firewall (Score ≥65, 30 Tage)
├── blacklist_confidence40_ipv4.txt # → Erweiterte Regeln (Score ≥40)
├── combined_threat_blacklist_ipv4_part1.txt # → Audit / SIEM (180 Tage) – kanonisch, Teil 1/2
├── combined_threat_blacklist_ipv4_part2.txt # kanonisch, Teil 2/2 (Einzeldatei nicht mehr committet)
├── watchlist_confidence25to39_ipv4.txt # → Monitoring (Score 25–39)
│
├── cve_exploit_ips.txt # CVE/C2-IPs (täglich)
├── honeypot_ips.txt # Honeypot-Feeds (täglich)
├── honigtopf_ips.txt # Honigtopf API (täglich)
├── tweetfeed_ips.txt # TweetFeed.live IOCs (täglich)
├── bot_detector_blacklist_ipv4.txt # Bot-Detector (täglich)
├── reputation_blacklist.txt # Reputation API (Round-Robin)
├── asn_blocklist_firewall.txt # ASN-Blocking (Score ≥50)
│
├── auto_discovered_feeds.json # Auto-entdeckte Feeds
├── false_positives_set.json # FP-Whitelist
├── feed_health_status.json # Feed-Status
├── seen_db_meta.json # seen_db Metadaten (DB im Cache)
│
├── NETSHIELD_REPORT.md # Haupt-Dashboard
└── README.md
| Mechanismus | Beschreibung |
|---|---|
| 🛑 Leerungsschutz | Jeder Workflow prüft MIN_ENTRIES vor dem Schreiben — bei zu wenigen Ergebnissen bleibt die alte Datei erhalten |
| ⚪ False-Positive-Filter | Umfangreiche Whitelist (CDN, DNS, Mail, Cloud-Provider) verhindert Blocking legitimer Infrastruktur |
| 🏅 HQ/Non-HQ-Trennung | Nur verifizierte HQ-Feeds verlängern die Lebenszeit einer IP — statische Listen können IPs nicht am Leben halten |
| 🔁 Push-Retry | 5 Versuche mit git rebase bei gleichzeitigen Commits |
| 🔐 Concurrency-Lock | Jeder Workflow läuft max. 1× gleichzeitig |
| 📦 Cache-Isolation | Verschiedene Workflows nutzen eigene Cache-Prefixe (v2, fp, afd) |
Automatisch aktualisiert · NETSHIELD_REPORT.md