| Yazan: Hayrullah Kolukisaoglu,
Tarih: 15-12-2007 08:35
|
Okunma Sayısı : 1034  |
Beğenilme : Yok |
 Local networklerin vazgeçilmez protokollerinden biri olan DHCP, IP konfigürasyonlarını kolaylaştırmakle birlikte beraberinde getirdiği açıklar ile aynı zamanda bir tehlike oluşturur. Bu makalemizde DHCP’nin zayıf noktalarını ve bu noktalardan gelebilecek saldırıları nasıl önleyebileceğimizi anlatacağız.
Makalede DHCP’nin nasıl çalıştığı üzerinde durulmayacaktır. Fakat arzu eden arkadaşlar sitede daha önce yayınlanan Microsoft DHCP ve Cisco IOS DHCP Server makalelerini takip edebilirler. Bu iki makalenin incelenmesi konunun daha iyi anlaşılması bakımından çok faydalı olacaktır.
DHCP ataklarını iki başlık altında inceleyebiliriz;
1. DHCP Havuzunu Boşaltmak
2. Sahte DHCP Server ile IP konfigürasyonlarını bozmak.
Networkümüz içerisinde bir makinenin sürekli DHCPDISCOVER mesajları gönderdiğini ve bu mesajların sürekli farklı MAC adresleri ile gönderildiğini düşünelim. Böyle bir durumun DHCP Server tarafından farkedilmesi mümkün değildir. DHCP Server kendisine gelen isteklerin gerçek kullanıcılardan mı yoksa random üretilmiş MAC adreslerinden mi geldiğini anlayamayacağı için bu isteklerin hepsine cevap verecek ve işini en iyi şekilde yaptığını düşünecektir. Fakat sürekli gelen bu istekler DHCP Server’ın bir noktada tıkanmasına sebep olacaktır. Çünki üzerinde tanımlı scopelarda belirli sayıda ip adresi vardır ve mutlaka bitecektir. Bu atağın ardından gerçekten IP konfigürasyonu isteyen bilgisayarlar ise maalesef IP konfigürasyonlarını alamayacaklardır.
Atakların nasıl yapılacağı ile pek fazla ilgilenmesem de arama motorlarında yaptığım basit bir araştırma ile Yersinia adlı ücretsiz bir tool ile bu atağında çok kolaylıkla yapılabileceğini ve dolayısıyla DHCP serverımızın hizmet veremez hale geleceğini öğrendim. Internet üzerinde bu kadar basit bir şekilde bulunabilecek ve kullanımıda kolay olan tool’lar varken bunlara karşı önlem almak kaçınılmazdır. Ve DHCP Havuzundaki ip adreslerinin tüketilmesi şeklinde bir DoS atağına önlemek çok basittir. Bu noktada yapmamız gereken random MAC adresleri ile gönderilen DHCP isteklerini bir şekilde durdurmaktır ki, bu da daha önceki bölümde bahsettiğimiz Port Security ile mümkün olacaktır. Örnek bir konfigürasyonunu aşağıda verdiğim Port Security ile ilgili detaylı bilgileri makalede bulabilirsiniz. (Aynı atak şekli DHCP Rate Limitin ile daha etkili bir şekilde engellenebilir. Bu konudan makalenin ilerleyen bölümlerinde bahsediliyor)
Switch(config)# interface fa 0/1
Switch(config-if)# switchport port-security ?
aging Port-security aging commands
mac-address Secure mac address
maximum Max secure addresses
violation Security violation mode
<cr>
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security violation ?
protect Security violation protect mode
restrict Security violation restrict mode
shutdown Security violation shutdown mode
Switch(config-if)# switchport port-security violation shutdown
Bir başka atak şeklide az öncede bahsettğim sahte DHCP Server hizmeti vermektir.
Burada aklımıza ortamda birden fazla DHCP Server varsa, dolayısıyla istemci birden fazla DHCPOFFER mesajı alıyorsa bunlardan hangisini kabul edeceği sorusu gelecektir.
Genel olarak DHCP istemcileri daha önce kullandıkları ip adreslerini tanırlar. Yani DHCP Serverlar tarafından sunulan ip adresi eğer istemci tarafından daha önce kullanılmışsa istemci bu ip adresini içeren konfigürasyonu kabul edecektir. Fakat önerilen ip adresleri arasında istemcinin daha önce kullandığı ip adresi yoksa o zaman istemci basit olarak kendisine ilk önce cevap veren DHCP Serverın önerisini kabul eder ve ip konfigürasyonunu buna göre düzenler.
Burada akla gelen bir başka soruda neden ip konfigürasyonu bozulmak istensin. Bununda iki sebebi olabilir. Ya atacker basit olarak sistemi geçici sürede olsa çalışamaz hale getirmek istiyordur ya da network trafiğini dinlemek istiyordur. Sahte bir DHCP Server kurup kendisini default-gateway olarak gösteren ip konfigürasyonunu istemcilere dağıtan biri, trafik onun üzerinde geçeceğ için basit bir sniffer programıyla bir çok bilgiye erişebilir. Man-in-the-middle atak olarak değerlendirebileceğimiz bu atak şekli Cisco Switchler üzerinde yapılacak konfigürasyonlar ile engellenebilmektedir.
Cisco Switchlerin DHCP Snooping özelliği ile belirli bir Vlan’daki DHCP mesajları izlenebilir ve gerekirse kısıtlamalar yapılabilir. DHCP ile ip konfigürasyonunun dağıtılması işlemlerinde dönen mesajlardan DHCPOFFER ve DHCPACK mesajları sadece DHCP Server’lar tarafından gönderilir. İşte tam da bu noktada DHCP Snooping devreye girer ve istemcilerin bağlı olduğu portlardan DHCPOffer veya DHCPAck mesajı geldiğinde bu paketlerin switch tarafından bloklanmasını sağlar.
DHCP Snooping mantığı içerisinde portlar DHCP yönünden iki farklı modda olabilirler;
1. Trusted: Bütün DHCP mesajları gönderilebilir
2. Untrusted: DHCPOffer ve DHCPAck mesajları gönderilemez.

Tabi burada unutulmaması gereken bir diğer nokta Switchler arasındaki bağlantıların Trusted olması gerekliliğidir. Şekildeki yapıda istemcilerin bağlı olduğu portlar Untrusted, DHCP Serverın bağlı olduğu port ve switchler arasındaki bağlantıları sağlayan uplink portları Trusted olarak belirlenmiştir. Dolayısıyla istemciler gerçek DHCP Servera erişip ip konfigürasyonlarını alabilirken sahte DHCp Server Offer mesajını dahi gönderemeyecektir.
Fazla zaman almadan konfigürasyon aşamalarına geçmek istiyorum.
Öncelikle global konfigürasyon modunda enable edilir;
Switch(config)#ip dhcp snooping Switch(config)#ip dhcp snooping vlan 1 DHCP Snooping enable edildikten sonra bütün portlar Untrusted olacaktır. Bundan sonra yapılması gereken Trusted olması planlanan portlar altında aşağıdaki konfigürasyonun yapılmasıdır;
Switch(config-if)#ip dhcp snooping trust vlan 1
DHCP Server ile istemciler aynı subnette ise Option 82’nin disable edilmesi gerekmektedir.
Switch(config)#no ip dhcp snooping information option
Bu konfigürasyonlar tamamlandıktan sonra sadece DHCP yönünden güvenilir olan portlardan hizmet verilebilecektir.
DHCP Snooping Konfigürasyonu ile ilgili bazı önemli ipuçlarınıda vermek istiyorum.
DHCP Snooping’i enable ettikten sonra bütün portlar untrusted olacaktır. Dolayısıyla DHCP Server’ın bağlı olduğu port Trusted olana kadar istemcile ip konfigürasyonlarını alamayacaklardır. Bu noktada dikkatli olmakta fayda var.
Untrusted interfacelerde default olarak DHCP paket gönderimi ile ilgili bir sınırlama yoktur. Cisco’nun bu noktadaki önerisi untrusted interfaceleri control-plane saldırılarını önlemek için 100 pps’in altında tutulması şeklindedir. Untrusted bir portta rate limiting konfigürasyonu aşağıdaki gibi yapılabilir.
Switch(config-if)#ip dhcp snooping limit rate 100
İki switch arasındaki bağlantılarda trust enable edilmelidir.
Bir başka önemli olan noktada DHCP Snooping’i desteklemeyen switchlerdir. Burada çaresiz kaldığımızı düşünmek yanlış olur. Bu durumda yapılacak şey, uygun bir Access Control Lists hazırlayarak DHCP Server’ın kullandığı portları untrusted olarak düşündüğümüz interfacelerde bloklamak olacaktır.
Konfigürasyonlarımız hakkında bilgiler almak için kullanabileceğimiz bazı “show” komutları aşağıdaki gibidir;

Bu komut ile DHCP Snooping’in başarılı bir şekilde enable edildiğini ve Fastethernet 0/1 portunun trusted olarak belirlendiğini görebiliyoruz. Untrusted olan ve herhangi bir rate limitin uygulanmayan portlar burada listelenmezler.
 Bu komut ile ise DHCP Server’ın dağıttığı ip adreslerini görebiliyoruz. Evet arkadaşlar bu makalemizde DHCP Ataklarını kısaca tanıtaraki Cisco Switchler üzerinde bu ataklara karşı alabileceğimiz önlemler üzerinde durmaya çalıştık. Herkese iyi çalışmalar.
|
LAN Security Devamı
Yazan:: Akın Demirci () Tarih: 15-12-2007 20:16