gate_keeper.jpgYerel aglardaki sistem/ag yoneticilerinin en buyuk sorunlarindan biri  IP adresini degistirerek erisim kontrol listelerini asmaya ugrasan calisanlardir. Bunun icin genelde yapilanlar, DHCP araciligi ile IP sabitlemek, MAC adresine gore filtreleme yapmak vs oluyor.

 Cogu ortamda bu yapilanlar basarili olamiyor. DHCP’den yapilan sabitleme, calisan IP Adresini degistirebilecek yetki ve bilgiye sahipse ise yaramiyor. MAC adresine gore filtreleme yapmak ise MAC adresini degistirmeye bilenler icin yine bir onlem olamiyor.

 
Peki bu durumda ne yapilabilir?

Bunun icin cesitli  yontemler dusunulebilir(benim sık rastladığım genelde mac tabanli filtreleme, ip tabanli filtreleme ve her ikisinin birlestirilerek ip-mac karsilastirmasinin dogrulugunun  kontrol edilmesi ediliyor. Boylece ip ya da mac’ini degistiren biri firewallun kurallarina takiliyor).

 Son yontem aslınada en gecerlisidir ama boyle bir ozellik her firewall’da  olmayabilir ve daha da onemlisi  bosu bosuna guvenlik duvarini yorar.

 Bunun yerine her işletim sisteminde standart bulunan ARP komutu ve TCP/IP protokol bilgisini ortaya koyarak kendi cozumumuzu olusturabiliriz ki bence en gecerli yontem olacaktir.

 
Kısaca ARP’ı hatırlayalım:

         ARP, yerel aglarda birbirleri ile haberlesmek isteyen sistemlerde ip-mac eslemesini yapan protokoldur. Iki IP Adresi haberlesmeden once mutlaka birbirlerinin MAC adreslerini ogrenmeleri ve iletisimi bu adresler uzerinden gerceklestirmeleri gerekir.

 
ARP sorgulamaları yapıldıktan sonra belirli muddet isletim sistemi tarafından bellege alınır ve o sure icerisinde tekrar gerekirse sorgulama yapılmadan kullanılabilir.

ARP komutunun sunduğu diğer iki önemli özellik, ARP kayıtlarının statik olarak girilebilmesi(yani X ip adresi icin ARP kayıtı girerek sorgulama yapılmasına gerek bıraktırmamak  ve degistirilemez olarak sabitlenebilmesi) ve  ip-mac ikililerini bir dosyadan okutabilmek(-f).

 

IP adresi sabit ve degistirilemez olarak girilen sistemin normal ARP kayıtlarından farkı

 (192.168.0.20) at 00:0a:a5:ea:98:1b on bge0 [ethernet]

 (192.168.0.15) at 00:12:4b:a4:17:b2 on bge0 permanent [ethernet]

 

ARP komutu ile ip/mac adresini degistirenlerin devre dısı bırakılması

 Basitce yaptigimiz bir arabirimden kullaniciya ip-mac ciftlerini girdirmek ve bunu arkaplanda bir script ile sisteme statik ve değişmez olarak tanimlamak.. Ya da fping/ping/hping/scapy vs ile ile tum agi tarayarak agdaki MAC kayıtlarının toplanmasını sağlamak ve arp –an komutu ile tüm kayıtları almak.

 Bundan sonra bu kayıtları bir dosyaya kaydederek

 #arp –f kayitlarin_bulundugu_dosya

 komutu çalıştırılırsa dosyadaki IP adresleri için sabit ve değişmez ARP kayıtları sisteme girilmiş olur.

 NOT: arp kayıtlarının bulunduğu dosyanın formatı şu şekilde olmalıdır.(FreeBSD icin)

 IP_Adresi  MAC_Adresi

Sonrasında ip-mac eslemesi yapılan ip adresleri icin Firewalldan  gerekli erisim yetkilerini tanımlayarak sadece o ip adreslerine erisim vermek gerekir.

 Boylece IP/MAC adresini degistiren biri,

        ARP kaydını tanımlamadıgımız aralıktan bir ip adresi alırsa: Firewall zaten o ip adresine erisim vermeyecektir.

       ARP kaydını tanımladığımız aralıktan bir ip adresi alırsa: Firewall’daki ip-mac kayıtları statik ve değişmez olacağından dolayı firewall ile erişimi kesilecektir. Nasıl mı?

 Mesela 1.1.1.2 ip adresi için sistemde statik ve değişmez olarak tanımlı mac adresi 00:11:22:33:44:55 olsun.

 İşletim sistemi 1.1.1.2 ip adresli hosta paketleri gönderirken 00:11:11:33:44:55 mac adresli makineye gidecek şekilde hazırlar ve gönderir..

 Ağdaki başka bir makine bu ip adresini uzerine alsa bile MAC adresi 00:11:22:33:44:55 olmadıktan sonra paketler spoof eden hosta geri dönmeyecektir.

 Bu yöntemin bir yararı da yerel ağlardaki MITM atakları kolaylıkla engelleyebilmesidir.

 Biraz karisik gorunsede suana kadar yan etkisini gormedim, gayet iyi calisiyor.

 Ekte Mac adresini degistiren hazin bir kullanicinin sonu gozukuyor.

 

# tcpdump -i fxp0 -tttnn -e icmp

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on fxp0, link-type EN10MB (Ethernet), capture size 96 bytes

000000 00:22:33:44:55:66 > 00:04:23:0c:5d:b8, ethertype IPv4 (0×0800), length 98: 1.2.3.4> 5.6.7.8: ICMP echo request, id 56936, seq 42, length 64

000051 00:04:23:0c:5d:b8 > 00:08:74:db:01:f8, ethertype IPv4 (0×0800), length 98: 1.2.3.5> 1.2.3.4: ICMP echo reply, id 56936, seq 42, length 64

1. 009937 00:22:33:44:55:66 > 00:04:23:0c:5d:b8, ethertype IPv4 (0×0800), length 98: 1.2.3.4> 5.6.7.8: ICMP echo request, id 56936, seq 43, length 64

000055 00:04:23:0c:5d:b8 > 00:08:74:db:01:f8, ethertype IPv4 (0×0800), length 98: 1.2.3.5> 1.2.3.4: ICMP echo reply, id 56936, seq 43, length 64

^C

4 packets captured

16 packets received by filter

 

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • StumbleUpon
  • Technorati
  • Twitter

Related posts:

  1. Ultrasurf ile Firewall kurallarını aşma
  2. Sucuri, ağ tabanlı bütünlük doğrulama/kontrol servisi
  3. Bilmek ve Taklit etmek…
  4. Nessus Taramalarini Kaydetmek & Taklit etmek
  5. IisShield – Application Layer Firewall