Wenn Domain-Filter versagen und warum mein lokaler Unbound das Zünglein an der Waage ist

Nachfolgend skizziere ich einen prototypischen Angriffspfad, bei dem der Angreifer zwar keinen neuen, verdächtigen Domain-Namen registriert, wohl aber eine bereits routbare, aber reputations­belastete IP-Adresse in Szene setzt. Ein reiner Domain-Filter (AdGuard o. ä.) greift ins Leere; erst IP-basierte Policing-Mechanismen im Upstream-Resolver stoppen die Exfiltration. Die Schritte sind bewusst granular dargestellt, um die Rolle des lokalen Resolvers zu illustrieren.

PhaseAblaufWarum Domain-Listen scheiternRolle Unbound (ohne respip)
1) Initial Foot-in-the-DoorSpear-Phishing-Mail verweist auf assets.company-cdn.net/logo.js. Domain gehört zu einem legitimen, grossen CDN.Domain steht nicht in ThreatFox, OISD etc.; sie ist völlig unauffällig.Leitet Anfrage unbeanstandet an den autoritativen NS weiter, cached das Ergebnis.
2) Silent Take-overAngreifer kompromittiert via RCE das Kunden-Dashboard des CDN und ersetzt die A-Records durch 185.244.25.47 (bekanntes DDoS-Hosting, gelistet in FireHOL L4).Die Domain bleibt dieselbe; selbst DNSSEC bleibt intakt – nur die IP geändert.Holt den neuen A-Record (30-s TTL) ab, cached ihn identitäts­gläubig.
3) Client Side – Malware DropBrowser des Opfers lädt das „Logo-Script“, welches nun Spyware nachlädt und C2-Beacons sendet.Domain-Listen blocken weiterhin nicht – derselbe FQDN ist ja „sauber“.Auflösungen wiederholt auf dieselbe FireHOL-IP, reicht sie an den Client durch.
4) Fast-Flux / Spare IPsCDN-Angreifer rotiert minütlich zwischen fünf Subnetzen (31.210.20.0/24, 93.123.92.0/24 usw.), alle im FireHOL-Feed.Keiner der Wechsel erzeugt Domain-IOC-Rauschen.Ohne IP-Filter cached Unbound jeden Wechsel für die TTL und bleibt Mittäter.
5) Exfiltration & C2Inbound POST-Requests gehen über HTTPS 443 nach assets.company-cdn.net185.244.25.47. IPS/IDS erkennen nur TLS; SNI und ALPN sehen legitim aus.Domain-Filter ignorieren den Traffic, TLS macht DPI mühsam.Resolver liefert weiterhin die (malicious) Routing-Information; Attacke bleibt unentdeckt.

Resultat: Rein domänen­basiertes Blocken greift 0-fach; der Angreifer gewinnt Ausführungs- & Exfiltration-Fähigkeit, obwohl kein einziger „auffälliger“ Host-Name im Spiel ist.

Wie respip im lokalen Unbound den Schalter umlegt

Sobald ich die FireHOL-Netze via:

response-ip: 185.244.25.0/24 deny

eingespeist habe, ändert sich die Choreografie fundamental:

StepEffektUpstream-Unbound-Log
2) Record-FlipUnbound prüft die Antwort, matcht das Präfix, ersetzt sie durch NXDOMAIN.info: response-ip deny 185.244.25.47/32 matched firehol.rule
3) Browser-AbrufClient erhält keine IP → Script kann nicht geladen werden.
4) Fast-FluxJeder weitere Wechsel auf belastete Netze wird identisch annuliert, ohne Reload.
5) ExfiltrationC2-Handshake nie etabliert, IDS schweigt, Incident-Response entfällt.

Der Resolver wird also vom stummen Dilligent zum Wächter, noch bevor der Paketfluss entsteht. Kein TCP SYN, kein TLS ClientHello – pure Prävention.

Warum nicht schon in AdGuard?

  • AdGuard operiert FQDN-basiert; er kennt keine IP-Reputation.
  • Würde ich die FireHOL-Netze in AdGuard als „regexp-Filter“ abbilden, müsste ich hundert­tausende Regex-Zeilen parsen: RAM- und CPU-Harakiri.
  • Unbound verarbeitet CIDR-Präfixe in C-Strukturen; das ist Speicher-sparender und schafft Cache-Treffer bereits in O(1).

Take-Away

  1. Domain-IOC ≠ IP-IOC – beide Layer haben eigenständige Angriffs­flächen.
  2. Geroutete, aber bösartige Netze unterlaufen jede Domain-Watchlist, wenn der Namensträger kompromittiert ist.
  3. respip in Unbound ist der elegante Weg, reputations­belastete IP-Ranges zu neutralisieren – ohne Deep-Packet-Inspection und ohne Gateway-Zugriff.

Damit verwandelt sich mein Upstream-Resolver in eine Schweizer Taschen­messer-Firewall, die Namen und Netze beurteilt – präzis, ressourcen­arm und ohne zusätzliches Lizenz-Geflecht.

Categories: Digitalisierung, EU, IT-Security