Makine Öğrenimi Tekniklerini Kullanarak Web Uygulama Saldırılarının Tespiti

Hüseyin Şahin
14 min readMar 3, 2021

--

Web uygulamaları, güvenlik açıklarından yararlanan saldırılara kalıcı olarak maruz kalmaktadır. Bu çalışmada, saldırıları tespit etmek ve önlemek için kullanılan Web Uygulama Güvenlik Duvarlarının (WAF) performansından yararlanmak için makine öğrenimi tekniklerinin kullanımına değinilmiştir.

Eğitim için geçerli ve/veya saldırı verilerine sahip olup olmadığımıza bağlı olarak farklı senaryolar tanımlayarak sorunun bir karakterizasyonunu önerilmektedir. Ayrıca çalışmada iki çözüm önerilmektedir; ilki, geçerli ve saldırı verileri mevcut olduğundaki senaryo için çok sınıflı(multi-class) yaklaşım; ikinci ise, yalnızca geçerli veriler elinizin altında mevcut ise tek sınıflı(one-class) yaklaşım çözüm olabilmektedir.

Makine Öğrenimi Tekniklerini Kullanarak Web Uygulama Saldırılarının Tespiti

Yaygın olarak kullanılan bir WAF teknolojisinin temel yapılandırma ayarı olan OWASP Çekirdek Kural Seti ile yapılandırılmış MODSECURITY’den daha iyi performans gösteren her iki yaklaşımı kullanarak sonuçları sunulmaktadır. Ayrıca DRUPAL isimli content management frameworküne dayalı olarak etiketlenmiş bir veri kümesi de kullanılmaktadır.

Not : Bu makale, Uruguay Cumhuriyet Üniversitesi’nden Gustavo Betarte, Rodrigo Martinez ve Alvaro Pardo’nun yapmış olduğu çalışmanın Türkçe çevirisidir. Konuyla ilgili araştırma yapan kişilere yardımcı olmak amacıyla tarafımca çevrilmiştir. Makalenin orijinal haline en aşağıdaki linkten erişebilirsiniz.

1-GİRİŞ

Web uygulamalarının, güvenlik açıklarını kullanan saldırılara kalıcı olarak maruz kaldığı bilinen bir gerçektir. OWASP Top 10 gibi girişimler, web uygulamalarının güvenliğine ilişkin farkındalığın artmasına büyük ölçüde katkıda bulunmasına rağmen gerçekleşmekte olan saldırıları engellemeye yeterli olmamaktadır. Bu bağlamda, saldırı tespit teknikleri oldukça önemli hale gelmektedir. Bu teknikler, sistemin geçerli bir kullanıcısının davranışıyla kötü niyetli bir aracı arasında ayrım yapmaya yardımcı olan prosedürleri içermektedir. Bir kullanıcının davranışının tanımlanması ve belirlenmesi, tespit edilen her olayın sadece şüpheli olup olmadığını veya aslında bir saldırının parçası olan bir olay olup olmadığı dikkate almalıdır. Bu tür teknikler, saldırganların uygulamalardaki güvenlik açıklarının varlığını başarıyla tanımlamasını/doğrulamasını önleme ve yanlış pozitiflerin(false positives) sayısını en aza indirme gibi konularda yardımcı olmaktadır.

Saldırı analizi gerçekleştirmek için teknolojik bir alternatif olarak, Web Uygulama Güvenlik Duvarı (WAF) kullanılmaktadır. WAF, HTTP paket içeriği içindeki saldırıları arayarak, web sunucusu ile istemcileri arasındaki tüm trafiği kesen ve inceleyen bir yazılım parçasıdır. Bir kez tanındığında, şüpheli paketler farklı, güvenli bir şekilde işlenebilir, örneğin işlem için günlüğe kaydedilebilir, bastırılabilir(suppressed) veya türetilebilir.

Açık kaynaklı bir WAF uygulaması olan MODSECURITY, gerçek zamanlı web uygulaması izleme, günlüğe kaydetme(logging) ve erişim kontrolünü etkinleştirerek kullanıcı isteklerinin ve uygulama yanıtlarının analizine izin vermektedir. MODSECURITY’nin üstlendiği eylemler, tespit edilecek HTTP paketlerinin içeriklerini normal ifadeler aracılığıyla belirleyen kurallar tarafından yönlendirilmektedir.

MODSECURITY, içinde bulunan en yaygın güvenlik açıklarını ele almak için OWASP Çekirdek Kural Kümesi (OWASP CRS) olarak bilinen varsayılan bir kurallar kümesi sunmaktadır. Fakat, yalnızca kurallara dayalı bir yaklaşımın bazı dezavantajları da vardır.Kurallar statiktir ve doğaları gereği katıdır; bu nedenle OWASP CRS genellikle oldukça yüksek oranda yanlış pozitif(false positive) üretir ve bu bazı durumlarda %40'a kadar ulaşabilmektedir. MODSECURITY’nin amaçlanan kullanımı saldırıları engellemek olduğundan, bu kadar yüksek bir yanlış pozitif oranı potansiyel olarak uygulamanın hizmet reddine yol açacaktır; bu nedenle kural ayarlaması(rule tuning) gerekmektedir.

Kural ayarı, her bir web uygulaması için manuel olarak gerçekleştirilmesi gereken, zaman alıcı ve hataya açık bir görevdir. Geleneksel ağ güvenlik duvarlarında ve IDS’de kurallara dayalı yaklaşım; makine öğrenimi tabanlı, anormallik algılama araçları ve daha yüksek düzeyde esneklik ve uyarlanabilirlik sağlayan diğer istatistiksel yaklaşımlarla başarılı bir şekilde tamamlanmıştır. Bu yaklaşımlar, nominal kullanım dışında kalan şüpheli durumları (anormallikleri) tespit etmek için web uygulamasının normal davranışının öğrenilebildiği ve devam eden saldırılara karşılık gelebilecek örnek verilerden yararlanır. Yapılan çalışmanın öncelikli amacı, MODSECURITY’i bu tür tekniklerle geliştirmektir.

Çalışmada, WAF MODSECURITY’nin algılama yeteneklerini iyileştirmek için makine öğrenimi tekniklerini uygulamaktadır. Doğru pozitif oranını(true positive rate) düşürmeden bir web uygulamasını korumak için, bu araç tarafından oluşturulan yanlış pozitifleri azaltma görevi üstlenilmiştir. Öğrenme modellerini eğitmek için verilerin mevcudiyetine bağlı olarak farklı senaryolar tanımlayarak problemin bir karakterizasyonu sağlanmıştır. Karşılık gelen senaryoya bağlı olarak farklı öğrenme algoritmalarını denemeye yarayan bir öğrenme frameworku tanımlanmıştır. Deneyler, üç farklı veri kümesi üzerinden gerçekleştirilmiştir. Elde edilen sonuçlarda, çoğu durumda, OWASP Çekirdek Kural Kümesi (OWASP CRS) ile yapılandırılmış MODSECURITY’nin yürütülmesinden daha iyi performans göstermektedir.

Makalenin geri kalanının yapısı aşağıdaki gibidir: Bölüm II, web uygulama güvenliği ve koruma mekanizmaları hakkında temel bilgilerden oluşmaktadır. Bölüm III’te deneyleri gerçekleştirmek için kullanılan öğrenme framework’e değinilmektedir. Sonuçlar ise Bölüm IV’te açıklanmakta ve tartışılmaktadır.

2-BACKGROUND

Bu bölüm, web uygulama güvenliği hakkında kısa bilgiler vererek koruma mekanizmalarını kısaca anlatmaktadır.

Web Uygulama Güvenliği

OWASP Top 10 2017 tarafından tanımlanan en kritik web uygulaması güvenlik riski, doğrudan giriş doğrulamasıyla ilgili olan injectiondur. Injeciton, kullanıcı tarafından uygulamaya gönderilen veriler, bir yorumlayıcının arka planda yürüttüğü beklenmedik sonuçlar üreten bir talimatın parçası olarak kullanıldığında gerçekleşmektedir.Tercümana bağlı olarak farklı enjeksiyon türleri vardır; SQL, LDAP, XPath, NoSQL sorguları, OS komutları, XML ayrıştırıcıları, SMTP headerları ve diğerleri.

Injecton, OWASP Top 10'un (2007 yılı) ilk yayınından bu yana sürekli olarak ilk üç güvenlik riskinden biri konumundadır. Bununla birlikte, uygulamalar hala bu tür bir güvenlik açığından muzdariptir. Bu nedenle, giriş doğrulaması yazılım güvenliği için kritiktir.

Böyle bir doğrulama, sisteme akan tüm verilerin etkili bir şekilde kullanılmadan önce doğrulanması ve filtrelenmesinden oluşur. Bu prosedürler genellikle uygulamaların tasarım aşamasında tanıtılmaz, daha sonra özellikle web uygulamaları için kritik olabilecek gözetimsiz güvenlik açıkları bırakır. Veriler uygun doğrulama olmadan işlendiğinde, bir saldırgan sistemi öngörülemeyen durumlara yönlendirebilir ve bunu kendi yararına kullanabilir. Bu veriler, saldırgan tarafından faaliyetlerine devam etmek için daha fazla bilgi elde etmek için analiz edilebilecek beklenmedik sonuçlar da üretebilir.

Web Uygulamasının Korunması

Derinlemesine güvenlik ilkesi, güvenlik mekanizmalarının korunmakta olan sistemin etrafında katmanlanması anlamına gelir; bu nedenle, bir saldırı bir mekanizmayı atlarsa, gerekli güvenliği sağlamak için başka mekanizmalar vardır.

Bir web uygulamasının güvenliği söz konusu olduğunda, korunacak dış katman kuruluşun ağ çevresidir(network perimeter). Tipik olarak ağ güvenlik duvarları, gelen / giden trafiği korumak için konuşlandırılmaktadır. Ağın kendisine gelince, örneğin olası tehditleri tespit etmek için ağ trafiğini analiz etmek için bir Saldırı Önleme Sistemi (IPS) yaygın bir şekilde kullanılmaktadır. Ek olarak, web uygulamalarına özgü güvenlik açıklarından yararlanan saldırıları belirlemek için iletişim kanalı üzerinden istek / yanıt akışını analiz etmek için Web Uygulaması Güvenlik Duvarı (WAF) konuşlandırılabilmektedir.

Genel durumda, hem geleneksel güvenlik duvarları hem de IPS, ağ katmanındaki trafiği inceler. Yapılan çalışma üzerine sunulan araştırmada, web uygulaması saldırılarını önlemek için yaygın olarak kullanılan WAF’a odaklanılmıştır. Geleneksel ağ güvenlik duvarlarının aksine, WAF’ler uygulama katmanında, paket incelemesi gerçekleştirmek üzere tasarlanmıştır. SSL ve TLS kullanılarak güvenli iletişimler WAF tarafından yapılmaktadır, bu nedenle çalışmada HTTP protokol analizine odaklanılmıştır.

Bir WAF genellikle farklı güvenlik modeli yapılandırmalarını destekler. Normalde hem pozitif hem de negatif güvenlik modellerinin uygulanmasını mümkün kılmaktadır. Pozitif güvenlik modeli yalnızca bilinen iyi trafiğin geçmesine izin verir, diğer tüm trafik engellenir. Negatif güvenlik modeli ise, kötü niyetli olduğu bilinenlerin dışındaki tüm trafiğin geçmesine izin verir.

MODSECURITY, fiili olarak standart bir açık kaynak teknolojisidir. Verizon gibi büyük kuruluşlar şu anda bu teknolojiyi büyük uygulamaları korumak için kullanmaktadır. Bu WAF, algılama ve önleme olmak üzere iki çalışma modunu desteklemektedir. İlk modda, tespit edilen her potansiyel saldırı için günlükler(logs) oluşturulur. Normalde bu mod, yeni kurallar eklenirken ve false positiveler için izlenirken kullanılır. İkinci mod, WAF’ın gerçekten yararlı olduğu durumdur. Kuralları doğru bir şekilde yapılandırarak, uygulamalara gelen ve gelme olasılığı bulunan kötü amaçlı web trafiğini engelleyebilir. MODSECURITY’nin çekirdeği esnek bir kural motoru uygular ve kurallar, her başvuru talebinde / yanıtında uygulanabilmektedir.

OWASP, iyi bilinen ve yaygın güvenlik açıklarından yararlanılmasını algılamak ve önlemek için OWASP Temel Kural Kümesi(OWASP CRS) olarak bilinen genel bir kural kümesi tanımlamıştır. OWASP CRS, Akamai, Azure, CloudFare, Fastly ve Verizon gibi büyük kuruluşlarda yaygın olarak kullanılmaktadır.

OWASP CRS’nin amacı, MODSECURITY’e beslendiğinde herhangi bir web uygulaması için temel bir koruma seviyesi sağlayan bir dizi genel saldırı algılama kuralı sağlamaktır. OWASP CRS, kuralların bilinen saldırı modellerini tespit etmek için tasarlandığı negatif bir modeli uygulamaktadır.

3-UYARLANABİLİR UYGULAMA GÜVENLİĞİ

MODSECURITY genellikle negatif bir model kullanarak çalışacak şekilde yapılandırılır çünkü uygulamanın gerçek yaşamdaki normal davranışını tanımlayan kuralları tanımlamak neredeyse imkansız bir görevdir. Operasyonel moddaki bu sorun, WAF’ın ürettiği yüksek sayıda false positive ve dolayısıyla öğrenme aşamasında ihtiyaç duyulan ayarlama miktarıdır(amount of tuning). Burada bildirilen araştırmanın temel amaçlarından biri, davranışını koruyan uygulamaya daha iyi uyarlamak için makine öğrenimi tekniklerini kullanarak MODSECURITY davranışını daha esnek hale getirmektir. Ek olarak, korumak için uygulamanın operasyonel bağlamına bağlı olarak, alternatif öğrenme senaryoları düşünülebilir.

Belirli bir uygulamanın geçerli ve saldırı davranışını temsil eden etiketli bir veri setine sahip olma durumu her zaman mümkün değildir, bu nedenle farklı öğrenme senaryoları araştırılmıştır.

A. Öğrenme Senaryoları

İlk senaryo (sc1), normal (geçerli) istekleri, saldırılardan ayırt ederek etiketlenen, gerçek uygulama trafiğinin mevcut olduğu ideal duruma karşılık gelmektedir. Sc2 senaryosunda (uygulamaya gelen geçerli isteklerden elde edilen) gerçek geçerli trafik mevcuttur ve saldırılar olarak sınıflandırılan istekler, kötü amaçlı olduğu bilinen ancak özellikle korunacak uygulama için olmayan isteklerden meydana gelmektedir. Etiketli geçerli ve saldırı istekleri her iki durumda da mevcut olduğundan, denetimli çok sınıflı(supervised multi-class) tekniklerin uygulanması mümkündür. Aşağıda, denetimli çok sınıflı tekniklerin iki farklı yaklaşımını ve sc1 ve sc2'de elde edilen sonuçlar verilecektir.

Sc3 senaryosunda yalnızca geçerli istekler bilinir, saldırı olarak etiketlenmiş hiçbir istek mevcut değildir. Bu senaryoyu işlemek için tek sınıflı bir sınıflandırma(classification) yaklaşımı uygulanmıştır.

B. Veri Kümeleri

Sınıflandırma deneyleri, etiketli verileri içeren üç farklı veri kümesi üzerinde gerçekleştirilmiştir. Buna ek olarak, günlüğe kaydedilen her istek hem header’ını hem de body’sini içermektedir. Bu gereksinimleri karşılayan yalnızca üç veri seti vardır: 1998 DARPA Intrusion Detection Evaluation Data Set, PKDD2007 Challenge and CSIC2010. İlk veri kümesi, yalnızca web uygulaması trafiğini değil, ağ trafiğini de kaydederek oluşturulduğu için atılmıştır. Diğer iki veri kümesi oldukça eskidir (web uygulamalarının gelişimi göz önüne alındığında) ve yapay olarak üretilmiştir. Yaklaşımları, yakın zamandaki ve gerçek hayattaki taleplerle doğrulamak için, üniversitenin web sitesine dayalı olarak DRUPAL adında ek bir veri kümesi oluşturulmuştur.

a) PKDD2007 Veri Kümesi : 2007'de 18. Avrupa Makine Öğrenimi Konferansı (ECML) ve 11. Avrupa Veritabanlarında Bilgi Keşfi İlkeleri ve Uygulaması Konferansı (PKDD) tarafından, web trafiğini analiz etme konusunda, yedi farklı saldırı türünde sınıflandırılmış geçerli trafik ve istekleri içeren bir veri kümesi sağlanılmıştır. Veri kümesi, normal olarak sınıflandırılmış 35.006 istek ve saldırı olarak sınıflandırılmış 15.110 istek içermektedir. PKDD2007 veri kümesi, daha sonra bilgileri sterilize etmek için işlenen gerçek trafiği kaydederek oluşturulmuştur.. Bu maskeleme işlemi, her url’nin, parametre adlarının ve değerlerin rastgele oluşturulmuş dizelerle yeniden adlandırılmasından meydana gelmektedir.

b) CSIC2010 Veri Kümesi : İspanya Ulusal Araştırma Konseyi (CSIC), 2010 yılında web uygulaması saldırı koruma sistemlerini test etmek için bir veri kümesi geliştirilmiştir. Veri kümesi Normal Trafik ve Anormal Trafik olarak etiketlenen isteklerden oluşmaktadır. Bir e-ticaret uygulamasına gelen gerçek taleplere göre otomatik olarak geliştirilmiştir. Veri kümesi, 36000 geçerli eğitim isteği, 36000 test isteği ve 25000 anormal trafik isteği içermektedir. Anormal trafiği oluşturmak için Paros ve w3af gibi araçlar kullanılmıştır. Buna ek olarak, bazı geçerli istekler parametrelerde yazım hatası ile değiştirilmiştir.

c) DRUPAL Veri Kümesi : Gerçek isteklere ve gerçek saldırılara dayalı, gerçek hayattaki bir uygulamayı denemek için, Uruguay Cumhuriyet Üniversitesi’nin web sitesine gelen altı günlük trafiği yakalayarak bir veri kümesi oluşturulmuştur.

Veri kümesi iki bölüme ayrılmıştır, ilk üç gün eğitim ve test veri setlerini oluşturmak için kullanılmıştır; sonraki üç gün ise doğrulama veri kümesini oluşturmak için kullanılmıştır. İstekler gerçek trafikten elde edildiğinden daha az dengelidirler: Eğitim/test ve doğrulama veri kümeleri için sırasıyla 65600 ve 41519 geçerli istek ve 1287 ve 2226 gerçek saldırı yer almaktadır.

Üniversitenin web sitesi, birkaç yıldır güvenlik ve altyapı uzmanlarından oluşan bir ekip tarafından ayarlanan OWASP CRS’yi içeren bir MODSECURITY örneği tarafından korunmaktadır. Bu nedenle etiketleme aracı olarak MODSECURITY kullanılmıştır. MODSECURITY tarafından kabul edilen istekler geçerli trafik olarak değerlendirilirken MODSECURITY’nin reddettiği istekler saldırı olarak etiketlenilmiştir.

C. Öğrenme Mimarisi

Şimdi, Şekil 1'de gösterilen önerilen öğrenme mimarisinin bileşenleri kısaca gözden geçirilecektir.

Şekil 1-Öğrenme Mimarisi

Bu özel problemde örnekler, istemci ve sunucu arasında bilgi alışverişi için kullanılan yarı yapılandırılmış metin tabanlı protokol HTTP isteklerinden oluşmaktadır. Bilgiler ikili biçimde(binary format) kodlanmıştır. Öğrenme algoritmasının gerçek bilgilerle çalışabilmesi için, HTTP URL kodlu formattaki bilgilerin kodunu çözmek için bir ayrıştırıcı oluşturulmuştur. Öte yandan, isteğe özgü başlıklarda yer alan ve bu nedenle uygulama davranışını ortaya çıkardığı düşünülmemesi gereken bilgiler filtrelenmektedir. Bu durumlara örnek olarak bir çerezin değeri veya web sayfasının en son değiştirildiği zamanın zaman damgası(timestamp) verilebilir.

Çeşitli saldırılar, sunucunun beklenmedik bir işlevi yürütmesini sağlamak için özel olarak hazırlanmış girdilerden yararlanır. Bu girişlerin çoğu, yük(payload) özel karakterlerinin bir parçası olarak kullanılır. Bu karakterleri korumak için ayrıştırıcı(parser), sorgu dizesinden, bodyden ve headerlardan gelen parametreleri analiz eder ve bunları ad(name) ve değer(value) çiftine farklı metin dizeleri olarak böler.

Kabul edilen tokenleştirme süreci, büyük ölçüde öğrenme senaryosuna bağımlıdır. SC1'de kelime çantası(bag of words) modeli uygulanılmıştır. Bu durumda belirteç oluşturucu(tokenizer), ayırmayı, parametre değerlerine veya headerlara dahil edilebilecek özel karakterleri koruyarak yalnızca boşlukları kullanarak gerçekleştirmektedir. Saldırılarda kullanılan özel karakterleri korumak için, bu tokenizer, isteği bölmek için \r \t \n karakterlerini kullanmaktadır. Sc2 ve sc3 durumunda, sc1 durumunda olduğu gibi, veri setinden körü körüne üretilen özelliklerin kullanımı işe yaramamıştır. Ana sorun, çıkarılan özelliklerin büyük miktarı ve seyrekliğidir, çünkü her durumda bunlardan çok azı aktif durumdadır. Bu özellik alanında, saldırıları geçerli isteklerden ayırt etmek zordur. Bu zorluğun üstesinden gelmek için, bir güvenlik uzmanının deneyimi analize dahil edilmiştir. Uzman destekli yaklaşımda, farklı web uygulama saldırılarını daha iyi karakterize eden bir dizi özellik tanımlanmıştır. Önerilen özelliklerin doğrulanması, üç veri kümesi üzerinde bir bilgi kazanımı algoritması(information gain algorithm) uygulanarak gerçekleştirilmiştir. Sonuçlar, tüm özelliklerin veri kümelerinin en az birinde olumlu bir bilgi kazanımına sahip olduğunu göstermiştir. CSIC2010, PKDD2007 ve DRUPAL veri setleri, pozitif bilgi kazanımı ile 64 üzerinden sırayla 43, 38 ve 59 özelliğe sahiptir. Tokenizer her istek için her bir özelliğin görünüm sayısını saymaktadır. Tablo I, tanımlanan özellikleri listelemektedir.

Güvenlik uzmanı tarafından seçilen özellikler

Öğrenme mimarisinin son bileşeni sınıflandırıcıdır. Sc1 ve sc2 senaryoları için çok sınıflı denetimli bir yaklaşım izlenmiştir. Sc3 senaryosu için ise tek sınıflı bir sınıflandırma yaklaşımı uygulanmıştır.

Denetimli yaklaşım, geçerli veya saldırı olarak etiketlenmiş örnekler içeren bir eğitim seti gerektirmektedir ve denetimli çok sınıflı öğrenmenin iki çeşidi gerçekleştirilmiştir.

1) sc1 — çok sınıflı bilgi erişimi: Tokenizasyondan sonra her talep, istekteki terimlerin her birinin karşılık gelen ağırlıklarını hesaplamak için klasik Terim Frekansı Ters Doküman Frekansı (TF-IDF) şemasını uygulayan bir vektöre dönüştürülmektedir. Bu durumda, özellikler(features), tokenization işleminin bir sonucu olarak üretilen, sözlükteki terimlere karşılık gelir. Özelliklerin miktarını azaltmak için, özellik seçimi, bilgi kazanımı algoritması kullanılarak gerçekleştirilir ve 0'dan büyük bir bilgi kazanımına sahip olan tüm özellikler korunmaktadır. Son olarak, Weka ile Support Vector Machine (SVM), K-En Yakın Komşu (K-NN) ve Random Forest algoritmaları kullanarak farklı sınıflandırıcılar eğitilmiştir.

SVM, Gallagher ve diğerleri tarafından bildirilen sonuçları çoğaltmak ve geliştirmek için kullanılmıştır. Deneyler için bir polinom çekirdeği kullanılmıştır ve SVM, sıralı minimum optimizasyon (SMO) kullanarak eğitilmiştir. Basitliği ve öğrenme probleminin karmaşıklığını kategorize etmeye izin verdiği için K-NN kullanılmıştır. Son olarak, bir kural kümesi oluşturucu olarak görülebileceği için Random Forest kullanılmıştır.

2) sc2 — çok sınıflı uzman destekli: Bu yaklaşımda, tokenization, uzman tarafından tanımlanan özellikler kullanılarak gerçekleştirilmiştir. Daha önce bahsedildiği gibi, tokenleştirmeden sonra ortaya çıkan vektör, her pozisyonda özelliğin isteklerdeki oluşum sayısını içermektedir. Bilgi erişim yaklaşımında olduğu gibi, tokenleştirmeden sonra K-NN ve Random Forest algoritmaları kullanılarak, sınıflandırıcılar eğitilmiştir. Çok sınıflı bilgi erişim yaklaşımı ile arasındaki en önemli fark, belirteçleştirmenin(tokenization), belge ve derlemedeki sıklığa bağlı olarak bir özelliğin değerini kodlamak için TF-IDF şemasını uygulamamasıdır. Bu kodlama olmadan, bu özellikler SVM sınıflandırıcısı için uygun değildir. Bu nedenle, SVM kullanılarak hiçbir sonuç rapor edilmemiştir.

3) sc3 — uzman destekli anormallik tespiti: Senaryo sc3, yalnızca hedef sınıf olarak adlandırdığımız geçerli sınıfa ait istekleri kullanmaktadır. Bir sınıfa ait mevcut örneklerinin bulunduğu, diğer sınıfın ise hiç veya çok az örneğinin bulunduğu tek sınıflı bir sınıflandırma yaklaşımı araştırılmıştır. Önerilen anormallik algılama sınıflandırıcıları, hedef sınıfın örneklerini kümeler halinde düzenler ve daha sonra bu kümelere olan mesafeyi bir anormallik ölçüsü olarak kullanır; kümelerden uzaktaki örnekler anormallik olarak sınıflandırılmaktadır.

Beklenti maksimizasyonu (Expectation Maximization) algoritmasını kullanarak, yalnızca hedef örnekleri içeren bir eğitim seti oluşturulmuştur. EM algoritması, bir Gauss Karışım Modelinin (GMM) parametrelerini ve küme sayısını tahmin etmek için kullanılmıştır. GMM’nin her bir bileşeni, hedef sınıfın dağılımını yakalayan bir küme oluşturur. Küme içi(intra-cluster) değişkenliği yakalamak için kümedeki örnekler ile onun ağırlık merkezi arasındaki mesafeyi kullanılmaktadır. Verilen bir x ve C kümesi arasındaki mesafe Mahalanobis mesafesi kullanılarak şu şekilde hesaplanmaktadır.

Mahalanobis Mesafesi Hesabı

Burada Σ, eğitim aşamasında hesaplanan tam kovaryans matrisini temsil etmektedir. Eğitim aşamasında özelliklerden biri görülmezse, ilgili boyutun standart sapması 0 olur ve Mahalanobis mesafesi hesaplanamaz. Bu nedenle, kovaryans matrisine bir düzenlilik terimi eklenerek ayarlanmıştır ε ∗ Id, burada diag(Σ)’de 0'dan farklı en küçük standart sapma, Id ise kimlik matrisidir.

Bir numunenin belirli bir bileşene olan mesafesi, eğitim sırasında gözlemlenen küme içi değişkenlik içindeyse, numune geçerli olarak etiketlenecektir. Uygulanabilmesi için her küme için bir mesafe eşiğine(distance threshold) ihtiyaç vardır. Bu nedenle, her küme için karşılık gelen ortalama mesafe(μd) ve kendisine atanan örneklerin mesafelerinin (std) standart sapması elde edilmiştir. Temelde, eşik(threshold) aşağıda gösterildiği gibi tanımlanmaktadır.

Threshold Hesabı

λ parametresi, kümenin boyutunu 0'dan (burada yalnızca kümenin ağırlık merkezine karşılık gelen örnekler sınıflandırılır) 1'e değiştirmemize izin verir; burada neredeyse tüm istekler hedef sınıf olarak sınıflandırılmaktadır. Sınıflandırma sırasında, isteklerin kümelere olan Mahalanobis mesafesini hesaplanmaktadır. Eğer mesafe eşik değerine eşitse veya eşikten düşükse, istek kümeye atanmaktadır.

Herhangi bir kümeye atanmamış istekler saldırı olarak sınıflandırılmakatadır. Her kümenin eşiği, kabul etmeye istekli olduğumuz false positivelerin sayısı ayarlanarak tanımlanabilir.(Küme içi mesafelerin dağılımını gözlemleyerek yapılabilir.) Eşiğin üzerindeki tüm noktalar false positive oluşturacaktır.

4-SONUÇLAR

Bu bölüm, gerçekleştirilen deneylerin sonuçlarını sunmaya ve tartışmaya ayrılmıştır. Sonuçlar Precision, Recall, True Positive Rate (TPR) ve False Positive Rate (FPR) açısından sunulacaktır. TPR ve FPR, sırasıyla saldırı olarak doğru ve yanlış sınıflandırılmış isteklerin oranını göstermektedir.

A. Temel

Bu çalışmanın temel amaçlarından biri, TPR’yi düşürmeden MODSECURITY tarafından üretilen false positivelerin miktarını azaltmaktır. Tablo II, her veri kümesi için kutudan çıkan OWASP CRS ile yapılandırılan MODSECURITY sonuçlarını sunmaktadır. Temel, standart konfigürasyonla işbirliğine dayalı algılama modunda MODSECURITY 2.7 ve OWASP CRS 2.2.9 ile yapılandırılmış bir Apache HTTP Sunucusu 2.4 ile oluşturulmuştur.

MODSECURITY temelinin (baseline) ve üç senaryonun özetlenmiş sonuçları

B. Senaryo 1

Kelime çantası(bag-of-words) yaklaşımını kullanarak taleplerin tokenize edilmesinden sonra farklı çok sınıflı sınıflandırıcılar eğitilmiştir. Gerçek geçerli ve saldırı taleplerinin mevcut olduğu göz önüne alındığında, SVM, KNN (K = 3 ile) ve Random Forest sınıflandırıcılarını eğitmek ve test etmek için 10 kat çapraz doğrulama(cross validation) gerçekleştirilmiştir. Sonuçlar, sc1'e karşılık gelen bölümde Tablo II’de özetlenmiştir. Tüm veri kümelerinde sonuçların, değerlendirilen tüm sınıflandırıcılar için hassasiyet(precision), recall, TPR ve FPR açısından iyi performans gösterdiği fark edilebilmektedir. Özellikle, genel bir analizde Random Forest sınıflandırıcısının daha iyi performansa sahip olduğu gözlemlenmiştir. Bu sonuçlardan elde edilen ana sonuç, çok sınıflı yaklaşımın uygulanmasının, mümkün ve iyi performans puanlarına sahip olmasıdır. Ancak bu yaklaşımın iki önemli sınırlaması vardır. Bir yandan, sınıflandırıcıları eğitmek için her iki sınıftan etiketli verilere ihtiyaç vardır. Öte yandan, bir veri kümesi için tasarlanan sınıflandırıcı, diğerlerinde kullanılamaz. Aynı özellikleri kullanarak, örneğin PKDD2007 için eğitilen ve daha sonra DRUPAL kullanılarak test edilen modeli uygularken iyi performans puanları elde edilememiştir.

C. Senaryo 2

Veri kümelerinin eksikliği göz önüne alındığında, bu senaryoyu taklit etmek için PKDD2007 ve DRUPAL veri kümeleri %50'ye bölünerek, eğitim için yarısı, test için yarısı kullanılmıştır. Eğitim veri setlerini oluşturmak için test edeceğimiz veri setinden geçerli talepleri ve diğer iki veri setinden gelen saldırı talepleri kullanılmıştır. (genel saldırılar taklit ederek) CSIC2010 veri kümesi, halihazırda test ve eğitime ayrılmıştır, ancak veri kümesindeki saldırılar yalnızca saldırıları değil, aynı zamanda yazım hatalı geçerli istekleri de içermektedir. Bu nedenle, bu senaryonun deneylerinde CSIC2010 veri setinden saldırı isteklerini kullanılmıştır.

Veri setlerini oluşturduktan sonra uzman destekli çok sınıflı yaklaşım uygulanmıştır. KNN (K = 3 ile) ve Random Forest sınıflandırıcıları, denemeye başlanmıştır. Bu durumda, 10 kat çapraz doğrulama kullanmak yerine, önceki adımda oluşturulan eğitim ve test veri kümelerini kullanılmıştır. Tablo II’de görülebileceği gibi, sc1 sonuçlarına göre TPR açısından performans azalmıştır. Eğitim veri kümelerine genel saldırıların eklenmesi durumunda, false positiveleri arttırmadan saldırı tespitinin arttığını da doğrulanmıştır. Bölüm III-A’da belirtildiği gibi, sonuçları iyileştirmek için genel talepler kümesinin (bu senaryoda saldırı talepleri) temsil ettikleri evreni mümkün olduğunca karakterize etmesi gerekir.

D. Senaryo 3

Bu yaklaşımın değerlendirilmesi, veri kümelerinin her birinde, geçerli eğitim taleplerinin %70'i ve test için veri kümesinin geri kalanı (geçerli olanın% 30'u ve saldırının% 100'ü) kullanılarak gerçekleştirilmiştir. Deneyler, 500 farklı operasyon noktasını göstermek için λ değerinin 0'dan 1'e değiştirilmesini içermektedir. Tablo II’nin sc3 bölümünde λ = 0.156 özel durumu için sonuçlar gösterilmektedir. Bu λ değerinin, her veri kümesi için modelin baseline’nına eşit veya daha iyi davranan değer olduğu tespit edilmiştir. Şekil 2'de sonuçlar, sırasıyla DRUPAL, PKDD2007 ve CSIC2010 veri setini kullanarak bir ROC eğrisi cinsinden sunulmaktadır.

sc3: λ değerini değiştiren tek sınıflı ROC eğrisi

Grafikteki çizgi, tek sınıflı modelin farklı çalışma noktalarını temsil etmektedir. Nokta, MODSECURITY temel değerimizin performansını temsil etmektedir. Üç deneyde de, tek sınıflı modelin MODSECURITY temeline(baseline) eşit veya ondan daha iyi davrandığı operasyonel noktalar vardır.

DRUPAL veri setinin durumu için, test veri setini kullanmanın yanı sıra, model doğrulama veri setini(validation dataset) kullanarak da doğrulanmaktadır. Temelden aynı TPR’ye sahip bir operasyonel noktası seçersek, FPR kullanılan test veya doğrulama veri setine bağlı olarak sırasıyla yaklaşık %38'den %4'e veya %22'ye düşecektir. PKDD2007 veri setinde yapılan deneylerde, yaklaşımın temeli iyileştirmediğini ancak MODSECURITY kadar iyi davranan en az bir operasyonel noktanın olduğu fark edilmiştir. CSIC2010 veri setine gelince, DRUPAL örneğinde olduğu gibi, MODSECURITY referans çizgisinden daha iyi performans gösteren birkaç operasyonel nokta gözlemlenmiştir. MODSECURITY ile aynı TPR’yi sürdürürsek, FPR %24'ten %1'e düşmektedir.

Kaynak : https://ieeexplore.ieee.org/document/8614199

--

--

Hüseyin Şahin

Merhaba! Ben yeni mezun bir Bilgisayar Mühendisiyim. Siber güvenlik ve yapay zeka ile ilgili araştırıyorum, öğreniyorum ve yazıyorum.