Frag-DNS

Untersuchung zu IP-Fragmentierung und Maßnahmen gegen DNS-Cache-Poisoning

Carsten Strotmann, sys4 AG

Created: 2024-07-01 Mon 22:38

Über das Projekt

  • Studie im Auftrag des BSI vom Dezember 2019 bis November 2020
  • Roland van Rijswijk-Deij (NLnetLabs), Patrick Koetter (sys4), Carsten Strotmann (sys4)
  • Frage: sind DNS Cache Poisioning Angriff realistisch?
  • Frage: welche Gegenmassnahmen gibt es?
    • wie wirksam sind die Gegenmassnahmen?

DNS Cache Poisioning durch Fragmentierung

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-00.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-01.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-02.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-03.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-04.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-05.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-06.png

Angriffsbeispiel (Vereinfacht)

DNS-frag-spoofing-07.png

DNS Fragmentierung ISP DNS Resolver

DNS Fragmentierung ISP DNS Resolver

  • Messung der Anzahl, Grösse und Quelle von fragmentierten DNS Antworten an einem DNS Resolver
  • im Juli 2020 bei einem grossen deutschen ISP mit ca. 4 Millionen Kunden

DNS Fragmentierung ISP DNS Resolver

  • IPv6: 104.129 DNS Antworten von 96.620.298 DNS Antworten waren fragmentiert (0,11 %)
  • IPv4: 55.064 DNS Antworten von 54.023.478 DNS Antworten waren fragmentiert (0,10 %)
  • DNSSEC: 93% (IPv6) und 97% (IPv4) der fragmentierten Antworten kamen aus DNSSEC signierten Zonen

DNS Fragmente über den Tag

Anzahl der fragmentierten Antworten über 24 Stunden Fragmentation_IPv4_IPv6.png

DNS Fragmente über den Tag

Anteil der fragmentierten Antworten der gesamten DNS Antworten über 24 Stunden Fragmentation_IPv4_IPv6.png

DNS Server welche fragmentierte DNS Antworten senden

Fragmenting-Auth-ECDF.png

Domains mit fragmentierten Antworten

  • Domains aus denen fragmentierte DNS Antworten kommen
    • office.com (Microsoft)
    • army.mil (US Army)
    • fnfis.com (Fidelity National Information Services)
    • ekom21.de (kommunale Gebietsrechenzentrum Hessen)
    • fraunhofer.de (Fraunhofer Gesellschaft)
    • rwe.de (RWE Aktiengesellschaft)
    • agilent.com (Agilent, Research)
    • checkpoint.com (Check Point Security - Firewall and VPN products)
    • salesforce.com and force.com (Salesforce.com, Inc - Cloud based customer relationship management solu­ tions)
    • fedex.com (FexEx Corporation - multi national delivery services company)
    • gnome.org (Gnome Desktop Software - open source GUI desktop for Linux and Unix)

Fragmentation von authoritativen DNS Servern

OpenINTEL

  • OpenINTEL sammelt täglich DNS Antworten von 227 Millionen Domain
  • OpenINTEL "sieht" ca. 60% des öffentlichen Internets
  • OpenINTEL wertet 2.4 Millarden DNS Datensätze pro Tag aus
  • diese Studie hat Fragmentierung bei Anworten auf NS, A und AAAA Anfragen ausgewertet

Wieviel Fragmentierung sieht OpenINTEL?

  • 3.893.453.582 DNS Antworten
    • IPv6: 1,056,276,144 [27.130%]
    • IPv4: 2,837,177,438 [72.870%]
  • davon fragmentierte Antworten
    • IPv6: 1,008,894 [0.096%]
    • IPv4: 1,334,549 [0.047%]

OpenINTEL: Grösse der Fragmente IPv6

IPv6-size-OpenINTEL.png

OpenINTEL: Grösse der Fragmente IPv4

IPv4-size-OpenINTEL.png

OpenINTEL: EDNS Buffer Größe

EDNS0-size-OpenINTEL.png

TCP Support bei authoritativen DNS Servern

TCP Support bei authoritativen DNS Servern

  • ist eine Antwort zu groß für UDP muss ein DNS Server die Antwort über TCP senden
  • Grössenbeschränkung bei DNS UDP Paketen:
    • 512 Byte: klassisches DNS RFC 1034/1035 (1987)
    • 4096 Byte: EDNS RFC 2671 (1999)
    • 1232 Byte: populäre Empfehlung um DNS Fragmentierung zu vermeiden
  • Frage: wieviel authoritative DNS Server unterstützen DNS/TCP?
    • wie populär sind Domains auf DNS Servern, die kein DNS/TCP unterstützen?

TCP Support

  • 879.345 IPv6/IPv4 Adressen von authoritativen DNS Servern
    • diese Server sind authoritativ für 202.765.149 Domains
    • 197.773.383 (97.57%) der Domains haben mind. einen DNS Server, welcher TCP anbietet
    • bei 183.549.827 (90.55%) der Domains haben alle authoritativen DNS Server TCP angeboten
    • 4.925.715 (2.43%) der Domains haben keinen DNS Server mit TCP Unterstützung

TCP Support

  • Domains mit (einigen) DNS Servern ohne TCP Support beeinhalten populäre Domains wie live.com und office.com (Microsoft) und yahoo.com (Yahoo)
  • 1.5% der Domains aus der Tranco 1M Liste (Liste der populärsten 1 Millionen Domains) haben keinen DNS Server mit TCP Support
    • viele dieser Domains sind aus China

TCP Support

Tranco-rank-TCP-problems.png

TCP Support - Fazit

  • wenige, aber auch populäre Domains bieten kein DNS über TCP an
  • ein Umschalten des DNS Protokolls auf TCP um Fragmentierungs-Angriffe zu vermeiden ist daher nicht empfohlen

ICMP Spoofing und Betriebsysteme

Betriebssysteme, welche durch ICMP PathMTU spoofing angreifbar sind

  • um die Chancen eines erfolgreichen DNS Angriffs mittels DNS Fragmentierung zu erhöhen muss der Angreifer die PathMTU zwischen dem DNS Resolver und dem authoritativen DNS Server senken
  • dies kann mittels gefälschter ICMP Fehlermeldungen geschehen
  • Frage: welche Betriebssysteme sind für solche Angriffe verwundbar?

Betriebssysteme und ICMP PathMTU Spoofing

  • im Labor wurde ein ICMP Spoofing auf verschiedene populäre Betriebssysteme getestet
  • es wurde geprüft, ob nach einem erfolgreichen Spoofing der authoritative DNS Server fragmentierte DNS Pakete versendet

Betriebssysteme und ICMP PathMTU Spoofing

Operating system minMTU IPv4 minMTU IPv6 success IPv4 success IPv6
Debian 6 / Kernel 2.6.32-5-amd64 552 1280 X X
Ubuntu 14.04.1 / Kernel 3.13.0-45-generic (12/2014) 552 1280 X X
Ubuntu 14.04.1 LTS / Kernel 3.13.0-170-generic (05/2019) 552 1280 X X
Ubuntu 16.04.6 LTS / Kernel 4.4.0-184-generic (06/2020) 552 1280 X X
Ubuntu 18.04.4 LTS / Kernel 4.15.0-106-generic (06/2020) 1500 1280 - X
CentOS 6 / Kernel 2.6.32-504.3.3.el6.x86_64 (12/2014) 552 1280 X X
CentOS 7 / Kernel 3.10.0-1127.10.1.el7.x86_64 (06/2020) 1500 1280 - X
CentOS 8 / Kernel 4.18.0-147.8.1.el8_1.x86_64 (04/2020) 1500 1280 - X
SUSE EL 15SP1 / Kernel 4.12.14-197.45-default (06/2020) 1500 1280 - X
FreeBSD 12.1 / Kernel 12.1-RELEASE r354233 GENERIC amd64 1500 1280 - X
OpenBSD 6.7 / Kernel 6.7 GENERIC#234 i386 1500 1280 - X
Windows Server 2008R2 1500 1280 - X
Windows Server 2012R2 1500 1280 - X
Windows Server 2016 1500 1280 - X
Windows Server 2019 1500 1280 - X

Betriebssysteme für DNS Server

  • der populäre BIND 9 DNS Server gibt auf Anfrage seine Versionsnummer aus
    • diese Versionsnummer beinhaltet bei Enterprise Linux Systemen auch die Version des Linux Systems
    • wir haben unter den von OpenINTEL angefragten authoritativen DNS Servern die Versionen abgefragt

Betriebssysteme für DNS Server

Linux OS Number of Server Percent
RedHat Linux 240481 28.2%
RedHat EL5 7876 0.9%
Redhat EL6 98443 11.5%
RedHat EL7 121103 14.2%
RedHat EL8 1594 0.2%
Ubuntu Linux 25034 2.9%
Ubuntu 14.04 5110 0.6%
Ubuntu 16.04 9314 1.1%
Ubuntu 18.04 9467 1.1%

Betriebssysteme und ICMP PathMTU Spoofing - Fazit

  • Windows Betriebssysteme sind nicht (durch ICMP Spoofing) verwundbar
  • ältere Linux-Kernel sind verwundbar
    • diese alten Linux-Kernel sind noch in aktuell benutzten Enterprise-Linux Versionen!
    • die verwundbaren Linux Versionen werden aktiv als Plattform für authoritative DNS Server benutzt

Fazit

  • Angriffe durch DNS Fragmentierung sind möglich
  • die Menge der natürlichen DNS Fragmentierung im Internet ist gering, aber signifikant
  • auch populäre Domains sind betroffen
  • DNS Fragmentierung sollte vermieden werden
    • die Endfassung der Studie wird Empfehlungen zu Gegenmaßnahmen enthalten

Fragen?

questions.png