DoS/DDoS Testlerinde Dikkat Edilmesi Gereken Hususlar

DoS/DDoS, 2012 yılında tüm dünyada gerçekleştirilen siber saldırıların başında gelmektedir. Bunun temel nedeni DDoS saldırısını gerçekleştirmek için herhangi bir bilgi birikimi gerekmemesi ve etkisini anında göstermesidir. Internet üzerinden elde edilecek çeşitli otomatik araçlar kullanılarak cok rahatlikla kurumsal web sayfaları çalışamaz hale getirilebilir.

DDoS’un bu kadar basit bir saldırı olması çoğu güvenlik uzmanı ve kurum tarafından yeteri kadar ciddiye alınmamasına neden olmaktadır. Oysa siber saldırıların büyük çoğunluğu kurumların ve uzmanların yeteri kadar ciddiye almadıkları yerlerden gelmektedir.
DdoS bir altyapı problemidir ve tüm ISP’ler biraraya gelip ortak
kurallar çerçevesinde hareket etmedikce sonlanmayacaktır.

DDoS Pentest / Hizmet Durdurma Simulasyon  Saldırıları

DDoS testlerinde hedef seçerken dikkatli olunmalı, ana sayfanın erişilemez olmasını isteyen bir saldırgan sadece ana sayfaya yönelik bir ddos saldırısı gerçekleştirmez. DNS, Firewall, veya daha korumasız gördüğü bir sisteme saldırı denemesinde bulunabilir. Bu nedenle ddos testlerinde farklı hedefler belirleyerek bu hedeflere yönelik gerçekleştirilecek saldırıların hangi noktalarda sıkıntı oluşturduğu bir excel olarak tutulmalıdır.



DDoS Test Çeşitleri 

Internet üzerinde 60’a yakın DdoS saldırısı gerçekleştirilmektedir.
Bunlardan en temel saldırılar SYN Flood, DNS Flood, UDP flood ve HTTP
Floodolarak bilinmektedir.

DDoS testlerinin gerçek anlamda sağlıklı sonuçlar verebilmesi için aşağıdaki ana başlıkları içermesi beklenmektedir:

  • Syn Flood Saldırıları
  • ACK Flood Saldırıları
  • FIN Flood Saldırıları
  • TCP Connection Flood Saldırıları
  • UDP Flood DDoS Saldırıları
  • ICMP Flood DDoS Saldırıları
  • HTTP GET, POST Flood Saldırıları
  • DNS Flood DDoS Saldırıları
  • Botnet Simulasyonu
  • Rate Limiting, Karantina Özelliklerinin Test Edilmesi
  • Uygulamalara Özel DoS Testleri
  • SSL, HTTPS DoS Testleri

Sahte IP Paketleriyle Test
DDoS testlerinde Botnet gibi yasal olmayan sistemler kullanılamayacağı için test yapacak firmanın internet üzerinde ip spoofing yapabilecek özelliklere sahip sistemleri olması gerekmektedir.

Günümüzde çoğu ISP kendi sistemlerinden sahte ip adresleri ile trafiğin çıkmaması için UPRF gibi çeşitli önlemler almaktadır. Gerçekleştirilen testler için kullanılacak sistemlerin önünde URPF korumalı bir yönlendirici bulunuyorsa siz paketlerin gittiğini düşünürsünüz fakat sahte üretilen paketler bir sonraki yönlendirici cihazdan ileri gidemez.

Test Trafik Kapasitesi
Ortalama trafik üretimi 2-5 Gbps ve üretilmesi gereken paket miktarı 3.000.000 PPS civarında olmalıdır. Bunun altında kalacak ddos testleri klasik ddos engelleme sistemleri tarafından rahatlıkla engellenebilir.


İşin Mantığını Anlayarak Test Yapma
DDoS testlerinin kolay gerçekleştirilebiliyor olması bu konuda hiç bir bilince sahip olmayan kişilerin de test gerçekleştirebilmesini sağlamaktadır. DDoS engelleme sistemleri internet üzerinden indirilip çalıştırılacak çoğu ddos test/paket üretici yazılım icin basit koruma özelliklerine sahiptir.
Mesela Hping kullanarak yapılacak klasik bir SYN flood saldırısının korumalı bir sistemde hiç bir etkisi olmayacaktır.  Hping SYN paketleri üretirken sıradan bir TCP bağlantısından farklı üretmektedir. Bu farkı yakalayan DDoS engelleme sistemleri paketleri işlemeden düşürmektedir.


Hping TCP SYN Paketi Anormallik Örneği
 
Klasik bir TCP bağlantısı başlatma isteğinde başlık bilgileri aşağıdaki gibi olacaktır.

Transmission Control Protocol, Src Port: 57306 (57306), Dst Port: http (80), Seq: 688192453, Len: 0    Source port: 57306 (57306)
    Destination port: http (80)
    [Stream index: 0]
    Sequence number: 688192453
    Header length: 40 bytes
    Flags: 0x002 (SYN)
        000. …. …. = Reserved: Not set
        …0 …. …. = Nonce: Not set
        …. 0… …. = Congestion Window Reduced (CWR): Not set
        …. .0.. …. = ECN-Echo: Not set
        …. ..0. …. = Urgent: Not set
        …. …0 …. = Acknowledgment: Not set
        …. …. 0… = Push: Not set
        …. …. .0.. = Reset: Not set
        …. …. ..1. = Syn: Set
            [Expert Info (Chat/Sequence): Connection establish request (SYN): server port http]
                [Message: Connection establish request (SYN): server port http]
                [Severity level: Chat]

Hping tarafından üretilecek SYN paketlerinde TCP SYN paketinde ise ACK bayrağı set edilmediği halde ACK numarası alanı dolu olarak gönderilmektedir.

Transmission Control Protocol, Src Port: here-lm (1409), Dst Port: http (80), Seq: 239285634, Len: 0    Source port: here-lm (1409)
    Destination port: http (80)
    [Stream index: 0]
    Sequence number: 239285634
    Acknowledgment Number: 0x1f7f9dc1 [should be 0x00000000 because ACK flag is not set]
        [Expert Info (Warn/Protocol): Acknowledgment number: Broken TCP. The acknowledge field is nonzero while the ACK flag is not set]
            [Message: Acknowledgment number: Broken TCP. The acknowledge field is nonzero while the ACK flag is not set]

            [Severity level: Warn]
            [Group: Protocol]
    Header length: 20 bytes
    Flags: 0x002 (SYN)
        000. …. …. = Reserved: Not set
        …0 …. …. = Nonce: Not set
        …. 0… …. = Congestion Window Reduced (CWR): Not set
        …. .0.. …. = ECN-Echo: Not set
        …. ..0. …. = Urgent: Not set
        …. …0 …. = Acknowledgment: Not set
        …. …. 0… = Push: Not set
        …. …. .0.. = Reset: Not set
        …. …. ..1. = Syn: Set

Çoğu DDOS engelleme sistemi bu anormalliği yakalayarak  Hping tarafından üretilecen paketleri işlemeden çöpe atmaktadır

DDoS Test Amaçlı Kullanılan Yazılımlar
DoS/ DDoS testlerinde yasal olmayan yollarla elde edilmiş Botnet yazılımları kullanılamaz. Botnet’lerin oluşturacağı trafiğin benzerini oluşturabilecek kapasitede açık kaynak  kodlu ve ticari yazılımlar bulunmaktadır.

  • Hping3
  • Nping
  • Juno
  • T50
  • ab
  • Apache Jmeter
  • DoSHTTP
  • Mz
  • Hyanae
  • DDoSim
  • Bonesi

Not: HTTP ve TCP üzerinden çalışan diğer uygulama seviyesi protokollerde ip spoofing yapılamayacağı için internet üzerinden yapılacak ddos testlerinde bu protokollere ait paket üretimleri gerçekleştirilemez.

Yerel ağda lab ortamı kurarak http ve benzeri protokoller için ip spoofing yapılarak tam bir botnet/zombi ordusu simulasyonu gerçekleştirilebilir. Internet üzerinden çeşitli bulut bilişim çözümleri kullanılarak 100-500-1000 ip adreslik uygulama seviyesi ddos saldırıları simüle edilebilir.

Ücretsiz yazılımlar genellikle kısıtlı özelliklere sahiptir. Geliştirme programlama dili olarak C ve Perl kullanıldığı için kod tarafı incelenerek eklemeler yapılabilir. Mesela hping paketleri gönderirken sadece bir ip adresinden ya da tamamen rastgele ip adreslerinden gönderebilir fakat belirli ip aralığından paket gönderme özelliği yoktur(botnet simülasyonu için).

Testlerde Kullanılan Kaynak Sistemlerin Konumlandırılması
Bazı DDoS koruma sistemleri internetten gelecek ataklara karşı başarılı bir koruma sağlarken eksik/hatalı yapılandırma nedeniyle ISP’nin kendi iç ağından gelebilecek ataklara karşı etkinlik sağlayamamaktadır. Bu nedenle ddos testlerinin ikisi yurt dışında ikisi yurt içindeki ana ISP’lerden olmak üzere en az 4 farklı lokasyondan gerçekleştirilmesi gerekir. Aksi halde ddos testlerinin sonuçları başarısız olacaktır.

URPF Koruması
URPF, çoğu ISP’nin kullandığı ve IP spoofingi engelleme amacıyla kullanılan bir yöntemdir. Teknik detaylarına buradan **ulaşılabilir.

URPF’in aktif olup olmadığını anlamak için intnerete bağlı ayrı bir makineye ihtiyaç vardır.

tcpdump -i eth0 -tn tcp port 8080

URPF testi yapılması istenen makine üzerinden hping3 –spoof 5.6.7.8. -p 8080 -S IPADRESI_B yazılır.

Ardından tcpdump çıktısına bakılarak spoof edilmiş ip adreslerinden peketlerin çıkıp çıkmadığı belirlenebilir.

DDoS testleri hakkında detay bilgi için BGA DDoS Pentest Framework taslağı incelenebilir.