Uygar KÖROĞLU
Software Defined Network - Yazılım Tanımlı Ağlar
SDN, ağlarda kontrol düzlemi ile veri düzleminin ayrılması esasına dayanır. Yani, ağdaki paket yönlendirme işleminin nasıl yapılacağını belirleyen karar mekanizmasını, bu yönlendirmeyi yapan cihazlardan fiziksel olarak ayırır.
Ağ kontrolünü merkezi bir programa vermenin faydaları ağ ekipmanlarını basitleştirip ucuzlatmakla sınırlı değildir. Buna ek olarak ağ yönetimini kolaylaştırma, ağ ekipmanlarının davranışını üreticiden bağımsız olarak hızlı biçimde değiştirebilme, yeni mekanizmaların araştırılıp denenmesine yardımcı olma gibi birçok potansiyel faydası vardır.
SDN mimarisi, SDN Controller ve fiziksel cihazlar olarak iki temel yapıdan oluşur. Control layer işlevi, SDN Controller üzerinde kalır yani burada; routing/forwarding, path seçimi gibi kararlar verilir ve cihazların erişilebilirliği, durumları hakkında bilgiler tutulur. SDN controller, kendi içinde beyin olan SDN app ile haberleşmesini sağlayan NBI arayüzler, SDN veri yolu ile haberleşmesini sağlayan CDPI(Control Data Plane Interface) arayüz ve SDN kontrol mekanizmasından oluşur.
Openflow yazılım tanımlı ağlarda ağ yöneticilerine ağın topolojisi ve ağdaki paketleri filtreleme değişimlerinde yönetim imkanı sunmaktadır. Openflow protokolü içerisindeki en önemli bileşenler controller ve openflow ağ anahtarlarıdır.
Kısaca ağ paketlerinin yolunu bulması için başka bir sunucuda program çalıştırılması yöntemi denilebilir.
Saldırgan bu katmanda cihazların ağ trafiğini doğru iletebilmesi için üzerlerinde tuttuğu akış tablolarına (flow-table) müdahale edip ağ trafiğini dinlemeye çalışabilir.
Cihazlara DDoS saldırısı gerçekleştirebilir.
Çözüm: IDS (Intrusion Detection System)
Controller çoğunlukla bir Linux işletim sistemi üzerinde çalışmaktadır. Bu işletim sistemi üzerinde oluşacak bir güvenlik açığı SDN Controller'ın güvenliğini de doğrudan etkilemektedir.
SDN Controller'ı hedef alan bir saldırgan, işletim sistemini de bu yönde kullanabilir.
Çözüm: Sistem güncel tutulmalı, mümkün olduğu kadar dışarıdan erişime kapatılmalıdır. Ayrıca belirlenmiş olan sağlam güvenlik politikaları uygulanmalıdır.
Controller'lar çoğunlukla API üzerinden yönetilmekteler. Python, Java, C, REST, XML, JSON gibi bir çok farklı API çeşidi mevcut.
Eğer saldırgan API üzerinden erişim sağlarsa Controller'ı ele geçirebilir. Ele geçirdikten sonra kendi kurallarını girerek ağ yapısının tamamına müdahale edebilir.
Çözüm: API'ler varsayılan kullanıcı adı parola ile bırakılmamalı. Hatta controller farklı bir ağ üzerinde çalışarak bu ağı kontrol etmeli. (Remote Control)