İkinci Katman Saldırıları – 2
MAC taşması atağının ne olduğunu anlayabilmek için öncelikle anahtarlamanın (switching) nasıl çalıştığını iyi bilmek gerekir.Her bir anahtarın üzerinde, anahtara bağlı ağ cihazlarının MAC adresleriyle anahtarın portlarının eşleştirildiği bir tablo bulunur. Anahtar, portları arasındaki veri iletişimini bu tablodaki bilgilere bakarak yapar. Bu tabloya MAC adres tablosu denebildiği gibi CAM (Content Address Memory) tablosu da denilmektedir.
MAC Taşması (MAC Flooding) Atağı
Aşağıdaki tabloda da görülebildiği gibi her bir MAC adresi bir portla eşleştirilmiştir. (Bir IEEE 802.1q ya da ISL portu üzerinde birden fazla MAC adresi görülebilir.) Bu tabloda port numaraları ve MAC adreslerinin yanı sıra; ilgili portun, MAC adresini hangi VLAN üzerinden, hangi yöntemle öğrendiği (static/dynamic) ve portta hangi protokolün kullanıldığı bilgisi de yer almaktadır.
vlan mac address type protocols port——- ————— ——– ——————— ——————–20 000a.2281.61e4 dynamic ip GigabitEthernet1/120 000a.2201.9079 dynamic ip GigabitEthernet1/120 000a.22c0.ddf9 dynamic ip GigabitEthernet1/161 001b.2461.09f6 dynamic ip GigabitEthernet1/261 0040.ca79.8821 dynamic ip GigabitEthernet1/1561 00d0.b7bc.3d2c dynamic ip GigabitEthernet3/3461 0800.8e05.1bbc dynamic ip GigabitEthernet3/3361 0800.8e05.39b7 dynamic ip GigabitEthernet3/35
Şimdi gelelim anahtarlamanın (switching) nasıl yapıldığına:
Anahtar, portlarına gelen bir çerçevenin (frame) önce hedef MAC adres kısmına bakar. Daha sonra çerçevenin (frame) içinde yer alan bu hedef MAC adresinin kendi MAC adres tablosunda olup, olmadığına bakar.Anahtar, çerçevenin içinde yer alan hedef MAC adresini MAC adres tablosunda bulursa çerçeveyi (frame) ilgili porta gönderir. Yapılan bu işleme anahtarlama (switching) denir.
Örneğimizi yukarıdaki tabloyla sağlamlaştıralım: GigabitEthernet3/35 portuna takılı bir bilgisayar, GigabitEthernet1/2 portuna bir çerçeve (frame) göndermek istesin. Bu durumda GigabitEthernet3/35 numaralı porttan çıkan çerçevenin hedef MAC adres kısmında GigabitEthernet1/2 numaralı porta takılı olan bilgisayarın MAC adresi yer alacaktır. (Bu işlemden önce anahtar üzerinden ARP isteği gönderilecek ve cevabı alınacaktır. İşlemin bu kısmını burada anlatmıyoruz.) Çerçeveyi alan anahtar, hemen MAC adres tablosuna bakacak, çerçevede yer alan hedef MAC adresi bilgisini kendi MAC adres tablosundaki listeyle karşılaştıracak ve çerçeveyi GigabitEthernet1/2 portuna gönderecektir.
Anahtarların MAC adres tabloları -marka ve modele göre farklılık arzetse de- yine de oldukça fazla adres içerebilmektedir. Ama yine de anahtarların da MAC adres tablolarının bir sınırı vardır. Peki anahtarın MAC adres tablosunun tamamen dou olması durumunda ne olacaktır? Anahtar bu durumda nasıl davranacaktır?
Gelen çerçevenin (frame) hedef MAC adresi, anahtarın MAC adres tablosunda bulunduğu takdirde anahtar bu çerçeveyi (frame) ilgili porta gönderecektir. Fakat anahtara gelen çerçevenin (frame) hedef MAC adresi, anahtarın MAC adres tablosunda bulunmadığı durumlarda, anahtar bir “hub” gibi davranacak ve aldığı çerçeveyi (frame) tüm portlarına yollayacaktır. Yani aslında sadece bir porta göndermek istediğimiz çerçeveler portların hepsine gönderilecektir. Çünkü anahtarın MAC adres tablosu doludur ve anahtar ağ bağlantısını kesmemek için böyle davranacaktır.
Anahtarın MAC adres tablosunu sahte MAC adresleriyle doldurabilecek yazılımlar mevcuttur. Anahtara bu yazılımlar ile saldırılıp, MAC adres tablosu sahte adreslerle doldurulabilir. Bu saldırıdan sonra anahtarın MAC adres tablosu aşağıdakine benzer bir durumda olacaktır. (Saldırganın portunun GigabitEthernet3/33 olduğunu düşünüyoruz.)
vlan mac address type protocols port
——- ————— ——– ——————— ——————–
20 000a.2281.61e4 dynamic ip GigabitEthernet1/1
20 000a.2201.9079 dynamic ip GigabitEthernet1/1
20 000a.22c0.ddf9 dynamic ip GigabitEthernet1/1
61 001b.2461.09f6 dynamic ip GigabitEthernet1/2
61 0040.ca79.8821 dynamic ip GigabitEthernet1/15
61 00d0.b7bc.3d2c dynamic ip GigabitEthernet3/34
61 0800.8e05.1bbc dynamic ip GigabitEthernet3/33
61 0800.8e05.1aaa dynamic ip GigabitEthernet3/33
61 0800.8e05.1aab dynamic ip GigabitEthernet3/33
61 0800.8e05.1aac dynamic ip GigabitEthernet3/33
61 0800.8e05.1aad dynamic ip GigabitEthernet3/33
61 0800.8e05.1aae dynamic ip GigabitEthernet3/33
61 0800.8e05.1aaf dynamic ip GigabitEthernet3/33
61 0800.8e05.1ab0 dynamic ip GigabitEthernet3/33
……………………………………………………………………………………..
……………………………………………………………………………………..
61 0800.8e05.39b7 dynamic ip GigabitEthernet3/35
ÇÖZÜM:
Bu saldırıdan korunmanın yolu çok basittir: MAC adresi kilitlemesi. Ama tabii ki bunun için elimizdeki anahtarın MAC adres kilitlemesi özeliğinin olması gerekmektedir. Anahtarlarımızın portlarına MAC adresi kilitlemesi uygularsak bu olası saldırıdan kurtulmuş oluruz. Aşağıda Cisco ve HP anahtarlar için MAC adresi kilitlemesi örnek konfigürasyon satırları bulunmaktadır:
(Aşağıdaki konfigürasyonlar sizin sistemlerinize uygun olmayabilir.)
- CISCO konfigürasyonu
- Anahtar(config)#interface range GigabitEthernet 3/2 – 48
- Anahtar(config-range)# switchport mode access
- Anahtar(config-range)# switchport port-security
- Anahtar(config-range)# switchport port-security maximum 3
- Anahtar(config-range)# switchport port-security violation restrict
- Anahtar(config-range)#switchport port-security mac-address sticky
HP ProCurve konfigürasyonu
Anahtar(config)#port-security ethernet 1-10 address-limit 3 learn-mode static action send-disable
Selçuk Şahin, TÜBİTAK-UEKAE