β‘ Quick Start Β· π Blocklisten Β· π― Scoring Β· ποΈ Architektur Β· βοΈ Workflows Β· π‘ Feeds
|
IP-Quellen (dynamisch) |
Aktive IP-Drohungen (Confidence β₯65) |
CVE/Exploit IPs Β |
Honeypot IPs Β |
| π Letztes Update | 2026-07-05 01:45 UTC | π Intervall | 8Γ tΓ€glich |
| π IP-Retention | 180 Tage | βοΈ Aktive Workflows | 24 |
| π 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 | 384,608 | OPNsense / pfSense / Firewall |
πΆ blacklist_confidence40_ipv4.txt |
Mittleres bis hohes Vertrauen Β· Score β₯ 40 | 5,675,091 | Erweiterte Filterregeln |
π¦ _part1.txt Β· _part2.txt |
Alle IPs Β· 180 Tage Β· 2 Parts | 7,245,750 | Audit / SIEM |
ποΈ watchlist_confidence25to39_ipv4.txt |
Watchlist Β· Score 25β39 | 49,020 | Monitoring |
π£ cve_exploit_ips.txt |
CVE-Exploits & aktive C2-Server | 32,883 | IDS / IPS |
π― honeypot_ips.txt |
Honeypot-bestΓ€tigte Angreifer | 117,614 | ErgΓ€nzung |
π― honigtopf_ips.txt |
Honigtopf Community Honeypot (API) | 10,003 | 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,968 | ErgΓ€nzung |
π asn_blocklist_firewall.txt |
Hochrisiko-ASNs Β· Score β₯ 50 | 19 | 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):
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_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)
β
βββ 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