İkinci Katman (Layer2) Atakları ve Önlenmesi

Arthur Conan Doyle’ın söylediği rivayet edilen güzel bir söz var “Bir zincir, en zayıf halkası kadar güçlüdür.” Bu sözü güvenlik tarafına uygularsak; ağınız, en zayıf ve göz ardı edilen katman kadar saldırılara dayanıklıdır.  

7 katmanlı OSI modelini düşündüğümüzde 2. katman (layer 2) yani veri bağlantısı katmanı (data link) en zayıf görünen ve korunması göz ardı edilen katman olarak karşımıza çıkıyor. Yapanları tenzih ederim ama merak ediyorum sızma testi uzmanlarından kaçı yazdıkları raporda “şu switchte şu layer 2 protokol çalışıyor ve bu protokolden dolayı bu bu zafiyetler oluşuyor ve bu şekilde de istismar ettik” diyor.

İşin bir de saldırıların hep dışarıdan geleceği gibi yanlış bir algı var. FBI’ın 2004 yılında yaptığı bilgisayar suçları ve güvenlik anketine göre gayri memnun çalışanlar tarafından içeriden saldırı yapabilme ihtimali %56 olarak belirlenmiştir. 

Bunun dışında yerel ağa bir şekilde sızan siber saldırganın pivoting yöntemiyle diğer cihazlara geçiş yapması veya ele geçirdiği cihaz üzerinden MITM gibi yerel ağ saldırılarında bulunması göz ardı edilmemesi gereken ihtimallerdendir. 

Ayrıca 2.Katman bir şekilde istismar edildiğinde bunun diğer katmanları da tehlikeye atacağını unutmak gerekir.

Günümüzde ağ ve güvenlik uzmanları arasındaki kopukluk ta tehlikenin boyutunu büyüten etmenlerden. Ağ uzmanının güvenlikten haberi yok, güvenlik uzmanın ağdan haberi yok. Bu durumu özetleyen bir tabloyu dikkatlerinize sunmak isterim.

Soru-SorunAğ UzmanıGüvenlik Uzmanı
İkinci katman güvenlik konularındaki tutumunuz nedir?İkinci katman güvenlik sorunları mı var?Üçüncü katman ve üzeri güvenlik sorunları ile ilgileniyoruz
VLAN’ları sık kullanıyor musunuz?VLAN’ları her zaman kullanırımVLAN kullanıyor muyuz bilmiyorum
VLAN’leri kullanarak aynı anahtara hiç farklı güvenlik düzeyleri koydunuz mu?Aynı anahtarın içine ve dışına yönlendirme benim için sorun değil! VLAN’lar bunun için var.Ağ yöneticisinin anahtarla ne yaptığı neden umurumda?
Segmentler için adres ayırma işlemi nedir?Güvenlikçi benden yeni bir bölüm istedi, VLAN oluşturdum ve adres alanı atadım.Ağ Yöneticisinden bir segment rica ediyorum, bana port ve adres veriyorlar

Yukarıda saydığımız nedenlerden dolayı 2. katman ağ güvenliğine odaklanmak çok önemlidir. Bunun için yazı boyunca 2.katmanda gerçekleşen saldırıları ve önleme/azaltma yöntemlerini göreceğiz.,

Not: Göreceğimiz örnek yapılandırmalarda Cisco ağ cihazları kullanılmıştır.

CAM Overflow (CAM Taşması) Atağı ve Önlenmesi 

CAM tablosu İçerik Adreslenebilir Bellek Tablosu anlamına gelir . (CAM-Content Addressable Memory)

CAM tablosu, fiziksel portlarda bulunan MAC adresleri gibi bilgileri, ilgili VLAN parametreleriyle birlikte saklar. CAM tabloları sabit bir boyuta sahiptir.

Anahtarlar portlarına gelen çerçeveyi (Frame) nereye ileteceğini belirlemek için hedef MAC adresi bilgisine bakar. CAM tablosunda mevcutsa ilgili porta iletir değilse flood eder yani tüm portlarına gönderir. 

Daha önce de bahsedildiği gibi Cisco switchlerin sınırlı bir CAM tablo alanı vardır. CAM overflow atağında amaç aynı anda farklı kaynak MAC adresine sahip  binlerce çerçeve (frame) göndererek CAM tablosunu doldurup taşırmak ve sonuçta anahtarın (switch) dağıtıcı (hub) gibi çalışmasını sağlamaktır. Bu sayede diğer hostlar arasındaki iletişim görüntülenebilecektir. Hatta switch çalışmaz duruma gelebilir.

Bu saldırıda başlangıçta Perl ile yazılmış ve Dsniff içine paketlenmiş olan Macof aracı kullanılır.  Macof dakikada bir anahtarda 155.000 MAC girişi oluşturabilir. Amaç, CAM tablosunu yanlış girişlerle doldurarak anahtarı trafikle doldurmaktır. Sonrasında anahtar trafiği yerel VLAN’ında tüm portlara (flood yapar) yayınlar, böylece saldırganın başka türlü görüntülenmeyecek diğer VLAN trafiğini görmesini sağlar.

Aşağıdaki topolojiyi GNS3 programı ile oluşturup atağı gerçekleştireceğiz.

 

 

Ama öncesinde anahtarın mac tablosunu show mac address-table komutu ile görüntüleyelim.

 

 

Gördüğünüz gibi tabloda 4 tane kayıt bulunmakta.

Şimdi saldırıya başlayalım. Yapmamız gereken çok basit, Kali’de terminali açıp macof komutunu yazmak.

 

 

Bu komutu yazmamızla birlikte sahte MAC adresine sahip binlerce frame switche doğru hücum etmeye başladı. Şimdi tekrar mac tablosuna göz atalım.

 

 

Gördüğünüz üzere yüzlerce MAC adresi tabloyu işgal etmiş durumda. Hepsi de aynı portta karşılık yazılmış görünüyor. Resmin altında –More– ifadesine dikkat edin. Bu klavyeden boşluk tuşuna basarsanız dahasını göreceksiniz demek.

 

CAM Overflow (CAM Taşması) Atağının Önlenmesi/Azaltılması: 

 

Bu tür bir saldırıyı önlemek için anahtard, bağlantı noktası güvenliği (port security özelliğini kullanabiliriz. Örneğin, yukarıdaki şekle göre çok sayıda mac adresi Gi0/0’dan geliyorsa, ağ yöneticisi bu bağlantı noktasındaki mac adreslerini sınırlayabilir. Bu nedenle, trafik sınırın dışına çıkarsa, anahtarda bir ihlal (violation) olur ve belirlenen bağlantı noktası varsayılan olarak kapatılır.

 

Cisco switchte yapılması gereken örnek yapılandırma:

 

Switch(config)#interface Gi0/0

Switch(config-if)#switchport mode access

Switch(config-if)#switchport port-security 

Switch(config-if)#switchport port-security maximum 2

Switch(config-if)#switchport port-security mac-address sticky

Switch(config-if)#switchport port-security violation shutdown

 

Yukarıdaki örnek yapılandırmada gi0/0 arayüzü (port) üzerinde port güvenliği yapılandırılmıştır. maximum 2 parametresi ile ilgili portun en fazla 2 mac adresi öğrenmesi, sticky parametresi ile de bu öğrenme işleminin otomatik olması ve kalıcı hale gelmesi sağlanmıştır. violation shutdown ile de ihlal durumunda port kapanacaktır.

 

Port güvenliği ihlal modu yukarıdaki örnekteki gibi  shutdown ayarlanmış ise ihlalden sonra portu etkinleştirmek için ; önce shutdown sonra no shutdown komutları ağ yöneticisi tarafından girilmelidir.

 

Aşağıdaki komutu kullanarak bağlantı noktasını ihlalden sonra  ağ yöneticisinin müdahalesi olmadan otomatik kurtarabiliriz. (30 saniye sonra port normal duruma döner, ihlal devam ediyorsa tekrar shutdown olur)

 

Switch(config)#errdisable recovery cause psecure-violation 

Switch(config)#errdisable recovery interval 30

CDP Atakları ve Önlenmesi

 

CDP (Cisco Discovery Protocol-Cisco Keşif Protokolü) Nedir? 

 

Cisco cihazlara özgü, Layer 2 çalışan ve cihazların birbirini keşfedip bilgi sahibi olmalarını sağlayan bir protokoldür.

 

Varsayılan olarak çalışır haldedir. 60 sn’de bir aktif portlarından CDP mesajları göndererek bilgi alır ve verir. Bu bilgiler show cdp neighbors komutu ile görüntülenebilir. Daha ayrıntılı bilgi için show cdp neighbors detail komutu kullanılır. 180 sn hold time süresi vardır. Yani bir cisco ağ cihazı  180 saniye boyunca CDP mesajı almaz ise komşsunu unutur.

 

 

Yukarıdaki resimde backbone switche bağlı Cisco cihazları görüntüledik. 

 

CDP Flood Atağı

 

Kali Linuxta hazır kurulu gelen yersinia aracı ile bir anahtara kısa zamanda çok sayıda CDP mesajları göndererek anahtarın durmasına-kilitlenmesine neden olabiliriz. Yapılan atak bir anlamda DoS saldırısıdır ve anahtarın CPu’su aşırı yüklenerek cihaz çalışamaz hale gelebilir.

yersina aracını grafiksel olarak komut satırında yersinia -G yazarak çalıştırabiliriz.

 

Saldırıdan önce switchin cdp komşu tablosuna bakalım.

 

 

Görüldüğü üzere switchin herhangi bir CDP komşusu bulunmuyor. Bir de CDP trafiğine bakalım. Input kısmına dikkat ediniz.

 

 

Şimdi de yersinia aracını açıp CDP flood atağına başlayalım. Yersinia aracında launch attack simgesine tıklayalım. CDP sekmesine gelip flooding cdp table kısmını seçip OK’a tıklayın.

 

 

Atağı durdurmak için list attacks düğmesine tıklayın, açılan pencerede stop düğmesine tıklayın.

 

 

Şimdi anahtarda tekrar cdp komşu tablosuna ve trafik durumuna bakalım.

 

 

 

Resimlerde görüldüğü üzere anahtarın G0/0 portuna bağlı yüzlerce cihaz görüntülendi ayrıca birkaç dakikada anahtara 1965 cdp mesajı geldi. 

 

CDP Flood Atağının Önlenmesi

Varsayılan olarak CDP Cisco cihazlarda çalışır haldedir. İsterseniz global yapılandırma modunda  no cdp run komutu kullanılarak kapatılabilir. CDP protokolü birçok yerde işimize yarar örneğin trunk portlar arası native vlan eşleşmediğini bildirir. Tavsiye edilen switchler arasındaki portlarda çalışması diğer portlarda kapatılmasıdır. Kali Linux’un bağlı olduğu g0/0 portunda CDP disable edelim yani kapatalım.

 

 

Kali Linuxa dönüp yersinia aracı ile saldırıyı tekrarlayalım.Gördüğünüz gibi anahtarın cdp komşu tablosu bomboş.

 

 

Yine CDP trafiğine bakarsak sayaç artmamış hala 1965 gösteriyor. Yani gelen yeni CDP mesajı yok.

 

 

Daha fazlasını Udemy Cisco Network Hacking eğitiminde bulabilirsiniz.

DHCP Atakları ve Önlenmesi

 

Bir DHCP sunucusu dinamik olarak IP adreslerini bir ağdaki ana bilgisayarlara atar. Yönetici, atamak için uygun adres havuzları oluşturur. Kira süresi adreslerle ilişkilendirilir. Bir DHCP açlığı (starvation) saldırısı, DHCP isteklerini sahte MAC adresleriyle yayınlayarak çalışır. Bu senaryo, DHCP kapsamının tamamına bakan ve DHCP kapsamındaki tüm DHCP adreslerini kiralamaya çalışan, gobbler veya yersinia gibi saldırı araçlarıyla gerçekleştirilir. Bu, SYN taşkını saldırısına benzeyen basit bir kaynak açlığı saldırısıdır. Saldırgan daha sonra sahte bir DHCP sunucusu kurabilir ve ağdaki istemcilerden gelen yeni DHCP isteklerine yanıt verebilir. Bu, “ortadaki adam” saldırısına neden olabilir.

 

DHCP Starvation Atağı

 

Bu saldırıda da yersinia aracını kullanacağız. Şekildeki seçenekle saldırgan  DHCP sunucuya çok sayıda DHCP Discover gönderir. DHCP sunucu Offer dönerek poolda bulunan tüm adresleri kira süresi boyunca tahsis eder.

 

 

DHCP Sunucuda artık atanacak adres kalmayınca yersinia ile sahte DHCP sunucu oluşturularak istemcilere sahte  sunucu tarafından adres ataması gerçekleştirilir.

 

 

İstemciler sahte sunucunun atadığı adresi alır. Varsayılan ağ geçidi ve DNS sunucu sahte sunucu  olduğu için artık tüm ağ dışına gidecek trafik sahte sunucuya yönlendirilir. Yine DNS sorguları sahte sunucu tarafından cevaplanarak sahte web adreslerine  yönlendirme yapılabilir.

 

 

Gördüğünüz gibi bir istemci sahte DHCP sunucunun verdiği IP bilgilerini almış.

 

 

Port Security ve DHCP Snooping İle Atağın Önlenmesi

 

Daha önce gördüğümüz Port Security yapılandırması ile DHCP Starvation atağını önleyebiliriz. Böylelikle birinci discover paketinden sonraki paketler ( sahte kaynak MAC adresine sahip olacaktır) port kapandığı için geçmeyecektir.

DHCP Spoofing atağını engellemek için Cisco anahtarlarda DHCP Snooping yapılandırması gerçekleştirilir. DHCP Snooping ile DHCP sunucunun bağlı olduğu port/portlar trust (güvenilir) olarak işaretlenir ve DHCP Sunucudan dönmesi gereken Offer ve Ack gibi mesajların geçmesine izin verilir. Diğer portlar untrust olarak işaretlenir ve sahte DHCP sunucudan gelen Offer ve Ack gibi mesajların geçmesine izin verilmez.  Ayrıca untrust portlara rate limit atanarak ta DHCP starvation engellenmiş olur.

 

DHCP Snooping Yapılandırması

 

Switch# configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Switch(config)# ip dhcp snooping

Switch(config)# ip dhcp snooping vlan 10 100

Switch(config)# interface GigabitEthernet 0/1 (DHCP Sunucunun bağlı olduğu port güvenilir olarak belirlenir)

Switch(config-if)# ip dhcp snooping trust

Switch(config-if)# interface FastEthernet 0/2

Switch(config-if)# ip dhcp snooping limit rate 100  (Arabirimin alabileceği saniye başına DHCP paketi sayısını (pps) yapılandırır.)

Switch(config)# end

Switch# show ip dhcp snooping

 

Daha fazlasını Udemy Cisco Network Hacking eğitiminde bulabilirsiniz.

 

About The Author

2 Comments

  1. dale dost 17 Haziran 2021 Yanıtla
    • Cemal Taner 28 Mart 2023 Yanıtla

Reply