original in fr Eric Detoisien
fr to en Georges Tarbouriech
en to tr İnanç Özçubukçu
Eric Detoisien bilgisayar güvenliği uzmanıdır. Güvenlikle ilgili herşeye çok düşkün olup rstack grubunun uzmanlarından biridir - www.rstack.org -
Bu makale ilk olarak Linux Magazine France'da güvenlik konusuna özel bakış olarak yayınlandı. Yayıncı, yazarlar ve çevirmenler nezaketle LinuxFocus'un bu özel yayından makaleler yayınlamasına izin verdiler. Bundan dolayı, LinuxFocus bunları tercüme edilir edilmez sizlere ulaştıracaktır. Bu çalışmada görev alan herkese teşekkürler. Bu giriş aynı kaynaktan gelen tüm makaleler için yenilenecektir.
Bu makale, bir bilgisayar sabotajcısının (cracker) ağdaki bir bilgisayara karşı dışarıdan uygulayabileceği çeşitli tiplerdeki saldırıları tanıtır. Biz temel ağ ataklarını, bazı uygulama ve DOS (Denial of Service) saldırılarını ele alacağız.
Ağ saldırıları doğrudan protokol yada uygulamayla ilişikli zayıflıklar üzerine kuruludur. Yine de bunların çoğu en iyi bilen beşinin türevleridir.
RFC (Request For Comment) 791 (IP) ile ilişkili olarak, tüm internet düğümleri (routers) 64 byte lık paketleri parçalamadan iletebilmelidir. Bir IP paketi başlığının seçenek içermediği halde minimum boyutu 20 byte tır. Seçenekler eklendiğinde boyut 60 byte tır. IHL (Internet Header Length) hanesi başlık uzunluğunu 32 bit tutar. Bu hane 4 bit kullanır, yani mümkün olan değerler 2^4 - 1 = 15 (0000 değerini alamaz). Sonuçta mümkün olan en yüksek değer gerçekten 15*4 = 60 byte tır. Son, Fragment Offset hanesi fragment'in ilk byte offset'inin tüm datagram ile ilişkili olaraktan 8 byte ile yazıldığı gösterir. Bir veri en az 8 byte ta parçalanabilir. Bu gerçekten 68 byte eder.
Saldırı, iki IP paketine parçalanmış bir TCP bağlantı isteğinden oluşur. 64 byte lık ilk IP paketi sadece ilk 8 byte lık TCP başlığını içerir (kaynak ve hedef kapıları ve sıra numarası). İkinci IP paketindeki veri TCP bağlantı isteğini içerir (SYN bayrağı 1 ve ACK bayrağı 0).
Yine de IP filtreleri bir paket içindeki parçalara aynı kuralı uygularlar. İlk parça filtresi (Fragment Offset = 0) kuralı tanımlar, bağlantılı olarak başka bir kontrol olmaksızın diğer parçalara da (Offset = 1) uygular. Sonunda hedef makinada TCP katmanında birleştirilirken bağlantı talep paketi yeniden yaratılır ve TCP katmanına iletilir. IP filtresinin engellemiş olması gerekmesine rağmen bağlantı kurulmuştur.
Şekil 1 ve 2 parçaları ve şekil 3 hedef makiakinede birleştirilmiş paketi göstermektedir:
Pic.1: Parça 1
Pic.2: Parça 2
Pic.3: Birleştirilmiş paket
Halen RFC 791 (IP) ile ilişkili olaraktan eğer 2 IP paketi karşılaşırsa, ikincisi birincinin üzerine yazar. Saldırı bir IP paketini ikiye ayırmakla başlar. IP filtresi 68 byte (Bkz. Tiny Fragments) taşıyan ilk paketi TCP bağlantısı (SYN flag = 0 and ACK flag = 0) talep edene kadar kabul eder. Bu kural paketin diğer parçalarına da uygulanır. Gerçek bağlantı verisini bekleyen ikinci paket (Fragment Offset = 1) orada açık bir bağlantı görünmediğinden IP filtresi tarafından kabul edilir. Bu sebeple, parçalanma esnasında ikinci parçadaki veri 8 inci byte'tan (the fragment offset = 1 den itibaren) sonra birincide ki verinin üzerine yazar. Böylece yeniden birleştirilen paket hedef makine için geçerli bir bağlantı talebidir. IP filtresine karşın bağlantı kurulmuştur.
Şekil 1 ve 2 parçaları ve şekil 3 hedef makinede birleştirilmiş paketi göstermektedir:
Pic.4: Parça 1
Pic.5: Parça 2
Pic.6: Birleştirilmiş paket
Bu saldırının amacı bir makinenin IP adresini ele geçirmektir. Bilgisayar sabotajçısının orijinal saldırı noktasını saklamasına (DOS'ta kullanıldığı gibi) yaramakta yada iki makine arasındaki güvenilir ilişkiden faydalanmaktır. Biz burada ikinci kullanımından bahsedeceğiz.
Sabotajçı için bu saldırının temel prensibi kendi IP paketlerinin kalpazanlığını yaparak
(hping2
or nemesis
gibi programlar ile) diğerlerinin arasında
kendisininkinin IP kaynağını değiştirmektir. IP Spoofing sıklıkla Blind Spoofing olarak anılır.
Kaynak değiştirildiğinden sahte pakete karşılık giden cevaplar sabotajçının makinesine gidemez.
Yani spoof edilen makineye giderler. Yine de cevapları geri almanın iki yolu vardır:
Blind Spoofing, rlogin yada rsh gibi servislere karşı kullanılır. Onay mekanizmaları yalnızca alıcı makine IP kaynak adresine güvenir. Bu oldukça iyi bilinen yöntem (Kevin Mitnick 1994'te Tsutomu Shimomura'nın makinesine karşı kullandı) çeşitli adımlar içerir:
showmount -e
komutunu kullanarak
güvenli makinenin IP adresini bulmak yada daha fazla bilgi sağlayan rpcinfo
komutunu kullanmak ve ardından
SYN Flooding kullanarak güvenilir makineyi hizmet dışı bırakmak. Öbür türlü TCP RST paketleri göndererek bağlantı
taleplerini durdurmak isteyecektir;echo ++ >> /.rhosts
gibi). Bunun için bir TCP paketini PSH bayrağı
(Push) ile kuvvetlendirir: alınan veri hemen bir üst katmana iletilir (burada rsh servisi). Ve artık rlogin veya
rsh kullanarak bir makineye IP Spoofing yapmadan bağlanabilir.Şekil 7 IP Spoofing 'in farklı aşamalarını göstermektedir:
Pic.7: rsh servisine uygulanmış bir IP Spoofing
Güvenilir makine C ile gösterilirken sabotajcı A makinesini kullanır. A(C) gösterimi paketin A dan spoof IP
olan C ile gönderildiğini anlatır. Not: Bu tür IP spoof mekanizmalarını uyarlayan mendax
adında bir program
vardır.
TCP Session Hijacking sabotajcının TCP flow yönlendirmesi yapabilmesini sağlar. Ardından parola korumasını atlayabilir (telnet yada ftp de olduğu gibi). Dinleme ihtiyacı (sniffing) bu saldırıyı hedefin fiziksel ağında sınırlar. Bu saldırıyı detaylandırmadan önce TCP protokolünün bazı prensiplerini anlatalım;
Burada TCP protokolünün gizemini açığa çıkatmayacak fakat saldırıyı anlamak için gerekli ana noktalara odaklanacağız. TCP başlığı çeşitli alanlar içerir:
Şekil 8 bir TCP bağlantısının kuruluşunu göstermektedir (Üç Yol Elsıkışma):
Pic.8: Üç Yol Elsıkışma
Burada A makinesi B makinesi üzerinde bir TCP bağlantısı başlattı.
Şekil 9 bir TCP verisinin aktarımını göstermektedir:
Sıra numaraları gönderilen veri byte sayılarına bağlı olarak değişir. Sıra numarası Seq ile temsil edilir. Anlaşma numarası PSH ve ACK bayrakları ardından bulunur ve gönderilen verinin byte bilgisi ayraçlar içerinde yer alır.
Bu saldırı TCP bağlantısının her iki tarafında oturumun ele geçirilmesine müsade eden bir uyumsuzluk oluşturur. Bağlantının uyumsuz olması A makinesi tarafından gönderilen bir sonraki sıradaki verinin sıra numarasının B makinesi tarafından beklenen verinin sıra numarasından farklı olması durumunda gerçekleşir. Aksi yönüde elbette aynıdır.
Şekil 9'daki örnekte B'nin paketlerini ilk aldığı adımın sonunda x+60 onay numarası ile A bir paket beklemektedir. Eğerki B tarafından gönderilen bir sonraki paket bu onay numarasını içermezse A ile B uyumsuz olmaktadır.
C makinesindeki bir sabotajcı A ile B makinesi arasında kurulu olan bir Telnet oturumuna sızmak istiyor. İlk olarak C makinesi, A ile B arasındaki Telnet trafiğini (TCP port 23) dinler. Sabotajcı A makinesinin B makinesinde Telnet oturumu için varlığını onaylatmak için zamanı olduğunu düşündüğünde A'yı B'ye karşı uyumsuz kılar. Bunu yapabilmek için B makinesince kabul edilen TCP onay numarasını ve A makinesinin IP numarasını içeren bir paketi taklit eder. Elbetteki B paketi kabul eder. Bunun yanında uyumsuzluk sabotajcının Telnet oturumdan komut girebilmesini de sağlar. Bu paket veri taşıyabilmektedir (PSH flag =1).
Şekil 10 saldırıyı göstermektedir:
Pic.10: TCP Session Hijacking
B makinesi C tarafından gönderilen komutu kabul eder, ACK bayrağı ile A'ya gönderilmiş gibi onaylar. Aynı zamanda eğer A'dan B'ye bir paket gönderilirse sıra numarası B tarafından beklenilmediği için reddedilecektir.
Ardından görülen bir sorun: ACK fırtınası. Çok sayıca ACK oluşturulmuştur. A, tanımsız sıra numaralı TCP paketleri (A uyumsuz olduğu andan itibaren) gönderdiği zaman meydana gelir. B bunu reddederek beklediği ACK numarasını A'ya gönderir. A bu ACK'yı alır, beklenen ile uyuşmadığından A'da B'ye ACK gönderir ve bu tekrar edip durur.
Bu ACK fırtınası sorunu eğer ki sabotajcı ARP Spoofing kullanırsa çözülür. Bu durumda B makinesinin ARP ön belleği
C makinesi tarafından zehirlenecek ve A makinesinin IP adresi C makinesinin MAC adresi ile ilişkilendirilecek. Bu
teknikler hunt
programı tarafından uygulanmaktadır.
Bu saldırı, ARP Redirect olarakta adlandırılır, ağ trafiğini bir yada birden fazla makineden sabotajcının makinesine yönlendirir. Kurbanların fiziksel ağlarında gerçekleşir. ARP protokolünün ne olduğunu ve nasıl çalıştığını haırlatalım.
ARP protokolü (Address Resolution Protocol)çözümleme mekanizmasını IP adresinden Ethernet MAC adresine dönüştürür. Ağ ekipmanları Ethernet bilgilerini data link katmanında değişerek anlaşırlar (özellikle Ethernet ağında). Bu bilgiyi dağıtabiliyor olmak için ağ kartlarının kendilerine özel Ethernet adresleri olması gerekir. MAC adresi budur. (MAC=Media Access Control).
Bir IP paketi gönderilirken gönderici makine alıcının MAC adresini bilmelidir. Bu bilginin elde edilmesi için ağdaki makinelere broadcast ARP isteği gönderilir. Bu istek şunu sorar: "Bu IP adresine ilişik MAC adresi nedir?" Bu IP'ye sahip makine isteği alınca MAC adres bilgisini verir. Bu noktadan sonra gönderici makine o IP adresi ile ilişikli MAC adresini bilmektedir. Bu bilgi bir süre önbellekte tutulacaktır (her defasında aynı talebi yapmamak için).
Bu saldırı hedef makinenin önbelleğini zehirler. Sabotajcı hedef makineye ARP cevapları göndererek yeni MAC adresinin bir gateway ile ilişkili (örnek olarak) IP adresi olduğunu (sabatajcının adresi) söyler. Bundan sonra sabotajcı gateway'e gönderilen tüm trafiği alacaktır. Bu da tüm trafiği dinlemesi (ve/veya değiştirmesi) için yeterli olacaktır. Bundan sonra paketleri gerçek hedefine yönlendirecek ve kimse değişiklikten haberdar olmayacaktır.
ARP Spoofing yerel ağda switch'ler kullanıldığında yararlıdır. Bunlar Ethernet bilgilerini MAC adresi ile ilgili kapılara (kablolar) yönlendirir. Böylece bir sniffer bilgileri kendi fiziksel ağının ötesinden alabilir. Sonuç olarak ARP Spoofing farklı switch kapılarında bulunan makineler arasındaki trafiği dinlemeye imkan tanır.
ARP Spoofing atağı uygulamak için ARPSpoof
veya nemesis
gibi ARP paket oluşturucu kullanacaktır.
Örnek: kurban makine 10.0.0.171
, default gateway 10.0.0.1
ve sabotajcının makinesi 10.0.0.227
.
Saldırıdan önce traceroute sonucu:
[root@cible -> ~]$ traceroute 10.0.0.1 traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets 1 10.0.0.1 (10.0.0.1) 1.218 ms 1.061 ms 0.849 ms
Ve hedef makinenin ARP önbelleği:
[root@cible -> ~]$ arp Address HWtype HWAddress Flags Mask Iface 10.0.0.1 ether 00:b0:c2:88:de:65 C eth0 10.0.0.227 ether 00:00:86:35:c9:3f C eth0
Sabotajcı ARPSpoof
çalıştırır:
[root@pirate -> ~]$ arpspoof -t 10.0.0.171 10.0.0.1 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f 0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f
Gönderilen paketler 10.0.0.171
makinanın ARP önbelleğini zehirleyen ARP paketleri, 10.0.0.1
'ya
ilişkin MAC adresinin bundan sonra 00:00:86:35:c9:3f
olduğunu söyleyen ARP cevabı ile.
10.0.0.171
makinenin ARP önbelleği şu hale gelir:
[root@cible -> ~]$ arp Address HWtype HWAddress Flags Mask Iface 10.0.0.1 ether 00:00:86:35:c9:3f C eth0 10.0.0.227 ether 00:00:86:35:c9:3f C eth0
Trafiğin şimdi 10.0.0.227
üzerinden gittiğini anlamak için 10.0.0.1
gateway'e doğru yeni bir
traceroute çalıştırmak yeterlidir:
[root@cible -> ~]$ traceroute 10.0.0.1 traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets 1 10.0.0.227 (10.0.0.227) 1.712 ms 1.465 ms 1.501 ms 2 10.0.0.1 (10.0.0.1) 2.238 ms 2.121 ms 2.169 ms
Artık sabotajcı 10.0.0.171
and 10.0.0.1
makineleri arasındaki trafiği dinleyebilir.
10.0.0.227
makinesindeki IP yönlendirmesini canlandırmayı unutmamalıdır.
DNS protokolü (Domain Name System) alan isimlerini(örneğin www.test.com) kendi IP adreslerine (örneğin
192.168.0.1
) vede tersine çevirir. Bu saldırı kurbana DNS hizmeti talebi karşısında yanlış cevap kullanır.
Bu saldırı iki ana yöntemle gerçekleştirilir.
DNS protokolünün başlığı cevapları ve talepleri eşleştirmek için bir kimlik sahası içerir. DNS IP Spoofing'in getirisi asıl DNS sunucusundan önce DNS talebine yanlış cevap dönebilmektir. Bunu yapmak için talep ID'si önceden belirlenmelidir. Bu belirleme lokal olarak ağı sniff ederek kolayca yapılabilmekte, uzaktan erişimde biraz daha zor olabilmektedir. Bu işlem için çeşitli yöntemler vardır:
Her durumda gerçek DNS sunucusundan önce cevaplamak gereklidir. Denial of Service Attack ile kırarak yapılabilir.
Başarılı olmak için saldırgan attaquant.com
alan adında hakka sahip bir DNS sunucusunu kontrol
edebilmelidir (ns.attaquant.com
).Hedef DNS sunucusu (ns.cible.com
) tahmin edilebilir sıra
numaralarına sahip olmalı şeklinde kabul edilir (her defasında 1 arttırılmış).
Saldırı 4 aşamadan oluşur:
cible.com
DNS sunucusuna www.attaquant.com
için şekil 11'de görüldüğü gibi
bir DNS talebi gönderir;ns.cible.com
attaquant.com
DNS sunucusuna yayınlar;192.168.0.1
olması gereken
kurban makine www.spoofed.com
. Sabotajcı ns.cible.com
adresine www.spoofed.com
ismini çözmek için DNS sorgusu gönderir. Ardından aynı spoofed.com
alan adının
DNS sunucusundan spoof edilmiş IP alan sorguya bir demet değiştirilmiş IP demeti gönderir
(saldırganın 10.0.0.1
site IP adreslerinden birini vererek). Doğru ID numarasını bulabilme şansını
arttırmak için ikinci adım olarak (ID = 100) süresince ilk elde edilenden başlayarak her cevabın ID'si 1 arttırılacaktır.
Bu durumda ns.cible.com
diğer sorgulara cevap vermiş olmalı ve böylece DNS ID'si artmış olur. Şekil 12
bu adımları göstermektedir.www.spoofed.com
isminin çözümünü
isteyen sıradaki makine saldırganın makine IP'sini alacak ve saldırganın sitesine yönlenecektir. Bu gerçek sitenin
bir kopyası olabilir ve internet kullanıcılarının gizli bilgilerini elde etmek için kullanılabilir.
DNS sunucuları, bir önceki sorguya verdikleri cevabı bir süreliğine saklamak için önbellek kullanırlar. Her defasında talep yapılan alandan yetki almakla vakit kaybetmemk içindir. İkinci tip DNS Spoofing bu önbelleğin zehirlenerek yanlış bilgi göndermesini sağlamaya yöneliktir. İşte bir örnek:
Önceki örneğin parametrelerini saklıyoruz. İşte saldırının farklı adımları:
cible.com
DNS sunucusuna www.attaquant.com
isminin çözümlenmesi için sorgu gönderilir;www.attaquant.com
ismini çözümlemek için saldırganın DNS sunucusuna sorgu gönderir;www.cible.com
sitesinin DNS kayıtlarında gerçek IP'si yerine
www.attaquant.com
sitesinin IP adresini gönderecek şekilde değişmiş kayıdı olmalıdır.Bu tür saldırılar uygulamalar içerisindeki çeşitli zayıflıklardan yararlanırlar. Yinede bir kısmı tiplerine göre sınıflandırılabilir.
Uygulamalardaki öncelikli güvenlik sorunlarının başında ayarlama hataları gelmektedir. İki tip hata vardır: önkabüllü (default) kurulum ve hatalı ayarlama.
WEB sunucuları gibi yazılımlar önkabullü kurulumda saldırganlar için gizli bilgilere erişim sağlar. Örneğin kaynak veriye ulaşmak için dinamik sayfalar üzerinde betikler çalıştırabilirler. Bundan başka bir kurulum önkabullü login/password ile yönetim arayüzü sağlayabilir (uygulama yönetim klavuzunda bulundu). Böyulece saldırgan sitede istediği herşeyi değiştirebilir.
Ana zayıflıklar yanlış tanımlarla ve parametrelerle oluşturulmuş erişim listeleridir. Böylece saldırgan özel sayfalara ve veritabanlarına erişebilir.
Hatalı tanımlamaya klasik örnek Lotus domino web sunucusunda sıklıkla rastlanır. Bu sunucuyu kurarken, Lotus tanım veritabanı hiçbir erişim listesine sahip değildir. Açıkça, eğer names.nsf Lotus veritabanı web tarayıcısı üzerinden kontrol edilmeden erişilebilirse, tüm Lotus kullanıcı isimleri gibi birçok bilginin alınması mümkündür.
Kötü bir program yazılımı her zaman hatalar içerir. Bunlar en önemli zayıflıklardır. Keşfedildikleri zaman dinamik sayfaların kaynak kodlarını ele geçirmek, servisleri kullanılmaz hale getirmek, makinenin kontrolünü almak gibi amaçlarla komutlar çalıştırmaya müsade eder. Bu hatalardan en bilineni ve en ilginç olanı buffer overflow'dur.
Bufer overflow kötü proglamlamanın sebep olduğu bir zayıflıktır. Argüman olarak bir değişkenin boyutuna bakılmadan
bellek içerisinde bir fonksiyona kopyalanması sonucu ortaya çıkar. Eğer ki değişken, bellek için hafızada ayrılmış
yerden büyükse buffer overflow gerçekleşmesi için yeterlidir. Değişkene parçalı bir program geçirerek patlayacaktır.
Eğer ki saldırgan başarılı olursa saldırılan uygulamanın hakları ile hedef makinede uzaktan komut çalıştırabilecektir.
Güvenli programcılık başlığı altında daha fazla bilgi için:
Kötü betik programlamasıda sıklıkla sistem güvenliğini etkilemektedir. Perl betiklerinin içerisinde web yolu dışındaki dosyaları okumaya izin verebilecek yada izinsiz komutlar çalıştırmaya müsade edebilecek birçok zayıflık bulunmaktadır. Programlama sorunları CGI güvenliği başlığı altında aşağıda sunulmuştur (bölüm 6).
Bu saldırının en temel amacı iki makine arasındaki trafiği değiştirmektir. İletişim esnasındaki veriyi durdurmak, değiştirmek yada yoketmek olabilir. Bu saldırı, gerçek bir saldırıdan kavram olarak daha geneldir. Bir web sunucusu ve istemcisi arasındaki trafiği değiştirmeye yönelik DNS Spoofing kullana DNS Ortadaki Adam gibi bu prensipe oturtulmuş çeşitli saldırılar vardır. En çok rastlananı SSH trafiğini değiştirmeye yönelik olanıdır.
Bu saldırı, bir servisin yada hedef makinanın erişilebilir olmamasına (belirli uygulama) önderlik edeceğinden iyi adlandırılmıştır. Biz iki tipini ele alacağız: bir tarafta bir uygulama açığını patlatanlar, diğer tarafta bir protokolün kötü uygulanması yada zayıflığı.
Eğer ki bir uygulama zayıflıkları makinenin kontrolünü ele geçirmeye izin veriyorsa (buffer overflow örneği), aynı zamana denial of service 'e de izin verebilirler. Atanan kaynakların yetersizliği yada bir çökme sebebi ile uygulama erişilemez duruma gelecektir.
TCP yığını protokol özelliklerini kullanan değişik tiplerde denial of service vardır.
Bir TCP bağlantısının üç aşamadan oluştuğunu görmüştük (TCP Üç Yollu El Sıkışma). SYN Floofing bu mekanizmayı patlatır. Üç aşama; SYSN göndermek, SYN-ACK almak ve ACK göndermektir. Düşünce hedef makinada bir çok bekleyen TCP bağlantısı bırakmaktır. Bunu başarmak için saldırgan birçok istek gönderir (SYN bayrak=1), hedef makina cevap amacıyla karşılığında SYN-ACK gönderir. Saldırgan ACK ile cevap vermeyecek ve böylece her alınan SYSN için hedef makina askıda TCP bağlantılarına sahip olacaktır. Yarım açık bağlantılar hafıza kaynaklarını kullandıkları için bir yerden sonra makina diğer bağlantıları kabul edemez olacaktır. Bu tip saldırı sadece hedef makinayı etkilemektedir.
Saldırgan, hedef TCP kapısını işaret ederek makinesinin tanımlananamaması için rastgele kaynak IP adresleri (synk4 gibi SYN Flooder) kullanır.
Bu saldırı UDP kapısının bağlanmamış modunu patlatır. Tek yada iki makine arasında UDP Fırtınası (UDP paket demeti) yaratır; iki makina arasında ağda tıkanıklık yada her iki tarafta da kaynak doluluğu gibi. UDP trafiğinin TCP trafiğinde önceliği olduğundan bu tıkanıklık daha önemlidir. TCP protokolünün uzun sürede gelen paket onayları karşısında tıkanıklığı kontrol eden bir mekanizması vardır: bu mekanizma gönderme aralığını düzenleyerek tıkanıklık oranını azaltır. UDP protokolü bu mekanizmaya sahip değildir: bir süre sonra tüm bant genişliğini kullanarak TCP trafiğine çok az yer bırakır.
En çok bilinen örneği Chargen Denial of Service Attack'tır. Bu saldırının uygulaması basittir: Bir makinenin
chargen
servisi ile bir diğerinin echo
servisi arasında iletişim sağlamak yeterlidir. Chargen
servisi aldığı verilere cevap verene kadar karakterler üretir. Saldırgan kurban makinenin 19 kapısına
(chargen
) diğer makinenin kaynak kapısından UDP paketleri gönderir. Bu durumda kaynak kapısı UDP kapı
7'dir(echo
). UDP Flooding her iki makina arasında bant genişliğinde doluluğa sebep olur. Tüm ağ UDP
Flooding'in "kurbanı" olabilir.
Packet Fragment DOS, IP parçalanması içeren TCP/IP yığınlarının bazı zayıflıklarını kullanır (IP parçalarını yeniden toplama).
Bu yöntemi kullanan bildik bir saldırı Teardrop'tur. İkinci segmentin parçalanma offset'i ilkinden daha küçüktür ve offset ikincinin boyutuna eklenmiştir. Bunun anlamı ilk parça ikinciyide kapsamaktadır (overlapping). Parçalanma anında birkaç sistem bunu idare etmez ve denial of service meydana gelir. Bu saldırının türevleri vardır: bonk, boink ve newtear gibi. Ping of Death denial of service IP paketinin maksimum boyutundan büyük veri göndererek ICMP yönetiminde patlamaya sebep olur. Bu tip değişik saldırılar hedef makinanın yığılmasına neden olurlar.
Bu saldırı ICMP protokolünü kullanır. Bir Ping (ICMP ECHO mesajı) broadcast adresine gönderildiğinde (örnekte 10.255.255.255), ağdaki her makinaya gönderilir. Bu saldırının temeli ICMP ECHO paketlerini hedefe kaynak IP adresinden gelir gibi göndermektir. Saldırgan ağ broadcast adreslerine sürekli Ping akını gönderecek ve tüm makineler hedefe bir ICMP ECHO REPLY mesajı döneceklerdir. Bu akın ağdaki konukçu sayısı kadar katlanacaktır. Bu durumda, ta ki bu saldırı ile oluşan büyük saldırı tıkanıklığa sebep olana dek tüm ağ denial of service 'ten etkilecektir.
Distributed denial of service saldırılan ağı doldurur. Amaç bu saldırı için çeşitli kaynaklar (daemons) kullanmak
ve onları sahip ile kontrol etmektir. En çok bilinen DDoS (Distributed Denial of Service) araçları
Tribal Flood Network (TFN),TFN2K, Trinoo ve Stacheldraht 'dir. Şekil 13 tipik bir DDoS ağını göstermektedir:
Pic.13: DDoS network
Saldırgan kaynakların kolayca kontrolü için sahipler kullanır. Saldırıyı ayarlamak ve hazırlamak için sahiplere bağlanmak (TCP) zorundadır. Sahipler kaynağa UDP yoluyla sadece komutlar gönderirler. Sahipler olmazsa saldırgan her bir kaynağa bağlanmak zorundadır. Saldırını kaynağı kolayca belirlenebilir ve uygulamaya konulması uzun olmaktadır.
Her daemon ve sahip kullanılan araçlara ilişkin aralarında özel mesajlar geçerler. Bu bağlantılar aynı zamanda şifrelenebilir yada yetkilendirilebilir. Saldırgan, bu deamon ve sahipleri kurmak için bilinen zayıflıkları kullanır (RPC, FTP gibi servislerdeki buffer overflow). Saldırı tek başına bir SYN Flooding yada Smurf Attack'tır. Her denial of service saldırısının amacı ağı erişilemez kılmaktır.
Günümüzde dışarıdan saldırılara karşı alınan güvenlik tedbirleri daha güçlü olmaktadır ancak aynı şey iç kaynaklı saldırılar için geçerli değildir. Saldırganlara karşı olan zayıf ilişkili korunmalar halen TCP Session Hijacking, ARP Spoofing ve DNS Spoofing gibi saldırılara güzel imkanlar bırakmaktadır. Bundan başka sıra numarasının önceden tahmin edilmesi (IP Spoofing'in kalbi) ve Fragment Attack türevleri ağ cihazlarının işletim sistemlerindeki hatalardan hayat bulmaktadır. Uygulama saldırılarının daha çok zamanı var. Bunun sebebi web ilişkili uygulamaların karmaşıklığındaki büyüme ve geliştiriciler ile sistem idarecilerinin sınırlı zamanlarıdır. Denial of Service saldırısı her bir kullanıcının kendisini koruması gerektiği gerçeğini kabul edene kadar korkutucu olmaya devam edecektir.