summaryrefslogtreecommitdiff
path: root/updates/2014/cache-poisoning-attack.md
blob: e441542f815297d6a05747805219bb5a9072499a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
title: Cache Poisoning Attack auf offenen DNS-Resolver des CCC Berlin
date: 2014-02-12 16:34:00 
updated: 2014-02-12 18:17:00 
author: erdgeist
tags: update

Der vom Chaos Computer Club (CCC) betriebene offene DNS-Resolver war heute früh Ziel eines Angriffs Unbekannter, die durch das Ausnutzen von Schwächen im DNS-Protokoll den Zwischenspeicher des Programms mit gefälschten Einträgen befüllten. In der Folge wurden diese fehlerhafte Antworten auf Anfragen nach bestimmten Domains an alle Benutzer ausgegeben, die den DNS-Server des CCC in ihren Systemen eingetragen haben. Zu keiner Zeit konnten sich die Angreifer Zugang zum Server verschaffen. Als Reaktion hat der CCC eine neue Software installiert, die nicht für die Attacken anfällig ist.

TL;DR: Patch für dnscache 1.0.5 einspielen.

<!-- TEASER_END -->

## Was ist DNS

Ans Internet angeschlossene Computer adressieren sich gegenseitig
mittels für Menschen mehr oder minder bedeutungslos scheinender Adressen
wie z. B. 2a00:1328:e102:ccc0::122 oder 213.73.89.123. Um einfach
merkbare Namen wie www.ccc.de in diese Maschinenadressen umzusetzen,
wurde das Domain Name System geschaffen. Es handelt sich bei DNS um eine
hierarchisch verteilte Datenbank. So ist z. B. für alle Namen die auf
.de enden, die deutsche Genossenschaft DeNIC e.G. zuständig. Diese
delegiert die Zuständigkeit für z. B. ccc.de an den Chaos Computer Club.
Auf technischer Ebene erfolgt dies durch einen Datenbankeintrag bei der
DeNIC, der für alle Internetteilnehmer einsehbar ist.

Wenn man einen der DNS-Server der DeNIC nach ccc.de fragt, antwortet
dieser: "Liegt auf ns.ccc.de, und der hat die IP-Adresse 212.12.48.1".
Der Server ns.ccc.de, also der mit der Adresse 212.12.48.1, betreibt
eine ebensolche Datenbank, nur ist diese kleiner und enthält nur
Einträge für Namen, die in .ccc.de enden. Wird dieser Server nun nach
www.ccc.de gefragt, antwortet dieser mit: "Das liegt hier:
2a00:1328:e102:ccc0::122 oder hier: 213.73.89.123". Diese Antwort hilft
nun z. B. dem Browser eines Besuchers von www.ccc.de, der eine
Verbindung zum Server "2a00:1328:e102:ccc0::122" herstellen kann. Damit
nun nicht jedesmal immer erst die DeNIC und dann der CCC-DNS-Server
gefragt werden muss, gibt es – meist bei Providern, doch zu deren
Zuverlässigkeit später mehr – DNS-Resolver. Ein DNS-Resolver macht
nichts anderes, als Anfragen von Nutzern entgegen zu nehmen und im
Hintergrund die oben genannten Schritte zu vollziehen. Er erspart zum
einen den langen Weg, und speichert zum anderen die Ergebnisse für einen
bestimmten Zeitraum zwischen, um sie später bei einer identischen
Anfrage eines weiteren Nutzers schneller ausliefern zu können und keine
Anfrage an die ranghöheren Server stellen zu müssen. DNS-Server spielen
also eine zentrale Rolle in der täglichen Nutzung des Internets. Dies
macht sie zu begehrten Zielen; sowohl für zensurfreudige Regierungen als
auch für andere Bösewichte, die sie gerne zu Angriffen benutzen würden.

## Geschichte der Netzsperren in Deutschland

Bereits 1996 forderte die Bundesanwaltschaft das Deutsche Forschungsnetz
(DFN-Verein \[1\]) auf, eine Internetseite zu sperren. Durch die
IP-Sperrung des niederländischen Providers XS4ALL wurden sämtliche
dortigen Webseiten dem Zugriff aus deutschen Forschungseinrichtungen
entzogen. Ab Anfang 2002 erzwang die Bezirksregierung Düsseldorf unter
ihrem Regierungspräsidenten Büssow mittels einer Sperrverfügung die
DNS-Sperrung von Webseiten bei dutzenden Zugangsanbietern. Der Chaos
Computer Club verwies bereits damals auf die Gefahr für das Netz, die
durch solche technischen Zensurmaßnahmen erwächst. Sobald eine
technische Möglichkeit entwickelt wurde, wird sie nicht mehr nur dort
und für den ursprünglichen Zweck benutzt, wie sich durch bei Wikileaks
veröffentlichte Zensurlisten aus verschiedenen, auch nichtdemokratischen
Staaten zeigte. Aus Sicht des Clubs sollen technische Infrastrukturen
nicht durch gezielte Manipulation geschwächt werden. Neben politischen
Forderungen hat der CCC daher durch Bereitstellung einer Vielzahl von
technischen Mitteln an der Gewährleistung der Integrität und
Vertraulichkeit informationstechnischer Systeme mitgewirkt. Beispiele
hierfür sind der Betrieb von Knotenpunkten im Anonymisierungsnetzwerk
Tor sowie eben jenes offenen DNS-Resolvers.

## Was ist cache poisoning

Im konkreten Fall von dnscache.berlin.ccc.de wurde die Software dnscache
\[2\] des US-amerikanischen Hochschullehrers Dan J. Bernstein \[3\]
eingesetzt. Es handelt sich hierbei um eine sehr schlanke und sicherere
Implementierung eines DNS-Resolvers. Bisher sind keine Schwachstellen
bekannt geworden, die eine Kompromitierung des Servers erlauben, auf der
sie läuft. Allerdings sind die in der DNS-Implementierung vorgesehenen
Mechanismen, die vor einem sogenannten cache-poisoning-Angriff schützen
sollen, nicht mehr zeitgemäß. Um erfolgreich einen gefälschten Eintrag
zu platzieren, muss der Angreifer die zufällig vom Server ausgewählte
Portnummer sowie die Transaktions-ID erraten. Bei einer einzelnen
Anfrage ist dies sehr unwahrscheinlich, da es sich um eine Chance von 1
zu 2×10⁹ handelt. Diese wird bei dnscache jedoch erheblich reduziert, da
mehrere parallele identische Anfragen möglich sind. Ein erfolgreicher
Angriff ist unter realistischen Bedingungen in unter zwanzig Minuten mit
einer Bandbreite von nur 10MBit/s realisierbar. \[4\] Gegenmaßnahmen,
die einen solchen Angriff vereiteln, wurden leider nie in die von Dan J.
Bernstein veröffentlichte Software eingearbeitet, sondern sind lediglich
von anderen Autoren veröffentlicht worden \[5\].

Jedem dnscache-Betreiber sei die Verwendung dieser patches an dieser
Stelle wärmstens ans Herz gelegt. Der CCC Berlin hat die Gelegenheit
dazu genutzt, auf eine Neuentwicklung umzusteigen und setzt nunmehr die
Software unbound\[6\] ein, die mit Unterstützung führender
DNS-Infrastrukturbetreiber als Ersatz für die ursprüngliche DNS-Software
BIND\[7\] geschaffen wurde und fortwährend weiterentwickelt wird. Sie
bietet zeitgemäße und flexible Konfigurationsoptionen, insbesondere
gegen verschiedene Angriffsmuster wie cache-poisoning und DNS-Verstärkte
"Denial of Service"-Angriffe\[8\].

Solange DNS-Antworten nicht signiert\[9\] sind, ist es für den
betroffenen Nameserver nicht ohne Weiteres möglich, echte von
gefälschten Antworten zu unterscheiden. Jeder recursive resolving
nameserver ist daher mehr oder weniger anfällig gegen diese Art des
Angriffs. Es gibt durchaus Gegenmaßnahmen, die Angriffe auf das
Protokoll – wie cache poisoning – erheblich erschweren, jedoch besteht
auch hier mangels der Verifizierbarkeit der Antworten keine absolute
Sicherheit. Ein Angreifer wird sich in jedem Fall vorher die Reichweite,
also das Erfolgspotenzial seines Angriffs ansehen. Daher sind rege
genutzte Resolver grundsätzlich attraktivere Ziele. Dem kann man
letztenendes nur durch dezentralisierte Infrastruktur vorbeugen. Je
dezentraler die Infrastruktur ist, desto schwieriger werden derlei
Angriffe, da die Anzahl der Opfer eher begrenzt ist. Aufgrund der
geltenden Rechtslage sind Anbieter von DNS-Diensten einerseits dazu
verpflichtet, das Telekommunikationsgeheimnis zu wahren und dürfen keine
Kenntnis der Begleitumstände nehmen, andererseits sind sie aufgrund des
Providerprivilegs im Gegenzug auch nicht für die übermittelten Inhalte
haftbar. In der Folge können lediglich statistische Anomalien zur
Fehlererkennung benutzt werden.

Grundsätzlich zeigt sich hier die Stärke offener Protokolle und freier,
quelloffener Software. Während in proprietären Umgebungen die Entdeckung
von Sicherheitslücken schwierig ist, und die Hersteller oftmals Monate
brauchen, um eine Produktrevision zu veröffentlichen, kann bei
quelloffener Software eine Veränderung leichter und schneller eingebaut
werden. Durch offen standardisierte und patentfreie Protokolle gibt es
darüberhinaus Wettbewerb der Produkte und die Möglichkeit zur laufenden
Modernisierung der Infrastrukturkomponenten.

## Links und weiterführende Informationen

-   \[0\]
    <http://de.wikipedia.org/wiki/Sperrungen_von_Internetinhalten_in_Deutschland>
-   \[1\] <http://www.dfn.de>
-   \[2\] <http://cr.yp.to/djbdns/dnscache.html>
-   \[3\] <https://en.wikipedia.org/wiki/Daniel_J._Bernstein>
-   \[4\] <http://www.your.org/dnscache/djbdns.pdf>
-   \[5\] <http://www.your.org/dnscache/>
-   \[6\] <http://unbound.net/>
-   \[7\] <http://en.wikipedia.org/wiki/BIND>
-   \[8\]
    <http://en.wikipedia.org/wiki/Denial-of-service_attack#Reflected_.2F_Spoofed_attack>
-   \[9\] <http://dnscurve.org/forgery.html>