ARP Protokolü ve ARP Spoofing
ARP
(Address Resolution Protocol): Adres Çözümleme Protokolü anlamına gelir. ARP
söz konusu olduğunda kelime anlamından çok bu protokol network trafiğinde hangi
anlarda karşımıza çıkar bunu düşünmeliyiz. ARP protokolünü ilk gördüğümüz an
bilgisayara ilk Static IP’yi atadığımız andır. Örneğin; Biz var olan bir IP
adresini başka bir bilgisayara atamaya çalıştığımızda işletim sistemi bize hata
verir. “Bu IP kullanılıyor” diyerek IP adresini bilgisayara atama işlemini
gerçekleştiremez. İşte işletim sisteminin arka planda referans aldığı bilgi ARP
Broadcast mesajında gizlidir.
Nasıl oluyor da işletim sistemi arka planda bu ARP broadcast mesajını kullanarak IP adreslerinin “unique (benzersiz)” olmasını sağlıyor? Bu istek/mesaj yada paketin içeriği FFFF.FFFF.FFFF olduğu için broadcast bir mesajlaşma türüdür. Aşağıdaki görselde mesajın anlamı; bilgisayarların hepsine tek tek “sen 192.168.1.100 müsün?” diye tüm uç cihazları sormaktır. Bu mesajı alan bilgisayarlar hedef IP’yi okuduklarında “benim IP’m 192.168.1.100 değil, bu mesaj bana ait değil deyip drop edecekler” ancak network’te 192.168.1.100’lü bir IP adresi var ise bu mesaja cevap verecek “işletim sisteminde böyle bir IP var” şeklinde bir cevap dönecektir. Mesajın sırrı işte bu cevapta gizli. Bu ARP Broadcast mesajı eşine nadir rastlanan mesaj türlerinden biridir.
ARP Anları;
1- IP ataması yaptığımız an
2- MAC adresi öğrenme anı
3- Bu APIPA adresi var mı? dediği
anda devreye girer. - DHCP server’dan IP talep ettiğim anda – Verilen DHCP
adresinin unique olmasını sağlamak içindir.
ARP Paket İçeriği
PC0 bilgisayarına static olarak IP atamaya çalıştığımızda
direkt olarak ARP mesajının PC0 bilgisayarının üzerind, diğer bilgisayarlara
gönderilmeye hazır olarak beklediğini görmekteyiz;
Paket gönderildiğinde diğer bilgisayarlar 192.168.1.100 IP
adresine sahip olmadığı için paketi drop ettiklerini aşağıdaki resimde
görebiliriz;
Diğer bir ARP kullanımı anı ise bilgisayarların
birbirleriyle haberleşmek için birbirlerinin MAC adresini öğrendikleri andır.
Örneğin PC0, PC1 ile ICMP protokolü
kullanarak haberleşmek istesin. Paketi gönderecek olan bilgisayar (PC0), hedef
bilgisayarın (PC1) MAC adresini bilmiyorsa, öğrenmek için ARP Brodcast paketi
gönderir ve MAC adresini öğrendikten sonra ICMP paketini hedefe gönderir. Ancak
hedef MAC adresi zaten biliniyorsa PC0 bilgisayarının ARP tablosunda hedef MAC
adresi kayıtlı olduğu için ARP paketi göndermeden direkt olarak ICMP mesajını
PC1’e ulaştırır.
PC0, PC1’e ARP mesajı
gönderdiğinde, PC1 paketin içeriğine bakar ve bu paketin PC0 bilgisayarından
geldiğini anlayarak. Paketin içerisindeki Source (Kaynak) IP adresine kendi
adresini ve Destination (Hedef) IP adresine de PC0 bilgisayarının adresini
yazarak ona tekrar geri iletir. Bunun sonucunda PC0 ARP cevabını aldığında
PC1’in MAC adresini öğrenmiş olacaktır ve ARP tablosuna kayıt edecektir.
Bunu şöyle düşünebiliriz; “PC0, PC1’e ulaşmak için ilk önce
kendi telefon numarasını vererek PC1’e telefon numarasını sordu. PC1’de PC0’ın
telefon numarasını adres defterine kaydederek, PC0’a kendi telefon numarasını
verdi. Birbirlerinin telefon numarasını adres defterine kaydettiler ve
istedikleri zaman birbirlerini arayıp haberleşebilecekler.”
PC0 ARP Mesajı (PING için MAC öğrenme isteği)
PC1 ARP Reply Mesajı (MAC Adresi Cevabı)
PC0’ın, PC1’e ping atma süreci. (Birbirlerinin MAC adreslerini bildikleri için Request-Reply mesajları gönderilir.)
Yorumlar
Yorum Gönder