Skip to content

juergen2025sys/NETSHIELD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4,068 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ NETSHIELD

Automatisiertes IP-Threat-Intelligence-System mit dynamischer Blacklist-Verwaltung.


Status Update Retention Sources Coverage


Update Combined Feed Health Confidence Blacklist False Positive Checker


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


πŸ“Š Key Statistics

134

IP-Quellen
(dynamisch)

2,326,802

Aktive IP-Drohungen
(Confidence β‰₯65)

52,974

CVE/Exploit IPs
Β 

171,881

Honeypot IPs
Β 
πŸ•’ Letztes Update 2026-05-07 09:59 UTC πŸ”„ Intervall 8Γ— tΓ€glich
πŸ“… IP-Retention 180 Tage βš™οΈ Aktive Workflows 19
🌍 Abdeckung 250+ LÀnder

NETSHIELD aggregiert, bewertet und bereinigt tΓ€glich IP-Bedrohungsdaten aus ΓΌber 120 Quellen: 98 ΓΆffentliche Remote-Feeds, 5 lokale Sub-Workflow-Feeds (CVE, Honeypot, HoneyDB, Bot-Detector, AbuseIPDB API) und ~18 automatisch entdeckte GitHub-Feeds. Das System unterscheidet aktive Bedrohungen von veralteten statischen Listen und liefert daraus qualitativ hochwertige Blocklisten fΓΌr OPNsense, pfSense und iptables.


⚑ Quick Start β€” OPNsense Alias

Firewall β†’ Aliases β†’ URL Table (Type: URL Table (IPs)):

  1. Neuen URL Alias erstellen
  2. Listen-URL einfΓΌgen
  3. Intervall auf TΓ€glich setzen
  4. Regeln anwenden
# βœ… Empfohlen – aktive Bedrohungen (Score β‰₯65, letzte 30 Tage)
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/active_blacklist_ipv4.txt

# πŸ” Grâßere Abdeckung (Score β‰₯40)
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/blacklist_confidence40_ipv4.txt

# πŸ‘οΈ Nur Monitoring (Score 25–39)
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/watchlist_confidence25to39_ipv4.txt
🐧 iptables / ipset
ipset create netshield hash:ip
curl -s https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/active_blacklist_ipv4.txt \
  | grep -v '^#' | xargs -I{} ipset add netshield {}
iptables -I INPUT -m set --match-set netshield src -j DROP

πŸ“‹ Blocklisten

Datei Zweck EintrΓ€ge Empfohlen fΓΌr
πŸ›‘οΈ active_blacklist_ipv4.txt Aktive Bedrohungen Β· letzte 30 Tage Β· Score β‰₯ 65 2,326,802 OPNsense / pfSense / Firewall
πŸ”Ά blacklist_confidence40_ipv4.txt Mittleres bis hohes Vertrauen Β· Score β‰₯ 40 4,025,689 Erweiterte Filterregeln
πŸ“¦ combined_threat_blacklist_ipv4.txt Alle IPs Β· 180-Tage-Fenster 5,028,709 Audit / SIEM
πŸ‘οΈ watchlist_confidence25to39_ipv4.txt Watchlist Β· Score 25–39 177,591 Monitoring
πŸ’£ cve_exploit_ips.txt CVE-Exploits & aktive C2-Server 52,974 IDS / IPS
🍯 honeypot_ips.txt Honeypot-bestÀtigte Angreifer 171,881 ErgÀnzung
🍯 honeydb_ips.txt HoneyDB Community Honeypot (API) 17,426 ErgÀnzung
πŸ€– bot_detector_blacklist_ipv4.txt Bot- & Scanner-IPs 17,949 Web-Schutz
πŸ”— abuseipdb_api_blacklist.txt AbuseIPDB 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.

🌍 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

121 Quellen (98 Remote + 5 Lokal + ~18 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
  HoneyDB Monitor  β”‚
  Bot-Detector β”€β”€β”€β”€β”˜

Enrichment (nach Combined):
  Geo-Tagger ──────→ 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) Feeds laden, seen_db aktualisieren, combined + active Blacklists schreiben
Confidence Blacklist 8Γ— tΓ€glich (+45 min) confidence40 + watchlist aus seen_db berechnen
False Positive Checker 3Γ— tΓ€glich Whitelist-CIDRs prΓΌfen β†’ false_positives_set.json
NETSHIELD Report Generator alle 30 Minuten 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 tΓ€glich 23:00 Honeypot-Feeds β†’ honeypot_ips.txt
HoneyDB Monitor tΓ€glich 22:15 HoneyDB API β†’ honeydb_ips.txt
Bot-Detector Blacklist tΓ€glich 22:45 Bot-IPs β†’ bot_detector_blacklist_ipv4.txt
Auto Feed Discovery wΓΆchentlich So 04:30 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 Python-Code + Production Health Checks (seen_db, Output-Sanity, Drift, Feed-AusfΓ€lle)
Update All Countries IPv4 Mo + Mi 01:30 LΓ€nder/Kontinente IPv4-Ranges synchronisieren
🀝 Community
Workflow Trigger Aufgabe
Community IP Report Issue mit Label community-report Community-gemeldete IPs validieren und eintragen

πŸ• Datenfluss & Timing

22:15  HoneyDB Monitor  ──────────────────┐
22:45  Bot-Detector Blacklist ─────────────
23:00  Honeypot Monitor ───────────────────
00:00  Update Combined Blacklist ─────────┼──→ seen_db Cache
00:45  Confidence Blacklist β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    (8Γ— tΓ€glich wiederholt)
01:00  Feed Health Monitor
01:15  Workflow Health Checker ←──────────── (4Γ— tΓ€glich: 01:15, 07:15, 13:15, 19:15)
01:30  Update All Countries (Mo+Mi)
02:00  ASN Reputation Scorer
04:00  CVE-to-IP Mapper
04:30  Auto Feed Discovery (So)
05:00  False Positive Checker
07:00  Score Decay Monitor (So)
07:45  Geo-Tagger (So)

🀝 Community Reports

VerdΓ€chtige IPs kΓΆnnen ΓΌber das Issue-System gemeldet werden:

  1. Issue mit Label community-report erstellen
  2. System validiert die IP automatisch (nur ΓΆffentliche IPv4)
  3. IP landet als Watchlist-Eintrag in der seen_db
  4. Bei 3 unabhΓ€ngigen Meldungen β†’ Promotion zur aktiven Blacklist
  5. Issue wird automatisch geschlossen

Tip

Limit: 5 Reports pro User pro Tag.


πŸ“ˆ 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, HoneyDB (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 (49 von 98 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/                   # 16 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)
β”œβ”€β”€ watchlist_confidence25to39_ipv4.txt  # β†’ Monitoring (Score 25–39)
β”‚
β”œβ”€β”€ cve_exploit_ips.txt                  # CVE/C2-IPs (tΓ€glich)
β”œβ”€β”€ honeypot_ips.txt                     # Honeypot-Feeds (tΓ€glich)
β”œβ”€β”€ honeydb_ips.txt                      # HoneyDB API (tΓ€glich)
β”œβ”€β”€ bot_detector_blacklist_ipv4.txt      # Bot-Detector (tΓ€glich)
β”œβ”€β”€ abuseipdb_api_blacklist.txt          # AbuseIPDB API (Round-Robin)
β”œβ”€β”€ asn_blocklist_firewall.txt           # ASN-Blocking (Score β‰₯50)
β”‚
β”œβ”€β”€ asn_reputation_db.json               # ASN-Scoring-Daten
β”œβ”€β”€ blacklist_geo_enriched.json          # Geo-Anreicherung
β”œβ”€β”€ 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, community)

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