Sicherheit entsteht, wenn man die richtigen Türen abschliesst, bevor der Einbrecher weiss, dass es sie gibt.
Seit mehreren Jahren betreibe ich ein zweistufiges DNS-Resolver-Design:
- AdGuard Home als vorderste Instanz, DoT/DoH/DoQ/DNScrypt-fähig – zuständig für Werbe- und Tracker-Filter im Adblock-Format.
- Unbound als rekursiver, lokaler Upstream – DNSSEC-validierend und in einem gehärteten Jail ohne Root-Rechte.
Mit dieser Grundarchitektur eliminiere ich bereits 90 % des unerwünschten Hintergrundrauschens. Doch das Netz wandelt sich permanent; Angreifer sind kreativ und verschieben ihre Infrastruktur im Stunden-Takt. Darum habe ich drei zusätzliche Feed-Quellen integriert, die verschiedene Angriffsvektoren adressieren.
ThreatFox ist ein Community-Projekt von abuse.ch, das beobachtete Malware-Domains und -Hosts in Echtzeit als IOC (Indicator of Compromise) publiziert. Die Besonderheiten:
- Stündliche Aktualisierung – binnen weniger Minuten nach der ersten Infektion ist die Domain im Feed.
- Confidence-Level – jeder Eintrag erhält einen Vertrauenswert; ich importiere nur ≥ 60 %, um Fehlalarme auszuschliessen.
- Host-basiert – sowohl FQDNs als auch rohe IP-Adressen, was die Detektion um C2-Server ergänzt, die bloss A-Records ausliefern.
Schutzwirkung: Ich verhindere damit, dass Clients in meinem Netz überhaupt erst einen TCP-Handshake mit Command-and-Control-Endpunkten aufnehmen. Spear-Phishing-Kampagnen, die auf frische Domains setzen, prallen bereits auf DNS-Ebene ab – lange bevor Web-Filter oder EDR greifen können.
Die FireHOL-Blocklisten konsolidieren Dutzende Reputationsquellen und clustern sie in vier Stufen. Level 4 (aggressive) umfasst aktuell ca. 90,070 subnets, 9,184,155 unique IPs, die nachweislich an Botnet-Traffic, Port-Scans oder Crypto-Jacking beteiligt sind. Ich überführe diese Netze via response-ip: … deny direkt in Unbound:
# /etc/unbound/firehol.respip
response-ip: 31.210.20.0/24 deny # ← known DDoS reflector
response-ip: 185.244.25.0/24 deny # ← credential stuffing host
response-ip: 2402:1f00::/32 deny # ← bulletproof IPv6 ASNSchutzwirkung: Sollte ein Angreifer eine legitime, bislang unauffällige Domain kompromittieren, aber deren A-Record plötzlich auf ein FireHOL-belastetes Subnetz zeigen, wird die Auflösung in meinem Netz sofort mit NXDOMAIN beantwortet. So eliminiere ich fast-flux-artige Infrastrukturwechsel und IP-Hopping, ohne gleich ganze Domains black-holen zu müssen.
Ein Fullbogon ist ein Adress-Präfix, das in keiner globalen BGP-Ankündigung existiert – also „geisterhaft“ ist. Angreifer fälschen gerne Quell-IP-Adressen innerhalb dieser Bereiche, um Rückverfolgung zu erschweren oder Reflexions-DDoS zu initiieren. Ich lade die IPv4- und IPv6-Bogons alle 24 Stunden und injiziere sie in Unbound mittels private-address:-Direktive:
# /etc/unbound/bogons.conf
private-address: 100.64.0.0/10 # Carrier-Grade-NAT
private-address: 240.0.0.0/4 # historisches Class-E-Reservat
private-address: 2001:2::/48 # 6bone phase-outSchutzwirkung: Jede DNS-Antwort, die auf eine Fullbogon-IP verweist, wird verworfen. Damit verhindere ich DNS-Rebinding-Angriffe und blocke versehentliche wie bösartige Konfigurationsfehler fremder Resolver („route leaks“).
Zusammenspiel der drei Listen
| Liste | Abgedeckter Angriffstyp | Massnahme | Reaktionszeit |
|---|---|---|---|
| ThreatFox | Frisch registrierte Malware- & C2-Domains | always_nxdomain in AdGuard | ∼ 30 min |
| FireHOL L4 | Aktiv maliziöse, aber geroutete IP-Netze | response-ip … deny in Unbound | ∼ 60 min |
| Fullbogons | Spoofing, Rebinding, Route Leak | private-address in Unbound | 24 h |
Gemeinsam bilden die Feeds ein mehrschichtiges Schild. Ich blocke Adressebene - Namenebene - Routingebene synchron und das ohne proprietäre Lizenz oder Cloud-Black-Box.
Durch die Kombination ThreatFox Hosts + FireHOL L4 + Fullbogons habe ich meine Resolver von einer klassischen Werbe-Blockade zu einem proaktiven Threat-Intel-Firewall aufgebohrt. Wer DNS als ersten Verteidigungsring begreift und mit kuratierten Feeds zeitnah aktuell hält, der verschiebt den Angreifer zurück an den Start – lange bevor Endpoint-Sensorik Alarm schlägt. Und genau dieses Zeitfenster ist im Ernstfall der Unterschied zwischen einem verhinderten Vorfall und einer aufwendigen Incident-Response-Analyse.
