Skip to content

juergen2025sys/NETSHIELD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8,232 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NETSHIELD β€” Automated Threat Intelligence


Combined Β  Feed Health Β  Confidence Β  False Positive

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


πŸ“Š Key Statistics

245

IP-Quellen
(dynamisch)

384,608

Aktive IP-Drohungen
(Confidence β‰₯65)

32,883

CVE/Exploit IPs
Β 

117,614

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.


πŸ“‹ Blocklisten

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

🎯 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_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

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