Bu yazı ARP spoofing hakkında. ARP spoofing IP ve Ethernet protokollerinin birbiri ile etkileşimini exploit etmekle ilgilidir. Sadece IP çalıştıran Ethernet ağları için geçerlidir.
Basit ağ tecrübesi olan herkes konudaki anahtar noktaları anlayabilir. Tam anlamak için, switched ve non-switched ağların işleyişiyle alakalı olarak, TCP/IP referans modeli bilgisi gereklidir. Giriş bölümünde bazı altyapı bilgileri sunulacak fakat
tecrübeli okuyucular operasyon bölümüne atlayabilirler.
Giriş
Bir IP/Ethernet LAN`a bağlı bir bilgisayarın iki adresi vardır. Biri MAC adresi adı verilen ağ kartının adresi. MAC, teoride, eşi bulunmayan karta özgü değiştirilemeyen bir adrestir ve ağ kartının üzerinde saklanmaktadır. MAC adresleri üzerindeki uygulama protokollerinden bağımsız olarak Ethernet protokolünün veri alıp yollayabilmesi için gereklidir. Ethernet 1500 byte`lık bloklardan oluşan veri ‘çerçeve’leri (frame) yaratır.Her frame`in kaynak ve hedef bilgisayarın MAC
adresinin bulunduğu bir Ethernet başlığına (header) sahiptir.
IP ve Ethernet birlikte çalışmalıdır. IP frame`lere benzeyen fakat farklı yapıda olan ‘paket’ler oluşturarak haberleşir. Bu paketler ‘Data Link Layer’ olmadan dağıtılamazlar. Bizim durumumuzda, Ethernet tarafından dağıtılıyorlar. Ethernet
paketleri frame`lere bölüyor, teslimat için Ethernet başlığı ekliyor ve kablodan switch`e gönderiyor. Switch daha sonra frame`i hangi port`a göndereceğine port numaralarını MAC adreslerine eşleyen dahili tablosunda karşılaştırma yaparak
karar veriyor.
Bir Ethernet frame inşa edildiğinde bir IP paketinden yapılmalı. Fakat, inşa ederken Ethernet`in başlığı yaratmada ihtiyacı olan hedef makinanın MAC adresi hakkında hiçbir fikri yoktur. Sahip olduğu tek bilgi paketin başlığındaki hedef IP adresidir.
Ethernet protokolünün verilen hedef IPsinden hedef makinenin MAC adresini bulabilmesinin bir yolu olmalı.
İşte burda ARP, Address Resolution Protocol-Adres Çözüm Protokolü devreye giriyor.
Operasyon
ARP ‘ARP isteği’ paketleri göndererek çalışır. Bir ARP isteği ‘Senin IP adresin x.x.x.x mi? Eğer öyleyse bana MAC adresini gönder’ sorusunu sorar. Bu paketler LAN`daki tüm bilgisayarlara (switched bir ağda dahi) yayınlanır (broadcast). Her bilgisayar ARP isteğini inceler, söz konusu IPnin kendilerine atanıp atanmadığını kontrol eder ve kendi MAC adresini içeren bir ARP cevabı yollar. Broadcast yapılan ARP isteklerini sayısını azaltmak için işletim sistemleri ARP cevaplarını kayıtlı tutarlar (cache). Bir bilgisayar ARP cevabı aldığında, ARP önbelleğini (cache) yeni IP/MAC eşiyle günceller. ARP durumsal olmayan (stateless) bir protokol olduğundan işletim sistemleri bir istek göndermemiş olsa da eğer bir cevap almışlarsa önbelleği güncellerler.
ARP spoofing sahte ARP cevapları oluşturmakla ilgilidir. Sahte ARP cevapları göndererek bir bilgisayarın frame`leri bilgisayar A yerine bilgisayar B`ye göndermesini sağlamak mümkündür. Düzgün yapıldığında bilgisayar A`nın bir yönlendirme olduğundan hiç haberi olmaz. Bir hedef bilgisayarın ARP önbelleğini sahte kayıtlar ile güncellemek işlemi ‘zehirleme’ (posioning) olarak da bilinir.
Saldırılar
Sniff etme:
Switch`ler hangi frame`lerin hangi portlara gideceğini bir frame`deki MAC adresini bir tablo ile karşılaştırarak karar verirler. Bu tabloda port listesi ve onlara ekli MAC adresleri bulunur. Tablo switch ilk açıldığında her port`a gelen ilk kaynak MAC adresini inceleyerek oluşturulur.
Ağ kartlarının kendilerinkinden başka MAC adreslerine giden frame`leride inceleyebilmesini sağlayan ‘promiscuous mode’ durumları vardır. Switch kullanılan ağlarda bu problem değildir çünkü switch frame`leri yukarda anlatılan tabloya göre
yönlendirir. Fakat ARP spoofing kullanılarak switch kullanılan bir ağda da sniff işlemi yapmak için çeşitli yollar vardır.
‘man-in-the-middle’ (ortadaki adam) saldırısı bunlardan biridir. Bir MiM gerçekleştirildiğinde saldırgan iki hedef bilgisayarın haberleşme yolu arasına kendi bilgisayarını koyar. Bundan sonra sniff işlemi gerçekleştirilebilir. Saldırganın bilgisayarı iki hedef makine arasında frame`leri yönlendirir ve böylece haberleşme
kesilmez. Saldırı aşağıdaki gibi gerçekleşir (X saldırganın bilgisayarı, T1 ve T2 hedef bilgisayarlar):
X T1 ve T2`nin ARP önbelleğini zerhirliyor (posion).
T1 T2`nin IP`sini X`in MAC adresi ile eşleştiriyor.
T2 T1`in IP`sini X`in MAC adresi ile eşleştiriyor.
Bundan sonra T1 ve T2`nin tüm IP trafiği direk olarak birbirine gideceğine önce X`e gidecektir.
Sadece bilgisayarların değilde router/ağgeçitlerininde zehirlenebileceğini düşünürsek bu oldukça önemlidir. Hedef bilgisayar ile LAN router arasında MiM gerçekleştirerek bir makinenin tüm internet trafiği bu metod ile ele geçirilebilir.
Switch kullanılan bir ağda sniff işlemi yapmanın bir diğer metodu da MAC flooding`dir. Çok hızlı şekilde aşırı miktarda ARP cevapları bir switch`e gönderilerek switch`in port/MAC tablosu taşırılır. Sonuçlar ürüne göre değişir fakat bazı switch`ler
bu noktada broadcast moduna geçer. Sniffing bundan sonra gerçekleştirilebilir.
Broadcasting:
Frame`ler bir ağa broadcast MAC olarakda bilinen FF:FF:FF:FF:FF:FF hedef adresine
gönderilerek yayınlanabilir. Bir ağda ağgeçidinin MAC adresini broadcast adresi olarak set edecek şekilde spoof ARP cevapları gönderilebilir. Böylece dışarı giden tüm veriler broadcast olacaktır ve sniff işlemine izin verecektir.
DoS:
ARP önbelleklerini varolmayan MAC adresleri ile güncellemek frame`lerin düşürülmesine sebep olacaktır. Bu bir DoS saldırısı amaçlı olarak ağdaki tüm istemcilere gönderilebilir. Bu ayrıca MiM saldırısı-sonrası bir etkidir. Hedef bilgisayarlar saldırıyı gerçekleştiren bilgisayar aradan kaldırıltıktan sonra dahi ona
frame göndermeye çalışacaktır. Temiz bir MiM saldırısı için orjinal ARP kayıtlarının saldıran bilgisayar tarafından düzeltilmesi gerekmektedir.
Hijacking:
Bağlantı ele geçirme (Hijacking) bir saldırganın iki bilgisayar arasındaki bağlantının kontrolünü MiM saldırısındakine benzer bir metodla ele geçirmesidir. Bu transfer kontrolü her türde oturumun transferine izin verir. Örneğin, bir saldırgan hedef
bilgisayar uzaktaki bir makineye sistem yönetici olarak login olduktan sonra telnet oturumunu ele geçirebilir.
Cloning:
MAC adreslerinin üretilen her ağ arabirimi için eşsiz olması amaçlanmıştır. Her arabirimin ROM`u içine gömülürler ve değiştirilemezler. Fakat günümüzde MAC adresleri kolayca değiştirilebilmektedir. Hatta linux kullanıcıları bir spoofing
yazılımına ihtiyaç duymadan işletim sisteminin arabirim konfigürasyon programı ‘ifconfig’e tek bir parametre ile MAC adreslerini değiştirebilirler.
Bir saldırgan hedef bilgisayara DoS saldırısından sonra kendilerine hedef bilgisayarın IP ve MAC adresini atayarak hedefe gitmesi amaçlanan tüm frame`leri alabilirler.
Araçlar:
ARPoison: http://web.syr.edu/~sabuer/arpoison/
ARPoison UNIX için spoof edilmiş ARP cevapları yaratan bir komut satırı aracıdır.
Kullanıcılar kaynak ve hedef IP/MAC adreslerini belirleyebilirler.
Ettercap: http://ettercap.sourceforge.net
Ettercap text-mode GUI`si ile ‘script kiddie’lerin bile kullanabileceği kadar kolay fakat güçlü bir UNIX programıdır. Tüm işlemler otomatiktir ve hedef bilgisayarlar
LAN`da algılanan makinelerin listesinden seçilebilir.
Ettercap 4 sniffing metodu gerçekleştirebilir: IP, MAC, ARP ve Public ARP. Ayrıca aşağıdaki işlemleri otomatikleştirir:
Bağlantılara karakterler enjekte etme.
Kriptolanmış SSH oturumlarını sniff etme.
Şifre toplama.
İşletim Sistemi saptama (fingerprinting).
Bağlantı kesme.
Parasite:
Parasite bir LAN`daki ARP isteklerini izleyen ve otomatik olarak spoof edilmiş ARP cevapları gönderen bir daemon`dur. Bu saldıran bilgisayarı broadcast yapan her bilgisayar için MiM konumuna sokar. Sonuç olarak bu LAN-çapında bir MiM
saldırısına dönüşür ve switch`deki tüm trafik dinlenebilir.
Parasite durdurulduğunda düzgün bir temizleme işlemi yapmıyor. Bu zehirlenmiş tüm bilgisayarlar için DoS ile sonuçlanır çünkü ARP önbellekleri artık frame`leri yönlendirmeyen bir MAC adresi içermektedir. Normal işleyiş için zehirlenmiş ARP kayıtlarının zaman aşımına uğraması gerekmektedir.
Savunma:
ARP spoofing`e karşı tam bir savunma yok. Gerçekte mümkün olabilecek tek savunma statik (değişmeyen) ARP kayıtları kullanmaktır. Statik kayıtlar güncellenemediğinden spoof edilmiş ARP cevapları gözardı edilir. Spoofing`i engellemek içni ağdaki her makine için statik kayıt gerekir. Bu tabloları oluşturmanın ve güncel tutmanın zorluğu ve çok zaman alması çoğu LAN için uygun değildir. Ayrıca Windows`un statik route davranışlarıda biraz değişik. Testlerin gösterdiğine göre Windows yinede spoof edilmiş ARP cevaplarını kabul ediyor ve statik kayıtı sahte MAC adresi ile güncelliyor ve statik route`ların amacını sabote
ediyor.
MAC cloning bazı switch`lerde var olan Port Security (Port Binding veya MAC Binding olarakda biliniyor) özelliği ile engellenebilir. Port Security bir switch`in MAC tablolarında sistem yöneticisi tarafından manuel olarak yapılmıyorsa, değişikliğe izin vermez. Büyük ağlar veya DHCP kullanan ağlar için uygun değildir. Port Security ARP spoofing`i engellemez.
Bu iki metoddan ayrı olarak savunma için geriye birtek saptama kalıyor. Arpwatch bir ağdaki ARP cevaplarını dinleyen ücretsiz bir UNIX programıdır. IP/MAC eşleşmeleri için bir tablo oluşturur ve bunu bir dosyada saklar. Bir IP ile eşleşmiş bir MAC adresi değiştiğinde (flip-flop olarak biliniyor) sistem yöneticisine bir eposta gönderir.
Testlere göre ağda Parasite çalıştırıldığında bir flip-flop seli oluşuyor ve saldırganın MAC adresi Arpwatch`ın epostalarında kalıyor. Ettercap de çeşitli flip-flop`lara sebep oluyor fakat DHCP kullanılan ve flip-flop`ların çok olduğu bir ağda saptanması zor.
Mac cloning RARP (Reverse ARP) kullanılarak saptanabilir. RARP bilinen bir MAC adresinin IP adresini sorgular. Ağdaki tüm MAC adresleri için RARP isteği gönderip tek bir MAC adresi için birden fazla cevap dönüyorsa cloning işlemi gerçekleştiren bir bilgisayar olduğuna karar verilebilir.
Bir MAC flood gerçekleştirilip switch broadcast moduna sokulduysa bilgisayarın broadcast frame`lerini inceleyebilmesi için promiscuous moduna geçmesi gerekir. Bu moddaki makineleri saptamak için pek çok metod vardır. Bunlar sniffing FAQ dokümanında:
http://www.robertgraham.com/pubs/sniffing-faq.html
bulunabilir. Yönlendirilen frame`ler sizin MAC adresinize gönderileceğinden ARP spoofing yapmak için promiscuous moduna geçmeniz gerekmez.
İşletim sistemlerinin kendilerine ait TCP/IP stack`leri ve Ethernet kartlarının ayrı sürücüleri olduğu unutulmamalı. Aynı işletim sisteminin farklı sürümlerinin bile davranışları farklı olabilir. Solaris`in ARP cevaplarına olan tutumu farklıdır. Solaris
ARP güncellemelerini sadece belirli bir zaman aşımından sonra kabul eder. Bir solaris makinenin ARP önbelleğini zehirlemek için, zaman aşımı sonunda ‘race condition’ gerçekleşmemesi için saldırganın ikinci hedef makineye DoS saldırısı gerçekleştirmesi gerekebilir. Eğer ağda bir Saldırı Tespit sistemi varsa bu DoS
saldırısı yakalanabilir.
Kapanış
ARP spoofing modern ağ protokollerinde var olan çeşitli güvenlik açıklarından biridir. IP spoofing, TCP sequence tahmini, ve ICMP redirect`ler diğer güvenlik açıklarına örnek olarak verilebilir. Bu yazıdaki bilgilerde Ettercap ve Parasite projelerinden yararlanılmıştır. ‘Proof of concept’ testleri bu araçlarla Linux, Windows NT ve Windows 2000 makinelerinde gerçekleştirilmiştir.
Kaynak: Olympos.org
belgesi-324
2 kişi bu belgeyi faydalı buldu
2 kişi bu belgeyi faydalı buldu