Siber Güvenlik

DHCP Snooping Nedir? Sahte DHCP Sunucusunu Durdurmak

DHCP snooping nedir? Switch'in yalnız güvenilen porttan gelen DHCP cevabını geçirmesi. Lab'da sahte sunucunun dört teklifi de düştü, logda portu kaldı.

İlker Pehlivan

DHCP snooping, switch’in yalnız güvenilen olarak işaretlenmiş portlardan gelen DHCP sunucu cevaplarını geçirmesi, geri kalan portlardan gelen cevapları düşürmesidir. Ağa izinsiz takılan bir DHCP sunucusunun, yani sahte DHCP sunucusunun adres dağıtmasını bu yolla durdurur. Sahte sunucuyu kasıtlı kurup trafiği kendi üzerinden geçirmeye DHCP spoofing denir.

Bu yazıda bilgisayarımda bir test DHCP sunucusu çalıştırdım ve lab switch’imde aynı sahte teklifi snooping kapalıyken ve açıkken denedim. Kapalıyken teklif ilk saniyede kabul edildi. Açıkken dört teklifin dördü de düştü ve her biri logda sahte sunucunun portunu bıraktı.

Bir süpermarket şubesinde yeni gelen her görevli danışma masasından bir kart alır. Hangi reyonda çalışacağı ve sevkiyat rampasının nerede olduğu o karttadır. Raf aralarına kendi masasını kuran biri de kart dağıtabilir ve kartında rampa yanlış yazıyorsa koliler onun eline gider. DHCP snooping, yalnız danışma masasının durduğu kapıdan çıkan kartı geçerli sayan kuraldır. Bu yazıdaki eşleme şöyledir:

  • Danışma masası gerçek DHCP sunucusudur.
  • Kart DHCP teklifidir.
  • Rampa ağ geçididir.
  • Masanın durduğu kapı güvenilen porttur.
DHCP snooping benzetmesi: süpermarket şubesinde danışma masasındaki görevli yeni gelene kartını veriyor, raf arasına kurulmuş katlanır masadaki adamın uzattığı kartlara ise kimse dokunmuyor
Kart yalnız danışma masasının durduğu kapıdan geçerlidir. Switch de DHCP teklifini yalnız güvenilen porttan geçirir, raf arasından uzatılanı düşürür.

Bu yazı siber güvenlik önlemleri yazımızdaki ağ katmanının bir parçasıdır ve Siber Güvenlik hizmetimize aittir. DHCP’nin adres dağıtırken yaptığı dört adımlık konuşmayı DHCP nedir yazımızda anlattık. Snooping’i bir switch’te açmayı, güvenilen portu işaretlemeyi ve hız sınırını ise switch DHCP snooping yapılandırması yazımızda adım adım anlattım.

Sahte DHCP Sunucusu Nedir, Neden Tehlikelidir?

Sahte DHCP sunucusu, ağda yetkisi olmadığı hâlde adres dağıtan her cihazdır. DHCP’de adres isteyen cihaz sorusunu bütün ağa yayın olarak bağırır ve kimin cevap verdiğine bakmaz. Soruyu duyan her DHCP sunucusu teklif gönderebilir.

Teklif üç kritik bilgi taşır: cihazın adresi, ağ geçidi ve DNS sunucusu. Sahte sunucunun zararı bu üç bilgiden gelir ve iki biçimde ortaya çıkar:

  1. Kaza. Bir çalışan masasının altına ev router’ını takar. Router kendi aralığından adres dağıtmaya başlar ve o adresi alan bilgisayarlar kurumun ağ geçidine ulaşamaz. Belirti, “bazı bilgisayarların interneti yok” şikâyetidir.
  2. Saldırı. Sahte sunucu ağ geçidi olarak kendi adresini verir. Adresi ondan alan cihazın bütün trafiği önce onun üzerinden geçer ve saldırgan trafiği okuyabileceği bir konuma yerleşir.

Active Directory’deki DHCP yetkilendirmesi bu ikisini durdurmaz. Yetkilendirme yalnız Windows DHCP sunucularını kapsar; ev router’ı, bir Linux servisi ya da firewall’daki DHCP bu denetimi tanımaz. Bunu Windows Server DHCP kurulumu rehberimizin yetkilendirme bölümünde de yazdık. Kablonun ucundaki her kaynağı durdurabilecek tek yer switch’tir, çünkü cevabın hangi porttan geldiğini yalnız switch görür.

DHCP Snooping Nasıl Çalışır? Güvenilen ve Güvenilmeyen Port

Sahte sunucunun zararı cevabından geldiği için snooping de cevaba bakar. Switch DHCP mesajlarını kimden geldiğine göre ikiye ayırır:

  1. İstemci mesajları (DISCOVER ve REQUEST) adres isteyen cihazdan gelir ve her porttan geçer.
  2. Sunucu mesajları (OFFER ve ACK) adres verenden gelir ve yalnız güvenilen olarak işaretlenmiş porttan geçer. Güvenilmeyen porttan gelen sunucu mesajı düşer.

Snooping açıldığında bütün portlar güvenilmeyen olarak başlar ve özellik yalnız yöneticinin yazdığı VLAN’larda çalışır. Güvenilen port, gerçek DHCP sunucusuna giden porttur: uplink, sunucunun bağlı olduğu port ya da DHCP dağıtan firewall’un portu. Ağda DHCP’yi hangi cihazın dağıttığını DHCP nedir yazımızda anlattık.

Snooping açık bir switch'te DHCP mesajlarının yolu. Bilgisayarın adres isteği (DISCOVER ve REQUEST) güvenilmeyen porttan girer ve güvenilen porttaki gerçek DHCP sunucusuna da, öbür güvenilmeyen porttaki sahte sunucuya da ulaşır. Gerçek sunucunun cevabı (OFFER ve ACK) güvenilen porttan girer ve bilgisayara ulaşır. Sahte sunucunun cevabı güvenilmeyen porta girerken düşer. Snooping açık bir switch'te DHCP mesajları Gerçek DHCP sunucusu Switch güvenilen güvenilmeyen güvenilmeyen Bilgisayar (istemci) Sahte sunucu (ev router'ı) istek cevap istek cevap geçer istek cevap düşer İstek: DISCOVER ve REQUEST. Cevap: OFFER ve ACK. Snooping açık bir switch'te DHCP mesajlarının yolu. Bilgisayarın adres isteği (DISCOVER ve REQUEST) güvenilmeyen porttan girer ve güvenilen porttaki gerçek DHCP sunucusuna da, öbür güvenilmeyen porttaki sahte sunucuya da ulaşır. Gerçek sunucunun cevabı (OFFER ve ACK) güvenilen porttan girer ve bilgisayara ulaşır. Sahte sunucunun cevabı güvenilmeyen porta girerken düşer. Snooping açık bir switch'te DHCP mesajları Gerçek DHCP sunucusu istek cevap geçer güvenilen Switch güvenilmeyen güvenilmeyen Bilgisayar (istemci) Sahte sunucu (ev router'ı) istek cevap istek cevap düşer İstek: DISCOVER ve REQUEST. Cevap: OFFER ve ACK.
İstek her porttan geçer ve sahte sunucuya da ulaşır; cevap ise yalnız güvenilen porttan geçer. Snooping soruyu değil cevabı süzer.

Örnekteki mağaza şubesinde danışma masasına soru her kapıdan gelebilir, kart ise yalnız masanın durduğu kapıdan çıkar. Snooping ayrıca güvenilmeyen portlarda adres alan cihazları bir tabloya yazar; o tabloya aşağıda döneceğiz.

Snooping Kapalıyken: Sahte Sunucu Adresi İlk Saniyede Verdi

Kuralı görmeden önce kuralın yokluğunu ölçtüm. Ölçümün düzeni şöyleydi:

  • Sahte sunucu bilgisayarımdaydı. Bilgisayar switch’in Gi1/0/2 portuna, VLAN 5’e bağlı. Üzerinde çalışan küçük bir test sunucusu her adres isteğine 192.168.5.50 teklif ediyor, kendini 192.168.5.66 diye tanıtıyordu. Ağ geçidi vermiyordu, böylece lab’da trafik bir yere sapmadı.
  • Adres isteyen cihaz switch’in kendisiydi. Switch’in VLAN 5 arayüzünü adresini DHCP’den alacak şekilde ayarladım. Böylece istemcinin ne aldığını switch’in kendi ekranından okuyabildim.
  • Ağda başka DHCP sunucusu yoktu. Teklif yarışı ölçülmedi; istemcinin önünde tek teklif vardı.

Snooping kapalıyken test sunucusunun kaydı dört adımın dördünü aynı saniyede gösterdi:

Çıktı
07:16:35 geldi DISCOVER istemci f4:8e:38:1b:18:4d
07:16:35 gonderildi OFFER 192.168.5.50 -> f4:8e:38:1b:18:4d
07:16:35 geldi REQUEST istemci f4:8e:38:1b:18:4d
07:16:35 gonderildi ACK 192.168.5.50 -> f4:8e:38:1b:18:4d

Switch sahte adresi aldı:

Switch Konsol Çıktısı
gmsw01#show dhcp lease
IP address: 192.168.5.50 on interface Vl5
Subnet mask: 255.255.255.0
   DHCP lease server: 192.168.5.66, State: 7 Renew Receive
...

DHCP lease server satırında ağda hiç olmayan bir sunucu yazıyor. İstemci teklifin kimden geldiğini sorgulamadı, çünkü DHCP’de böyle bir sorgu yoktur. Sahte masanın kartı elden ele geçti.

Snooping Açıkken: Dört Teklif, Dört Düşüş

Sahte sunucunun ne kadar kolay kazandığını gördük. Aynı switch’te snooping’i VLAN 5 için açtım; kullandığım satırları yapılandırma yazımızda anlattık. Sonra aynı test sunucusunu çalıştırdım ve switch’e yeniden adres istettim. Sunucunun kaydı bu kez yarım kaldı:

Çıktı
07:18:44 geldi DISCOVER istemci f4:8e:38:1b:18:4d
07:18:44 gonderildi OFFER 192.168.5.50 -> f4:8e:38:1b:18:4d
07:18:51 geldi DISCOVER istemci f4:8e:38:1b:18:4d
07:18:51 gonderildi OFFER 192.168.5.50 -> f4:8e:38:1b:18:4d
07:19:01 geldi DISCOVER istemci f4:8e:38:1b:18:4d
07:19:01 gonderildi OFFER 192.168.5.50 -> f4:8e:38:1b:18:4d
07:19:20 geldi DISCOVER istemci f4:8e:38:1b:18:4d
07:19:20 gonderildi OFFER 192.168.5.50 -> f4:8e:38:1b:18:4d

Dört istek geldi ve dört teklif gönderildi, ama hiç REQUEST gelmedi. İstemci teklifi hiç görmediği için kabul de edemedi ve 7, 10 ve 19 saniye arayla yeniden sordu. Switch’in logu her teklif için dört satır yazdı:

Switch Konsol Çıktısı
<188> Sep 28 04:19:27 gmsw01-1 DHCP_SNP[dtlTask]: ds_main.c(2597) 585 %% DHCP snooping dropping DHCP server message received on untrusted interface Gi1/0/2 on vlan 5. This message appears when DHCP Snooping untrusted port drops the DHCP Server message.
<188> Sep 28 04:19:27 gmsw01-1 DHCP_SNP[dtlTask]: ds_util.c(1705) 586 %% Ethernet header: dest FF:FF:FF:FF:FF:FF, src 58:11:22:B1:0E:54, type/len 0x8100.
<188> Sep 28 04:19:27 gmsw01-1 DHCP_SNP[dtlTask]: ds_util.c(1738) 587 %% IP packet: ver/hlen 0x45, tos 0, len 290, id 49089, flags/offset   00, ttl 128, proto 17, src 192.168.10.224, dst 255.255.255.255.
<188> Sep 28 04:19:27 gmsw01-1 DHCP_SNP[dtlTask]: ds_util.c(1780) 588 %% DHCP packet: op Reply, htype 1, hlen 6, hops 0, xid 948219865, secs 0, ciaddr 0.0.0.0, yiaddr 192.168.5.50, server 192.168.5.66, giaddr 0.0.0.0, chaddr F4:8E:38:1B:18:4D.

Sahte sunucuyu bulmak için bu dört satırda şunlara bakılır:

  1. Port. untrusted interface Gi1/0/2 sahte sunucunun takılı olduğu kabloyu söyler. Aranan cevap budur.
  2. Kaynak MAC ve kaynak IP. src 58:11:22:B1:0E:54 ve src 192.168.10.224 teklifi gönderen cihazın gerçek adresleridir. MAC adresini switch’in MAC tablosunda ya da envanterde arayarak cihazı bulabilirsiniz.
  3. Sunucu kimliği. server 192.168.5.66 sahte sunucunun kendini tanıttığı adrestir ve uydurmadır: test sunucum bu adresi kendi adresi gibi yazdı. Logdaki asıl iz sunucu kimliği değil, porttur.

<188> bu satırların uyarı seviyesinde olduğunu gösterir. Log sunucunuz uyarı seviyesini topluyorsa bu satırlar oraya da düşer; seviyenin nasıl ayarlandığını switch syslog ayarı yazımızda anlattık. Switch’in snooping sayacı da güvenilmeyen porttan gelen sunucu mesajlarını ayrıca saydı.

Benzetme burada kopuyor. Örnekteki mağaza şubesinde raf arasına kurulan masa gözle görülür. Ağda sahte sunucu bir kablonun ucunda sessizce çalışır ve onu gösteren tek şey switch’in logu ile sayacıdır.

Bir ayrıntıya da dikkat edin: adres istekleri güvenilmeyen porttan sahte sunucuya ulaşmaya devam etti. Snooping soruyu değil cevabı süzer. Danışma masasının dışında kart dağıtan kişi soruları duymaya devam eder, ama uzattığı kart kimsenin eline geçmez.

Güvenilen Port: Kuralın Bütün Gücü Buradan Gelir

Snooping’in gücü hangi portun güvenilen olduğundan gelir. Bunu görmek için bilgisayarımın, yani sahte sunucunun takılı olduğu portu güvenilen yaptım. Test sunucusu aynı saniyede dört adımın dördünü tamamladı ve switch sahte adresi yeniden aldı; kira State: 5 Bound ile tamamlandı.

Snooping açıktı ve kural yerindeydi; değişen tek şey hangi kapının danışma masası sayıldığıydı. Kullanıcı portunu güvenilen yapmak, sahte masayı danışma masasının yerine koymaktır. Güvenilen port listesinin nasıl çıkarıldığını ve neden kısa tutulduğunu yapılandırma yazımızda anlattık.

Güvenilen portların durduğu yer bu yüzden de korunur. Uplink, sunucu portu ve firewall portu çoğunlukla sistem odasındaki ya da kabindeki switch’tedir. Snooping bir portun ucunda kimin durduğunu bilmez, yalnız portun işaretine bakar. Sistem odasına giren biri güvenilen bir portun kablosunu çıkarıp yerine kendi cihazını takarsa, o cihazın cevapları hiçbir kurala takılmadan geçer. Lab’da yanlış porta yazılan tek bir trust satırının yaptığını, kilitsiz bir oda kablo değiştirerek yaptırır.

Aynı odada switch’lerin konsol portları ve sunucuların kendisi de durur. Oraya giren kişi snooping’i dolaşmakla kalmaz, sistemlere doğrudan da el koyabilir. Sistem odası bu iki sebeple kilitli tutulur, kabinler kilitlenir, girişler kayıt altında olur ve switch’te kullanılmayan portlar kapatılır. Örnekteki mağaza şubesinde danışma masasının arkasına geçebilen biri, kartı masanın kendi kapısından verir ve kimse onu sorgulamaz. Fiziksel erişimin güvenlik katmanlarındaki yerini siber güvenlik önlemleri yazımızın fiziksel erişim bölümünde anlattık.

DHCP Snooping Bağlama Tablosu ve Dynamic ARP Inspection

Snooping cevapları süzmekle kalmaz, güvenilmeyen portlarda adres alan cihazları bir tabloya da yazar. Bu tabloya bağlama tablosu denir ve her satırda bir cihazın MAC adresi, aldığı IP adresi, VLAN’ı ve portu durur. Danışma masası kime hangi kartı verdiğini bir deftere yazar.

Lab’da bu tablo boş kaldı:

Switch Konsol Çıktısı
gmsw01#show ip dhcp snooping binding
Total number of bindings:  0
   MAC Address       IP Address     VLAN   Interface    Type    Lease (Secs)
-----------------  ---------------  ----  -----------  -------  ------------

Sebep düzenin kendisiydi. Adres isteyen cihaz bir port arkasındaki bilgisayar değil, switch’in kendi VLAN 5 arayüzüydü. Tabloyu dolduran senaryoyu, yani kullanıcı portundaki bir bilgisayarın güvenilen porttaki gerçek sunucudan adres aldığı düzeni bu lab’da ölçmedim.

Tablonun asıl değeri başka bir korumaya ön koşul olmasıdır. Dynamic ARP Inspection (DAI), bir cihazın “bu IP adresi benim” diyen ARP mesajını bu tabloya bakarak doğrular ve tabloyla uyuşmayanı düşürür. ARP spoofing’e karşı switch’in verdiği cevap budur ve snooping açık değilse bakacağı defter de yoktur. ARP spoofing’in nasıl çalıştığını ve savunmanın üç aracını ARP nedir yazımızda anlattık.

Snooping’in bir koruması daha, sunucunun adres havuzunu saniyede çok sayıda sahte istekle tüketmeye çalışan saldırıya, yani DHCP starvation’a karşıdır. Port başına bir hız sınırı konur ve sınırı aşan port kapanır. Lab’da saniyede 30 istek gönderen portun nasıl kapandığını yapılandırma yazımızın hız sınırı bölümünde ölçtüm.

DHCP Snooping Hakkında Yanlış Bilinenler

  • “AD’deki DHCP yetkilendirmesi yeter.” Yetkilendirme yalnız Windows DHCP sunucularını durdurur; ev router’ı ve Linux servisi onu tanımaz.
  • “Snooping soruları da süzer.” Süzmez. Lab’da adres istekleri güvenilmeyen porttan sahte sunucuya ulaşmaya devam etti; düşen yalnız cevaplardı.
  • “Sahte sunucu logdaki sunucu kimliğinden bulunur.” Kimlik uydurulabilir. Aranacak yer port ve kaynak MAC adresidir.
  • “Güvenilen port sayısının önemi yok.” Güvenilen her port, oradan gelen cevabın sorgusuz geçmesi demektir. Lab’da tek bir güvenilen kullanıcı portu sahte teklifi yeniden geçirdi.
  • “DAI tek başına kurulur.” DAI, IP ve MAC eşleşmesini snooping’in bağlama tablosundan okur; snooping kapalıysa bakacağı defter yoktur.

Sonuç: DHCP Snooping Soruyu Değil Cevabı Süzer

DHCP snooping, cevabın hangi porttan geldiğine bakarak sahte DHCP sunucusunu durdurur. Lab’da snooping kapalıyken sahte teklif ilk saniyede kabul edildi. Açıkken dört teklifin dördü de düştü ve her biri logda sahte sunucunun portunu bıraktı. Kullanıcı portunu güvenilen yapmak ise korumanın hepsini geri aldı.

Kuralın bütün değeri güvenilen port listesinin doğruluğundadır. Süpermarket şubesinde danışma masası tek bir yerdedir ve kart yalnız onun kapısından çıkınca geçerlidir; switch’te o kapı güvenilen porttur.

Snooping’i kendi switch’inizde açmanın adımlarını ve doğrulamasını switch DHCP snooping yapılandırması yazımızda anlattım. Ağ katmanındaki öbür önlemleri siber güvenlik önlemleri yazımızda bir arada anlattık.

DHCP Snooping Hakkında Sık Sorulan Sorular

DHCP spoofing saldırının, DHCP snooping savunmanın adıdır. Spoofing'de saldırgan ağa kendi DHCP sunucusunu kurar ve ağ geçidi olarak kendi adresini dağıtır; adresi ondan alan cihazın trafiği önce saldırgandan geçer. Snooping, switch'in yalnız güvenilen porttan gelen DHCP cevabını geçirmesidir. Lab'da snooping açıkken sahte sunucunun dört teklifinin dördü de istemciye ulaşmadı.
Durdurmaz. Yetkilendirme yalnız Windows DHCP sunucularını kapsar; bir Linux DHCP servisi, firewall'daki DHCP ya da masa altına takılan bir ev router'ı bu denetimi tanımaz. Kablonun ucundaki her DHCP kaynağını durduran yer switch'tir.
Switch'in logundan bulursunuz. Lab'da her düşürülen teklif için switch dört satır yazdı: portu (Gi1/0/2), kaynak MAC adresini, teklif edilen adresi ve sunucu kimliğini. Sunucu kimliği uydurulabilir, lab'daki test sunucum da sahte bir adres yazdı; porta bakın.
Doğrudan durdurduğu şey güvenilmeyen porttan gelen DHCP sunucu cevabıdır; sahte sunucu ve DHCP spoofing buna girer. Port başına hız sınırıyla birlikte, adres havuzunu sahte isteklerle tüketmeye çalışan DHCP starvation'a da karşı durur: lab'da saniyede 30 istek gönderen port kapandı. ARP spoofing'i ise snooping değil, snooping'in bağlama tablosunu okuyan Dynamic ARP Inspection durdurur.
İlker Pehlivan
Yazan

BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi

İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştürür. Buradaki rehberleri kendi laboratuvarında kurup ölçerek yazar.

LinkedIn

Benzer Makaleler

Siber Güvenlik altındaki diğer 11 makale