CAM Table Overflow Attack

OSI referans modeli ikinci katman güvenliği genelde yok sayılan ve herhangi bir siber saldırının gelmesi beklenmeyen katmandır. Ancak yine de bu katmanda ağımızı tehlikeye atabilecek çeşitli saldırılar yapılabilmektedir.

Bu saldırılardan biri de “CAM Overflow Attack” dır. Saldırı CAM yani “Content Addressable Memory” ye yönelik olan bir ikinci katman saldırısıdır. CAM veya “Mac Address Table” ağ cihazlarının en önemlilerinden biri olan switch tarafından tutulan tablodur.

Switch’ler bu tabloyu tutarak frame’leri ilgili portlara iletirler. Switch bu tabloya cihazları aşağıdaki yolu izleyerek ekler.

1- Çerçevenin geldiği porta bak ve o porta takılı olan cihazın MAC adresini tabloya ekle.

2- Eğer hedef MAC adresi tabloda yoksa çerçeveyi ağda bulunan tüm cihazlara gönder.

3- Diğer cihazlar çerçeveyi alır. Kendilerine gelmediğini gören cihazlar çerçeveyi çöpe atar.

4- Kendine geldiğini gören cihaz bir cevap döner.

5- Dönen cevaptaki porta takılı olan cihazın MAC adresini, switch tablosuna yazar.

Switch in “CLI” ekranına girip buradan “show mac address-table” veya “show mac-address-table”(Eski switchler) çalıştırılırsa tabloyu görebiliriz. Tabloda ;

VLAN : Portun hangi VLAN de bulunduğunu belirtir.

MAC ADDRESS: Porta takılı olan cihazın fiziksel adresi veya MAC adresini verir.

TYPE: İki tip tabloya ekleme yöntemi vardır. Bunlardan birincisi “Dinamik” dir. Dinamik de yukarıdaki süreç uygulanarak tabloya eklenir. Diğer bir yöntem olan “Statik” de ise ağ yöneticisi tabloya cihazı statik olarak ekler. Statik olarak eklenen adresler tablodan istenilmediği sürece silinmezler. Statik olarak tabloya cihaz eklemek için aşağıdaki komut switch üzerinde çalıştırılabilir.

HPala(config)# mac-address-table static 0010.0010.0010 vlan 1 interface FastEthernet 0/1

PORTS: Cihazın takılı olduğu port numarasıdır. Bir porta birden fazla cihaz eklenebilmektedir. Aslında saldırımızda bununla ilgili olacaktır. Saldırıda bir porta binlerce cihaz ekleyeceğiz. Bu durum kötü amaçlı kullanılmadığında yararlıdır. Çünkü bir porta birden fazla cihaz eklenmesi olayı günümüzde kurumsal ağlarda tercih edilen bir durumdur. Örneğin kurumsal ağlarda kullanılan IP telefonlar ile bilgisayarlar aynı port üzerinden farklı VLAN’ler aracılığıyla taşınabilmektedir.

Bu döngü switch kendine bağlı olan tüm cihazları öğrendiği zaman bitecektir. Süreç bittikten sonra switch artık sadece çerçeveyi ilgili porta iletecektir. Switch’ler bu tabloyu sonsuza kadar tutmazlar. Çünkü cihaz kapalı olabilir veya ağdan tamamen çıkmış da olabilir. Bir switch ortalama bu tabloyu 300 saniye hafızasında tutar. Ağda sürekli haberleşme olduğu için cihaz ağdan ayrılmadığı veya kapatılmadığı sürece bu tabloda kalmaya devam edecektir. Switch’lerin CAM tabloları sonsuz değildir. Switch’lerin özelliğine göre değişkenlik gösterebilir. Yani bir kapasitesi vardır. Örneğin bir switch 32.000 MAC adres tablosu tutabiliyorsa bu değerin üzerine çıkamaz.

CAM Overflow saldırısındaki amaç switchler de bulunan “MAC” adres kapasitesini doldurmaktır. Saldırıda çeşitli araçlar kullanılarak switche sürekli sahte frame’ler gönderilir. Gönderilen frameler sonucu switch sahte MAC adreslerini tablosuna ekler. Belli bir süre sonra switch, çok fazla frame geldiğinden dolayı çalışamaz hale gelecek ayrıca MAC adres tablosuda dolacaktır. Bu saldırı biraz eski de olsa günümüzde hala yapılabilmektedir. Ancak switch teknolojilerinin gelişmesiyle birlikte artık yapacağımız konfigürasyonlar sayesinde bu saldırı çok kolay bir şekilde önlenebilmektedir.

Şimdi de bu saldırının ilk başta nasıl yapılacağını öğrenelim. Ardından bu saldırıya karşı nasıl korunacağımızı görelim.

Yapılacak saldırı simülasyonunda “GNS3” üzerinde bir “Cisco Switch” ve “Kali Linux” dağıtımı üzerinde “macof” aracı kullanılmıştır. Simülasyon için gerekli olanlar ile ilgili daha fazla bilgiyi ilgili sayfaları ziyaret ederek bilgi alabilirsiniz.

GNS3 : https://www.gns3.com/

Kali Linux: https://www.kali.org/

macof : https://www.kali.org/tools/dsniff/#macof

Kullanacağımız “macof” aracı dakikada bir anahtara 155.000 sahte MAC çerçevesi gönderebilmektedir. Bu da bir korumasız olan switchi etkisiz hale getirmek için gayet yeterli mi değerdir.

Saldırı öncesi GNS3 üzerindeki yapımız yukarıdaki gibidir. Saldırı öncesi Cisco switchin MAC adres tablosu aşağıdaki gibidir. Görüldüğü üzere sadece 1 adet MAC adres tablosu bulunmaktadır. Bu adres te takılı olan Kali Linux cihazımıza aittir.

Kali Linux üzerinde “macof” aracını aşağıdaki şekilde çalıştırabiliriz.

Saldırıyı başlattıktan sonra aşağıdaki görseldeki gibi sahte çerçeveler göndererek hedef switchin tablosunu dolduracaktır. Ayrıca sahte MAC adresleri sadece tek bir porta yazılacaktır. Sahte çerçeve gönderme süreci biz durdurana kadar devam edecektir.

Şimdi de saldırıyı durdurduktan sonra hedef switchin MAC adres tablosunu kontrol edelim.

Görüldüğü üzere sahte MAC adresleri sadece bir port üzerinde birleşerek switchin kapasitesini doldurmuş durumdadır. Ayrıca süreç boyunca çok fazla frame geldiğinden switchte gözle görülebilir bir yavaşlamada olacaktır. Bu da bir nevi DOS ( Denial-of-Service ) saldırısıdır.

Saldırıyı önlemek ise çok basit bir konfigürasyon ile yapılabilir. Ama öncelikle MAC adres tablomuzu temizleyelim. Aşağıdaki komutla temizleyebiliriz.

HPala# clear mac address-table dynamic

Switch üzerinde konfigürasyon moda geçelim.

HPala# configure terminal

Konfigürasyon yapacağımız portun ara yüzüne girelim.

HPala(config)# interface gigabitEthernet 0/0

Ardından portu “Access” moda alalım.

HPala(config-if)# switchport mode access

Güvenli hale getirmek için “port-security” özelliğinden yararlanacağız. Bu modu açmak için aşağıdaki komutu çalıştırmalıyız

switchport port-security

Bu özellik açıldıktan sonra yapabileceğimiz farklı özellikleri belirleyebiliriz. Örneğin aşağıdaki komutu çalıştırdığımızda port yalnızca belirttiğimiz kadar MAC adresi öğrenme limitine sahip olacaktır. Bunun dışında MAC adresi öğrenemez. Önerilen değer ikidir. Çünkü port üzerinde ayrıca bir IP telefon ve Bilgisayar çalıştırabiliriz.

Aşağıdaki kod çalıştırıldığı taktirde bir port üzerinde sadece iki adet cihaz yer alabilecek.

switchport port-security maximum 2

Ayrıca porta bağlanan cihazların MAC adreslerinin kalıcı olarak tutulmasını aşağıdaki komutlarla sağlayabiliriz.

switchport port-security mac-address sticky
or
switchport port-security mac-address 0001.0010.0100

Sticky de dinamik olarak bağlanan portun MAC adresi kayıt edilir bunun haricinde bir MAC adresli cihazı portta kabul etmez. İkinci olarak statik olarak tanımlanan MAC adresi dışında porta başka bir MAC adresli cihaz kabul edilmez.

Daha sonra porta eğer bir saldırı durumu olursa switchin vereceği tepkiyi tanımlayalım.

switchport port-security violation shutdown"

Bunun anlamı porta yönelik herhangi bir saldırı durumda swich otomatik olarak bu portu kapatacaktır. Bu modun dışında 2 mod daha bulunmaktadır. Bunlar ;

Shutdown: Violation meydana geldiğinde, ilgili Port’u tamamen kapatır ve Error-Disabled duruma getirir.

Protect: Violation meydana geldiğinde ilgili port’u tamamen kapatmaz ancak data paketleri drop edilecektir. Protect modda Restrict de olduğu gibi SNMP Trap gönderimi yapılarak Ağ yöneticisi uyarılmayacaktır.

Restrict: Violation gerçekleştiğinde ilgili port tamamen kapatılmaz ancak Data Paketleri drop edilir. Bu durumda ise SNMP ( Simple Network Management Protocol ) e TRAP gönderilerek Ağ yöntecisi uyarılacaktır.

SNMP: Simple Network Management Protocol, ağın yönetilmesine yardımcı olan basit bir uygulama katmanı protokolüdür. Görevi cihaz yönetimi kolaylaştırmaktır. Network yöneticisine avantaj sağlar.

TRAP: SNMP üzerindeki komutlardan biridir. Trap komutu, cihazda oluşabilecek değişiklikleri Ağ yöneticisine bildirmek için kullanılır. Trap mesajları, UDP 162. Port üzerinden gönderilir.

Bunun yanı sıra portun kapatıldıktan sonra otomatik olarak tekrar açılmasını sağlamak için aşağıdaki komutu girebiliriz.

HPala(config)#errdisable recovery cause psecure-violation

Bu komutun anlamı eğer Port error-disable olursa kurtar demektir.

Ayrıca portun otomatik olarak normale çevirmek istiyorsak aşağıdaki komutu girebiliriz. Belirtilen süre sonunda eğer port saldırı altında değilse normal çalışma rutinine geri dönecektir. Ama belirtilen süre içerisinde saldırı devam ediyorsa violation süreci tekrar uygulanacaktır.

HPala(config)#errdisable recovery interval 30

Bu örnekte belirtilen süre 30 saniye olduğu için violation işleminden sonra porta yönelik saldırı devam etmediği sürece 30 saniye sonra eski haline dönecektir.

Eğer tüm güvenlik komutlarını switch üzerinde uygulayıp saldırıyı tekrar başlattığınızda, saldırının başarısız olduğunu göreceksiniz.

Daha fazla bilgisayar ağları içeriği için takipte kalın…

Büyük şeyler küçük şeylerin bir araya gelmesidir.

Van Gogh

Hüseyin Pala hakkında 53 makale
System and Network Specialist Candidate

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*