[LinuxFocus-icon]
Ev  |  Erişimdüzeni  |  İçindekiler  |  Arama

Duyumlar | Belgelikler | Bağlantılar | LF Nedir
Bu makalenin farklı dillerde bulunduğu adresler: English  Castellano  Deutsch  Francais  Nederlands  Russian  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

Eric Detoisien
tarafından Eric Detoisien
<valgasu(at)club-internet.fr>

Yazar hakkında:

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 -



Türkçe'ye çeviri:
İnanç Özçubukçu <inanco(at)atlas.net.tr>

İçerik:

 

External attacks

Attacks

Özet:

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ı

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.

 

Fragment saldırılar

Bu saldırı IP filtreleme ekipmanının ötesine geçer. Uygulama için sabotajçı iki değişik yöntem kullanır: Tiny Fragments and Fragment Overlapping. Bu saldırılar oldukça tarihsel olup günümüz güvenlik duvarlarnca uzun zamandır kontrol edebilmektedir.  

Tiny Fragments

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
Tiny-Frag-1
Pic.2: Parça 2
Tiny-Frag-2
Pic.3: Birleştirilmiş paket
Tiny-Frag-3

 

Parça Karşılaşması

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
Tiny-Frag-4
Pic.5: Parça 2
Tiny-Frag-5
Pic.6: Birleştirilmiş paket
Tiny-Frag-6

 

IP Spoofing

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:

  1. Kaynak Yönlendirme: IP protokolünün Kaynak Yönlendirme olarak adlandırılan ve IP paketlerinin izlemesi gereken yolu tanımlayan bir seçeneği vardır.Bu yol paketlerin izlemesi gereken bir dizi yönlendirici IP adresinden meydana gelmektedir. Şimdilerde birçok TCP/IP yığın uygulaması bu seçeneği içeren paketleri reddetmektedir.;
  2. Yeniden Yönlendirme: Yönlendirme tabloları kendilerine yeni yönlendirme bilgileri içeren RIP paketleri gönderilerek değiştirilebilirler. Bu işlem, paketlerin sabotajçının sahibi olduğu bir makineye yönlenmesine sebep olur.li>
Bu taktikler çoklukla kullanılmakta: saldırı, hedef sunucudan gelen paket bilgileri bilinmeden desteklenir.

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:

Atak sırasında sabotajcı hedeften gelen SYN-ACK 'leri almaz. Kurulacak bağlantı için doğru ACK numarası ((y+1) ile gönderebilmek için y sıra numarasını önceden belirtir. Ardından IP adres doğrulaması üzerinden bağlantı kurulur. Sabotajcı daha yüksek haklar elde etmek için artık rsh servisine komut yollayabilir (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
ip_spoof

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

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
3way

Burada A makinesi B makinesi üzerinde bir TCP bağlantısı başlattı.
Şekil 9 bir TCP verisinin aktarımını göstermektedir:
psh

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
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.

 

ARP Spoofing

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 Spoofing

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 ID Spoofing

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:

  1. Saldırgan cible.com DNS sunucusuna www.attaquant.com için şekil 11'de görüldüğü gibi bir DNS talebi gönderir;


    Pic.11: ns.cible.com
    'a gönderilen DNS talebi dnsspoof1

  2. Hedef DNS sunucusu talebi attaquant.com DNS sunucusuna yayınlar;
  3. Saldırgan kendi ID'sini ele geçirmek için talebi sniff edebilir (örneğimizde ID 100'dür);
  4. Saldırı IP adresini ilişikli bir makine ile değiştirir; burada IP'si 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.

    Pic.12: DNS ID Spoofing
    dnsspoof2

Böylece hedef DNS sunucusunun önbelleği zehirlenmiş olur ve 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 Önbellek Zehirleme

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ı:



Uygulama saldırıları

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.

 

Ayarlama sorunları

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.

 

Hatalar

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.

 

Buffer overflow

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:



 

Betikler

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).

 

Ortadaki Adam

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.

Denial of service

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ığı.

 

Uygulama denial of service

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.

 

Ağ denial of service

TCP yığını protokol özelliklerini kullanan değişik tiplerde denial of service vardır.

 

SYN Flooding

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.

 

UDP Flooding

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

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.

 

Smurfing

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

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
ddos

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.

 

Sonuç

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.


 

Links

 

Bu yazı için görüş bildiriminde bulunabilirsiniz

Her yazı kendi görüş bildirim sayfasına sahiptir. Bu sayfaya yorumlarınızı yazabilir ve diğer okuyucuların yorumlarına bakabilirsiniz.
 talkback page 

Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Eric Detoisien, FDL
LinuxFocus.org
Çeviri bilgisi:
fr --> -- : Eric Detoisien <valgasu(at)club-internet.fr>
fr --> en: Georges Tarbouriech <gt(at)linuxfocus.org>
en --> tr: İnanç Özçubukçu <inanco(at)atlas.net.tr>

2003-05-08, generated by lfparser version 2.35