# ARP zehirlenmesi
Bilgisayar ağlarında, ARP zehirlenmesi (ARP önbellek sahtekarlığı veya ARP zehri yönlendirme) saldırganın yerel alan ağı üzerinden sahte Adres Çözümleme Protokolü (ARP) mesajları göndermesi (aldatma saldırısı) şeklinde tanımlanabilir. Saldırının amacı genellikle, saldırganın MAC adresini, başka bir uç sistemin (örneğin varsayılan ağ geçidi) IP adresiyle bağdaştırarak bu adresinin ağ trafiğini, saldırganın kendi makinesi üzerine yönlendirmesidir.
ARP zehirlenmesi, saldırganın bir ağdaki veri çerçevelerine müdahale etmesine, trafiği değiştirmesine veya tüm trafiği durdurmasına olanak sağlar. Çoğu zaman saldırı, hizmet reddi , ortadaki adam veya oturum kaçırma saldırıları gibi diğer saldırılara kapı açar.
Saldırı yalnızca ARP protokolü kullanan ağlarda mümkündür. Saldırının gerçekleştirilebilmesi için yerel ağ kesimine saldırganın doğrudan erişimi gereklidir.


## ARP zafiyetleri.
Adres Çözümleme Protokolü (ARP), Internet katmanı adreslerini bağlantı katmanı adreslerine çözümlemek için yaygın olarak kullanılan bir iletişim protokolüdür.
İnternet Protokolü (IP) datagramları bir uç birimden diğerine gönderildiği zaman birimin hedef IP adresinden MAC adresi çözümlemesi veri bağ katmanı yardımıyla gerçekleştirilir.
IP ağlarında bir uç birimle haberleşebilmek için o uç birimini IP adresinin bilinmesi gereklidir. Fakat sadece IP adresinin bilinmesi haberleşmenin sağlanabilmesi için yeterli değildir. IP adresinin yanı sıra, hedef uç biriminin MAC adresi de gereklidir. IP adresi bilinen bir uç birimin MAC adresini öğrenmek amacıyla bağlı bulunan ağdaki tüm uçlara bir "ikinci katman" yayını yapılır. Bu yayının hedef MAC adresi FF-FF-FF-FF-FF-FF olarak ikinci katan çerçevesinin içine yerleştirilir. Anahtarın tüm portlarına gönderilen çerçeve (frame), ARP İsteği olarak tanımlanır. ARP isteğindeki IP adresine sahip olan uç birim, bu isteğe "ARP cevabı (ARP Reply)" çerçevesi ile cevap verir. ARP cevabında, uç birimin MAC adresi yer almaktadır. Bu şekilde, IP adresi biliniyor olan bir uç birimin MAC adresi de öğrenilmiş olur.
ARP durum bilgisi taşımayan bir protokoldür. Ağdaki uç birimler otomatik olarak ARP cevaplarını kaydederler. Bu kayıt işlemi uç birimlerin istek yapılıp yapılmamasına bakılmadan yapılır. Zaman aşımına uğramayan ARP kayıtları yeni bir cevap geldiğinde önceki kaydedilen cevabın üzerine yazılır. ARP protokolünde gelen cevap paketinin kaynağına bakılarak bir kimlik doğrulaması yapılmamaktadır. Bu durum ARP zehirlenmesine karşı güvenlik açığı oluşturmaktadır.


## ARP zehirlenmesinin anatomisi.
ARP zehirlenmesinin en temel yöntemi ARP protokolünde kimlik doğrulaması yoksunluğunu suistimal ederek sahte ARP mesajını yerel ağ üzerinden uç sistemlere göndermektir. Bu saldırı kurban ile aynı hedef ağda bulunan işgal edilmiş bir uç sistem üzerinden veya ağa doğrudan bağlı olan saldırganın makinesi ile yapılabilir.
Genellikle buradaki amaç kurbanın uç sistemi ile saldırganın MAC adresini bağdaştırmaktır. Bu sayede kurbanın bütün ağ trafiği saldırgana yönlendirilecektir. Saldırgan ifşa olmamak için kendisine yönlendirilen trafiği gerçek istikametine yönlendirir. Yine saldırgan bu trafiği analiz edebilir, yönlendirmeden önce veri paketlerini değiştirebilir (ortadaki adam saldırısı), bir hizmet reddi saldırısı başlatmak için kullanabilir veya paketlerin iletimini geciktirerek durdurabilir.


## Savunma Yöntemleri.
### Statik ARP girişleri.
Sertifikanın en basit şekli, bir ana bilgisayarın ARP önbelleğindeki kritik hizmetler için statik, salt okunur girdilerin kullanılmasıdır. Yerel ARP belleğindeki IP adresi MAC adresi eşlemeleri statik olarak girilebilir. Uç sistemler, statik girişler olduğunda ARP isteklerini iletmelerine gerek duyulmaz. Statik ARP girişleri, aldatmaya karşı bir nebze güvenlik sağlarken diğer yandan ağdaki tüm sistemler için adres eşlemeleri ve diğer sistemlere dağıtımı gereğini doğururlar. Bu, büyük bir ağ üzerinde ölçeklendirilemez. Sebebi, haritalamanın, her iki makine çifti için ayarlanması gerekir; bu, "n" adet makine mevcut olduğunda yapılandırılması gereken "n" 2 - "n" ARP girişi ile olmalıdır; Her bir makine için, ağdaki diğer bütün makineler için ARP girişi olmalıdır. Yani n * (n - 1) adet ARP girdisi.


### ARP zehirlenmesi algılama ve önleme yazılımı.
ARP sahtekarlığını algılayan yazılımlar genellikle bir tür sertifikasyona veya ARP yanıtlarının çapraz kontrolüne dayanır. Onaylanmamış ARP yanıtları olduğunda engellenir. Bu teknikler hem dinamik hem de statik IP adreslerinin sertifikalandırılması için DHCP sunucusuna entegre edilebilir. Bu özellik, ayrı uç sistemlerde uygulanabilip Ethernet anahtarlarına veya diğer ağ ekipmanlarına entegre edilebilir. Tek bir MAC adresiyle ilişkili birden çok IP adreslerinin olması, (böyle bir yapılandırmanın meşru örnekleri olsa da) bir ARP sahtekarlığı saldırısını gösterebilir. Daha pasif bir yaklaşımda ise, bir cihaz ağdaki ARP yanıtlarını dinler ve bir ARP girişi değiştiğinde e-posta yoluyla bir bildirim gönderir. AntiARP aynı zamanda çekirdek düzeyinde Windows tabanlı aldatmaları önler. ArpStar, çekirdek 2.6 ve haritalamayı ihlal eden geçersiz paketleri bırakan ve tekrar zehirle (repoison) / iyileştir (heal) seçeneği sunan Linksys yönlendiricileri için bir Linux modülüdür.


### İşletim sistemi güvenliği.
İşletim sistemleri ARP zehirlenmesine farklı tepkiler verir. Linux, istenmeyen yanıtları görmezden gelir, ancak diğer yandan, önbelleğini güncellemek için diğer makinelerden gelen isteklere verilen yanıtları kullanır. Solaris, girişlerde yalnızca bir zaman aşımından sonra güncellemeleri kabul eder. Microsoft Windows'ta, ARP önbelleğinin davranışı, HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters, ArpCacheLife, ArpCacheMinReferenceLife, ArpUseEtherSNAP, ArpTRSingleRoutEn, ArpUseEtherSNAP, ArpTRSingleRoutEn, ArpUseEtherSNAP dizini altında çeşitli kayıt defteri girdileri aracılığıyla yapılandırılabilir


## Meşru kullanım.
ARP sahtekarlığında kullanılan teknikler, ağ servislerinin istem dışı ya da gereksiz diye nitelendirilebilecek uygulamaları gerçekleştirmek için de kullanılabilir. Örneğin, bazı yazılımlar, bir yedek sunucunun, hatalı bir sunucuyu devralmak ve şeffaf bir şekilde yedeklilik sağlamak için bedava bir ARP isteği yayınlamasına izin verir. Bugüne kadar bu strateji etrafında yoğunlaşmış ürünleri ticarileştirmeye çalışması ile bilinen iki şirket var: Disney Circle ve CUJO. CUJO, yakın zamanda müşterilerin evlerinde uygulanan ARP zehirlenmesi stratejisinden dolayı ciddi sorunlar yaşadı. Bu stratejiden tamamen vazgeçip, DHCP tabanlı bir stratejiye odaklandılar.
ARP zehirlenmesi, çoğunlukla uygulama geliştiricileri tarafından bir anahtarı kullanılırken iki uç sistem arasında gerçekleşen IP trafiğindeki hataların ayıklanması için kullanılır: Eğer uç sistem A ve uç sistem B bir Ethernet anahtarı aracılığıyla haberleşiyor ise, aralarındaki trafik üçüncü bir uç sistem M tarafından görülemez olmalıdır. Geliştiriciler B için A'ya M'nin MAC adresini ve de tam tersi şekilde A içinse B'ye M'nin MAC adresini vererek yapılandırırlar. Sonucunda M, artık ortadaki adam saldırısında olduğu gibi trafiği izleyebilir hale gelir.


## Araçlar.
### Aldatma.
ARP sahtekarlığı saldırılarını gerçekleştirmek için kullanılabilecek araçlardan bazıları: 
  - Arpspoof (DSniff araç takımının bir parçasıdır)
  - Arpoison
  - Subterfuge
  - Ettercap
  - Seringe
  - ARP-FILLUP -V0.1
  - arp-sk -v0.0.15
  - ARPOc -v1.13
  - arpalert -v0.3.2
  - arping -v2.04
  - arpmitm -v0.2
  - arpoison -v0.5
  - ArpSpyX -v1.1
  - ArpToXin -v 1.0
  - Cain And Abel -v 4.3
  - cSploit -v 1.6.2
  - SwitchSniffer
  - APE – ARP Poisoning Engine
  - Simsang
  - zANTI -v2
  - NetSec Framework -v1
  - Minary
  - NetCut (Also has a defense feature)
 - YÖNLENDİRME