Bu Yazıda Dynamic ARP Inspection (DAI) Nedir, Nasıl Çalışır, Hangi Saldırıları Önler (ARP Poisoning Attack (Man-in-the-Middle)) ve DAI Yapılandırması Hakkında Bilgi Edineceğiz.
Dynamic ARP Inspection (DAI), Cisco Switch'de Bulunan ve ARP Saldırılarına Karşı Koruma Sağlayan Güvenlik Özelliğidir.
İlk olarak ARP (Address Resolution Protocol) ve Gratuitous ARP Konularını Hatırlayalım. ARP Konusunu Tekrar Etmek için ilgili yazıyı da Okuyabilirsiniz.
ARP (Address Resolution Protocol)
- Layer 3 IP Adresinin Layer 2 MAC Adresini Keşfetmek için Kullanılır.
- Örneğin Bir PC, Dış Ağ ile İletişim Kurmak için Default Gateway'in MAC Adresini Öğrenmek Zorundadır, Bu Nedenle ARP Kullanacaktır. Ayrıca Yerel Ağdaki Diğer Cihazların MAC Adresini Öğrenmek için de ARP Kullanacaktır.
- ARP İki Mesajdan oluşur: ARP Request (Broadcast) ve ARP Reply (Unicast).
Örnek
ARP Request Mesajının İçeriğini Wireshark Programı ile İnceleyelim.
ARP Mesajı, Ethernet Başlığında Kapsüllenir ve IP Başlığı Yoktur. ARP Mesajları Yalnızca Yerel Ağ İçinde Kullanılır, Router Tarafından Dış Ağlara Gönderilmez, Bu Nedenle ARP Mesajını IP Başlığında Kapsüllemeye Gerek Yoktur.
Önceki Resimdeki ARP Request Mesajı için Yazılan Source MAC / IP ve Destination MAC / IP Alanları, Aslında ARP Mesajının Kendisinde Bulunan Alanlara Atıfta Bulunuyor.
ARP Request Mesajının Target IP Address Alanı R1 olduğundan R1, PC1'e ARP Reply Mesajı Gönderir. Böylece PC1, R1'in MAC Adresini Öğrenir ve ARP Tablosuna R1 için Bir Giriş Ekler. R1'in PC1'den ARP Request Mesajı Aldığında Kendi ARP Tablosuna PC1 için Bir Giriş Eklediğini de Unutmayın, Bu Nedenle R1, PC1'e Frame Göndermek İstiyorsa ARP Request Mesajı Göndermesine Gerek Yoktur.
ARP Reply Mesajının İçeriğini Wireshark Programı ile İnceleyelim.
Sender IP ve MAC Adres Alanları R1'in Adresleridir, Target IP ve MAC Adres Alanları PC1'in Adresleridir.
PC1 Artık DNS Query Mesajına Dst. MAC Adresi olarak R1'in MAC Adresini Ekleyebilir ve Mesajı R1'e Gönderir.
Gratuitous ARP
- Gratuitous ARP, Talep Edilmeden Gönderilen ARP Reply Mesajıdır. Normalde ARP Reply, ARP Request Mesajının Yanıtı olarak Gönderilir, Ancak Gratuitous ARP Reply Mesajı, ARP Request Mesajı Alınmadan Gönderilir.
- Gratuitous ARP, Broadcast MAC Adresine (FFFF.FFFF.FFFF) Gönderilir. Normal ARP Reply Mesajı ise Unicast MAC Adrese Gönderilir.
- Gratuitous ARP, Yerel Ağdaki Cihazların ARP Request Mesajı Göndermek Zorunda Kalmadan Gratuitous ARP Gönderen Cihazın MAC Adresini Öğrenmesini Sağlar.
- Cihaz Üreticisine Bağlı olarak Cihazlarda Port Etkinleştirildiğinde, IP Adres Değiştirildiğinde, MAC Adres Değiştirildiğinde, vb. Otomatik olarak Gratuitous ARP Mesajı Gönderilir.
Örneğin PC2'nin Portu Etkinleştirildiğinde Gratuitous ARP Mesajı Gönderir ve Bu Mesaj Yerel Ağda Switch Tarafından Flood Edilir. Böylece Diğer Cihazlar ARP Tablolarına PC2 için Bir Giriş Ekleyecek ve Switch'ler de PC2 için MAC Adres Tablolarına Giriş Ekleyecektir.
Not: Yukarıdaki Resimde Gratuitous ARP Mesajının Source MAC Adresi, R1 MAC Yerine PC2'nin MAC Adresi olacak.
Dynamic ARP Inspection
- Untrusted Portlardan Alınan ARP Mesajlarını Filtrelemek için Kullanılır.
- Yalnızca ARP Mesajları Filtrelenir, Diğer Trafik Etkilenmez.
- Varsayılan olarak Tüm Portlar Untrusted Durumdadır.
- Tipik olarak Switch veya Router gibi Ağ Cihazlarına Bağlı Portlar (Uplink) Trusted olarak Yapılandırılmalı, Hostlara Bağlı Portlar (Downlink) Untrusted olarak Kalmalıdır.
Topoloji
Yukarıdaki Resimde SW2'nin SW1'e Bağlı Portu Trust Port olarak Yapılandırılmış, Ancak Downlink olduğu için Untrusted Port olarak da Yapılandırılabilir. İki Tasarım da İşe Yarayacaktır.
Örnek
PC1 Bir ARP Request Mesajı Gönderiyor. SW1 Mesajı Untrusted Portundan Aldığından Mesajı İncelemek için DAI Kullanır. SW1, Mesajın Uygun olduğunu Belirler, Bu Nedenle onu SW2'ye İletir.
SW2 Gelen Bu Mesajı Trusted Portundan Aldığından İncelemez ve Mesajı R1'e İletir. R1, ARP Reply Mesajı ile PC1'e Yanıt Verir. SW2 ve SW1 Bu Mesajı Trusted Portundan Aldığı için İncelemez.
Örnek 2
Bu Sefer PC2 Bir ARP Request Mesajı Gönderiyor. SW1 Gelen Bu Mesajı İnceler ve DAI Kurallarına Uygun olmadığı için Mesaj Reddedililir.
ARP Poisoning Attack (Man-in-the-Middle)
- DHCP Poisoning Saldırısına Benzer Şekilde ARP Poisoning, Trafiğin Saldırgana Yönlendirilmesi için Hedeflerin ARP Tablolarını Manipüle Etmeyi İçerir.
- Bunu Yapmak için Saldırgan, Başka Bir Cihazın IP Adresini Kullanarak Gratuitous ARP Mesajları Gönderir. Başka bir seçenek de Hedeflerin ARP Request Mesajlarına Yanıtlar Göndermektir, Ancak Bu Yazı için Gratuitous ARP Kullanacağız.
- Ağdaki Cihazlar Gratuitous ARP Mesajını Aldığında ARP Tablolarını Güncelleyerek Gerçek Hedef Yerine Saldırgana Trafik Gönderecektir.
Örnek
Yukarıdaki Resimde Saldırgan (PC2), Default Gateway R1'in IP Adresini Kullanarak Gratuitous ARP Mesajı Gönderiyor. Mesaj, Ağ Üzerinde Flood Edilir ve Tüm Cihazlar Mesajı Alır.
Böylece Ağdaki Cihazlar PC2'nin MAC Adresini 192.168.1.1 IP Adresi ile Eşlemek için ARP Tablolarını Güncellerler. Bu arada R1, 192.168.1.1 Kendi IP Adresi olduğu için ARP Tablosunu Güncellemez.
PC1, Dış Ağ ile İletişim Kurmak İsterse Trafik PC2'ye Gönderilir.
PC2, Mesajın Bir Kopyasını Kaydederek Mesajı Gerçek Hedefe, Default Gateway R1'e İletebilir. PC2'nin Mesajdaki Bilgileri Değiştirmesi de Mümkündür. ARP, Man-in-the-Middle Saldırısı Gerçekleştirmek için Bu Şekilde Kullanılabilir.
Dynamic ARP Inspection İşlemleri (ARP Mesaj Filtreleme)
- DAI, Untrusted Portlardan Alınan ARP Mesajlarında Sender MAC ve Sender IP Alanlarını İnceler ve DHCP Snooping Binding Tablosunda Eşleşen Bir Giriş olup olmadığını Kontrol Eder. Eşleşme Varsa Mesaj İletilir, Eşleşme Yoksa Mesaj Reddedilir.
- Bir önceki yazıda DHCP Snooping Etkinleştirildiğinde ve Client'ler DHCP Server'dan IP Adres Aldığında MAC ve IP Adreslerinin Bu Tabloya Eklendiğini Söylemiştik.
- DAI, Trusted Portlarda Alınan Mesajları İncelemez. Normal Şekilde İletilir. Tıpkı DHCP Snooping'de olduğu gibi Varsayılan olarak Tüm Portlar Untrusted Porttur, Bu Nedenle Hangi Portların Trusted olacağını Manuel olarak Yapılandırabilirsiniz. DAI İşlemleri Genellikle DHCP Snooping'e Bağlıdır, Ancak Başka Bir Seçenek Daha Vardır.
- ARP ACL, DAI'nin ARP Mesajındaki Sender MAC ve IP Alanlarını Kontrol Etmesi için IP Adresleri ile MAC Adreslerini Eşlemek Üzere Manuel olarak Yapılandırılabilir.
- ARP ACL, DHCP Kullanmayan Hostlar için Yararlıdır. DHCP Kullanmıyorlarsa DHCP Snooping Binding Tablosunda Girişleri olmayacaktır. Bu nedenle DAI, Tüm ARP Mesajlarını Reddedecektir.
- Belirli Hostlar için ARP ACL Yapılandırabilirsiniz veya Tüm Hostlar için. Fakat Bu Çok Fazla Manuel Çalışma Gerektirecektir.
- Sender MAC ve Sender IP Alanlarına Ek olarak DAI Daha Derinlemesine Kontroller Yapmak Üzere Yapılandırılabilir. Ancak Bunlar İsteğe Bağlıdır.
- DAI Rate-Limiting, Porta Giren ARP Mesaj Hızını Sınırlar. ARP Mesaj Hızı Yapılandırılmış Sınırı Aşarsa Port err-disable Duruma Gelir.
- Saldırganın Mesajları Engellense Bile Sonsuz Şekilde Gelen ARP Mesajları Switch CPU'sunda Aşırı Yükleme Yapabilir.
- Saldırgan Bunu Yapmaya Çalışırsa DAI Rate-Limiting Portu Devre Dışı Bırakır (err-disable).
DAI Yapılandırması
Topoloji
Dynamic ARP Inspection Etkinleştirme Komutu (config): ip arp inspection vlan vlan-id
Topolojide Sadece VLAN 1 Kullanılıyor. Fakat Birden Fazla VLAN Varsa Her Bir VLAN için DAI Etkinleştirmelisiniz. Bunu Yapmazsanız Yalnızca Belirtilen VLAN'daki ARP Mesajları İncelenecektir.
Dynamic ARP Inspection Trust Port Yapılandırma Komutu (config-if): ip arp inspection trust
SW1 Yapılandırması
Dynamic ARP Inspection Port Durumları Hakkında Bilgi Görüntüleme Komutu: show ip arp inspection interfaces
SW1'de Yapılandırdığım gibi Yalnızca G0/0 Portu Trusted Durumda Gözüküyor (Trust State Sütunu).
Rate Sütunu, DAI Rate-Limiting Ayarlarını Gösterir.
DAI Rate-Limiting, Untrusted Portlarda Saniyede 15 Paket Hızı ile Varsayılan olarak Etkindir. Trusted Portlarda ise Varsayılan olarak Devre Dışıdır.
Burst Interval Sütununu İnceleyelim.
DHCP Snooping Rate-Limiting Şu Şekilde Yapılandırılır: x packets per second
DAI Rate-Limiting Şu Şekilde Yapılandırılır: x packets per y seconds
Bu Nedenle Ölçülen Aralığın Bir Saniye olması Gerekmez, Bu da Porttaki ARP Mesajlarının Oranının Nasıl Kontrol Edileceği Konusunda Daha Fazla Esneklik Sağlar.
DAI Rate Limiting Yapılandırma Komutu (config-if): ip arp inspection limit rate packets [burst interval seconds]
Hızı Saniyede 15 Paketten 2 Saniyede 25 Pakete Değiştirdim.
Burst Interval İsteğe Bağlıdır, Belirtmezseniz Varsayılan 1 Saniyedir.
ARP Mesajları Belirtilen Orandan Daha Hızlı Alınırsa Port err-disable Duruma Gelecektir. Port İki Şekilde Yeniden Etkinleştirilebilir:
- Manuel: shutdown ve Ardından no shutdown Komutu.
- ❗ErrDisable Recovery: errdisable recovery cause arp-inspection
SW1'de ErrDisable Recovery yapılandırdım ve show errdisable recovery Komutu ile Kontrol Ettiğimde Etkinleştirildiğini Görebiliriz.
DAI Opsiyonel Kontroller/Filtrelemeler
Topoloji
Varsayılan olarak DAI, Untrusted Portlardan Alınan ARP Mesajlarında Sender MAC ve Sender IP Alanlarını İnceler ve DHCP Snooping Binding Tablosunda Eşleşen Bir Giriş olup olmadığını Kontrol Eder.
Dynamic ARP Inspection Opsiyonel Kontroller Yapılandırma Komutu: ip arp inspection validate (src-mac | dst-mac | ip)
- dst-mac: ARP Mesajındaki Target MAC Adresi ile Ethernet Başlığındaki Destination MAC Adresini Karşılaştırarak ARP Mesajını Doğrular. Eğer Farklılarsa Mesaj Reddedilir.
- ip: 0.0.0.0, 255.255.255.255 ve Multicast IP Adresleri gibi ARP Mesajlarında Bulunmaması Gereken IP Adresleri Kontrol Eder. Sender IP Address, ARP Request ve ARP Reply Mesajlarında Kontrol Edilir. Target IP Address, Yalnızca ARP Reply Mesajlarında Kontrol Edilir.
- src-mac: ARP Mesajındaki Sender MAC Adresi ile Ethernet Başlığındaki Source MAC Adresini Karşılaştırarak ARP Mesajını Doğrular. Eğer Farklılarsa Mesaj Reddedilir.
Daha Önce Gösterdiğim ARP Reply Mesajı:
Ethernet Başlığındaki Source ve Destination MAC Adresleri, ARP Mesajındaki Sender ve Destination MAC Adresleri ile Eşleşir, Bu Nedenle Mesajın dst-mac ve src-mac Kontrolleri Geçerlidir.
ARP Mesajındaki Sender ve Target IP Adresleri de Geçerlidir, Dolayısıyla Mesajın ip Kontrolü Geçerlidir.
DAI Opsiyonel Kontroller Yapılandırması Hakkında Önemli Bilgi
show running-config | include validate Komutu ile Yapılandırmayı Doğrulayalım. Sizce Ne Görüntülendi?
Yalnızca validate src-mac Görüntülendi. Önce validate dst-mac Yapılandırdım, Ancak validate ip Yapılandırdığımda Önceki Komutun Üzerine Yazıldı. Ardından validate src-mac Yapılandırdığımda validate ip'nin Üzerine Yazdı.
Bu Nedenle Üç Kontrolü de Etkinleştirmek İstiyorsanız Bunu Aşağıdaki Resimde olduğu gibi Yapılandırmalısınız.
Üç Kontrolün birini, ikisini veya hepsini belirtebilirsiniz ve kontrollerin sırası önemli değildir.
Dynamic ARP Inspection Hakkında Bilgi Görüntüleme Komutu: show ip arp inspection
Dynamic ARP Inspection Komutları Özet
Cevaplar (Sırası ile):
- a
- c
- b, d
- b, d -> DHCP Snooping Etkinleştirildiğinde DHCP Snooping Binding Tablosu, Hostlar DHCP Server'dan IP Adres Kiraladığında Otomatik olarak oluşturulur. Dolayısıyla DAI, ARP Mesajlarını Kontrol Etmek için Bu Tabloyu Kullanır. Ancak DHCP Kullanmayan Hostlar için ARP ACL, ARP Mesajlarına İzin Verecek Şekilde Manuel olarak Yapılandırılabilir.
- a, c
Yorum Gönder
Yorum Gönder