Automatisiertes IP-Threat-Intelligence-System mit dynamischer Blacklist-Verwaltung
NETSHIELD aggregiert, bewertet und bereinigt täglich IP-Bedrohungsdaten aus über 130 öffentlichen Feeds. Das System unterscheidet zwischen aktiven Bedrohungen und veralteten statischen Listen – und stellt daraus qualitativ hochwertige Blocklisten für Firewalls (OPNsense, pfSense, iptables) bereit.
- Architektur
- Blocklisten
- Wie funktioniert die Bewertung
- Workflows
- Für OPNsense / Firewall
- Community Reports
- Dateistruktur
HQ-Feeds Feodo · Talos · AbuseIPDB · Spamhaus Non-HQ-Feeds romainmarcoux · ipsum · littlejake
setzt last_seen erhöht feed_count
Update Combined Blacklist 8× täglich · seen_db · IP-Lebenszeit 180 Tage active_blacklist 30T + Score ≥ 50 → OPNsense / Firewall combined_blacklist 180 Tage · alle IPs → Audit / SIEM confidence40 Score ≥ 50 · watchlist → AnalyseIP ohne HQ-Bestätigung → altert aus nach 180 Tagen · kehrt zurück wenn wieder aktiv
Kernprinzip: Nur HQ-Feeds (Feodo, Talos, AbuseIPDB, Spamhaus etc.) bestimmen die Lebenszeit einer IP. Statische Mega-Listen erhöhen den Confidence-Score, können eine IP aber nicht am Leben halten. Das System bereinigt automatisch was die Feeds selbst nicht können.
| Datei | Beschreibung | Einträge | Update | Empfohlen für |
|---|---|---|---|---|
active_blacklist_ipv4.txt |
Aktive Bedrohungen (30T + Conf≥50) | 2,589,483 | 8x täglich | OPNsense / Firewall |
combined_threat_blacklist_ipv4.txt |
Alle IPs (180 Tage) | 3,880,095 | 8x täglich | Audit / SIEM |
blacklist_confidence40_ipv4.txt |
Hohe Konfidenz (Score ≥50) | 2,331,037 | 8x täglich | Strenge Umgebungen |
watchlist_confidence20to39_ipv4.txt |
Watchlist (Score 25–49) | 13,568 | 8x täglich | Monitoring |
cve_exploit_ips.txt |
CVE-Exploit & C2-Server | 230,234 | täglich 04:00 | IDS/IPS |
honeypot_ips.txt |
Honeypot-bestätigte IPs | 11,235 | täglich 23:00 | Ergänzung |
honeydb_ips.txt |
HoneyDB Community Honeypot (API) | 12,656 | täglich 22:15 | Ergänzung |
bot_detector_blacklist_ipv4.txt |
Bot-Detector | 17,950 | täglich 23:45 | Web-Schutz |
asn_blocklist_firewall.txt |
Hochrisiko-ASNs (Score≥50) | 19 | täglich 02:00 | ASN-Blocking |
| Verzeichnis | Beschreibung |
|---|---|
continents/ |
IPv4-Ranges pro Kontinent (africa, asia, europe, north_america, oceania, south_america) |
countries/ |
IPv4-Ranges pro Land, organisiert nach Kontinent |
all_countries_ipv4.txt |
Alle Länder zusammengeführt |
Alias URL (aktive Blockliste):
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/active_blacklist_ipv4.txt
Hohe Konfidenz:
https://raw.githubusercontent.com/juergen2025sys/NETSHIELD/main/blacklist_confidence40_ipv4.txt
Jede IP erhält einen Confidence-Score von 0–100 aus vier Dimensionen:
Score = A (Quellen-Qualität) + B (Aktualität) + C (Persistenz) + D (Bekannt seit)
| Dimension | Max | Beschreibung |
|---|---|---|
| A – Quellen-Qualität | 40 | HQ-Feed = 40 Pkt, mehrere Feeds = 20–35 Pkt |
| B – Aktualität | 30 | Letzte HQ-Bestätigung: heute = 30, vor 7T = 20, vor 30T = 6 |
| C – Persistenz | 20 | Über mehrere Tage bestätigt: 14+ Tage = 20 Pkt |
| D – Bekannt seit | 10 | Länger im System = stabiler Score |
Schwellwerte:
- Score ≥ 50 →
active_blacklist+blacklist_confidence40 - Score 25–49 →
watchlist - Score < 25 → nur in
combined(Audit)
Feodo C2, Talos Intelligence, AbuseIPDB (API + Score100), Spamhaus DROP/EDROP, Emerging Threats, FireHOL Level 1/2/3, blocklist.de, CINS Score, C2-Tracker, Cobalt Strike Tracker, ThreatFox IOC, URLhaus, Binary Defense, Turris Greylist, GreenSnow, ThreatView High Confidence, DShield u.v.m.
| Workflow | Zeitplan | Aufgabe |
|---|---|---|
| Update Combined Blacklist | 8x täglich (alle 3h) | Haupt-Engine: Feeds laden, seen_db aktualisieren, Stufe 1+2 schreiben |
| Confidence Blacklist | 8x täglich (15min nach Combined) | confidence40 + watchlist aus seen_db berechnen |
| False Positive Checker | 3x täglich (05:00/13:00/20:00) | Whitelist-CIDRs prüfen, FP aus combined entfernen |
| Honeypot Monitor | täglich 23:00 | Honeypot-Feeds aggregieren → honeypot_ips.txt |
| HoneyDB Monitor | täglich 22:15 | HoneyDB API abfragen → honeydb_ips.txt |
| Bot-Detector Blacklist | täglich 22:45 | bot_detector_blacklist_ipv4.txt aktualisieren |
| CVE-to-IP Mapper | täglich 04:00 | C2/Exploit-IPs → cve_exploit_ips.txt |
| Duplicate Cleaner | täglich 05:30 | Duplikate in Sub-Listen bereinigen |
| Update All Countries IPv4 | Mo + Mi 01:30 | Länder/Kontinente/all_countries synchron erzeugen |
| Auto Feed Discovery | wöchentlich So 04:30 | GitHub nach neuen IP-Feeds durchsuchen + bewerten |
| Geo-Tagger | wöchentlich So 06:45 | Blacklist-IPs mit Länder-Geo-Daten anreichern |
| ASN Reputation Scorer | täglich 02:00 | ASN-Reputationsscoring → asn_reputation_db.json |
| Score Decay Monitor | wöchentlich So 07:00 | Alterungs-Report (read-only, löscht nichts) |
| Feed Health Monitor | täglich 01:00 | Alle Feed-URLs auf Erreichbarkeit prüfen |
| Workflow Health Checker | täglich 01:15 | YAML-Workflows auf Fehler/Warnungen analysieren |
| NETSHIELD Report Generator | alle 30 Minuten | NETSHIELD_REPORT.md + README IP-Zahlen aktualisieren |
| Community IP Report | bei Issue-Erstellung | Community-gemeldete IPs verarbeiten und in seen_db eintragen |
Verdächtige IPs können über das Issue-System gemeldet werden. Das System:
- Validiert die IP (nur öffentliche IPv4, keine DNS-Whitelist)
- Trägt sie mit
hq=Falsein seen_db ein (Watchlist) - Schließt das Issue automatisch mit Feedback
- Promoted die IP zur aktiven Blacklist sobald 3 unabhängige Meldungen vorliegen
Limit: 5 Reports pro User pro Tag.
Verwende das Label community-report beim Erstellen des Issues.
NETSHIELD/
├── .github/workflows/ # 17 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 # → OPNsense
├── combined_threat_blacklist_ipv4.txt # → Audit
├── blacklist_confidence40_ipv4.txt # → Hohe Konfidenz
├── watchlist_confidence20to39_ipv4.txt # → Monitoring
├── cve_exploit_ips.txt
├── honeypot_ips.txt
├── bot_detector_blacklist_ipv4.txt
├── all_countries_ipv4.txt
├── asn_blocklist_firewall.txt
├── asn_reputation_db.json
├── blacklist_geo_enriched.json
├── auto_discovered_feeds.json
├── seen_db_meta.json
├── NETSHIELD_REPORT.md # Automatisch generiert
└── README.md
| Datei | Beschreibung |
|---|---|
NETSHIELD_REPORT.md |
Übersicht aller Listen + Feed Health (alle 30min) |
feed_health_report.md |
Status aller Feed-URLs |
workflow_health_report.md |
Workflow-Analyse (Fehler/Warnungen) |
geo_tagger_report.md |
Geo-Verteilung der Blacklist-IPs |
asn_reputation_report.md |
ASN-Scoring-Report |
score_decay_report.md |
Alterungs-Analyse der seen_db |
auto_feed_discovery_report.md |
Neu entdeckte Feeds |
Automatisch aktualisiert durch NETSHIELD · NETSHIELD_REPORT.md