Bilgisayarlar ağda birbirlerini nasıl bulurlar?
Bu flood’da bilgisayarların ağ üzerinde birbirlerini bulmalarını sağlayan ARP
(Address Resolution Protocol
)'ı tanıyacağız.
Bilgisayarlar ağ üzerine birbirleri ile haberleşmek için OSI
modelinde üçüncü yani ağ katmanına karşılık gelen IP
'yi kullanırlar fakat IP
mantıksal bir adreslemedir. Paketlerin ağda ilerleyebilmeleri için hedef cihazları fiziksel olarak da adresleyebilmeleri gerekir.
Mantıksal IP
katmanı ile ethernet kabloları üzerinden iletilen bilgiler arasındaki köprüyü herbir ethernet girişi için eşsiz olarak verilen 6 baytlık MAC
adresi sağlamaktadır. İşte ARP
protokolü tam bu noktada IP
adresinden MAC
adresine dönüşüm problemini çözer.
Konuyu basit tutmak için aynı ağda bulunan iki cihazın, örneğin aynı kablosuz ev ağına bağlı bir bilgisayar (IP
: 192.168.33.10
) ve cep telefonunun (IP
: 192.168.33.40
) birbirlerinin MAC
adresini nasıl bulduğunu anlamaya çalışalım.
Bilgisayar, telefonun MAC
adresini öğrenmek için ağ üzerindeki bütün cihazlara ARP
protokolü ile "who has 192.168.33.40?" içerikli bir broadcast
mesajı gönderilir. Aldığı pakette kendi IP
adresini gören telefon blgisayara "192.168.33.40 is at ..." ile karşılık verir.
broadcast
mesajlarını ağ üzerindeki bütün cihazların alabilmesi için ethernet paketinin hedef MAC
adresi kısmına ff:ff:ff:ff:ff:ff
adresi yazılır. Aşağıda Wireshark
yardımıyla alınan bir broadcast
mesajında bu kısım gösterilmiştir.
Aşağıdaki ekran çıktısında ise bir ARP Broadcast
mesajı ile ARP Reply
Wireshark
ile yakalanmış ve gösterilmiştir.
Yukarıdaki anlatılan mekanizma sayesinde IP
paketini gönderecek cihaz hedef cihazın MAC
adresini öğrenmiş olur. İşletim sistemleri, IP
adreslerini hızlıca MAC
adreslerine dönüştürebilmek için cevapları ARP Lookup Table
adı verilen tabloda belirli süreliğine saklarlar.
Linux’ta ARP
tablosunu ekrana döktürmek için arp -n
komutu kullanılabilir. Aşağıda bir örnek gösterilmiştir.
Aynı IP
adresinin birden fazla cihaza yanlışlıkla verildiği durumlarda ağda fonksiyon bozuklukları gözlenebilir. ARP
'ın sağladığı araçlarla çakışma kolaylıkla tespit edilebilir. Fonksiyonel bozukluğun gözlemlendiği bilgisayarın ARP
tablosuna bakıldığında aynı IP
ile eşleşen iki farklı MAC
adresi görülecektir. Başka bir yöntemse ağdaki bütün bilgisayarlara ARP broadcast
paketleri göndererek cevapları gösteren arp-scan
aracını kullanmaktır. Aynı IP
adresi için iki farklı cihaz cevap verecek ve çakışma kolayca tespit edilecektir.
ARP Poisoning
adlı atakta yerel ağda bulunan saldırgan cihaz, kendisine ait olmayan IP
adresleri için kendi MAC
'ini içeren ARP reply
gönderirse trafiği asıl hedef yerine kendisine yönlendirmeye başlayabilir ve iki cihaz arasındaki mesajları dinleyebilir.
Son olarak ARP Poisoning
atağını bir örnekle açıklayalım. Veri tabanının MAC
adresine ulaşmak isteyen uygulama sunucusu bir ARP
paketi ile veri tabanının MAC
adresini yerel ağda broadcast
eder. Bu sorguya veri tabanından önce kötü niyetli cihaz cevap verirse uygulama sunucusu istekleri kötü niyetli cihaza göndermeye başlar. Bu cihaz da istekleri gerçek veri tabanına gönderip aldığı cevapları uygulama sunucusuna iletir. Bu sayede uygulama sunucusu ile veri tabanı arasındaki bütün trafiği dinlemiş olur.