🖥️1-CAM Table Overflow

MAC Adresi Nedir?

MAC adresi veya Ortam Erişim Denetimi adresi, ağ bağdaştırıcısının benzersiz, kablolu adresidir. Ağ özellikli her aygıtın MAC adresi olan bir ağ bağdaştırıcısı vardır. MAC adresi, ağın yazılım adresi olan bir IP adresinin fiziksel eşdeğeridir. Aynı ağ alt ağındaki tüm cihazların farklı MAC adresleri vardır ve anahtarlar yönlendirme amacıyla MAC adreslerini depolar.

İçerik Adreslenebilir Bellek (CAM) nedir?

İçerik adreslenebilir bellek, ilişkisel depolama olarak da bilinir. Belirli kullanım durumlarında özel bir bilgisayar belleği türüdür. RAM'den farklı olarak, CAM arama verilerini depolanan veri tablosuyla karşılaştırır ve eşleşen verilerin adresini döndürür. CAM, genellikle yönlendiriciler ve en önemlisi ağ aygıtları gibi amaçlar için kullanılır. Örneğin, anahtarlar CAM tablolarında farklı cihazların MAC adreslerini belirli bağlantı noktalarında saklar.

CAM Table Taşması Saldırısı nedir?

CAM tablo taşması saldırısı, ağ anahtarına yönlendirilen sahte MAC adresleri kullanılarak gerçekleştirilen düşmanca bir eylemdir. Bu saldırı türünde, saldırganın amacı, anahtarın CAM veritabanı tablolarındaki geçerli adresleri boşaltarak sahte bilgilerle doldurmaktır. Bu işlem sonucunda, anahtarın normalde özel iletileri belirli bağlantı noktalarına yönlendirmesi gerekirken, varsayılan davranışı, iletileri tüm bağlantı noktalarına yaymaktır.

Çalışma Mantığı

Yukarıda belirtildiği gibi, bir porta onlarca veya binlerce paketin aynı anda gönderilmesi, cihazın CPU ve belleğini etkisiz hale getirerek bir DDoS saldırısı gerçekleştirilebilir.

CAM Table Overflow Saldırısı

Topoloji

Benim kullanacağım topoloji şu şekilde olacak. Şimdi gelin, MAC adreslerini CAM tablosuna yazıp yazmadığımıza bakalım.

İşaretli olan MAC adresi saldırganın MAC adresine ait gibi görünüyor. Diğer MAC adresleri ise diğer normal kullanıcılara ait gibi duruyor.

Saldırgan mac adresi bunu doğruladık.

vIOS-L2-01#show running-config 
Building configuration...

Current configuration : 4844 bytes
!
! Last configuration change at 08:08:11 UTC Sun Jan 28 2024
!
version 15.0
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
service compress-config
!
hostname vIOS-L2-01
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
!
!
!
!
!         
vtp domain CISCO-vIOS
vtp mode transparent
!
!
!
ip cef
no ipv6 cef
!
!
spanning-tree mode pvst
spanning-tree extend system-id
!
vlan internal allocation policy ascending
!
vlan 100
 name VLAN100
!
vlan 200,300 
!
! 
!
!
!         
!
!
!
!
!
!
!
!
interface GigabitEthernet0/0
 media-type rj45 
 negotiation auto
!
interface GigabitEthernet0/1
 media-type rj45
 negotiation auto
!
interface GigabitEthernet0/2
 media-type rj45
 negotiation auto
!
ip forward-protocol nd
!
no ip http server
no ip http secure-server
!
!
!
!
!
!
control-plane
line con 0
 logging synchronous
line aux 0
line vty 0 4
 logging synchronous
 login
line vty 5 15
 logging synchronous
 login
!
!
end

Konfigürasyona baktığımızda ise herhangi bir engelleme veya önlem alınmamış gibi görünüyor. Ancak saldırı gerçekleştikten sonra önlem almaya ayretten bakıcaz.

Burada belirli bir IP adresinden kaynaklanan ve yönlendirilen IP adresine kadar olan trafiği belirleyip, portları da dahil edebiliriz. Sızma testlerinde, yönlendirici ve anahtar testlerinde çoğunlukla her anahtar savunmasız olarak karşılaşıyoruz.

ANALİZ

Görüldüğü gibi, ICMP iletişimi zaman zaman kesintiye uğramış gibi görünüyor. Buradan çıkarabileceğimiz şey, saldırımızın hedefine başarılı bir şekilde ulaştığıdır. Amacımız, hedefin hizmet dışı bırakılması ve cihazların birbirleriyle iletişiminin yarıda kesilmesiydi, ve bu hedefe ulaşılmış gibi görünüyor.

Dinamik olarak öğrenilen MAC adresi 282, statik olarak ise 0 olarak görünüyor.

Buradan şu analizi çıkarabiliriz: Toplamda 67,351,128 öğrenilen MAC adresi, normal kullanım senaryolarının ötesinde bir artışa işaret ediyor. Bu durum, ağda anormal bir trafiğin olduğunu ve muhtemelen bir saldırı veya başka bir sorunun yaşandığını gösteriyor olabilir. Ağ güvenliğini kontrol etmek ve olası tehditlere karşı önlemler almak önemli olacaktır.

Bir paketi derinlemesine analiz edelim.

1 => Kaynak adresini MAC adresini temsil ediyor.

2 => Ulaşılacak olan MAC adresini temsil ediyor.

3 => Yönlendirme için IPv4 kullanılacağını temsil ediyor.

1 => Kullanılan IP adresi sürümünü gösterir.

2 => Kaynak IP adresi

3 => Alıcı IP adresi

4 => Paket boyutu

5 => Kaynak ve hedef IP adresleri

CAM Table Overflow Önleme

switch(config)#interface range gigabitEthernet 0/0-2
switch(config-if-range)#switchport mode access
//access moduna interfaceyi al
switch(config-if-range)#switchport port-security
//Port-security özelliğini aktif et 
switch(config-if-range)#switchport port-security maximum 2
//Maksimum 2 tane mac adresi geçişine izin ver
switch(config-if-range)#switchport port-security violation shutdown 
// eğer ihlal olursa bu portu kapat

Görünen o ki bir saldırı tespit edildi ve güvenlik önlemleri nedeniyle port kapatıldı. Güvenlik politikaları, belirli bir arayüzdeki trafiği sınırlamak veya güvenlik ihlallerini tespit etmek için uygulanan önlemleri içerir. Bu durumda, port-security önlemleri, belirli bir arayüzdeki MAC adresi sayısını kontrol etmek ve aşılması durumunda portun kapatılmasını sağlamış olabilir.

//İlgili arayüze gidip kapanan portu açmak her seferinde gerekir.
Örneğin
SW1(config)#interface fastEthernet 0/3
SW1(config-if)#shu // kapatıp
SW1(config-if)#no shu  // tekrardan açtık bunu her ihlal durumunda yapmamız gerek. Bununda bir çözümü bulunmaktadır.
Switch (config) #errdisable recovery cause psecure-violation 
Switch (config) #errdisable recovery interval 30
//Port eğer error durumuna düşerse 30 saniye sonra bunu tekrardan aktif et.
//Ekstra önlemler
SW1(config-if)#switchport port-security mac-address sticky 
// ilk bağlanan mac adresini otomatik olarak öğren ve bunu kalıcı olarak ata 
//port-secuity tarafından kalıcı olarak öğrenilir.
SW1(config-if)#switchport port-security mac-address xx.xx.xx.xx // manuel el ile mac adresi atama
SW1(config-if)#switchport port-security violation protect
//Port kapanmaz ama ihlal durumunu rapor eder.
SW1(config-if)#switchport port-security violation restrict
// arayüz üzerindeki trafiği sınırlar.
// Bu, port-security ihlali tespit edildiğinde, ağ trafiğinin belirli bir ölçüde kısıtlanması anlamına gelir. 
//Sınırlama, ağ trafiği konusundaki durumu incelemek ve uygun önlemleri almak için ağ yöneticisine bir uyarıdır.
SW1(config-if)#switchport port-security aging static
//belirli MAC adreslerinin sürekli olarak geçerli olmasını 
//ve yaşlanma süresinin dolmasından etkilenmemesini sağlar.

Aging (Yaşlanma): Port Security, öğrenilen MAC adreslerini belirli bir süre boyunca hatırlar ve bu süre zarfında bir cihazdan gelen trafik izin verilir. Bu sürenin sonunda, öğrenilen MAC adresleri otomatik olarak silinir. Yukardaki komut ise bu süre boyunca statik olarak yapılandırmasına izin verir.

Static (Statik): Öğrenilen MAC adreslerini statik hale getirir. Yani, belirli bir MAC adresi port-security tablosunda manuel olarak yapılandırılır ve bu adres, yaşlanma süresi dolmuş olsa bile otomatik olarak silinmez.

SW1(config-if)#switchport port-security aging time 2
// bu öğrenilen MAC adreslerinin 2 dakika boyunca hatırlanacağını gösterir.

Örneğin, bir cihazdan gelen trafik nedeniyle öğrenilen bir MAC adresi, bu süre içinde hatırlanır ve bu süre zarfında bu cihazdan gelen trafik izin verilir. Ancak, belirtilen süre zarfından sonra bu adres otomatik olarak silinir.

SW1(config-if)#switchport port-security aging type absolute
//Yani, öğrenilen bir MAC adresi üzerinden son trafik paketi alındığında
//bu tarih baz alınarak belirtilen süre zarfında hatırlanır ve bu süre zarfında bu cihazdan gelen trafik izin verilir.
SW1(config-if)#switchport port-security aging type inactivity 

Bu komut, öğrenilen MAC adreslerinin hatırlanma süresini, belirtilen bir süre zarfında bu cihazdan gelen trafik olmadığı durumda belirler. Yani, belirli bir MAC adresi üzerinden son trafik paketi alındığında, bu adresin hatırlanma süresi belirlenir ve bu süre zarfında bu cihazdan gelen trafik olmadığı takdirde bu adres otomatik olarak silinir.

Bu komutu kullanarak, Port Security özelliğinin yaşlanma süresini belirli bir cihazın ağa katılım aktivitesine göre düzenleyebilirsiniz. Bu sayede, belirli bir cihazdan gelen trafik olmadığında, öğrenilen MAC adresleri daha hızlı bir şekilde hatırlanabilir ve ağ kaynakları daha etkili bir şekilde kullanılabilir.

SONUÇ

CAM Table Overflow saldırısı, ağ anahtarının CAM (Content Addressable Memory) tablosunu aşırı yükleyerek, mevcut kayıtları doldurup yeni MAC adreslerini işleyemez hale getirir. Bu saldırı, ağ güvenliği için önemli olan MAC adres tablosunun etkisiz hale gelmesine neden olabilir. Önlemler arasında port-security kullanımı, VLAN segmentasyonu ve güncel ağ ekipmanları ile başa çıkabilen genişletilmiş CAM tabloları yer alır.

Var olan switch modeline bakarak kaç adet tabloda mac adresinide desteklediğini bulabilirsiniz.

Sonuç olarak bu saldırının ilerisi seviyede kullanımı tehlikeli içerik olduğu için burda kesmek durumunda kaldık,ama kısaca değinecek olursak, başka bir tehlikeli makinenin mac adresini içeriye enjekte edip LAN ağında bütün iletişimler yönlendirme ile kesilebilir ve uzak makineye kötü sonuçlar gönderilebilir. Gerisi ipucu vermeden APT saldırılarına girmektedir, gerçek hayat senaryosu.

Herkese okuduğu için teşekkür ederim.

Last updated