28 Haziran 2012 Perşembe

IPv6 ve ICMP Güvenliği

IPv6 geçişi ile uğraşıyorsanız ICMP güvenliği başınızı ağrıtabilir. ICMP güvenli kılmak ve güvenli bir şekilde kullanabilmek için IPv6'da işleyişini doğru olarak anlamak gerekiyor. IPv4 protokolünde ICMP hata, iletim kontrolü ile ağ geçidinden sonra paketlerin ulaşacağı ilk noktayı tanımlamak için kullanıyordu. Bu işlevler halen IPv6'da bulunmakla birlikte, ağın işleyişi için eskisi kadar önemli olmamaktadır. Öte yandan IPv6 ile ICMP önemi ve görevleri artmış olmaktadır. Paketlerin parçalanarak iletimi – fragmentation, ağ komşularının belirlenmesi - neighbor discovery, ve StateLess Address AutoConfiguration – SLAAC ICMP mesajşları ile gerçekleştirilmekte ve IPv6 işleyişi açısından önemli bir role sahiptir. Bunlara ek olarak da bir çok ICMP mesajı IPv6 ile unicast olarak değil, multicast olarak iletilmektedir. Bu durumda ICMP mesajlarının önemini arttırırken güvenlik konusundaki endişeleri de arttırmaktadır.




Paket Anahtarlama (Parçalama, Birleştirme) ve ICMP

IPv6'da iletilen paketlerin parçalanması ve birleştirilmesi kaynakta gerçekleşmektedir. Bir yönlendirici – router aldığı paketin iletilmek istenilen bağ için izin verilen değerden büyük olduğunu belirlediği zaman gelen veri paketini düşürüp, kaynağa gelen paketin büyük olduğunu ve parçalanarak yeniden iletilmesi gerektiğini bildiren ICMP Tip2 “Paket Çok Büyük” mesajı iletmektedir. Bundan dolayıda IPv6 ağlarında ICMP trafiğinin paket anahtarlaması tüm ağ üzerinde iletimine izin verilmesi zorunlu olmaktadır. Bir diğer deyişle ağ dışından gelen ICMP Tip 2 paketlerinin ağ içerisine erişimine izin verilmesi zorunludur. Bu duruma ağ trafiğinin yönetilmesi için kullandığınıza araçlarda kuralların yeniden yazılmasını/düzenlenmesini gerektirmektedir. Buda ağın flood saldırılarına açık hale gelmesine neden olabilir

Ağ Komşularını (Ağa Bağlı Diğer Bilgisayarları) Bulmak – Neighbor Discovery

IPv4 ağlarında ağa bağlı diğer bilgisayarları bulmak için ARP protokolü kullanılır. Bu protokol adres çözümleme işleminin TCP/IP protokolünde 2. katmanda iletilen bilgi ile gerçekleştirir. IPv6 ile ARP kaldırılıp yerini RFC 2461 bırakmaktadır. RFC 2461, Ağa bağlı diğer bilgisayarların belirlenebilmesini sağlayan Neighbor Discovery Protocol – NDP protokolüdür. NDP, adres çözümlemesini, paketlerin iletileceği bir sonraki noktayı, ağdaki yönlendiricinin bulunmasını, IPv6 adreslerindeki öne ek bölümünün otomatik olarak belirlenmesini, ağ adreslerinin aralığını ve dolayısıyla ağ sınırlarını çift olan adresleri ve erişilemeyen bilgisayarların belirlenmesi gibi işlevleri yerine getirmektedir. Bunlara ek olarak da RFC 2462 StateLess Address AutoConfiguration – SLAAC bilgisayarın IP adresinin otometik olarak tanımlanmasını da gerçekleştirmektedir. NDP ve SLAAC gerçekleşebilmesi için şu ICMP mesajları kullanılmaktadır: Tip 133 – Router Solicitation (RS) / Yönlendirici Talebi, Tip 134 - Router Advertisement (RA) / Yönlendirici Tanımlama, Tip 135 – Neighbor Solicitation (NS) Ağ Komşularını Bulma, Tip 136 – Neighbor Advertisement (NA) Ağ Komşuları Tanımlama, Tip 137 – Route Redirection / Trafik Yönlendirme

Bu mesajların çoğunluğu unicast veya multicast olarak iletilebilmektedir. Böylelikle NDP ve SLAAC etkin bir şekilde işleyebilmektedir. Bir bilgisayar bir IPv6 ağında otomatik olarak bir IPv6 adresi oluşturduğunda diğer tüm sistemlere – multicast – FF02::1 iletilen bir NS mesajı yayınlamaktadır Eğer bu adres ağ üzerinde bulunan bir bilgisayar tarafından kullanılıyorsa, bu adrese sahip olan bilgisayar karşılık olarak NA mesajı yayınlayacaktır. Aynı zamanda bilgisayar ağ üzerinde bulunan yönlendirici tespit etmek için multicast adresi olan FF02::2 bir RS mesajı yollayacaktır. Bu mesajı alan yönlendirici(ler) de yanıt olarak RA mesajı iletecek ve sistem kullanacağı adres ön ekini bildireceklerdir .RA mesajı ile yönlendirici gerektiğinde ağdaki tüm sistemlerin adres ön ekini ve diğer ağ parametrelerini de güncellenmesini sağlayabilecektir.

NDP ve SLAAC ağın işleyişini ve etkinliğini önemli derecede iyileştirirken göz önüne alınması gereken bazı güvenlik risklerini de beraberinde getirmektedir. IPSEC, IPv6 ile zorunlu olurken, ICMP mesajlarının güvenli kılınmasını sağlamamaktadır. IPSEC yapılandırmasının ağ yöneticisi tarafından elle yapılandırılması gereklidir. Bu durumda IPv4 ağlarında karşılaşılan sahte ARP mesajları gibi kolaylıkla sahte ICMP mesajları da saldırganlar tarafından ağa yollanabilir. Bu risk SLAAC ve NDP protokollerinin çeşitli saldırılara açık duruma getirmektedir. Örneğin saldırgan NS mesajlarını kullanarak kendisini ağdaki başka bir sistem gibi tanıtabilir. RA mesajları yollayarak kendi sistemini yönlendirici olarak tanıtabilir ve ağ trafiğinin kendi üzerinden geçmesini sağlayabilir. Bir diğer risk saldırganın sahte NS mesajları yayınlayarak ağ bağlı diğer bilgisayarlara boş adres bulunmadığı bilgisini vererek bilgisayarların adres alabilmesini önleyebilir. Aynı zamanda saldırgan sahta RA mesajları ile ağa bağlı bilgisayarların yapılandırmalarını – adres ön eki – değiştirmelerini sağlayabilir.

Burada yer verdiğim olası güvenlik risklerinin tam bir listesini RFC 3756 “IPv6 Neighbor Discovery (ND) Trust Models and Threats – Ağ Komşularının Belirlenmesi (ND), Güven Modeli ve Tehditler” bulabilirsiniz. Bu olası güvenlik risklerinin ortadan kaldırılması için Secure Neighbor Discovery – SeND geliştirilmiştir.


SeND

NDP ve SLAAC etkin ve güvenli bir şekilde işleyebilmesi için RFC 3971 Secure Neighbor Discovery – SeND, Ağ komşularının Güvenli Olarak Belirlenebilmesi ortaya atılmıştır. SeND ile IPSEC gereksinim duyulmamaktadır. Temel oalrak SeND bir RSA anahtar çifti kullanarak ICMP mesajlarını güvenli kılmaktadır. Böylelikle ICMP, IPSEC ile güvenliğinin sağlanması gerekmektedir. SeND kullanılırsa, ağ üzerindeki her sistem IPv6 adres bloğunun alt 64 bitlik katmanında – Address Indentifier – yer alana bir kriptografik adres oluşturmaktadır. Bu adresi oluşturan sistem bu bilgiyi ICMP mesajına ekleyerek diğer sistemlere iletmektedir. Böylelikle diğer sistemler gelen ICMP mesajlarının söz konusu sistemin RSA anahtarı ile karşılaştırarak mesajın kaynağını doğrulayabilmektedir. SeND bu özelliklere ka olarak zaman damgası ve tekillik özelliklerini de ekleyerek bir saldırgan tarafından aynı mesajın tekrara tekrar yollanmasının önüne geçmektedir. (Timestamp ve Nonce) SeND ICMP'e güvenli kılmakta olsa da bazı kısıtlamalar ile karşı karşıya kalmaktadır. Bir çok donanım bugün için SeND desteklememektedir. Öte yandan ağdaki tüm donanımlar SeND tam olarak desteklese bile halen güvenlik riskleri söz konusu olabilir. Ağ üzerinde SeND desteğine sahip donanım kullanırken ağdaki sistemlerin RS ve RA mesajlarının kaynağını doğrulayacak bir mekanizma kurulmaması durumunda ağdaki bir sistemin kendisini yönlendirici olarak tanımlayabilmesi olasıdır. Bu sistem tüm trafiği kendi üzerinden geçireceği gibi istediği adrese de yönlendirebilir.

IPv6, Ipv4'ün kısıtlamalarını aşmak için tasarlanmış olmakla birlikte ağ yöneticileri tarafından doğru olarak yapılandırıp uygulamaya konulmadığı sürece bir çok riski beraberinde getirecektir. Özellikle de IPv4 göre IPv6'da ICMP güvenli kılmak daha önemli hale gelmektedir.