BGA.com.tr & IstSec.org DDoS Saldırı Analizi

9 Mayıs 08 itibariyle 91.93.119.80 ve 91.93.119.87 ip adreslerinde host edilen bga.com.tr ve istsec.org alan adlarına yönelik bandwith olarak ciddi olmayan fakat PPS olarak ciddi sayılabilecek bir DDoS saldırısı yaşadık. Bulunduğumuz hosting firmasındaki diğer müşterilerin şikayeti ile ISP bizim ip adreslerimize yönelik anonsları üst routerlardan kaldırarak bizim sistemlerimizi tamamen internetten yalıtmış oldu. Evet DDoS saldırısı diğer müşterileri etkilemedi fakat biz tam bir gün boyunca internet dünyasında uzak kaldık.

Saldırı şekli

Saldırı klasik SYN flood şeklinde geliyordu.Saldırının şiddeti bantgenişliği olarak 40-100 Mb arasında değişkenlik gösterdi, anlık paket sayısı 80.000 civarında idi. Günümüz 10 Gb güvenlik duvarlarının çoğunun eşzamanlı oturum sayısının 1.5 milyon civarında olduğu düşünülürse 15-20  saniye gibi kısa sürede Firewall’a ait tüm oturum tablosunu doldurabilecek bir değer. Tabi SYN cookie veya syn proxy kullanarak SYN flood saldırılarından büyük oranda etkilenmeyebilirsiniz. Biz de FreeBSD Packet Filter ve Snort kullanarak oluşturduğumuz yapıda Syn proxy kullanıyorduk. Peki nasıl oldu da etkilendik?

Saldırının en şiddetli anlarında oturum değerleri 300.000-500.000 civarında geziyordu. Adaptive timeout özelliğiyle saldırı şiddeti arttıkça SYN paketlerine ait timeout değerleri de otomatik düştüğü için gelen 80.000 paket en fazla 400.000 session oluşturabiliyordu.

Saldırı Kaynağı

Saldırıda kullanılan ip adresleri tamamen sahte ve random üretilmiş olarak gözüküyordu. Her ip adresinden tek bir paket geldiği için saldırıyı ip adresi engelleyerek kesilemeyecek kategoriden sayabiliriz.

Saldırıda kullanılan bazı ip adresleri:
1 1.109.189.9
1 1.122.151.26
1 1.132.51.43
1 1.145.104.81
1 1.147.174.65
1 1.176.50.65
1 1.195.150.8
1 1.196.188.41
1 1.21.20.82
1 1.213.139.16
1 1.22.158.122
1 1.232.89.77
1 1.235.244.9
1 1.238.134.127
1 1.248.247.16
1 1.36.183.100
1 1.46.252.81
1 1.77.203.28
1 1.9.141.91
1 1.97.81.55
1 2.0.7.48
1 2.102.93.124
1 2.106.247.58
1 2.119.156.81
1 2.124.223.121
1 2.148.118.41
1 2.158.106.68
1 2.179.165.52
1 16.33.98.31
1 16.41.230.17
1 16.49.249.40
1 16.5.83.32
1 16.50.137.112
1 16.64.139.66
1 16.65.245.42
1 16.69.157.61
1 16.71.212.126
1 16.76.58.100
1 16.78.241.55
1 16.8.113.32
1 16.86.251.17
1 16.93.220.127
1 16.99.62.90
1 17.128.172.15
1 17.147.78.36
1 17.15.95.80
1 17.152.187.64
1 17.162.159.111
1 17.170.34.117
1 17.180.229.84
1 17.180.44.23
1 17.188.240.94
1 17.195.249.75
1 17.195.8.26
1 17.199.152.9
1 17.207.33.123
En son analiz sisteminden aldığımız değerlerde saldırıda kullanılan ip adresi sayısının milyar değerini aşmıştı. Basit bir hesapla saniyede 80.0000 paket ve 80.000 farklı ip adresinden bir saatte 288.000.000 farklı ip adresi eder.

Saldırıda kullanılan araç?

Kullanılan aracı da bu tip saldırılarda tahmin etmek oldukça güç olacaktır. Aşağıda saldırı anında alınmış paketlerden bazı örnekleri ekledik, bu tip paket gönderen onlarca DDoS Syn flood aracı bulunabilir.

Örnek paket detayları:

12:32:17.835924 IP 109.77.94.58.20119 > 91.93.119.87.80: Flags [S], seq 73135901, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.835937 IP 188.230.102.38.55309 > 91.93.119.87.80: Flags [S], seq 1645836060, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.835950 IP 182.14.178.105.56265 > 91.93.119.87.80: Flags [S], seq 1125122106, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.835963 IP 223.18.202.122.36847 > 91.93.119.87.80: Flags [S], seq 4286987119, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.835975 IP 88.147.220.70.47003 > 91.93.119.87.80: Flags [S], seq 3011171921, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.835987 IP 118.132.2.127.38853 > 91.93.119.87.80: Flags [S], seq 3981759782, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836002 IP 65.223.120.126.55277 > 91.93.119.87.80: Flags [S], seq 1493609512, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836016 IP 131.75.91.18.29351 > 91.93.119.87.80: Flags [S], seq 3396854576, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836029 IP 130.235.242.83.23802 > 91.93.119.87.80: Flags [S], seq 3583914070, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836043 IP 12.97.67.37.51739 > 91.93.119.87.80: Flags [S], seq 3889891376, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836058 IP 184.215.159.112.15181 > 91.93.119.87.80: Flags [S], seq 1324007551, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836073 IP 174.164.57.86.10063 > 91.93.119.87.80: Flags [S], seq 3876300652, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836089 IP 193.184.35.102.8504 > 91.93.119.87.80: Flags [S], seq 3947931947, win 8192, options [mss 1460,nop,nop,sackOK], length 0
12:32:17.836105 IP 145.88.78.109.20136 > 91.93.119.87.80: Flags [S], seq 2188803105, win 8192, options [mss 1460,nop,nop,sackOK], length 0

—-

Saldırının arkasında kimler var?

Saldırganın kim ya da kimler olduğunu bu tip saldırılarda belirlemek imkansıza yakındır. Hedefte Bilgi Güvenliği AKADEMİSİ, İstSec organizasyonu ya da lifeoverip.net sitesi olabilir.

Her üç site de aynı ip adreslerinde bulunduğu için ve saldırı uygulama seviyesinde bir saldırı olmadığı için hedefi sadece ip bazında değerlendirebildik.

Ek olarak kötüye neden kötüsün ya da suçluya neden suç işliyorsun demek bizim görevimiz değildir, bizim görevimiz yapılan hatalardan ders alarak daha güçlü sistemler ve daha güçlü hosting firmasına geçiş yapmak olacaktır.


Neler yaptık?

DNS sunucumuz yurtdışında farklı bir yerde tutuluyordu. Daha önceden bu tip saldırılara karşı DNS timeout sürelerini kısa tutmuştuk. Hızlıca aksiyon alarak DNS kayıtlarından web sayfasını Amerika’da daha güçlü bir sunucuya aktardık fakat bga.com.tr içeriğinin tamamı o sunucuya aktarılmadığı için sayfa CSS’lerden yoksun bir şekilde açılıyordu. ISP ip adreslerine giden tüm yolları da kapadığı için sayfanın canlı içeriğini kopyalayamadık.

Sayfa içeriğini statik olarak kopyalamak için kullandığımız yapı:

#wget –mirror –convert-links –html-extension -p http://www.bga.com.tr/

Fakat gördük ki saldırganın kullandığı sistem DNS değişikliklerini farkedip saldırıyı yeni ip adresine yöneltmedi. Akıllı bir saldırgan bu değişikliği farkedip saldırıyı yeni ip adresine yönlendirebilirdi. Bu da bize farklı bir güç katardı, gelen tüm paketleri istediğimiz bir IP adresine yönlendirebilirdik.

Bu tip saldırılarda saldırganı yormak amacıyla birden fazla ip adresi tutarak saldırı anında yapılacak ayarlarla saldırı boşa çıkartılabilir.

Mail İletişimi?

Bizim için en önemli iki bileşenden biri de mail sistemimizin çalışması. Mailler için bir müddet gecikme yaşasak da hızlıca DNS sunucu üzerinden düşük öncelikli MX kayıtlarını Google Apps’e yönlendirdik ve hesapların bir kısmını açarak oradan yönettik. Google Apps böyle durumlarda çok yardımcı oluyor. (Mailleri yönlendirme toplam süresi 9 dakika).

MX kayıtları:
# dig MX bga.com.tr
; <<>> DiG 9.6.1-P1 <<>> MX bga.com.tr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47504
;; flags: qr rd; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;bga.com.tr. IN MX
;; ANSWER SECTION:
bga.com.tr. 500 IN MX 10 mail.bga.com.tr.
bga.com.tr. 500 IN MX 15 ASPMX.L.GOOGLE.COM.
;; AUTHORITY SECTION:
bga.com.tr. 6964 IN NS ns1.gezginler.net.
bga.com.tr. 6964 IN NS ns2.gezginler.net.
;; ADDITIONAL SECTION:
mail.bga.com.tr. 1440 IN A 91.93.119.80
ASPMX.L.GOOGLE.COM. 58 IN A 74.125.43.27
MX kayıtlarında düşük sayı demek yüksek öncelikli demektir. Eğer mail.bga.com.tr ulaşılamazsa mailleri Google Apps’da bulunan hesabımıza aktaracaktır.

Çıkarılacak dersler:

ISP ile sağlıklı iletişim. En önemli konulardan birisi budur. Saldırı kesildikten sonra 9 saat boyunca ulaşılamaz olmamızın tek sebebi ISP’nin bizim ip adreslerimize yönelik anonsları kaldırmamış olması(her ne kadar görüşmelerde kaldırıldı dense de yaptığımız testlerde kaldırılmadığını gördük)DDoS geldiğinde müşteriler zarar görüyor diye hattınızı kesmeyecek bir ISP’e taşınmak gerekir.

  • DNS zaman aşımı süreleri 5 dakika gibi kısa tutulmalı(bunu daha önce yapmıştık)
  • Internete açık bir sistem ve göz önündeyseniz mutlaka sistemin bir yedeği daha güçlü başka sunucularda bulunmalı. Bunun için yapılacaklar kısaca şöyle:

    • günlük olarak sitenin içeriğini html olarak yedekleyen bir script yazılmalı ve başka sistemlerde aktif olarka tutulmalı.
    • Saldırı geldiğinde DNS üzerinden kayıtlar değiştirilerek sitenin html sürümü yayına sokulmalı

Son olarak bu tip saldırılarda anlık analiz ve duyurular için FriendFeed’den bir hesap açtık. http://friendfeed.com/ddos adresinden canlı canlı takipe debilirsiniz.