DDos(Distrubuted Denial of Service) saldırısı ise,
saldırganın saldırıya geçmeden önce oluşturduğu makine veya bilgisayar
topluluğu ile hedefe saldırmasıdır ve DoS gibi hizmet aksatma veya hiç hizmet
veremez hale getirme amaçlanır. Bununla birlikte saldırgan kolay bir şekilde
kimliğini belli etmeden gizlenebilir ve saldırganın tespit edilmesi zorlaşır.
1999 yılında Minnesota Üniversitesi öğrencileri
tarafından ilki gerçekleştirilen DDoS saldırıları, 2000 yılında
Trinoo’nun, CNN, Yahoo, EBay, Datek gibi siteleri hedef alması, 2002 Kök
DNS sunucularını hedef alan DDoS atağı gerçekleştirilmesi,
2007 yılında Estonya siber saldırıları, 2008 yılında gerçekleştirilen Gürcistan
siber saldırısı, 2010 yılında Wikileaks gerçekleştirdiği, TİB, BTK, TÜBİTAK
yönelik saldırılar ve 2011 yılında Anonymous’un Malezya, Türkiye, Paypal,
Mastercard gibi ülkelere gerçekleştirilmiştir. Bu saldırılar daha önceden
tasarladığı birçok makine üzerinden hedef bilgisayara saldırı yaparak hedef
sistemin kimseye hizmet veremez hâle gelmesini amaçlayan saldırılardır.
DoS saldırı türünde amaç sınırlı sistem kaynaklarının
sınırını aşarak, sistemin devre dışı kalmasını sağlamaktadır.
Saldırı DoS
saldırısı olursa, yani tek bir IP üzerinden saldırı gerçekleşirse firewall’dan
engellenebilir. Fakat DDoS saldırısında çok sayıda makine kullanıldığından, ip
tespiti güçleşir ve firewall yakalayamayabilir. Log taşması sonucu firewall
devre dışı kalabilmektedir. Bu nedenle DDoS, DoS saldırısına göre daha
tehlikeli ve etkilidir. DoS saldırıları siber tehditler arasında 2. Sıraya
girebilmektedir.
DRDoS, yani
“distrubuted reflective denial of service” DDoS’a benzerdir. Tek farkı, daha
sık aralıklarla atak yapmak amacıyla ek ağlar kullanmaktadır.
Saldırı
türlerini tanımadan önce TCP ve UDP protokollerini iyi bilinmesi gereken önemli
protokollerdir. Bu protokolleri tanıyarak DoS saldırı türlerini daha iyi
kavrayabiliriz.
TCP Protokolü
TCP İnternet
üzerinde iki host arasında güvenilir ve sıralı veri iletimini sağlayan en
yaygın protokoldür. TCP/IP modelinde 4. Katmanda bulunur. Bu özelliği ile
karşı tarafa teslim edildiğini bilinmesi gereken dataların iletiminde ve bir
çok uygulamalarda kullanılmaktadır.
TCP datayı
sıralı olmayan bir yapıda gönderebilir ve her alınan paket için bir doğrulama
bilgisi gönderene bildirilir(ACK). Karşı taraf veriyi aldığında protokolün
içinde bulunan sıra numarasıyla sıralayarak datayı ortaya çıkarır. Eğer
herhangi bir paket eksikse bunu gönderene bildirir. Gönderen tekrar iletimde
bulunur.
Aşağıda TCP
protokolü gösterilmektedir.
TCP iletişime geçmeden önce taraflar birbirlerini doğrulamak zorundadır. Bu
doğrulama işleminde deThreeway Handshake denilen
yöntemi uygularlar.
- Bağlantıyı
başlatacak İstemci TCP segmenti başlığı içerisinde SYN
(Synchronize) bitini “1″ set eder. Paketleri
kontrol etmek amacıyla bir sıra numarası üretilir. Örneğimizde ilk sıra
numarası x‘dir.
- İstemciden gönderilen paketi
alan Sunucu bağlantı isteğini onaylamak için TCP segmenti
başlığı içerisinde SYN+ACK (Acknowledgement) bitlerini
“1″ set eder. Sunucu aldığı paketteki sıra numarasını bir
artırır x+1 bu numara İstemcinin bir sonraki
göndereceği paket numarasıdır. Bu numara değeri ACK.Num.
(Acknowledgment Number) alanına yazar. Sunucu da
kendi paketlerini kontrol amaçlı bir sıra numarası üretir(y). Bu
sıra numarasını SEQ.Num.alanına yazar ve paketi tekrar İstemciye
yollar.
- Bağlantı sağlamanın son aşaması
olarak İstemci bilgisayarından Sunucu bilgisayarına
bir paket daha iletilir. Bu pakette TCP segmenti başlığı içerisinde ACK biti
“1″ set edilir. ACK.Num. alanına Sunucu bilgisayarın
gönderdiği ACK.Num. değeri y bir artırılarak y+1 yazılır. SEQ.Num. değeri İstemci bilgisayarın
sıradaki paket numarasıdır. Yani İstemci bilgisayarının
ilk gönderdiği sıra numarası Sunucu bilgisayarı
tarafından bir artırılmış ve İstemci‘ye yeniden
gönderilmiş olan x numarası yazılır ve paket Sunucu bilgisayarına
gönderilir ve bağlantı sağlanmış olur. Bundan sonra paketler iletilir.
Ayrıca paketlere sequence numaralarının eklenmesi “Man in the middle” denilen ataklara karşı bir önlem niteliğindedir ve güvenliği
sağlamaktadır.
UDP Protokolü
Bu protokol
veri iletişiminin doğru bir şekilde yapılıp yapılmadığını kontrol etmez.
Dolayısıyla verinin karşı tarafa doğru ulaşacağı garanti değildir. TCP'deki
gibi Handshake oluşumu bulunmamaktadır. TCP/IP modelinde 4. katmanda
bulunur.
Bu protokol
verinin karşı tarafa ulaşıp ulaşmaması ile ilgilenmez. Bu yüzden TCP
protokolüne nazaran daha fazla bant genişliği sunar. Paketlerin ardışık olmayıp,
dataların ulaştığını düşünerek kaydolduğunu farz eder. TCP protokolün aksine
akış kontrolü bulunmadığından ağ tıkanıklığının farkına varamaz. Aşağıda UDP
protokolünün ne kadar basit bir yapı içerildiği gösterilmektedir.
TCP: UDP 'den daha yavaştır,çünkü
verinin karşı tarafa ulaşıp ulaşmadığını kontrol eder. Veri ismine segment
denilir.UDP: Ses ve video gönderiminde kullanılır. TCP'ye göre daha
hızlıdır fakat güvenli değildir. Veri ismine datagram denilir. Datagramın
segmentten farkı ise içerisinde sıra numarasının bulunmamasıdır.
Zombiler
DoS atakları
sırasında düşman, yakalanmamak ve iz bırakmamak için elinden geleni sarfeder. O
yüzden bu ataklar için "zombi" denilen aracı bilgisayarlar kullanır. Atakları
bu zombiler üzerinden yaparak hem aynı anda bir çok bilgisayarın saldırmasını
sağlar, hem de kendi kimliğini ve IP adresini gizler. Bu şekilde birçok zombinin
aynı anda saldırması ile yapılan DoS ataklarına Dağıtık DoS (DDoS) denir.
Zombiler aslında düşmanın bir açığını bularak önceden ele geçirdiği (hack ettiği) ve atak sırasında kullanılmak üzere bir daemon bıraktığı bilgisayarlardır. Başka bir deyişle zombiler düşman tarafından kullanılan ve kullanıldıklarının farkında bile olmayan masum bilgisayarlardır. Zombiler üzerinde kurulan bu daemonlar belirli bir porttan gelecek DDoS emirlerini dinleyerek atakları gerçekleştirmektedirler. Düşmanlar zombi olarak genellikle açık ve göreceli olarak daha güvensiz olan çok kullanıcılı Internet Servis Sağlayıcı (ISS) ve üniversite bilgisayarlarını tercih etmektedirler. Son ataklarda genellikle Unix ve Linux tabanlı sistemler zombi olarak kullanılmışsa da windows tabanlı sistemlerin de ele geçirildikten sonra zombi olarak kullanılmaları mümkündür.
Zombiler aslında düşmanın bir açığını bularak önceden ele geçirdiği (hack ettiği) ve atak sırasında kullanılmak üzere bir daemon bıraktığı bilgisayarlardır. Başka bir deyişle zombiler düşman tarafından kullanılan ve kullanıldıklarının farkında bile olmayan masum bilgisayarlardır. Zombiler üzerinde kurulan bu daemonlar belirli bir porttan gelecek DDoS emirlerini dinleyerek atakları gerçekleştirmektedirler. Düşmanlar zombi olarak genellikle açık ve göreceli olarak daha güvensiz olan çok kullanıcılı Internet Servis Sağlayıcı (ISS) ve üniversite bilgisayarlarını tercih etmektedirler. Son ataklarda genellikle Unix ve Linux tabanlı sistemler zombi olarak kullanılmışsa da windows tabanlı sistemlerin de ele geçirildikten sonra zombi olarak kullanılmaları mümkündür.
DoS Saldırı Çeşitleri
DoS
saldırının birden fazla türü bulunmaktadır. Şimdi bunları yakından tanıyalım;
1. SYN Flood
TCP three handshake tamamlanmadan yapılan bir yöntemdir. Yani
istemci bir SYN, sunucuda buna yanıt olarak SYN+ACK paketlerini yollar ve ACK
paketini beklemeye koyulur. Buraya kadar herşey güzel. ACK paketi gelmez
ise bu bağlantı full-duplex değil "yarı-açık" bir bağlantı olurdu. Ve
bu bağlantı çeşidi pek iç açıcı değildir.
Sunucu SYN+ACK'yi yolladıktan sonra ACK için bekler. Fakat istemci ACK
paketini yollamaz ise işler çıkmaza girer. Sunucu beklemeyi bırakmaz. Sürekli
bekler.
Sunucu ACK için beklerken, karşıya ACK yerine bir bağlantı talebinde daha bulunduğumuzu varsayalım. Ve yine 3. adım'ı gerçekleştirmeyelim. Yani son ACK'yi yollamayalım.Hatta bunu bir daha yapalım. Bir daha .. Bir daha.. Ve sonuçta "flood" oluşur.
Sunucu ACK için beklerken, karşıya ACK yerine bir bağlantı talebinde daha bulunduğumuzu varsayalım. Ve yine 3. adım'ı gerçekleştirmeyelim. Yani son ACK'yi yollamayalım.Hatta bunu bir daha yapalım. Bir daha .. Bir daha.. Ve sonuçta "flood" oluşur.
Hedef
makina, saldırı yapılan makinadan yanıt alamayacağından dolayı, SYN-ACK
paketini 5 kez tekrar edecektir. Bunun tekrar süreleri, 3, 6, 12, 24 ve 48
saniyedir. Ayırdığı kaynağı boşa çıkartmadan evvel, 96 saniye sonra son bir kez
SYN-ACK denemesi yapacaktır. Hepsini topladığınızda, görüldüğü gibi hedef
makina ayırdığı kaynakları 3 dakika gibi bir süre tutacaktır. Bu sadece her bir
SYN atağı için gerçekleşecek süredir.
Saldırgan bu tekniği tekrarladığı zaman, hedef makina ayırdığı kaynaklardan dolayı kaynak yetersizliğine kadar ulaşır ve artık yeni bir bağlantı karşılayamayacak duruma gelir. Ve bu durumda yetkili kullanıcılar bile, makinaya bağlanamaz. Yetkililer ne kadar bağlantı iptal ederlerse etsinler, yenileri eklenecektir.
Saldırgan bu tekniği tekrarladığı zaman, hedef makina ayırdığı kaynaklardan dolayı kaynak yetersizliğine kadar ulaşır ve artık yeni bir bağlantı karşılayamayacak duruma gelir. Ve bu durumda yetkili kullanıcılar bile, makinaya bağlanamaz. Yetkililer ne kadar bağlantı iptal ederlerse etsinler, yenileri eklenecektir.
TCP-SYN
oturumu host ile client arasında kurulduktan sonra ACK veya PUSH ACK
paketleri iletişim için kullanılır. Bu ACK paketleri kurban server'in
kaynaklarını tüketmeye başlarsa ACK & PUSH ACK Flood olarak
adlandırılan attack gerçekleşmiş olur.
Eğer attack türü kurban nerwork'un bant genişliğini
sömürürse, buna ACK &
PUSH ACK Flood türü olan Fragmented
ACK denir. Attack'da 1500 byte uzunluğunda paketler kullanılır.
TCP-SYN
oturumunu sonlandırmak için RST veya FIN (açık olan TCP iletişim
handshake oturumunu sonlandırma isteği) server değiştirir. RST veya FIN attack
esnasında, kurban server RST veya FIN paketlerini yüksek
oranda kaydeder ve sonuç olarak server'in kaynakaları tükenmeye başlar (hafıza,
CPU, RAM, vb.). Bu da RST veya FIN Flood olarak
bilinir. Server bunu karşılayamazsa performası azalır, isteklere cevap veremez
veya kapanır.
2. Land Flood
2. Land Flood
SYN Flood’a
çok benzerdir. Bu atak çeşidinde saldırganlar (hacker) hedef sistemin IP
adresini, source (kaynak) IP adresi olarak kullanarak networkü SYN paketleri
ile istila ederler. Bu durumda host bilgisayar sanki paketleri kendi kendine
göndermiş gibi görünür. Böylece, yukarıda söz ettiğimiz üç aşamalı bağlantı
zincirinde(ThreeWay Handshake), hem dışarıdan paket almış, hem de kaynak
kendisi olduğundan kendisine cevap vermiş olur. Böylece hedef sistem bir paket
alması gereken birim zamanda iki paket alır ve saldırının boyutu da iki katına
çıkar. Yani hedef sistem, kendi kendine yanıt vermeye çalışırken sistem
kullanılamaz duruma gelir.
3. UDP Flood
UDP, TCP’den
en temel farkı belirttiğimiz gibi verinin ulaşıp ulaşmadığını garanti etmez. 3
yollu el sıkışma olmaması ve trafiğin karşı tarafa ulaşıp ulaşmadığını kontrol
etmemesinden dolayı daha hızlı çalışır. UDP saldırısı uzaktaki bir
bilgisayarın rastgele portlarına çok sayıda UDP paketi göndererek
başlatılabilir. Bu durumda saldırıya uğrayan uzaktaki makine:
- Portu dinleyen
bir uygulama var mı diye kontrol eder;
- Hiç bir
uygulamanın o portu dinlemediğini görür;
- ICMP "Hedefe Ulaşılamıyor" paketi ile cevap verir.
Böylece, çok
sayıda UDP paketi gönderilmesi durumunda, mağdur sistem de yanıt olarak çok
sayıda ICMP paketi göndermeye zorlanır ve bu da onun diğer istemciler
tarafından erişilemez duruma gelmesine yol açabilir. Saldırganın UDP
paketlerinde sahte IP adresi olabilir,
bu durum geri dönen ICMP paketlerinin ona ulaşmamasını sağlar ve
saldırganın bağlantı konumunu anonimleştirir.
Bu saldırı,
istenmeyen ağ trafiğini filtrelemek üzere ağ içindeki kilit noktalara güvenlik duvarları kurularak yönetilebilir.
Böylece, hedefteki makine UDP paketlerini asla almaz ve kötü niyetli UDP
paketlerine asla cevap vermez. Çünkü güvenlik duvarı onları durdurur.
UDP
Fragmentation: UDP
flood türüdür. Büyük paketler kullanarak (1500 byte) bant-genişliğini sömürür.
Bu paketler birbirleri ile ilişkisi yoktur ve paketler sunucuda birleştirilmeye
çalışılır. Bu paketler birleştirilmeye çalışılırken CPU kaynağı harcanacaktır.
Bu sistemin yeniden başlamasını sağlar veya sistemin kapanmasına yol açar.
VoIP Flood: Özelleştirilmiş bir UDP Flood
türüdür. Kurban VoIP server, yüksek sahte VoIP paketleri ve uzun IP
dizilerini kaydeder. Network'u rasgele paket içeriğiyle ve iyileştirilmiş
kaynak IP adresi ile istila eder.
Non-Spoofed
UDP Flood: Bu
attack yapılırken, kurban server sahte UDP paketi olmayan paketleri
kaydeder ve gelen UDP paketlerin büyük miktarı istila eder. Attack
network kaynaklarını tüketir ve sistem kapanır. Attack sırasında kullanılan IP
sahte olmayan BOT'ların IP'sidir.
4. ICMP Flood
Bu saldırı,
ICMP (Internet Control Message Protocol) protokolünü hedef almaktadır. Bu
sistemin özelliği, saldırının birden çok noktadan yapılması durumunda başarılı
sonuç vermesidir. Aksi takdirde çok bir etkisi olmayacaktır. Bu saldırılar özellikle
Linux üzerinden yapıldığında başarılı sonuçlar vermektedir ve saldırı için bazı
özel komutlar kullanılmaktadır. Örnek olarak “ping –s ip” komutuyla
64 kb’lık paketler gönderilebilmektedir. Bu komutun, birçok farklı noktadan
gönderilebileceği düşünülürse, oldukça etkili olduğu görülür.
ICMP, genel
olarak sistemler arası iletişim ve hata ayıklama amacıyla kullanılan bir
protokoldür. Hepimizin siyah ekran, cmd diye tabir ettiği komut satırı açarak
yapabildiğimiz ping komutu bu protokol üzerinde çalışmaktadır. Bunun için
CMD’ye “ping –l 65510 ip” yazmak işi görecektir. İstemci
sistemin, hedef sisteme gönderdiği ICMP Echo Request (TYPE 8) paketine karşılık
hedef sistem ICMP Echo Reply (TYPE 0) paketi gönderir. Böylece biz, hedef
sistemin ulaşılabilir olduğundan emin oluruz. Burada hemen belirtelim, cevap
gelmemiş olması sistemin ayakta olmadığını göstermez.
Bu
yapıdan faydalanılarak, saldırgan makineler çok sayıda ICMP Echo Request (type
8) paketi gönderir. Kurban sistem, gelen tüm bu isteklere cevap vermek için
çaba harcar ve sistem yorulmaya başlar. Sistem kaynakları bunlara cevap veremez
hale gelir ve sistem erişilemez duruma düşer.
ICMP
Fragmentation: Kurban
server sahte, büyük ICMP paket parçaları (1500 byte) kaydeder ve bu baketler
birleştirilemez. Büyük paket dizinleri ICMP attack'in bant
genişliğini artırır. Kullanışsız paketlerin birleştirilmesi girişiminde
bulunduğunda CPU kaynakları devre dışı kalır. Ve fazla yükleme olduğunda
yeniden başlayacaktır.
5. Finger
Finger,
belirli bir kullanıcı hakkında bilgi veren programdır, ayrıca kendi
sisteminizde veya uzak sistemde giriş yapmış kullanıcıları listelemek için de
kullanılır. Genelde kullanıcının tam adını, ne kadar zamandır işlem yapmadan
beklediğini, hangi terminal hattından bağlandığını, ve terminalin yerini
gösterir. Bunlara ilaveten eğer mevcutsa kullanıcıya ait .plan ve .project
dosyalarını görüntüler.
Farklı hostlar üzerinden saldıracağınız sunucuya sürekli finger çekiyoranız bu işlem sonucunde oldukça fazla bant genişliği götürmüş olursunuz. Saldırı birçok farklı noktadan yapıldığından etkisi oldukça büyük olmaktadır.
6. TearDrop(Göz Yaşı)
Parçalanmış UDP paketlerinin bozuk offset paketleri ile yapılır. Bir dosya
bir yerden gönderilmeden önce parçalanır ve alıcı bu paketleri gönderici
tarafından sırası belirlendiğinden tüm paket alınınca birleştirir. Her bir parça içeriği hariç olmak
kaydıyla orjinal pakete benzer. Paket
verilere ayrıştırılırken, pakette bulunan offsetler kullanılır. Bu offset
bilgilerinin birbirleriyle çakışmaması, yani üst üste gelmemesi lazımdır. Teardrop
saldırılarında, paketi gönderen saldırgan, pakete üst üste gelecek offsetler
ekler .
Paketi alan bilgisayar, böyle bir durumu kontrol edebilecek mekanizmaya
sahip değilse, destination
tarafından bir araya getirildiğinde sistemin crash olması, asılı kalması, işlem
yapmaması veya reboot etmesine yol açar. Şu
an da ise çoğu işletim sistemi bu tür saldırılara karşı dayanıklıdır.
7. Ping of Death (Ölüm Pingi)
Neredeyse
bütün işletim sistemleri bu tür bir saldırıya karşı önlemini aldıysa da
zamanında çok etkili bir yöntemdi. Bu yöntemin mantığı şöyle çalışır: ICMP
protokolü ağda bilgisayarların hata mesajlarını birbirlerine göndermesini yada
'Ping' gibi basit işlemlerin yapılmasını sağlar. ICMP spesifikasyonunda, IMCP
Echo request'lerin data kısmı 216 ile 65,536 byte arasında olmak zorundadır.
Eğer bu veri sınırlarının dışına taşmış bir paket kurban sisteme yollanırsa
işletim sistemi böyle bir şey beklemediği için çalışamaz duruma gelecektir.
8. Smurf
Bir smurf
attackta, hackerlar sıkça kullanılan bir Internet servisini sömürürler-ping(Internet
Control Message Protocol). Ping, genelde belirli bir bilgisayar yada
serverin Internete bağlı çalışır olup olmadığını anlamak için kullanılır. Bir
bilgisayar yada servera bir ping pakedi gönderildiğinde, pingi yollayan kişiye
bir cevap pakedi yollar, "evet burdayım!" demiş olur(Bir
networke yollanıldığında networkteki tüm bilgisayarlar cevap verir.).
Ping edilen network, saldırı hedefi değildir. Bir smurf attackte,
hackerlar ping isteklerindeki geri dönüş adreslerini değiştirirler, böylece bu
cevap paketleri kendilerine değil de hedeflenen adrese gider. Bunun iki nedeni
vardır: hem hedefe saldırır, hem de ping request üzerinde kendi adresi
bulunmadığı için yakalanmaktan kendini korur.
Ping
istekleri aralıksız bir şekilde networkün “directed broadcast” adresine
yollanır. Bu adres, geriye, networke bağlı her bilgisayara ping isteklerini
yollar-ki bu da birkaç yüz belki de daha fazla bilgisayar eder. Yani bir ağdaki
tüm bilgisayarlar işleme karışmış olur.
Bu birkaç
yüzden fazla bilgisayarın herbiri ping isteğine cevap yollar. Bilgisayarlar,
cevap paketlerini, ping isteğinin üzerinde adresi yazan hedefe yollar. Bunlar
hackera gönderilmez çünkü o, önceden ping isteğindeki adresi değiştirmiştir.
Hedef yüzbinlerce
ping cevap pakedini saniyeler içinde alarak tıkanır-basit bir networkten saniye
başı 5Mblik datadan fazlası demektir. Ping paketleri hedefin tüm bant
genişliğini kapladığından, her saniye gelen bu kadar fazla data
yüzünden, hedef kullanıcıları data alışverişi yapamazlar. E-mail
yollayıp alamaz, webde gezemez, veya herhangibir başka Internet servisi
kullanamazlar.
Hedefin bu
smurf attacklere karşı savunması zordur, çünkü ping cevaplama paketleri
hackerdan değil, yasal networkten gelir. Hedef, ping cevaplama
paketlerinin nereden geldiğini ortaya çıkarmalı, sonra herbir networke
bağlanmalı, ve onlara ping cevaplama paketlerini kapamalarını söylemelidir.
Bunu güçleştiren, hedef sistem kapandığında müşteriler ping isteği
yollayıp, onun canlı ve Internete bağlı olup olmadığını öğrenmek ister. Bu
nedenle de hedef sistem uygun ping paketlerini, smurf attack
paketlerinden ayırabilmekte güçlük çeker.
ISP ler
ve Internet routerlara yerleştirmek için smurf koruma özelliği olan yazılımlar
kullanılmaktadır. Ancak sadece birkaç şirket bu yazılımı kullanmaktadır.
9. Fraggle
Fraggle da Smurf ile aynı mantığa sahiptir, sadece tek fark olarak UDP
paketlerini 7 ile 19 (Unix sistemlerde ) numaralı portlara iletir.
10. DNS Poisoning (DNS Zehirleme)
Alan Adı
Sunucuları istemciler ve web sunucuları arasındaki haberleşmenin sağlanması
amacıyla kullanılan IP adresinin sayısal değerini, insanın okuyabileceği gibi
bir alan adına çeviren sunuculardır.
Bir DNS
sunucusu, gerçek olmayan bir veriye sahip olduğunda ve bu veriyi performansı en
uygun seviyeye getirebilmek için ön belleğe aldığında, DNS sunucusu bir
zehirlenme olduğunu dikkate almaktadır.
Normal
olarak ağ tabanlı bir bilgisayar bir ISP veya kullanıcının bilgisayarı
tarafından sağlanmış bir DNS sunucusu kullanır. DNS sunucuları önceden elde
edilen sorgu sonuçlarını önbellekleyerek cevap performansı duyarlılığını
artırmak için genellikle bir organizasyonun ağında dağıtılır. Bir DNS
sunucusundaki zehirleme atakları, eğer uygulanabilirse, direk gizliliği ihlal
etmiş bir sunucudan veya dolaylı olarak onun aşağı sunucusu veya sunucularından
sunularak kullanıcılara etki edebilir.
Bir önbellek
zehirleme atağını yapabilmek için, saldırgan DNS yazılımındaki bir kusuru
istismar eder. Eğer sunucu doğru bir şekilde güvenilir bir kaynaktan geldiğine
emin olmak için doğrulama yapmazsa sunucu doğru olmayan girdileri yerel olarak
önbelleklemeyi sonlandıracak ve onları diğer kullanıcılara aynı isteği yaparak
sunacaktır.
Bu teknik
kullanıcıları bir siteden saldırganın seçtiği başka bir siteye yönlendirmek
için kullanılabilir. Örneğin, bir saldırgan verilen bir DNS sunucusundaki bir
hedef websitesi için IP adresi DNS girdilerini, onun kontrolündeki sunucunun IP
adresiyle değiştirerek zehirler. Sonra hedef sunucusundaki isimlerle eşleşen
onun kontrolündeki sunucuda dosyalar oluşturur. Bu dosyalar bilgisayar solucanı
veya virüs gibi zararlı içerikler içerebilir. Zehirlenmiş DNS sunucusuna
referans edilmiş bilgisayara sahip bir kullanıcı güvenilir olmayan bir
sunucudan gelen içeriği kabul ederek kandırılmış olacak ve farkında olmadan
zararlı içeriği indirmiş olacaktır.
DNS
sunucuya, yanlış DNS bilgileri tanıtılarak, istekler değiştirilmiş olan DNS
sunucuya iletilir.
11. Buffer Overflows
Bilgisayarlarda
bulunan bufferlar, belli bir kapasiteye sahiptir. Kapasitenin aşıldığı
durumlarda kitlenme, reset atma gibi durumlar oluşabilmektedir. Hafıza taşması
saldırı tipinde de çok fazla veri gönderilerek trafik yoğunlaşır ve iletişim
engellenir. Bu sebeple, saldırganlar büyük boyutta ping göndermeyi tercih
etmektedirler.
12. HTTP Fragmentation
Bu
saldırıda, server ile BOT arasında geçerli bir HTTP bağlantısı kurulur.
Sistem alarm vermeden açılan oturum süresi uzun tutulabilmektedir . Bir
çok server tasarlanan uygunsuz time-out mekanizması için, HTTP oturum
zamanı, periyodik olarak uzatılabilir. Saldırgan, açılan periyodik uzatılmış
oturumlar tarafından web serveri bir miktar Bot'lar ile durdurabilir.
13. Excessive VERB
Attack yapan
BOT kurban web server'a geçerli HTTP isteğinde bulunur. Bu istekler web sayfa
veya resim gibi büyük boyutlu yanıt GET veya POST istek türleridir. Her bir bot
saniyede 10'dan fazla istek oluşturabilir. Burda server'in bant genişliği fazla
artmaz. Fakat kurban kaynakları tüketilerek yanıt veremez duruma gelmektedir.
Recursive
GET: Bir
VERB attack türüdür. Saldırgan bir kaç sayfa veya resim toplar ve GET isteği
üretir. Bunu belirlemesi zordur çünkü yasal bir istek oluşturulmuştur.
Radom
Recirsive GET: Bu
attack Recursive GET'nin modifiye edilmiş halidir. Daha çok indeksli olan
forum ve haber sitelerinde kullanılır. GET isteklerine rasgele geçerli
olabilecek sayfa dizin numaraları eklenir. İstenilen her biri bir
öncekinden farklıdır.
14. Faulty Application
Saldırgan
uygulamanın zayıf dizaynından veya databasele zayıf etkilişimden kaynaklanan
kusuru kullanabilir. SQL injection gibi attack'lar üreterek server'in
kaynaklarını sömürebilir(hafıza, CPU, vb.).
15. Media Data Flood
VoIP ek
olarak, UDP flood bir kaç media paketi aldığında oluşur. Attack
sırasında, kurban server media veri paket basınlarını yüksek bir veri ve çok
uzun bir IP dizisiyle kaydeder. Sistem bunu karşılayamaz ve istila edilmiş
olur. Network kaynakları sömürülür ve kapanır. VoIP gibi Media Data flood
networku rastgele paketler ve iyileştirilmiş IP adresleri ile baskı uygular.
Böylece network bant genişliği tüketilir.
Uygulama
Şimdi basit
bir Excessive VERB uygulama yaparak sistemi çalışmasını daha yakından bakalım.
Yazılan kod
ile sürekli sayfaya get isteğinde bulunan bir koddur. Bu kodu sürekli ama
otomatik yaptığından, bizden daha hızlı sayfayı yeniliyormuş gibi
düşünebiliriz. Sunucunun bunu karşılayamaması sonucu karşılaşılan durumu
gösterelim.
Hazırlanan site,
Hazırlanan
kod
Ve bir
miktar sonra sunucu bize cevap vermeyi yetiştiremeyip aldığımız yanıt
yukarıdaki gibidir.
Görüldüğü gibi saldırıların sistemden veya protokol zaafiyetlerinden
yararlanarak sistemi etkilemektedir. Sistemde bulunan CPU'nun daha fazla
çalışması için yapılan işlemler, sınırlı boyutta ki geçiçi belleğin daha fazla
paket biriktirilmesi, CPU registerlarının daha fazla veri gönderme, network'un
belli bir kapasiteye sahip bant genişliğinin üzerinde bir bant oluşturulduğunda, vb. gibi durumları kullanarak attacklar
oluşturulmaktadır.