Ağ Cihazlarında Güvenliği Artırmak için Uygulanacak Temel Kontrol Setleri

OSI ikinci ve üçüncü katman saldırılarına karşı ağı korumak amacı ile aşağıdaki temel kontrol setleri Switch ve router cihazlarında icra edilebilir. Burada eklediğim maddeler ağ temelli saldırılara karşı alınabilecek tedbirlerden sadece birkaçını içermektedir. Kurum ağ yapısına ve güvenlik beklentilerine göre yeni maddeler eklenebilir.

Not: Komut setleri Cisco ve Dell markalarına ait router ve switch işletim sistemleri referans alınarak yazılmıştır. Versiyon farklılıkları komut seti farklılıklarına sebep olabilir. Farklı markalarda aynı işlemler farklı komut setleri ile icra edilebilir.

  1. Kullanılmayan portların kapatılması:
    Bu işlem network güvenliğinin en temel ve en önemli adımıdır. Kullanılmayan portların ve default VLAN1 in kapatılması iyi bir başlangıçtır.

    Örnek Konfigürasyon:
    Switch(config)#interface gigabitethernet 1/0/1
    Switch(config-if-Gi1/0/1)#shutdown
    .
  2. Switch Spoofing (Anahtar Sahtekarlığı):
    Saldırganın kendisini trunk port ile Switche bağlanmış başka bir Switch gibi göstererek, bulunduğu VLAN haricindeki VLAN lara geçmesini sağlayan saldırı tipidir. Sebebi interface ve trunk ayarlarının doğru yapılandırılmamasıdır. Layer2 iletişimi başlığı altında belirtecek olursak bir port, access, trunk, dynamic desirable ve dynamic auto olarak konfigüre edilebilir.

    Örnek Konfigürasyon:
    Switch(config-if)#switchport mode ?
    access Set trunking mode to ACCESS unconditionally
    dynamic Set trunking mode to dynamically negotiate access or trunk mode
    trunk Set trunking mode to TRUNK unconditionally

    Switch(config-if)#switchport mode dynamic ?
    auto Set trunking mode dynamic negotiation parameter to AUTO
    desirable Set trunking mode dynamic negotiation parameter to DESIRABLE

    Auto: Trunk çalışmak için pasif bir şekilde karşı taraftan dinlediği DTP (Dynamic Trunking Protocol) mesajlarına bakar. Gelen mesajda karşı tarafın trunk olarak konfigüre edildiği bilgisi varsa port kendisini otomatik olarak trunk a çeker ve frameleri taglamaya başlar.
    Desirable: Auto dan farkı kendisi karşı tarafa DTP mesajları gönderir ve karşı tarafın Trunk çalışmasını ister.

    Çözüm:
    DTP nin kapatılması gerekmektedir. Kullanılmayan portların disable edilmesi ise tüm sorunların çözümü için genel prensip edinilmelidir.

    Örnek Konfigürasyon:
    Switch(config)#int fastEthernet 0/1
    Switch(config-if)#Switchport mode trunk
    Switch(config-if)#Switchport mode nonegotiate
    .
  3. Double Tagging – VLAN Hopping (Çift Etiketleme – VLAN Aşırtma):
    Bu saldırı tipinin başlıca sebebi default VLAN ID (1) de bırakılmış olan Native VLAN dır. Normalde bir anahtar trunk portu üzerinden untagged bir frame i kabul etmez. Bunun tek istisnası Native VLAN dır. Trunk ile birbirine bağlı iki anahtarın da Native VLAN ı kabul edecek şekilde konfigüre edilmesi gerekir. Bu saldırı tipinde saldırgan, saldırı yapacağı makineye ulaşmak için frame e iki adet tag ekler. Birisi kendisine ait Native VLAN ID 1 dir; diğeri ise kurbanın bulunduğu VLAN etiketidir. Ağ anahtarları genelde 1 adet etiketi açıp trafiği iletirler. Aşağıdaki grafikte de gösterildiği üzere iki Switch arasındaki trunk üzerinden Native VLAN ID 1 in geçebildiğini düşünelim. Saldırganın iki kere etiketlediği frame i alan birinci anahtar, ilk etiketi (Native VLAN ID 1) açacak ve trunk portu üzerinden diğer anahtara gönderecek. İkinci anahtar ise VLAN 10 (Örnekte saldırıyı alan sunucunun bulunduğu VLAN) etiketini açacak ve trafiği sunucuya iletecek. Tabii bu trafiğin geri dönüşü olmayacak ama yine de Ddos saldırılarında bu atak tipi işe yarayacak.

    Çözüm:
    Default VLAN ID 1 kullanmamak. Hem default VLAN ID den hem de kullanıcıların bulunduğu VLAN ID lerden başka ID lere sahip Native VLAN oluşturup trunk olarak belirlediğimiz portlar altında bu ID yi tanımlamak.

    Örnek Konfigürasyon:
    Switch (config-if)# Switchport trunk native vlan VLANID
  1. DHCP Spoofing:
    Bu başlık altında 2 adet saldırı tipinden söz edilebilir.
    a. DHCP Starvation: Saldırgan spoof edilmiş Source MAC adresler ile DHCP sunucuya bol miktarda DHCP Request paketi gönderip DHCP sunucunun dağıtacağı IP havuzunu kısa sürede doldurur.
    b. DHCP Spoofing: Bu saldırı tipinde ise saldırgan kendisini DHCP sunucu gibi göstererek clientların kendisinden IP adresi almasını sağlar.

    Çözüm:
    Switch üzerinde DHCP Snooping aktif edilmelidir.

    Örnek Konfigürasyon:
    Untrust VLAN (User VLANı)
    Switch(config)# ip dhcp snooping
    Switch(config)# ip dhcp snooping database
    Switch(config)# ip dhcp snooping vlan 50

    Trust Interface (Uplink, DHCP Server Interface)
    Switch(config)# interface range gigabitethernet1/0/47-48
    Switch(config-if-range)# ip dhcp snooping trust
    Switch(config-if-range)# ip arp inspection trust

    Switch(config)# interface Port-channel1
    Switch(config-if)# ip arp inspection trust
    Switch(config-if)# ip dhcp snooping trust

    Switch(config-if)# do show ip dhcp snooping binding
    MAC Address IP Address Lease (sec) Type VLAN Interface
    08:2e:5f:09:8b:e6 10.31.3.136 6649 learned 50 gi1/0/3
    10:60:4b:68:b4:8c 10.31.3.42 6450 learned 50 gi1/0/21
    .
  2. Arp Spoofing:
    Arp protokolü bilindiği gibi hedef IP adresinin MAC adresini tespit etmek için kullanılır.

    Saldırgan, arp zehirlemesi gerçekleştirerek kurban makinenin gateway ini kendisi olarak gösterir ve böylece gateway ile kurban arasında man-in-the-middle yapar.

    Yukarıdaki örnekte 1.106 makinesi 1.1 IP adresinin MAC ini soruyor ve Router kendi MAC adresini 1.106 ya cevap olarak dönüyor. Buraya kadar her şey normal.

    Burada ise saldırgan Kali içerisindeki Ettercap vb. bir tool ile kolayca yapılabileceği üzere Router a Garp paketi göndererek “1.106 IP adresi artık benim MAC adresim üzerindedir” diyor. Aynı şekilde kurban makineye de “1.1 IP adresi artık benim MAC adresim üzerindedir” diyerek man-in-the-middle yapıyor ve paketleri kendi üzerinden geçirerek sniffing yapıyor.

    Çözüm:
    Switchde Dynamic Arp Inspection (DAI) özelliğinin etkinleştirilmesi. Kullanıcı tarafına bakan VLAN ın untrusted; Router tarafına bakan interface in ise trusted olarak Konfigürasyonüre edilmesi gerekiyor.

    Örnek Konfigürasyon:
    Untrust Client Vlan:
    Switch(config)# ip arp inspection
    Switch(config)# ip arp inspection validate
    Switch(config)# ip arp inspection vlan 50

    Trust Uplink Port:
    Switch(config)# interface range gigabitethernet 1/0/47-48
    Switch(config-if-range)# ip arp inspection trust

    Statik IP Adrese Sahip Cihazlar İçin Arp List:
    Switch(config)# ip arp inspection list create YAZICILAR
    Switch(config-arp-list)# ip 10.31.3.184 mac 0021.B7EA.FAE7
    Switch(config-arp-list)# ip 10.31.3.154 mac 7446.a0af.0fc6
    Switch(config-arp-list)# ip 10.31.3.132 mac 0021.B75A.F0A5
    Switch(config)# ip arp inspection list assign VLAN50
    .
  3. IP Spoofing :
    Bu atak tipinde saldırgan IP data paketinin içerisindeki Source IP bölümünü spoof ederek paket doğru Source IP adresinden geliyor süsü verir.

    Çözüm :
    Switchte IP Source Guard özelliğini etkinleştirmek. Öncelikle bilindiği gibi ortamda bulunan DHCP, bir hosta atanan IP adresini hostun ismi ile birlikte veritabanında tutar.
    IP Source Guard özelliği, DHCP Snooping ile birlikte etkinleştirildiğinde ortamdaki DHCP veribananın bir kopyası Switchte bulunan DHCP Snooping Binding Veritabanında tutulur ve hostun gönderdiği pakete istinaden Host-IP adresi kayıtları kontrol edilir. IP Source Guard, sadece DHCP Snooping Veritabanında eşleşen hostun ilgili IP adresinden paket göndermesine izin verecek şekilde port bazında otomatik olarak ACL oluşturur.

    Örnek Konfigürasyon :
    (Dell PowerConnect 5500 Serisi switchlerde IP Source Guard özelliği bulunmamaktadır. Aşağıdaki Konfigürasyonürasyon Cisco Catalyst İçindir.)
    a. User VLAN lerinin Bulunduğu Interface lerde IPSG Enable Edilir.
    Switch(config)#interface gigabitethernet 0/0
    Switch(config-if)#ip verify source

    b. Eğer IP ve MAC Source Birlikte Check Edilmek İsteniyorsa:
    Switch(config)#interface gigabitethernet 0/0
    Switch(config-if)#switchport port-security
    Switch(config-if)#ip verify source port-security

    Sonuç:
    Switch#show ip verify source
    Interface  Filter-type  Filter-mode  IP-address       Mac-address        Vlan
    ———  ———–  ———–  —————  —————–  —-
    Et0/0      ip-mac       active       192.168.1.15    09:05:AC:4A:C8:03  50

    Switch#show ip source binding
    MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
    ——————  —————  ———-  ————-  —-  ——————–
    09:02:SA:84:83:01   192.168.1.178    689555      dhcp-snooping   50     Ethernet0/3
    03:10:AD:9S:BL:01   192.168.1.176    689549      dhcp-snooping   50     Ethernet0/1
    .
  4. MAC Flooding:
    Bu saldırı tipinde amaç Switch in CAM tablosunu şişirmektir. Bu amaca ulaşmak için farklı “sahte” Source MAC adreslerinden çok sayıda paket gönderilir. Switch her yeni Source MAC adresini CAM tablosuna yazar ve sonunda CAM tablosu artık yeni kayıt alamaz olur. Bu noktadan sonra artık switch paketleri akıllı bir şekilde “forward” etmek yerine HUB cihazı (aptal switch) gibi davranarak paketleri tüm interfacelerine (paketin geldiği interface hariç diğer tüm interfacelere) “flood” eder. Bu durumda saldırganın yapması gereken tek şey kendisine gereksiz yere “flood” edilmiş olan paketleri sniff etmesidir. Çözüm : Çözüm için birkaç farklı alternatif mevcuttur. İlgili portlara MAC adresleri statik olarak atanabilir ancak bu, yönetimi kolay olmayan bir alternatiftir.

    Örnek Konfigürasyon:
    Öncelikle switchin MAC Address Learning kapasitesini inceleyelim. (Dell PowerConnect 5500)

    Switch# show mac address-table count Capacity : 16384 Free : 15931 Used : 453 Secure : 0 Dynamic : 452 Static : 0 Internal : 1

    User VLAN inin bulunduğu Interface de Port Security Enable Ediyoruz:
    Switch(config)# interface gigabitethernet 1/0/1
    Switch (config-if)# port security
    Switch (config-if)# port security max 128 (Maksimum 128 adet MAC Adresi öğren)
    Switch (config-if)# port security mode lock (128 dolduğunda eski MACları silip yenileri üzerine yazmak yerine yeni MAC adresi öğrenme, eskileri hafızada tut.)
    Switch (config-if)# port security trap 15 (Paketleri discard etmek yerine 15 saniyede bir SNMP Trap gönder)
  1. HTTP Servisinin Kapatılıp HTTPS Servisinin Açılması:
    Cleartext protokoller oturum açma, komut icra etme gibi yönetimsel işlemlerde kesinlikle kullanılmamalıdır.

    Örnek Konfigürasyon:
    Switch(config)# no ip http server
    Switch(config)# crypto key generate rsa
    Switch(config)# crypto certificate 1 generate key-generate 2048 Switch(config)# ip http secure-server Switch(config)# ip https certificate 1

    Not: Dell N Serisi switchlerde: #crypto certificate 1 generate Enter diyerek sertifika bilgileri girilir. Sonra exit ile çıkılır. #ip https authentication local #ip http secure-server
  1. Telnet Servisinin Kapatılıp SSH Servisinin Açılması:
    Switch(config)# ip ssh server
    Switch(config)# no ip telnet server

    Not: Dell N Serisi switchlerde: ip ssh server disable
    .
  2. Enable Password :
    Switch(config)# enable password
    .
  3. Password Lenght :
    Şifre uzunluğu minimum 8 karakter, büyük ve küçük harf-rakam ve özel ifade içerecek karmaşıklıkta olmalıdır.
    Switch(config)# passwords min-length 8
    Switch(config)# passwords strength minimum character-classes 4 Switch(config)# passwords lockout 5
    .
  4. STP Ataklarından Korunmak İçin Root Guard’ ın Etkinleştirilmesi:
    Ortama istenmeden bağlanan Rouge Cihazın STP topolojisini değiştirememesi için Root Guard etkinleştirilmelidir. Bu özellik sayesinde rouge cihaz BPDU paketi gönderdiğinde, paketin geldiği interface in statüsü “root-inconsistent state” e döner ve topolojinin değişmesine izin vermez. İlgili port “root-inconsistent state” e döndüğünde artık bu porttan user data trafiği gönderilmez. Root Guard özelliği switchin diğer switche bağlandığı ve kesinlikle Root Bridge olmaması gereken portlarda etkinleştirilir. Mesela distribution switch ile access switch in bağlandığı portta etkinleştirilerek access switchin Root Bridge olmasının önüne geçilir.

    Örnek Konfigürasyon:
    Switchin Diğer Switch ile Bağlı Bulunduğu Port:
    Switch(config)# interface gigabitethernet 1/0/48
    Switch(config-if)# spanning-tree guard root
    .
  5. BPDU Guard:
    Root Guard’ ın aksine konfigürasyonürasyon user portuna (access) uygulanır. Bilgisayar, tablet vb. cihazların bağlandığı porta switch bağlanıp BPDU paketi göndermesin diye user portlarında konfigürasyonürasyon etkinleştirilir.

    Örnek Konfigürasyon:
    Switchin PC ye Bağlı Bulunduğu Port:
    Switch(config)# interface gigabitethernet 1/0/1
    Switch(config-if)# spanning-tree bpduguard enable
    .
  6. CDP / LLDP Gibi Protokollerin Sadece Trusted Device ların Bağlı Olduğu Portlarda Açılması:
    LLDP (Link Layer Discovery Protocol) switchler arası komşuluğu göstermek için kullanılır. Cisco karşılığı CDP (Cisco Discovery Procotol) dür. Komşuluğa ilişkin

    SW# show lldp neighbors Port Device ID Port ID System Name Capabilities TTL ——— —————– ————- —————– ———— —– gi1/0/2 01 0a 6a 7c 5b 0057D2D14F7A: SEP0057D2D14F7A B, T 127 P1 gi1/0/3 01 0a 6a 7c 3d 0057D2D14F81: SEP0057D2D14F81 B, T 178 P1

    Örnek Konfigürasyon:
    LLDP nin Globalde Açılması:
    Switch(config)# lldp run

    LLDP nin Access Portta Disable Edilmesi:
    Switch(config-if)# no lldp transmit

  7. TACACS+ ın Enable Edilmesi :
    Konfigürasyonürasyon için referans: http://packetlife.net/blog/2010/sep/27/basic-aaaconfiguration-ios/
  1. Audit ve Erişim Loglarının Etkinleştirilmesi:
    Switch(config)#logging audit
    Switch(config)#logging cli-command
    Switch(config)#logging console informational

  2. Ağda Bulunan IP Adres Çakışmalarının Görülmesi:
    Switch#show ip address-conflict Address Conflict Detection Status………….. Conflict Detected Last Conflicting IP Address……………….. 10.47.255.252

    Last Conflicting MAC Address………………. 0062.EC31.9839 Time Since Conflict Detected………………. 0 days 16 hrs 38 mins 10 secs
  1. Storm Control Mekanizmasının Etkinleştirilmesi:
    Bu mekanizma “Broadcast” ve “Multicast” stormlarını durdurmak için etkinleştirilir. Switchde, clientların bağlı bulunduğu portlara, cihazı hizmet veremez duruma sokacak kadar fazla multicast ve broadcast paketlerininin gelmesine “storm” (fırtına) denir. Stormun sebebi bir saldırı olabileceği gibi uygulamadaki bir problem sebebi ile istenmeden fazla paket üretilmesi de olabilir.

    Çözüm:
    Bu istenmeyen durumu önlemek için clientların bağlı bulunduğu portlarda storm-control özelliği etkinleştirilir.

    Örnek Konfigürasyon:
    Switch(config-if-Gi1/0/1)#storm-control broadcast action shutdown
    Switch(config-if-Gi1/0/1)#storm-control broadcast level 80 Switch(config-if-Gi1/0/1)#storm-control multicast action shutdown
    Switch(config-if-Gi1/0/1)#storm-control multicast level 80

    (Opsiyonel) disable olan portun 3 dakika sonra otomatik olarak enable edilmesi:
    Switch(config)#errdisable recovery cause bcast-storm Switch(config)#errdisable recovery cause mcast-storm Switch(config)#errdisable recovery interval 180
  1. DOS Kontrol Mekanizması Dos Kontrolünü Etkinleştirilmesi:
    Switch(config)#dos-control

    Linux ve MAC için Default ICMP Request Paketinin Size i 56 Byte; Windows için 32 Byte tır. Boyutu 56 Byte tan Fazla Olan Ping İsteklerini Blokla.
    Switc(config)#dos-control icmp 56

    TCP Flag Checking i Etkinleştiriyoruz:
    TCP Flag SYN ve TCP Source port 1024 den Düşük ise, TCP Control Flag i 0 ve TCP Sequence Number 0 ise, TCP Flagları FIN, URG ve PSH ise ve TCP Sequence Number 0 ise Paketleri Drop Et.
    Switch(config)#dos-control tcpflag

    First Fragment Checking i Etkinleştiriyoruz:
    Minimum TCP Başlık Boyutu 20 Byte tan Düşük olan Paketleri Blokla.
    Switch(config)#dos-control firstfrag 20

    Source ve Destination Port Checking Mekanizmasını Etkinleştiriyoruz:
    Paket İçerisindeki Source Port ile Destination Port Aynı ise Paketi Blokla.
    Switch(config)#dos-control sipdip

    IP Fragment Checking i Etkinleştiriyoruz:
    Normal bir Paketin Fragment Offset Değeri 8 Byte dır. Aşağıdaki Komut Çalıştırıldığında Fragment Offset Değeri 1 olan Paketler Droplanır.
    Switch(config)#dos-control tcpfrag

    ICMP Error Interval Aşağıdaki komut ile ICMP Hata Mesajları için Burst Interval ve Burst Size Giriyoruz:
    Switch(config)#ip icmp error-interval [burst-interval] [burst-size]

    Burst Interval:
    Paketin Ne Süre Aralığı ile Gönderileceği Burst Size: İlgili Süre Aralığında Gönderilen Paket Sayısı

    Default Parametreler:
    Switch(config)#ip icmp error-interval 1000 100 (1000 ms de bir 100 mesaj gönder)

  2. Unicast Reverse Path Forwarding:
    Router üzerinde client networküne bakan interface lerde uRPF özelliğini etkinleştirerek source ip validasyonu yapabiliriz.

    Örnek Konfigürasyon:
    Router(config-if)#ip verify unicast source reachable-via rx

    Başta da belirttiğim üzere, buradaki temel adımlar ağ cihazlarının güvenliğini sağlamak için çok önemli olmakla beraber denizde katredir.
Tags: ,

About Emre BAŞTUĞ

Emre BAŞTUĞ