Skip to content

juergen2025sys/NETSHIELD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7,821 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NETSHIELD β€” Automated Threat Intelligence


Combined Β  Feed Health Β  Confidence Β  False Positive

⚑ Quick Start Β· πŸ“Š Blocklisten Β· 🎯 Scoring Β· πŸ—οΈ Architektur Β· βš™οΈ Workflows Β· πŸ“‘ Feeds


πŸ“Š Key Statistics

169

IP-Quellen
(dynamisch)

409,433

Aktive IP-Drohungen
(Confidence β‰₯65)

33,233

CVE/Exploit IPs
Β 

91,022

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.


πŸ“‹ Blocklisten

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

🎯 Wie funktioniert die Bewertung

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-Schwellen

Score Liste Verwendung
πŸ”΄ β‰₯ 65 active_blacklist Firewall Β· direktes Blocking
🟠 β‰₯ 40 confidence40 Erweiterte Regeln
🟑 25–39 watchlist Nur Monitoring
βšͺ < 25 combined Audit / SIEM

πŸ—οΈ Architektur

~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)

βš™οΈ Workflows

πŸ”§ 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

πŸ• Datenfluss & Timing

── 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

πŸ“ˆ Reports & Monitoring

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

πŸ“‘ Feed-Quellen

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.


πŸ“ Dateistruktur

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

πŸ”’ Schutzmechanismen

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

⬆ Nach oben

About

Automated IPv4 threat intelligence: combined blacklist from 100+ feeds, confidence scoring, ASN reputation, geo-tagged per country. Updated every 3h.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages