26 Mayıs 2012 Cumartesi

ARP Spoofing

Lokal ağlarda gerçekleştirilmesi hiç de zor olmayan saldırılardan birisi de ARP sahtekarlığı saldırılarıdır. ARP sahtekarlığı saldırılarının anlaşılabilmesi için ARP kavramının çok iyi bilinmesi gerekmektedir. ARP kavramının iyi bilinmemesi, ARP saldırılarının anlaşılmasına ve bu saldırıların önlenmesine engel olacaktır. Aşağıdaki yazının daha iyi anlaşılabilmesi için ARP kavramının iyi bilinmesi gerekmektedir.

ARP sahtekarlığı (ARP spoofing, ARP flooding, ARP poisoning) saldırısı lokal ağlarda gerçekleştirilebilen bir saldırıdır. Bu saldırı, üç şekilde gerçekleştirilmektedir: Birincisi; hedef bilgisayarın ARP tablosunun yanlış bilgilerle dolmasını sağlayarak, hedef bilgisayarın göndereceği paketlerin saldırganın istediği adreslere gitmesini sağlamak. İkincisi; hedef bilgisayarın göndereceği tüm paketlerin, saldırganın bilgisayarı üzerinden geçmesini sağlamak (Man in the Middle). Üçüncüsü de; hedef bilgisayarın, paketlerini bir başka bilgisayara göndermesini sağlayarak bu bilgisayara servis dışı bırakma (Denial of Service) saldırısı yapmak şeklindedir.
Saldırıları, aşağıdaki topoloji üzerinden anlatmaya çalışacağım: 



Birinci saldırı:
Ağda yer alan bilgisayarların birbirleriyle haberleşme yaptıkları durumda, A bilgisayarının ARP tablosu aşağıdaki gibi olacaktır:


Normal durumda A bilgisayarı, C bilgisayarına bir çerçeve (frame) göndereceği zaman çerçevenin hedef MAC adresi kısmına koyacağı adres CC-CC-00-00-00-01 olacaktır.İlk saldırımızda saldırganımız A bilgisayarının göndereceği tüm çerçevelerin (frame) ED-12-33-88-AA-B0 MAC adresli bir bilgisayara gönderilmesini sağlayacaktır. Bunun için saldırgan, A bilgisayarına sürekli olarak sahte ARP (spoofed ARP) çerçeveleri yollayacaktır. A bilgisayarı da ARP tablosunu gelen bu sahte ARP mesajlarına göre güncelleyecektir. ARP mesajları, herhangi bir durum tablosu tutmadıkları (stateless) ve ARP’ta herhangi bir kimlik doğrulama mekanizması olmadığı için de A bilgisayarı gelen ARP mesajlarının doğru bilgisayardan gelip-gelmediği kontrol edemeyecektir. Tüm bilgisayarlar gibi A bilgisayarı da kendisine gelen ARP mesajlarıyla ARP tablosunu herhangi bir kontrole tabi tutmadan güncellemek durumundadır.


Saldırgan; A bilgisayarına lokal ağda yer alan tüm IP adresleri için tek bir adet MAC adresini içeren (ED-12-33-88-AA-B0) ARP mesajları gönderecektir. Bu durumda A bilgisayarının ARP tablosu aşağıda duruma dönecektir:



A bilgisayarı ağdaki herhangi bir bilgisayara paket göndermek istediği zaman paketlerin hepsi ED-12-33-88-AA-B0 MAC adresine sahip olan bilgisayara gönderilecektir. Bu saldırıda saldırgan; A bilgisayarına göndereceği sahte ARP çerçevelerindeki (frame) MAC adresini değiştirmek suretiyle, A bilgisayarının göndereceği tüm paketleri istediği bilgisayara göndermeyi başarabilecektir. Bu şekilde saldırgan, A bilgisayarından çıkan tüm paketleri istediği bir bilgisayardan dinleyebilecektir.

İkinci Saldırı
Bu saldırı, birinci saldırıda bahsedilen yöntemle gerçekleştirilmektedir. Bu saldırıda saldırgan, sahte ARP (spoofed ARP) çerçevelerinin içerisine kendi bilgisayarının MAC adresini yazmak suretiyle hedef bilgisayardan çıkan tüm paketlerin kendi bilgisayarı üzerinden geçmesini sağlar. Bu saldırı, “man-in-the-middle (MiM)” saldırısı olarak da bilinmektedir.Saldırgan, tüm ağa yolladığı ARP mesajlarının içerisine varsayılan ağ geçidinin (default gateway) MAC adresi yerine kendi MAC adresini yazarsa da kendisi varsayılan ağ geçidi olmuş olacaktır. Böylece ağdan dışarıya çıkacak olan tüm trafik saldırganın bilgisayarına gelebilecektir.

Üçüncü Saldırı
Bu saldırı da yine birinci saldırıda bahsedilen yöntemle gerçekleştirilmektedir. Bu saldırı türünde saldırganın amacı, hedef bilgisayardan dışarı çıkacak olan paketleri dinlemek değil, hedef bilgisayara servis dışı bırakma (DoS) saldırısı yapmaktır.Bunun için saldırgan tüm ağda yer alan bilgisayarlara sahte ARP mesajları yollar. Bu mesajların içerisine de hedef bilgisayarın MAC adresini yazar. Böylece ağda yer alan tüm bilgisayarlar paketlerini hedef bilgisayara yollar. Bu da hedef bilgisayarın eternet bağlantısının limitinin dolmasına sebep olur. 

Ayrıca hedef bilgisayarın işlemci gücünün de %100 oranında kullanılmasına sebep olarak, hem hedef bilgisayarın işlem yapmasını engellemiş olur, hem de ağda yer alan diğer bilgisayarların bağlantılarını engellemiş olur.Saldırgan tüm ağı etkileyip, bu saldırıyı çok fazla dikkat çekmeden yapmak isterse de, sahte ARP mesajlarını tüm ağa değil de, dönüşümlü olarak ağda yer alan bazı bilgisayarlara göndererek ağdaki bilgisayarların erişim sorununu gizlemiş olur. Ağdaki bilgisayarlardaki erişim problemi dönüşümlü olarak gözlendiğinden, bunun bir atak olduğunun anlaşılması oldukça zor olacaktır.

Çözüm:
Oldukça eski bir protokol olan ARP’ın çalışma yapısından kaynaklanan bu sorunların protokol bazında bir çözümü bulunmamaktadır. ARP’ın bu eksikliğini, anahtarlama cihazları üzerinde alınacak bazı önlemlerle kapatmak mümkündür.

Çözüm – 1:
Çözümlerden bir tanesi; anahtarlama cihazlarının da IP adresi – MAC adresi eşleşmelerini (ARP tablosu) port bazında tutmalarıdır. Anahtarlama cihazları üzerinde port bazında bir IP adresi – MAC adresi eşleştirmesi yapıldığı takdirde ilgili porttan farklı bir MAC adresinin gelmesi mümkün olmayacaktır. Böylece saldırgan bağlı olduğu anahtarlama cihazının portundan farklı IP adresi – MAC adresi eşleşmelerine sahip olan ARP mesajları gönderemeyecektir. 

Anahtarlama cihazının bir portu için sadece bir IP adresi ve bir MAC adresi tanımlanabilecektir. Bu önleme; “Dynamic ARP Inspection” ya da “Dynamic ARP Protection” denmektedir.“Dynamic ARP Inspection”/“Dynamic ARP Protection” yapılandırması yapılmış olan anahtarlama cihazları, aynı zamanda 0.0.0.0 ya da 255.255.255.255 gibi geçerli olmayan IP adreslerinden gelen ARP isteklerini de engelleyecektir.DHCP sunucusunun bulunduğu bir sistemde Cisco marka anahtarlama cihazlarında bu özellik aşağıdaki gibi aktif hale getirilir:

Cisco(config)#ip dhcp snooping vlan 53, 61
Cisco(config)#ip arp inspection vlan 53,61
Cisco(config)#interface GigabitEthernet 5/48
Cisco(config-if)#ip dhcp snooping trust
Cisco(config-if)#ip arp inspection trust

Yukarıdaki örnekte, IP adreslerinin otomatik olarak dağıtıldığı (bir DHCP sunucusunun bulunduğu) bir sistemde 53 ve 61 numaralı VLAN’ler için “Dynamic ARP Inspection” özelliği aktif hale getirilmiştir. Anahtarlama cihazı 53 ve 61 numaralı VLAN’lere bağlı olan portlar için kendi üzerinde tuttuğu IP adresi – MAC adresi tablosuna bakarak ARP çerçevelerine izin verecek ya da bu çerçeveleri (frame) düşürecektir.Aşağıdaki örnekte de HP ProCurve marka anahtarlama cihazlarında DHCP sunucusunun bulunduğu bir ortamda “Dynamic ARP Protection” özelliği aktif hale getirilmiştir:

ProCurve(config)# arp-protect vlan 53,61
ProCurve(config)# arp-protect trust c1-c12, e3

Bu konfigürasyonlarda dikkat edilmesi gereken husus, anahtarlama cihazlarının birbirlerine bağlandıkları portların güvenilir (trusted) olarak tanımlanmasıdır.Güvenilir (trusted) olarak tanımlanmayan portlardan gelen ARP istekleri kontrol edileMEYEecek, güvenilir olmayan (untrusted) portlardan gelen ARP mesajları da kontrol edilecektir.

Çözüm – 2:
Bir DHCP sunucusunun bulunmadığı bir ortamda (IP adreslerinin statik olduğu) IP adresi – MAC adresi eşleşmelerinin anahtarlama cihazları üzerinde el ile birer birer yapılması gerekmektedir. Yani DHCP sunucusundan hazır olarak alınan IP adresi – MAC adresi eşleştirmelerinin anahtarlama cihazına el ile girilmesi gerekmektedir.Bunun için anahtarlama cihazları üzerinde ARP erişim kontrol listeleri (ARP access control lists - ARP ACLs) tanımlanır.Aşağıdaki örnekte Cisco marka anahtarlama cihazlarında DHCP sunucusunun bulunmadığı bir sistemde “Dynamic ARP Inspection” konfigürasyonu yer almaktadır:

Cisco(config)#ip arp inspection vlan 61
Cisco(config)#ip source binding AAFF.6161.0606 vlan 61 192.168.61.61 interface Gi1/2
Cisco(config)#arp access-list ARP_ACL_NAME
Cisco(config-arp-acl)# permit ip host 192.168.61.61 mac host AAFF.6161.0606
Cisco(config)#ip arp inspection filter ARP_ACL_NAME vlan 61

Yukarıdaki örnekte VLAN 61 için, sadece 192.168.61.61 IP numaralı ve AA-FF-61-61-06-06 MAC adresine sahip olan bir bilgisayardan ARP mesajları kabul edilecektir.Aşağıdaki örnekte HP ProCurve marka anahtarlama cihazlarında DHCP sunucusunun bulunmadığı bir sistemde “Dynamic ARP Protection” konfigürasyonu yer almaktadır:

ProCurve(config)#ip source-binding AAFF61-610606 interface vlan 61 192.168.61.61 interface A4

Çözüm – 3:
Bu saldırı için bir başka çözüm de, anahtarlama cihazının portlarına birim zamanda gelen ARP mesajlarını sınırlamaktır. Bu şekilde, ARP servis dışı bırakma saldırılarının da (ARP DoS) önüne geçilmiş olunur. Bu özellik, sadece Cisco marka anahtarların bazı modellerinde aktif hale getirilebilmektedir.

Cisco(config)#errdisable recovery cause arp-inspection
Cisco(config)#interface GigabitEthernet 6/12
Cisco(config-if)#ip arp inspection limit rate 25 burst interval 3

Yukarıdaki örnekte GigabitEthernet 6/12 numaralı port için, bu porta 3 saniye boyunca saniyede 25’ten fazla ARP mesajı geldiği takdirde port, bunu bir ARP saldırısı olarak algılayıp, üzerinden geçen iletişimi kesecektir.
Lokal ağlarda çok fazla önlem alınmayan ve saldırı tespit sistemleriyle de tespit edilmeleri mükün olmayan ikinci katman saldırılarına karşı önlemlerin alınması lokal ağların güvenliği için oldukça önemlidir.

Hiç yorum yok:

Yorum Gönder