Saldırı Tespit Sistemlerinde Derin Öğrenme Yaklaşımı - 1



Günümüzde internet ve toplumsal yaşam hızla artan bir bütünleşme içerisindedir. Entegrasyonun doğasını oluşturan gelişmeler sosyal medya, bankacılık, bulut hizmetleri vb. birçok alanda kolaylıklar sağlamasının yanında bilgi güvenliğini tehdit eden birçok riski de beraberinde getirmektedir. Bilgi güvenliğini sağlamak için ortaya atılan çözüm önerilerinden biri de IDS (Intrusion Detection System) olarak adlandırılan saldırı tespit sistemleridir (STS). Saldırı Tespit Sistemlerini, tespit yöntemleri bakımından güvenlik ihlallerini ve atakları imza kurallarından ya da ağ trafiğindeki davranışsal yaklaşımlardan (Anomali Tespiti) yakalayabilen sistem olarak tanımlayabiliriz.

İmza Tabanlı Tespit yaklaşımına yönelik CISCO IDS Sensor Signatures Listesinde TCP 3000 serisine ait bir imza örneğini inceleyecek olursak : "3102-Sendmail Invalid Sender: This signature fires on any mail message with a pipe ( I ) symbol in the From: field. "[3] imzası herhangi bir mail içeriğindeki kimden bölümünde yer alan karakterlerde pipe("|") sembolü varsa geçersiz mail göndericisi uyarısı  üretmektedir.

Saldırı Tespit Sistemleri konumlandırılmaları bakımından Host Bazlı ve Network Bazlı olmak üzere 2 ye ayrılmaktadırlar. Network bazlı STS'ler ağ trafiğinin tamamını inceleyerek saldırı tespiti yapmaktadırlar. Host bazlı STS' lerdeki amaç ise üzerinde yer aldığı host makinesine yönelik bir saldırı olup olmadığını tespit etmektir. 

STS'lerin saldırı durumundaki davranışlarına göre ise  aktif ve pasif olarak sınıflandırma yapılmaktadır. Pasif STS'ler tespit ettikleri saldırıların Log kayıtlarını  tutmanın yanında uyarı  da üretmektedirler. Saldırıya doğrudan müdahale etmezler. Aktif STS'lerde ise log kaydı tutma ve uyarı iletmenin yanısıra Saldırı Engelleme Sistemlerindeki (IPS) gibi ilgili saldırıyı engellemektedir ya da bir honeypot (tuzak olarak kullanılan mevcut ağdaki önemsiz, kısmen soyutlanmış bir makine) cihaza aktarmaktadırlar. 

Tespit algoritmaları öncesinde saldırı içeriğinin bir sınıfa dahil edebilmesi için saldırıların daha önce sınıflandırılmış bir şablondan olması gerekmektedir. Analizlerin yapabilmesi için anlık trafiği bu tür sistemler üzerinden geçirmek ya da aynalanmış (mirror/span) portların dinlenmesi gerekmektedir. 
Normal bir topolojide Şekil-1'de görüldüğü üzere Saldırı Tespit Sistemleri kendisine izlemesi için verilen ağda her yönde oluşan saldırılara yönelik uyarı verse de, farklı platformlar arasında ilişkilendirme yapılabilmesi için kayıtlarını ilgili SIEM (Security Information and Event Manager) ürünlerine iletmektedir. 

Şekil-1: Network Tabanlı STS içeren örnek bir topoloji

STS'lerin sahip olması gereken ideal özellikler :
  • Zero-Day saldırıları algılayabilme. (İmza tabanlı olmasa da davranış/anomali yaklaşımı ile)
  • İnsan müdahalesine yok denecek kadar az gereksinim duyma (Otomatize yapı)
  • Herhangi bir uygulama ya da servise yönelik genelleştirilebilir yapıya sahip olma
  • Mimicry (Taklit Saldırıları) saldırıları algılayabilme (normal trafik bilgisine sahip saldırganın bunu taklit edercesine yapmış olduğu atak)
  • Düşük ya da kontrol edilebilir düzeyde yanlış-gerçeklik (false positive - normal trafiği atak algılama) ve yanlış-negatif (false negative - atak trafiğini normal algılama) sayısı
  • Yüksek bant genişliği bulunan ortamlarda etkin yönetilebilir olma
  • Gerçek zamanlı ya da buna yakın sayılabilecek bir gecikme ile çalışma 
olarak listelenebilmektedir.[2] Belirtilen özelliklere bakıldığında STS'lerin Yapay Zeka (Makine Öğrenmesi-> Derin Öğrenme), Veri Madenciliği, İstatistiksel Veri Analizi gibi bilgisayar bilimleri alanları ile ilişkili olması gerekliliği anlaşılmaktadır. 


STS alanındaki önceki çalışmalara ve uygulamalara bakıldığında imza tabanlı (signature based) ve anomali tabanlı sistemlere rastlanmaktadır. İmza tabanlı sistemler ağ trafiği içerisindeki şüpheli davranışlara göre kalibre edilirken, anomali tabanlı sistemler normal davranışlara odaklanmaktadır. İmza tabanlı ve anomali tabanlı yaklaşımlar her ne kadar olay yönetimini otomatize hale getirerek günü kurtarsa da sürdürülebilirliğe etki eden dezavantajları bulunmaktadır. 

Dezavantajlar
  • İmza sayısının artması yapılacak kontrollerin (yani kullanılacak algoritma karmaşıklığının lineer olarak) artması demektir. Bu durum imza sayısı arttıkça imzanın test edilmesi, sistem yükünün artmasından dolayı kaynak tüketiminin artışı gibi kısıtlara yol açabilmektedir.
  • İmza ekleme işleminin zorluğu; hem veri çeşitliliği hem de verinin hacmi bakımından büyük veri olarak ifade edilen ağ trafiği verilerinden manuel olarak çok az sayıda imzanın belirlenip eklenebileceği anlamına gelmektedir. İmza tabanlı sistemlerde yanlış negatif oranı yüksektir. (atak trafiğini normal algılama) Harcanan efor ve alınan karşılık bakımından bu durum verimli değildir. 
  • İmza tabanlı STS'leri bir karar ağacı gibi de düşünebiliriz. Karar sınırları doğası gereği hızla değişen ve çeşitliliği fazla olan büyük veri düşünüldüğünde esnek ve adaptif olması gereken durumlar karşısında yetersiz kalmaktadır.
  • Büyük verinin sahip olduğu çeşitlilik göz önünde bulundurulduğunda normal trafik verileri hızla değişebilmektedir ve anomali tabanlı  STS'lerin başarısını düşürmektedir. Bu nedenle anomali tabanlı sistemlerde ise yanlış gerçeklik oranı yüksektir. (Normal trafiği atak algılama) 
Zafiyet tespit sistemlerinde makine öğrenmesi ön işleme tekniklerinden özellik çıkarma işlemi ve üst başlığı "Feature Engineering" olarak literatürde geçen uygulama alanı önemli yer tutmaktadır. Bu nedenle, ağ trafiğinden elde edilen verilere göre özellik çıkarma işlemi yapılması gerekmektedir. Flow bazında yapılacak zafiyet tespitleri mevcut cihazlardan dahi elde edilebilecek olan istatistiksel özellikler üzerinden yapılabilmektedir. Fakat içerikle ilgili olan saldırı tipleri (XSS attack, Sql veya Command injection vb.) için çeşitli metin işleme ve graf algoritmaları (Parse Tree) kullanılmaktadır. İlgili kaynaklardan edinilen bilgilere göre port 80 trafiğindeki paketlerin payload içeriklerinde bulunan verilerden çeşitli özellikler çıkarılabilmektedir. Bu özellikler genellenecek olunursa Şekil-2' de bulunan tablodan faydalanılabilir. Tablodaki ilk özellik olan güvenlikle alakalı olan anahtar kelime sayısı hem windows hem de unix işletim sistemleri için { “/bin/sh”, “/etc/passwd”, “admin”, “cmd.exe”, “dll”, “script”, “root” } kelimelerini ne kadar içerdiğine bakılarak oluşturulmaktadır. 2. Özellik ise payload uzunluğudur. 3. Özellik ise payload içeriğinin sahip olduğu düzensizliği ifade eden entropi değeridir. Diğer özellikler ise minimum byte değeri, maksimum byte değeri, tekrarsız byte sayısı, yazdırılamayan karakterlerin sayısı, noktalama işaretleri sayısı olarak açıklanmaktadır. [1]



Şekil-2: Payload İçeriğinden Çıkarılabilecek Genel Özellikler [1]

İlgili payload içeriğinden bahsedilen özellikler çıkarıldıktan sonra sistemin tasarımına bağlı olarak seçilecek olan sınıflandırma ya da kümeleme başlığı altında gruplanan makine öğrenmesi algoritmalarıyla zafiyet tespiti yapılabilmektedir.


Kaynaklar: 
1- Rieck, Konrad. "Machine learning for application-layer intrusion detection." (2009).
2- Collins, Michael. Network Security Through Data Analysis: From Data to Action. " O'Reilly Media, Inc.", 2017.
3- Sweeney, Michael, et al. Cisco security professional's guide to secure intrusion detection systems. Syngress Publishing, 2003.

Sonraki yazımızda derin öğrenme teknikleri ile çeşitli saldırı tiplerine göre STS' ler için neler yapılabileceğinden kod örnekleriyle birlikte bahsedeceğiz...


M.Yasin SAĞLAM

Yorumlar

Bu blogdaki popüler yayınlar

1. Geleneksel Stajyer CTF Soru ve Cevapları

2. Geleneksel Stajyer CTF Soru ve Cevapları - 2017

ARP Poisoning ile Browser Exploitation - MITMf + BeEF + Metasploit