Aysad Kozanoglu - Mimarist

Server Howtos & Tutorials

DNS Reflection / Amplification Attack Erklärung

10 Februar, 2018 | Server Anleitungen

2013 Stand  das Internet durch den Angirff auf Spamhaus am Rande der Leistungsfähigkeit.

Das Besondere an der damals verwendeten, relativ einfachen DNS Reflection/ Amplification Attacke ist der Effekt, dass sich mit wenig Traffic seitens des Angreifers relativ große Mengen Traffic auf Seite des Opfers generieren lassen.

Ziel dieser Attacke ist die Überlastung eines bestimmten Services oder der Netzwerkanbindung des Servers.

Bei den DNS reflection / Amplification Angriff auf Spamhaus kam es zur "Stau" im Internet.

 

Grafische Darstellung eines solchen Angriffsszenario
undefined


Bei einem Angriff dieser Art wird ausgenutzt, dass DNS Server bei relativ kleinen Anfragen teilweise große Datenmengen zurücksenden.

 

Sichtbar wird die Dimension bei etwa dieser Anfrage:

dig any ripe.net


;; Truncated, retrying in TCP mode.

; <<>> DiG 9.8.1-P1 <<>> any ripe.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<;; flags: qr rd ra; QUERY: 1, ANSWER: 26, AUTHORITY: 6, ADDITIONAL: 16

;; QUESTION SECTION:
;ripe.net. IN ANY

;; ANSWER SECTION:
ripe.net. 3600 IN RRSIG DNSKEY 5 2 3600 20130818100221 20130719090221 60338 ripe.net. ISb1UTbbG7BaiA7uvcfoSpgRUSYPfwT9AIJ5OtZGrnxo1faLMSqMqmMi Fi9w6OMOVj8f1l2iUkNdbKU0pYJoe/wRzyzitSfYT3Qt9D5uSMmx2bSZ yLP8vtH4kIcatEmpuPyyA+nmeovpzfrNVqmflENvb2mFrgY5vqBzIObG JAwSWl3sy59RTCfl8e//n/QDPJW5+LeIlJeuVZXMfOQnh4gB3CHUCxmS T/Aufa6kMQobhRe3W8WQEUEBs9H6t79TsrpzoSPA0zKeyf5cR2//Ose2 pU/EIZHB8OAcSwGR5ruVc9iWgxKJ29uD4wwvOP54JUfW5y4eQJ/vZn3d N/Y+kw==
ripe.net. 3600 IN RRSIG SOA 5 2 3600 20130818100221 20130719090221 30100 ripe.net. Uxt4iB9ETcgskVa5Qd+sW9RK9kekZ931jhsFdw+gm4dfeOmFpr9KluhJ FcRO30e43grvChHAddUpdSAYamSFi79WgYyIVfAgGmqG8/16MfkDhnyM KWNjQw8dkqaNNQ6mNVGS4/x+4Ub7ccqTlEZ7WwT4Ax/x4CM0zoRB20/j A7g=
ripe.net. 300 IN RRSIG NSEC 5 2 300 20130818100221 20130719090221 30100 ripe.net. E45G566tET34S+9pfdKDFBJAcfC66TnJj2RIHRlb2SATCQH8SfRZkuCS 82jyBADlNyy9XVjMa8Tm8rbqVIrkG3upwF56ommU9PqeN+ctGXA8p8p0 wq46wDulXWBsf3wi1+aFA1bX6DYNdk0IuqWiy508XAmufJs5pWHqynvY tsE=
ripe.net. 300 IN RRSIG MX 5 2 300 20130818100221 20130719090221 30100 ripe.net. MqStbFb88bqwaxNwTwafx/iW9AitVOHL8GeSUts3UoV2YNTpI8lywQ1q 4wqU7G2q1bAIEWx7LKZKyAQhGX1a2NFV4VKrvlBdGJewgkjF0jni+NJR vGVBHcIJEeoRTh/mISSNSB58EpL/vnjtpJ8kBVTZgAjohNmqqku0VfiF 46Q=
ripe.net. 300 IN RRSIG AAAA 5 2 300 20130818100221 20130719090221 30100 ripe.net. b5yX9Xfc+RLAPcAR1UGxEZLNr19dcDDqBiy12J9ogs9Xve6ofK3Tu852 6ZTrBzI7tpZvbEfjbk8xIhjgeOTC6LRRX8l+N05kUEW6JGGoNHCPN5LH /uyHh/Cw80NKwXdKq+3LhCgtKqv5JxJI/yEimYnaAekV/vf9VMp+xZE3 SL8=
ripe.net. 21600 IN RRSIG A 5 2 21600 20130818100221 20130719090221 30100 ripe.net. Vus+N9VI/F7pq6GS/1vCj2JPeeVfJ9/UjpUooGHTg3LZPmecU/Pa4D73 BYmRsXenSOFm2W7gIVHEDb7KOkIEjMu9kXePsJzT3e8cFkik76OILcM+ 2rMJ86c4HvOEhhBlRI5DNdfzfpQvxOfhpmCCUZuIqZ7qRJfP6gaB6yp+ NQw=
ripe.net. 3600 IN DNSKEY 257 3 5 AwEAAXf2xwi4s5Q1WHpQVy/kZGyY4BMyg8eJYbROOv3YyH1U8fDwmv6k BVxWZntYtYUOU0rk+Y7vZCvSN1AcYy0/ZjL7cNlkc3Ordl2DialFHPI6 UbSQkIp3l/5fSWw5xnbnZ8KA7g3E6fkADNIEarMI4ARCWlouk8GpQHt1 1wNW1c65SWB8i958WZJ6LI0pOTNK+BIx8u98b+EVr7C08dPpr9V6Eu/7 3uiPsUqCyRqMLotRFBwK8KgvF9KO1c9MXjtmJxDT067oJoNBIK+gvSO9 QcGaRxuGEEFWvCbaTvgbK4E0OoIXRjZriJj8LXXLBEJen6N0iUzj8nqy XSCm5sNxrRk=
ripe.net. 3600 IN DNSKEY 257 3 5 AwEAAYSPd7+AJXOT1k1d6eUKRCsw5cSGpzsWIjVCDjbWdNomt4mCh5of SSnf60kmNCJgeCvPYwlOWX08TPLpCHqvBh8UERkaym8oT0U2lKrOt+0W EyksYc5EnLp7HQVvH+KaF8XiuPsemLLNbhosGofv5v0Jj2TKxJI/sgf1 n9WtkMY1bCTTaSUn5GmjKDv0XRPKkzA4RCQv8sl8pZ2pzJvIxpN0aBgx WtRjWXXJ27mUq6+PR7+zgBvLkmSV4F1bNXOgikeN5KBlutEKBKYYcYRb fR5kDYYJ0mV/2uTsRjT7LWNXAYAJ88xuZ4WcBV01EuMzsZU21iGhRO1N Z4HFSr9jb3U=
ripe.net. 3600 IN DNSKEY 256 3 5 AwEAAYP6pXZrRIZ3HR2DH0sVcVNuZ7i0auvkg/eC8jRdRgYSmdbKc/5g cw9JxGwc2wAWYkiABsbOsClTFpfL6rRlGyfByCwTvd99EKIcakHBcZr5 yf1T9U3uN0kQttVKktZ9t861vSi0v1mkAfzVW3CHcReDzRHILB5t9IGN wwAJNY3H
ripe.net. 3600 IN DNSKEY 256 3 5 AwEAAYTMP3H6p6sF6BTMDOfS5XiH6gJ8/mYiz9mapk8kkbEaaagEHW0r 9Jn837glK0OQerJ9X+MUEefF8kVr+f8W6Ymvw4vmmxS4Uq1g4roEYoaV 5SZWiG82iwvC7oFVG9XAWn+jt5g2gCSDgI9wjzmoAvpWEz77AHnVSIMO hQeBFDgV
ripe.net. 300 IN NSEC 256cns.ripe.net. A NS SOA MX AAAA RRSIG NSEC DNSKEY
ripe.net. 300 IN MX 200 postgirl.ripe.net.
ripe.net. 300 IN MX 250 postlady.ripe.net.
ripe.net. 249 IN AAAA 2001:67c:2e8:22::c100:68b
ripe.net. 21549 IN A 193.0.6.139
ripe.net. 3600 IN SOA pri.authdns.ripe.net. dns.ripe.net. 1374159302 3600 600 864000 300
ripe.net. 3600 IN RRSIG NS 5 2 3600 20130818100221 20130719090221 30100 ripe.net. UNpMMLFTnXWvq/dIz/i8p1jgAfQBVAOaMtvgoUszeuickWY1s7xBiuvR 2/mpZI5r8ibFqr21A0iad5t5Vm4f58zIGJrELx68C3zn+Qjj0mb/l9VU nK+X+dbVy7CgG+co75aBcv08YojcHvZwWyC/wZRbGJOgn2FekYGSuwaz QKQ=
ripe.net. 368 IN NS sns-pb.isc.org.
ripe.net. 368 IN NS sec3.apnic.net.
ripe.net. 368 IN NS pri.authdns.ripe.net.
ripe.net. 368 IN NS ns3.nic.fr.
ripe.net. 368 IN NS sec1.apnic.net.
ripe.net. 368 IN NS tinnie.arin.net.
ripe.net. 83392 IN RRSIG DS 8 2 86400 20130725041736 20130718030736 55565 net. AKFZGJchG/Rs5pABA2NS18th1zvo41AxoBGpjU24WiK9haSgiYss7TCy XF5W/g5UG/DDNZL7GyXWyUYJz9thF6EDlM8YXhjbK5ZHCGbNoZXshi2D KGpgBBQQeJ4WkbRJpiI1oUPZW1Pfsu9Izg0qWbTWMTNgf+k88qb0m4fB saw=
ripe.net. 83392 IN DS 60338 5 2 61D99D98D0C374C1157F73282DB3E29E61E365DD9EBA435802D27A69 847C24FC
ripe.net. 83392 IN DS 60338 5 1 1CB13971FC7D4DF7CB3C6EB82DF0868687FE6371

;; AUTHORITY SECTION:
ripe.net. 368 IN NS ns3.nic.fr.
ripe.net. 368 IN NS tinnie.arin.net.
ripe.net. 368 IN NS sec3.apnic.net.
ripe.net. 368 IN NS pri.authdns.ripe.net.
ripe.net. 368 IN NS sns-pb.isc.org.
ripe.net. 368 IN NS sec1.apnic.net.

;; ADDITIONAL SECTION:
postgirl.ripe.net. 21549 IN A 193.0.19.66
postgirl.ripe.net. 21549 IN AAAA 2001:67c:2e8:11::c100:1342
postlady.ripe.net. 21549 IN A 193.0.19.65
postlady.ripe.net. 21549 IN AAAA 2001:67c:2e8:11::c100:1341
ns3.nic.fr. 48220 IN A 192.134.0.49
ns3.nic.fr. 48220 IN AAAA 2001:660:3006:1::1:1
pri.authdns.ripe.net. 591 IN A 193.0.9.5
pri.authdns.ripe.net. 591 IN AAAA 2001:67c:e0::5
sec1.apnic.net. 1320 IN A 202.12.29.59
sec1.apnic.net. 1320 IN AAAA 2001:dc0:2001:a:4608::59
sec3.apnic.net. 1985 IN A 202.12.28.140
sec3.apnic.net. 1985 IN AAAA 2001:dc0:1:0:4777::140
sns-pb.isc.org. 998 IN A 192.5.4.1
sns-pb.isc.org. 998 IN AAAA 2001:500:2e::1
tinnie.arin.net. 14514 IN A 199.212.0.53
tinnie.arin.net. 14514 IN AAAA 2001:500:13::c7d4:35

;; Query time: 52 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jul 20 00:30:09 2013
;; MSG SIZE rcvd: 3181


Einen Großteil des Inhalts machen die DNSSEC Daten aus, Signaturen, welche die Korrektheit der DNS Daten garantieren und vor Cache Poisoning (Das fälschen der domainname IPzuordnung) Attacken schützen sollen.

Die Größe der oberen Anfrage beträgt etwa 30 byte, die Größe der Antwort beträgt bereits 3181 byte. Dies enstpricht einem Multiplikator von etwas über 106. Für jedes gesendete Byte werden also bei einer DNS Amplification Attack durch die DNS Server also knapp 106 Byte zum Opfer gesendet. In der Graphik habe ich einen Multiplikator von 100 zu Grunde gelegt.

Normalerweise wird die Antwort an den Absender der Anfrage gesendet. Wird die Anfrage an den Server nun jedoch unter einer falschen ("gespooften") Quelladresse versendet, bekommt das Ziel die Antwort, ohne nach dieser gefragt zu haben.

Mit Hilfe dieser Angriffsart können schnell einige GBit Traffic für einen Angriff generiert werden.

 

Gegenmaßnahmen

IPtables

prevent UDP flooding allgemein

iptables -N udp-flood
iptables -A udp-flood -m limit --limit 4/second --limit-burst 4 -j RETURN
iptables -A udp-flood -j DROP
iptables -A INPUT -i eth0 -p udp -j udp-flood
iptables -A INPUT -i eth0 -f -j DROP

prevent DNS amplification attack

iptables -N DNSAMPLY
iptables -A DNSAMPLY -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
iptables -A DNSAMPLY -p udp -m hashlimit --hashlimit-srcmask 24 --hashlimit-mode srcip --hashlimit-upto 30/m --hashlimit-burst 10 --hashlimit-name DNSTHROTTLE --dport 53 -j ACCEPT
iptables -A DNSAMPLY -p udp -m udp --dport 53 -j DROP


prevent gegen hex-string dessen Inhalt isc.org enthält


iptables -A INPUT -p udp -m string —hex-string “|03697363036f726700|” —algo bm —to 65535 -j DROP
iptables -A INPUT -p udp -m udp --dport 53 -m limit --limit 5/sec -j LOG --log-prefix "fw-dns-attack" --log-level 7

hinweis: hex-string dessen Inhalt isc.org enthält wird in den Mangel genommen.


Fail2ban Regeln

regel Definition

[Definition]
failregex = fw-dns-attack.*SRC= DST


jail.conf

[iptables-dns]
enabled = true
ignoreip = 127.0.0.1
filter = iptables-dns
action = iptables-multiport[name=iptables-dns, port="53", protocol=udp]
logpath = /var/log/iptables.log
bantime = 86400 findtime = 120 maxretry = 1



BIND Rate limiting options

rate-limit {
responses-per-second 5;
window 5;
};

 oder noch mehr hardened

rate-limit {
slip 2; // Every other response truncated
window 15; // Seconds to bucket
responses-per-second 5; // # of good responses per prefix-length/sec
referrals-per-second 5; // referral responses
nodata-per-second 5; // nodataresponses
nxdomains-per-second 5; // nxdomainresponses
errors-per-second 5; //error responses
all-per-second 20; // When we drop all
log-only no; // Debugging mode
qps-scale 250; // x / 1000 * per-second
// = new drop limit

exempt-clients {
127.0.0.1;
};

ipv4-prefix-length 24; // Define the IPv4 block size
ipv6-prefix-length 56; // Define the IPv6 block size
max-table-size 20000; // 40 bytes * this number = max memory
min-table-size 500; // pre-allocate to speed startup

};

 

nützliche Links

https://www.isc.org/wp-content/uploads/2014/11/DNS-RRL-LISA14.pdf

https://www.ripe.net/ripe/mail/archives/dns-wg/2013-August/002808.html

http://www.iplux.net/2015/01/17/Blocking-DNS-Amplification-attacks/

https://github.com/smurfmonitor/dns-iptables-rules/issues/27

https://de.wikipedia.org/wiki/Cache_Poisoning