β‘ Quick Start Β· π Blocklisten Β· π― Scoring Β· ποΈ Architektur Β· βοΈ Workflows Β· π‘ Feeds
|
IP-Quellen (dynamisch) |
Aktive IP-Drohungen (Confidence β₯65) |
CVE/Exploit IPs Β |
Honeypot IPs Β |
| π Letztes Update | 2026-06-30 18:28 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 | 409,433 | OPNsense / pfSense / Firewall |
πΆ blacklist_confidence40_ipv4.txt |
Mittleres bis hohes Vertrauen Β· Score β₯ 40 | 5,570,651 | Erweiterte Filterregeln |
π¦ combined_threat_blacklist_ipv4.txt |
Alle IPs Β· 180-Tage-Fenster | 6,972,545 | Audit / SIEM |
ποΈ watchlist_confidence25to39_ipv4.txt |
Watchlist Β· Score 25β39 | 61,930 | Monitoring |
π£ cve_exploit_ips.txt |
CVE-Exploits & aktive C2-Server | 33,233 | IDS / IPS |
π― honeypot_ips.txt |
Honeypot-bestΓ€tigte Angreifer | 91,022 | ErgΓ€nzung |
π― honigtopf_ips.txt |
Honigtopf Community Honeypot (API) | 13,408 | ErgΓ€nzung |
π¦ tweetfeed_ips.txt |
TweetFeed.live Community IOCs | 11,360 | ErgΓ€nzung |
π€ bot_detector_blacklist_ipv4.txt |
Bot- & Scanner-IPs | 17,949 | Web-Schutz |
π reputation_blacklist.txt |
Reputation Top-IPs (API, Score β₯50) | 9,983 | ErgΓ€nzung |
π asn_blocklist_firewall.txt |
Hochrisiko-ASNs Β· Score β₯ 50 | 19 | ASN-Blocking |
Note
combined_threat_blacklist_ipv4.txt: Wenn die Datei ΓΌber 90 MB wΓ€chst, werden zusΓ€tzlich Parts combined_threat_blacklist_ipv4_part1.txt, _part2.txt (etc.) mit je ca. 40 MB erzeugt. Die Hauptdatei bleibt bestehen, solange sie unter 100 MB ist (GitHub-Limit). Firewall-Konsumenten, die am GitHub-Limit angestoΓen werden, sollten stattdessen die Parts als separate URLs importieren.
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):
Geo-Tagger βββββββ geo_enriched/blacklist_geo_enriched.json
ASN Scorer βββββββ asn_reputation_db.json
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 |
|---|---|---|
| Geo-Tagger | wΓΆchentlich So 07:45 | Blacklist-IPs geo-anreichern via ScaniteX |
| ASN Reputation Scorer | tΓ€glich 02:00 | ASN-Scoring β asn_reputation_db.json |
| 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:00 ASN Reputation Scorer
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
07:45 (So) Geo-Tagger
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 |
π geo_tagger_report.md |
Geo-Verteilung der Blacklist-IPs |
π’ asn_reputation_report.md |
ASN-Scoring mit Abuse-Dichte |
π 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.txt # β Audit / SIEM (180 Tage)
βββ combined_threat_blacklist_ipv4_part1.txt # β Parts bei >90 MB (GitHub-Limit)
βββ combined_threat_blacklist_ipv4_part2.txt # (Hauptdatei + seen_db bleiben vollstΓ€ndig)
βββ 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)
β
βββ asn_reputation_db.json # ASN-Scoring-Daten
βββ geo_enriched/ # Geo-Anreicherung (Haupt + Parts)
β βββ blacklist_geo_enriched.json
β βββ blacklist_geo_enriched_part*.json
βββ 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