Karakter Düzeyinde Evrişimli Sinir Ağı kullanan Web Uygulama Güvenlik Duvarı

Hüseyin Şahin
9 min readMar 9, 2021

--

Web uygulamaları kötü niyetli HTTP istekleri tarafından kötü amaçla kullanılabilmektedir. Normalde, web uygulama güvenlik duvarı (WAF), web uygulamalarını model eşleştirme(pattern matching) yöntemini kullanarak bilinen saldırılardan korumaktadır. Fakat, duruma göre modellerin tanımlanmasını gerektirdiğinden, WAF’nin tanıtımı genellikle pahalı olmaktadır. Ayrıca, sistem bilinmeyen kötü niyetli istekleri de engelleyememektedir.

Karakter Düzeyinde Evrişimli Sinir Ağı kullanan Web Uygulama Güvenlik Duvarı

Bu yazıda, bu sorunları çözmek için verimli bir makine öğrenimi yaklaşımında bulunulmuştur. Yaklaşımda, HTTP isteğinin özelliğini ayıklamak ve bunu normal veya kötü niyetli istek olarak tanımlamak için çok büyük gloabal max-pooling’e sahip karakter düzeyinde evrişimli sinir ağı (character-level convolutional neural network) (CLCNN) kullanılmaktadır. Yaklaşımdaki sistem, HTTP DATASET CSIC 2010 veri kümesinde değerlendirilmiştir ve 10 kat çapraz doğrulama(cross validation) altında %98,8 doğruluk elde edilmiştir ve istek başına ortalama işlem süresi 2,35 ms olarak ölçülmüştür.

Not : Bu makale, Hosei Üniversitesi’nden Michiaki Ito, Hitoshi Iyato’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İŞ

Normal güvenlik duvarı, TCP/IP modelindeki aktarım katmanına(transport layer) kadar bilgi içeren kötü amaçlı paketleri engellerken, web uygulama güvenlik duvarı (WAF) uygulama katmanında(application layer) bunu yapmaktadır. Bu nedenle, WAF, sıradan güvenlik duvarının sahip olmadığı uygulama katmanına yapılan saldırılarla başa çıkma yeteneğine sahiptir. Tipik bir WAF, önceden tanımlanmış imzalara(pre-defined signatures) atıfta bulunan model eşleştirme stratejisiyle kötü amaçlı veya şüpheli paketleri engeller. Kara listeye dayalı ve beyaz listeye dayalı yöntemler olmak üzere strateji ikiye ayrılabilmektedir. İlki, kötü niyetli olanların önceden tanımlanmış imzalarına atıfta bulunarak paketleri bloke ederken, ikincisi yalnızca normal trafik modelleriyle işlemlere izin vermektedir. Kara listeye dayalı yöntemler nispeten düşük maliyetlidir, çünkü ihtiyaç duyulan şey, bilinen saldırılara dayanarak “black” imzaları tanımlamaktır. Bunun yerine, genellikle bilinmeyen ve alt tür saldırılarını tedavi edemezler. Buna karşılık, beyaz listeye dayalı yöntemlerin bu saldırıları engellemesi muhtemeldir, ancak korunacak uygulamadaki normal işlemlere dayanan “beyaz” imzaların ayrıntılı tanımına ihtiyaç duyarlar; bu nedenle genellikle pahalıdırlar. Ayrıca liste dışında herhangi bir işleme izin vermedikleri için uygulanabilir alanları sınırlıdır.

Giriş maliyetlerini düşürmek ve makine öğrenimi yöntemlerini kullanarak kötü amaçlı paketlerin tespit doğruluğunu artırmak için birkaç çalışma önerilmiştir. A. Makiou tarafından gerçekleştirilen çalışmada, Naive Bayes yöntemi ve hibrit model eşleştirme sistemi(hybrid pattern matching system) kullanılarak karmaşık SQL injection saldırıları tespit edilmiştir. Z. Zhang tarafından gerçekleştirilen çalışmada ise Naive Bayes kullanarak HTTP trafiği içindeki saldırılar tespit edilerek %82,3 doğruluk elde edilmiştir. Bu yöntemler, saldırılar için belirli bir tespit doğruluğu derecesine ulaşsa da, pratiklik açısından iyileştirmeye ihtiyaçları vardır.

Evrişimli sinir ağları (CNN), derin öğrenmede temsili(representative) makine öğrenme yöntemidir ve esas olarak görüntü tanıma problemleri için kullanılmaktadır. CNN, aşırı öğrenmeyi(overfitting) bastırmak için iyi düşünülmüş düzenleme(well-considered regularization) yöntemleri sayesinde bu tür zorlukların üstesinden gelmiştir ve ve geniş uygulamalarda, özellikle görüntü tanımada temsili araştırma başarıları göstermiştir.

Doğal dil işleme (NLP) görevinde, tekrarlayan sinir ağı (RNN) ve uzun kısa süreli bellek (LSTM) sıklıkla kullanılmaktadır. Özellikle, LSTM son yıllarda yaygın olarak kullanılmaktadır çünkü zaman serisi(time series) verileri, RNN’den daha uzun geçmiş bilgiler dikkate alınarak işlenebilmektedir. Fakat, LSTM’nin eğitim maliyeti(training cost) genellikle pahalıdır. Karakter düzeyinde(character-level) CNN (CLCNN), adından da anlaşılacağı gibi, metin işlemede uzmanlaşmış bir CNN’dir ve karakter dizilerini tek boyutlu bir yönde büker(convolves). CLCNN, son zamanlarda NLP görevinde de sıklıkla kullanılmaktadır ve umut verici sonuçlar göstermektedir. CLCNN’nin avantajı, eğitim süresinin LSTM’ninkinden çok daha kısa olması ve CNN’den türetilen birçok etkili ve iyi bilinen stratejiye yüksek oranda benzerliğe sahip olmasıdır. Örneğin, girdi boyutunda veri artırma(data augmentation), düzenleme için seyreltme(dropout), model yorumlama için özellik haritalarının metodolojilerini analiz etme vb.

Derin öğrenme tekniği ile yapılan güvenlik araştırmalarında W. Melicher, LSTM kullanarak şifre tahmin etme kolaylığını ölçmüştür ve %70'e varan doğruluk elde etmiştir. E. Raff, Windows taşınabilir yürütülebilir dosyasını, CLCNN ile kötü amaçlı yazılım(malware) tanımlama için bir karakter dizisi olarak analiz etmiştir ve %94'e kadar doğruluk elde etmiştir. Analiz edilecek hedef arasında kısa bir bölümde kötü amaçlı parçaların eşit olmayan bir şekilde dağıldığı durumlarda, tüm dizi sırasının araştırılmasının ve global max-pooling etkinliğinin gerekli olduğu öne sürülmüştür. J. Saxe, farklı boyutlarda (karakter yığın uzunlukları 2 ila 5 arasında) CLCNN kullanarak kötü amaçlı bir URL ayırıcısı oluşturmuştur. Modellerinde, giriş karakterlerinin sayısı 200 ile sınırlıdır ve giriş uygun değilse, sadece geriye doğru kullanılmaktadır. Evrişim katmanı sayısı ile aynı olan ve farklı boyuttaki çekirdeklere sahip özellik haritaları birleştirilir ve ardından üç tam bağlantı katman aracılığıyla analiz edilir. Aynı verilerdeki N-gram + Derin sinir ağı yöntemlerinden AUC’de, yaklaşık 0.008 daha yükselerek 0.993'lük olarak (ROC eğrisinin altındaki alan) bildirilmiştir.

Yukarıdaki araştırmalardan, CLCNN gibi bir yöntemin, güvenlik alanındaki verileri analiz etmek için etkili olduğu anlaşılmaktadır. Çalışmaları oldukça iyi organize edilmiş ve ümit verici bir performans sergilemesine rağmen, ele alınacak büyük ölçekli verilerle karşılaştığımızda bazı noktalar endişe uyandırmaktadır. Model, paralel olarak farklı evrişim boyutlarına sahip olduğundan, gecikmeye neden olmak için tek GPU’daki paralellikten tam olarak yararlanmak ve üç büyük tam bağlı katman nedeniyle yüksek GPU bellek kullanımı mümkün değildir.

Bu araştırmada, pratik WAF uygulamasını varsayarak kötü niyetli HTTP isteği için bir tanımlama sistemi oluşturulmuştur. Sistem, basit bir CLCNN mimarisinden oluşmaktadır, HTTP isteğinin tam metnini girdi olarak alır ve çok büyük bir global max-pooling gerçekleştirmesi ile karakterize edilmektedir. Büyük max-pooling, sığ ağ mimarisinde(shallow network architecture) bile girdi boyutunu önemli ölçüde azaltır ve gerekli kaynakları bastırırken yüksek doğruluk sağlar.

2-YÖNTEM

A) Veri Kümesi

Çalışmada, HTTP DATASET CSIC 2010 veri kümesi kullanılmıştır. Bu veri kümesi, İspanyol Araştırma Ulusal Konseyi (CSIC) tarafından oluşturulmuştur. 36.000 normal trafiği ve 25.000'den fazla kötü amaçlı trafiği içeren İspanyol e-ticaret web uygulamasındaki trafiğin bir özetidir.

Kötü amaçlı trafik arasında, SQL injection, araballek aşımı(buffer overflow) saldırısı, bilgi toplama(information gathering) gibi saldırı HTTP istekleri vardır. SQL injectionuna bir örnek Şekil 1'de gösterilmektedir. Bu örnekte vurgulanan kısım, saldırı ile ilgili bir karakter dizisidir. Sorgunun minimum, ortalama ve maksimum uzunluğu sırasıyla 473, 583 ve 983 karakterdir.

Şekil 1-HTTP DATASET CSIC 2010'da bir SQL injection istek verisi örneği

B) Veri Kümesi İçin Ön İşleme

Ham veri kümesi ham HTTP istekleri içerdiğinden, istek içindeki tüm karakterler için URL kodlaması zaten yapılmıştır. Bu kodlama modele beslendiğinde, büyük miktarda ‘%’ çıkış karakterleri dahil olduğundan, sorguların yararlı özelliklerini ayıklamak zordur. Bu nedenle, tüm sorgular için URL kod çözme(decode) ve Unicode ile tekrar kodlama gerçekleştirilmiştir. HTTP isteğinin karakter dizesinde bulunan her karakter, 8 bitlik bir sayısal dizeyle temsil edilmektedir.

Her bir talebin uzunluğunun dağılımına ve E. Raff tarafından önerilen bulgulara göre CLCNN’nin giriş talebi uzunluğunun 1000 karakter olduğu belirlenmiştir. Uzunluğu yetersiz olan kısım için Unicode’da boş değeri temsil eden “0” ile doldurulmuştur.

C) CLCNN Kullanan Kötü Niyetli Sorgu Tespit Sistemi

Şekil 2-CLCNN kullanan kötü amaçlı sorgu tespit sisteminin ana hatları

Şekil 2, kötü amaçlı sorgu tespit sisteminin ana hatlarını göstermektedir. Sistem, ilk olarak, önceki bölümde anlatıldığı gibi ön işleme ve embedding gerçekleştiren embedding katmanına sahiptir. Girdi HTTP istek cümlesinin her harfi, embedding katmanında 128 boyutlu bir vektör ifadesine dönüştürülür ve sonraki katmanlara yayılır.

Ön deneylere dayanarak belirlenen temel yapı olan A mimarisini tanımlanmıştır. Bunun konfigürasyonu Şekil 3'te gösterilmektedir.

Şekil 3-A mimarisinin yapısı ön deneylere dayanarak belirlenir

A mimarisi, iki kez evrişim ve maksimum pooling gerçekleştirir ve tam bağlantı katmanı aracılığıyla tek boyutlu çıktıya bağlanır. İkinci maksimum poolingde, pooling boyutu, evrişimin çıktı boyutuyla aynı olacak şekilde ayarlanır, yani her harita, bu işlemle 1x1 çıktı verir ve buna göre boyutu, anlık özellik haritalarının(immediate feature maps) sayısıyla eşleşen vektörü üretir. A mimarisinin hiper parametresi yalnızca bir tanedir.(çekirdek boyutu K) Tüm evrişim katmanında 1 x K çekirdek uygulanır ve bu parametre aynı zamanda ilk global maks-poolingde de kullanılmaktadır. Evrişim ve pooling adım boyutu 1'e sabitlenmiştir. Tüm aktivasyon fonksiyonları, düzeltilmiş lineer birim (ReLU) fonksiyonunu kullanmaktadır.

İkinci maksimum poolingde (K = 2'de) son derece büyük boyutsal azalma ile karakterize edilir, bu nedenle sonraki katmandaki FC öğelerinin sayısı büyük ölçüde azalır. Bu, gereken GPU belleğinin boyutunu büyük ölçüde azaltmaktadır.

Karşılaştırma için, J. Saxe’a atıfta bulunarak dört mimariyi paralel olarak birleştiren B mimarisi Şekil 4'te gösterildiği gibi inşa edilmiştir.

Şekil 4-J. Saxe’a atıfta bulunan B mimarisinin yapısı

B mimarisinin hiper parametreleri, A mimarisine benzer şekilde evrişim çekirdek boyutudur, ancak dört taneye sahiptir. (K1, K2, K3, K4) Ayrıca ilk maksimum pooling boyutunda da uygulanırlar. Evrişim ve max-pooling adım boyutları 1'dir.B mimarisinin her bir evrişimli katmanındaki özellik haritalarının sayısı, A mimarisinin 1 / 4'üne eşittir, yani, B mimarisindeki toplam sayısı, A mimarileriyle aynıdır.

3-DENEYSEL SONUÇLAR VE ANALİZLER

A mimarisini kullanan deneyde, HTTP istek karakter dizesinden çıkarılan yığının boyutu değiştirilirken ayırma yeteneği(discrimination ability) karşılaştırılmaktadır. B mimarisini kullanan deney ise, diğer koşulların aynı olduğu bir durumda, geçmiş araştırmada iyi sonuçların elde edildiği farklı evrişim boyutlarının birleştirilmesinin etkisini doğrulamayı amaçlamaktadır. Her bir değerlendirme 10 kat çapraz doğrulama(cross validation) ile yapılmıştır. A ve B mimarisi kullanılarak elde edilen sonuçlar sırasıyla Tablo 1 ve 2'de gösterilmektedir. Her sonuç, beş denemenin ortalama değerini temsil etmektedir.

En yüksek sınıflandırma doğruluğu, A mimarisinde K = 7 ve B mimarisinde (K1, K2, K3, K4) = (4, 5, 6, 7) olduğunda elde edilmiştir. Yukarıdaki durumda, A ve B mimarisi tarafından ön işleme dahil olmak üzere ortalama icra süresi sırasıyla 2:35ms ve 3:40ms’dir. Deneylerde tek bir GPU (Titan X pascal) kullanılmıştır. Sonuçlar, A mimarisinin, hem icra hızı hem de doğruluk açısından B mimarisine göre daha iyi performans sağladığını göstermiştir.

4-TARTIŞMA

Yöntem, çok sığ bir ağ yapısından(shallow network structure) oluşmasına rağmen aynı veri kümesini kullanan Zhang’ın yönteminden %10'dan fazla daha iyi doğruluk elde etmiştir. Test edilen tüm sığ modeller arasında, A mimarisinin K = 7 konfigürasyonu en iyi sonuçları göstermiştir. K = 7 ile global max-pooling oranı yaklaşık 136:1’dir ve büyük bilgi sıkışması(information compression) gerçekleşmiştir. K = 2'de, global max-pooling oranı 498:1’dir ve model hala %97,5 gibi çok yüksek algılama doğruluğuna sahiptir. Bunun nedeni muhtemelen, uzun stringleri evrişim ve büyük havuzlama(pooling) ile eşit şekilde aramanın mümkün olmasıdır. Bu sonuçlar, literatürde önerildiği gibi, kötü amaçlı dizeler(strings) tüm bölümde bulunabildiğinde, büyük global max-poolingin etkili olduğu gerçeğini desteklemektedir.

Basit bir konfigürasyonun A mimarisi, J. Saxe referans alınarak inşa edilen B mimarisine eşit veya daha yüksek doğruluk sağlamıştır ve A mimarisinin icra süresi, B mimarisinden daha kısa olmuştur. Burada model, girdi olarak HTTP isteğinin tüm karakter dizilerini ele alır ve bu nedenle modelin girdi boyutu büyür. Bu tür durumlarda, görüntü tanımada yaygın olduğu gibi, ardışık evrişim ile daha derin ağ yapılarının uygulanması önerilmektedir. Fakat, modeldeki global maksimum poolingde, büyük boyutsal azaltma(large dimensional reduction), sığ yapılarla literatürdekinden (1024x1024x1024 için 64x64) daha küçük FC katman boyutuna ulaşmıştır. Bu nedenle, yukarıda bahsedilen icra hızındaki üstünlük sadece hızlı değildir, aynı zamanda daha önemli olan ayrımcılık yeteneği(discrimination ability) açısından da aşırı öğrenmenin gerçekleşmesi daha zordur. Bu arada, veri kümesine bazı yanlış verilerin dahil edildiğini doğrulanmıştır, kötü amaçlı olarak etiketlenen bazı HTTP isteklerinde kötü amaçlı karakter dizileri bulunmamaktadır. Bu nedenle, bu deneyde kullanılan veri kümesinin doğruluğu neredeyse bir üst sınır olarak kabul edilmektedir.

5-SONUÇ

Derin öğrenme yaklaşımını kullanarak hızlı, doğru ve düşük maliyetli WAF sistemini gerçekleştirmek için bir system önerilmiştir. Sistem, bu istenen özellikleri, son derece büyük global maksimum pooling gerçekleştiren sığ bir CLCNN konfigürasyonu benimseyerek elde etmektedir.

Kaynak : 4-TARTIŞMA

Yöntem, çok sığ bir ağ yapısından(shallow network structure) oluşmasına rağmen aynı veri kümesini kullanan Zhang’ın yönteminden %10'dan fazla daha iyi doğruluk elde etmiştir. Test edilen tüm sığ modeller arasında, A mimarisinin K = 7 konfigürasyonu en iyi sonuçları göstermiştir. K = 7 ile global max-pooling oranı yaklaşık 136:1’dir ve büyük bilgi sıkışması(information compression) gerçekleşmiştir. K = 2'de, global max-pooling oranı 498:1’dir ve model hala %97,5 gibi çok yüksek algılama doğruluğuna sahiptir. Bunun nedeni muhtemelen, uzun stringleri evrişim ve büyük havuzlama(pooling) ile eşit şekilde aramanın mümkün olmasıdır. Bu sonuçlar, literatürde önerildiği gibi, kötü amaçlı dizeler(strings) tüm bölümde bulunabildiğinde, büyük global max-poolingin etkili olduğu gerçeğini desteklemektedir.

Basit bir konfigürasyonun A mimarisi, J. Saxe referans alınarak inşa edilen B mimarisine eşit veya daha yüksek doğruluk sağlamıştır ve A mimarisinin icra süresi, B mimarisinden daha kısa olmuştur. Burada model, girdi olarak HTTP isteğinin tüm karakter dizilerini ele alır ve bu nedenle modelin girdi boyutu büyür. Bu tür durumlarda, görüntü tanımada yaygın olduğu gibi, ardışık evrişim ile daha derin ağ yapılarının uygulanması önerilmektedir. Fakat, modeldeki global maksimum poolingde, büyük boyutsal azaltma(large dimensional reduction), sığ yapılarla literatürdekinden (1024x1024x1024 için 64x64) daha küçük FC katman boyutuna ulaşmıştır. Bu nedenle, yukarıda bahsedilen icra hızındaki üstünlük sadece hızlı değildir, aynı zamanda daha önemli olan ayrımcılık yeteneği(discrimination ability) açısından da aşırı öğrenmenin gerçekleşmesi daha zordur. Bu arada, veri kümesine bazı yanlış verilerin dahil edildiğini doğrulanmıştır, kötü amaçlı olarak etiketlenen bazı HTTP isteklerinde kötü amaçlı karakter dizileri bulunmamaktadır. Bu nedenle, bu deneyde kullanılan veri kümesinin doğruluğu neredeyse bir üst sınır olarak kabul edilmektedir.

5-SONUÇ

Derin öğrenme yaklaşımını kullanarak hızlı, doğru ve düşük maliyetli WAF sistemini gerçekleştirmek için bir system önerilmiştir. Sistem, bu istenen özellikleri, son derece büyük global maksimum pooling gerçekleştiren sığ bir CLCNN konfigürasyonu benimseyerek elde etmektedir.

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

--

--

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.