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.