NTP Amplification DDOS -NTP Kullanarak

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

NTP servisinin monlist özelliği aracılığı ile hedef sistemlere yönelik DDoS saldırıları düzenlenmesi.

DDoS saldırılarında yeni yeni yöntemler ve teknikler keşfedilmesiyle her geçen gün önemi artmaktadır. Son zamanlarda kullanılan yöntemler standart araç tabanlı yöntemlerden oldukça farklı, arka planı düşünülmüş, tasarlanmış ve yüksek boyutta olmaktadır. Bunlar yeni olarak nitelendirilse de teknik olarak daha önceden bilinen, teorik olarak dokümante edilmiş fakat pratiğini görmediğimiz tipte saldırılardır.

“2014 yılında NTP servisindeki monlist özelliğini istismar eden Amplification DDoS saldırısı, 400 Gbps(2013 yılı Türkiye internet çıkışına yakın) civarında idi ve bu rakam dünyadaki en ciddi DDoS saldırısı olarak tarihe geçmiştir.”

Amplification DDoS Saldırıları

Standart DDoS saldırılarında amaç olabildiğince çok fazla sayıda sistem üzerinden hedef sistemlere belirli sayıda paket gönderimi yaparak ilgili sistemlerin devre dışı kalmasını sağlamaktır. Amplification tipi saldırılarda ise trafik kapasitesi yüksek aracı sistemler kullanarak saldırgan sahip olduğu bant genişliği (bandwidth) miktarından çok daha fazlasını hedef sisteme yönlendirebilmektedir.

İlk olarak Smurf olarak adlandırılan bir DDoS saldırısında kullanılan bu yöntem hızlı bir şekilde alınan önlemlerle internet dünyasının gündemini uzunca bir süre meşgul etmemiştir. Fakar 2009 yılında DNS kullanılarak tekrar karşımıza çıkmıştır. 2013 yılında ise DNS kullanılarak o zamana kadar ki en büyük DDoS saldırısı (Yaklaşık 300 Gbps) gerçekleştirilmiştir. Bu saldırıların büyüklüğü 2014 yılında NTP ile birlikte 400 Gbps’e ulaşmıştır. Bu büyüklükteki saldırılar ciddi koruması ve dağıtık altyapısı olmayan erişim sağlayıcılar için oldukça tehlikeli ve önlenmesi bir o kadar da zor saldırılardır.

Smurf saldırısı broadcast’e gönderilen bir adet ICMP paketine karşılık ilgili ağda açık olan tüm sistemlerin cevap vermesi mantıgıyla çalışır. Böylece hedef broadcast adresinde 100 tane sistem açıksa bir paket ile 100 paketlik cevap alınabilir. Gönderilen paketlerin kaynak IP adresi DDoS yapılmak istenen hedef olarak verilirse saldırgan 10 Mbps trafikle hedefe 1 Gpbs saldırı trafiği ürtebilir. Burada saldırı yapan kaynak adresler ilgili ağda bulunan ve broadcast ICMP paketlerine cevap dönen sıradan sistemler olacaktır.

Bu zafiyet broadcast’e gelen ICMP isteklerine cevap vermeyecek şekilde yapılandırılmasıyla hızlıca kapatılmıştır.

Linux sistemlerin ICMP paketlerine (broadcast) cevap verip vermediği aşağıdaki komutla öğrenilebilir.

sysctl net.ipv4.icmp_echo_ignore_broadcasts

Sistemin güvenli konfigure edildiğini anlamak için komutun çıktısının aşağıdaki gibi olması gerekir:

net.ipv4.icmp_echo_ignore_broadcasts = 1

Smurf ICMP kullandığı için ve icmp genellikle yardımcı protokol görevine sahip olduğu için ICMP’nin kapatılması ile Smurf ve benzeri bir çok atak engellenmiş oldu. Amplification saldırıları ICMP’nin yanında NTP, SNMP ve DNS protokolleri üzerinden de gerçekleştirilebilir. Son zamanlarda daha çok DNS ve NTP kullanılarak gerçekleştirildiğini görüyoruz.

NTP üzerinden gerçekleştirilen amplification DDoS saldırıları

NTP, zaman senkronize protokolüdür. Bilişim sistemlerinin merkezi olarak zaman bilgilerini alıp güncelleyeceği bir servistir. UDP/123 portundan çalışır ve herhangi bir kimlik doğrulama aşaması bulunmamaktadır.

Öncelikle belirtmek gerekir ki bir protokol UDP tabanlı ise onun güvenliğini sağlamak icin protokolden iki kat daha fazla uygulama geliştiricisine iş düşer.

Bir NTP sunucusunun durumunu öğrenmek için aşağıdaki komut yeterli olacaktır.

[root@s-guard19 ~]# ntpq -pn
remote       	refid  	st t when poll reach   delay   offset  jitter
======================================================================
-208.53.158.34   164.244.221.197  2 u  266  512  377   20.715	8.447   0.091
+50.116.55.65	200.98.196.212   2 u  247  512  377    7.651   -1.170   0.225
+129.250.35.250  209.51.161.238   2 u  269  512  377    1.025   -0.229   0.096
*10.0.77.54  	172.18.1.12  	3 u  437 1024  377	0.135    0.568   0.522

NTP Monlist özelliği ve istismarı

NTP sunucular, kendine daha önce sorgu yapan ip adreslerini bellekte tutar ve bunu bir sorgu ile öğrenmemize fırsat tanır. Aşağıdaki komut ile o NTP sunucuyu kullanan son 600 ip adresi alınabilir.

[root@s-guard19 ~]# ntpdc -n -c monlist 50.22.202.163|more
remote address      	port local address  	count m ver code avgint  lstint
=======================================================================
50.22.202.163      	58609 50.22.202.163      	2 7 2  	0     32   	0
184.45.66.119         	80 50.22.202.163     	69 7 2  	0      7   	0
83.250.130.244        	80 50.22.202.163      	1 7 2  	0      0   	0
199.255.209.211     	6005 50.22.202.163   	4914 7 2  	0      4   	0
89.108.86.169	         21 50.22.202.163    	736 7 2  	0      4   	0
83.108.22.62          	80 50.22.202.163     	76 7 2  	0      4   	1
141.0.23.147          	80 50.22.202.163    	140 7 2  	0      4   	2
83.98.143.20          	80 50.22.202.163    	142 7 2  	0      4   	2
76.76.4.146           	80 50.22.202.163   	2577 7 2  	0      4   	2
85.153.46.92          	80 50.22.202.163   	1383 7 2  	0      3   	2
5.39.114.89           	53 50.22.202.163   	4876 7 2  	0      2   	3
139.216.201.12        	80 50.22.202.163     	22 7 2  	0    269   	3
207.244.74.132      	6005 50.22.202.163     	97 7 2  	0      4   	3
178.235.0.18          	80 50.22.202.163     	38 7 2  	0      7       4
184.173.86.203        	80 50.22.202.163    	105 7 2  	0     80   	8
31.169.77.59       	35157 50.22.202.163      	9 7 2  	0    154  	22
---

Burada gönderilen isteğin (NTP isteği) boyutu incelenirse yaklaşık olarak 250 Byte civarında olduğu gözükecektir. Bu pakete dönen cevapların toplamı (bir adet isteğe karşı toplamda 10-15 cevap dönmektedir) 7500 Byte’a yakındır. Buradan bir istekle hedef sistem üzerinden 30 kat daha fazla trafik üretebileceğimizi görebiliriz.

NTP, UDP tabanlı olduğu için gönderilecek isteklerde kaynak ip adresi olarak DDoS saldırısı gerçekleştirilmek istenen hedef verilirse saldırgan 10 Mbps ile 300 Mbps trafik üretebilir.

Nmap’in “ntp monlist” scripti kullanarak bir ağdaki monlist özelliği aktif olan NTP sunucuları tespit edilebilir.

nmap -sU -pU:123 -Pn -n --script=ntp-monlist 192.168.0.0/24

Örnek bir çıktı aşağıdaki gibi olacaktır.

[root@s-guard19 /usr/local/share/nmap/scripts]# nmap -sU -pU:123 -Pn -n --script=ntp-monlist localhost
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2014-03-09 10:10 CDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
PORT	STATE SERVICE
123/udp open  ntp
| ntp-monlist: 
|   Target is synchronised with 129.250.35.251
|   Alternative Target Interfaces:
|   	10.32.83.4  	50.22.202.133   50.22.202.163  
|   Private Servers (1)
|   	10.0.77.54  	
|   Public Servers (3)
|   	38.229.71.1 	50.116.38.157   129.250.35.251 
|   Other Associations (14)
|   	127.0.0.1 (You?) seen 3 times. last tx was unicast v2 mode 7
|   	84.24.85.156 seen 11 times. last tx was unicast v2 mode 7
|   	94.242.255.62 seen 10 times. last tx was unicast v2 mode 7
|   	199.255.209.211 seen 11 times. last tx was unicast v2 mode 7
|   	141.0.23.147 seen 11 times. last tx was unicast v2 mode 7
|   	130.193.170.56 seen 10 times. last tx was unicast v2 mode 7
|   	178.235.0.18 seen 10 times. last tx was unicast v2 mode 7
|   	84.248.95.88 seen 21 times. last tx was unicast v2 mode 7
|   	86.141.107.15 seen 11 times. last tx was unicast v2 mode 7
|   	76.76.4.146 seen 10 times. last tx was unicast v2 mode 7
|   	31.220.4.151 seen 10 times. last tx was unicast v2 mode 7
|   	106.219.29.214 seen 10 times. last tx was unicast v2 mode 7
|   	83.98.143.20 seen 9 times. last tx was unicast v2 mode 7
|_  	50.90.225.202 seen 4 times. last tx was unicast v2 mode 7
Nmap done: 1 IP address (1 host up) scanned in 1.17 seconds

.