Saldırı tespitinde en yakın k komşu uygulaması
Hidayet TAKCI
GYTE Bilgisayar Müh. Böl. htakci@bilmuh.gyte.edu.tr
|
Dr. İbrahim SOĞUKPINAR
GYTE Bilgisayar Müh. Böl.
ispinar@bilmuh.gyte.edu.tr
|
Özet
Program davranışlarını saldırı ve normal kullanım şeklinde sınıflara ayırmada en yakın k komşu tabanlı bir sınıflayıcı kullanmak yeni bir yaklaşımdır. Program davranışları sistem çağrılarının istek sırası şeklinde verilebileceği gibi sistem çağrıları sıklıkları şeklinde de verilebilir. Y. Liao çalışmasında[1] her bir sistem çağrısının bir kelime ile, bir proses içerisindeki bütün sistem çağrılarının da bir doküman ile sunulabileceğini belirtmektedir. Bu çalışmada ise her bir web sayfası bir kelime ile her bir oturumda istenen sayfalar da bir doküman ile sunulmaya çalışılmıştır. Böylece doküman haline getirilen bu veriler metin sınıflamada kullanılan en yakın k komşu (kNN) sınıflayıcısı ile sınıflara ayrılabilir. Bu makalede saldırı tespiti için web sitesi kullanım davranışlarının öğrenilmesinde en yakın k komşu algoritmasının kullanımı anlatılmaktadır.
1. Giriş
Güvenlik problemleri çeşitli nedenlerden dolayı her zaman olacaktır. Saldırı tespit sistemleri bu güvenlik problemlerini bulmada ve gidermede anahtar vazife taşımaktadır. Güvenlik kameralarına benzetilebilecek saldırı tespit sistemleri için ideal durum; yüzde yüz atak tespiti ve yüzde sıfır hatadır. Halbuki günümüzün saldırı tespit sistemleri bundan uzaktır.
Saldırı tespiti için iki temel yaklaşım bulunur. Bunlar; yanlış kullanım tespiti ile anormallik tespitidir. Yanlış kullanım tespiti imza tabanlıdır. Bu imzalar daha önceden yapılmış saldırı davranışlarını tanımlarlar. Özellikle ticari saldırı tespit sistemlerinde kullanılan bu tekniğin en önemli eksiği daha önce meydana gelmemiş saldırıları tanıyamamasıdır. Diğer yaklaşım ise anormallik tespiti yaklaşımıdır. Bu yaklaşıma göre önce normal kullanım profilleri bulunur ardından da bu profilden sapma gösterenler anormal olarak belirlenirler. Profiller bulunurken istatistiksel yöntemler kullanılmaktadır. Bu yöntemin ise en önemli problemi yüksek hata oranına sahip olmasıdır. Daha etkin saldırı tespiti için iki tekniğin birleştirilmesi yoluna gidilmektedir.
Son zamanlarda özellikle saldırı tespitinde davranış tanıma bir alternatif haline gelmiştir [2, 3]. Bir programın profili program çalıştırılırken gözlemlenen ve programın çalışması esnasında oluşturulan sistem çağrılarının birleştirilmesinden oluşur. Kullanıcı davranışlarını karşılaştırmak için onların kullandığı programlardaki davranışlarını karşılaştırmak daha kalıcı bir çözümdür. Bir programın normal davranışı sistem çağrılarının sırası şeklinde karakterize edilebilir. Sapmalar ise program çalışırken gösterdiği değişimler olarak bulunur. Fakat bu yaklaşım sıkıcı bir yaklaşımdır [1].
Bu çalışma [1] numaralı makalede yapılan çalışmanın başka bir alana uygulanması çalışmasıdır. O makalede program davranışları saldırı tespiti için kullanılırken bu çalışmada web kullanım davranışı saldırı tespitinde kullanılmıştır. Program davranışları yerine kullanım davranışları üzerine uygulanan kNN sınıflayıcı yardımı ile saldırı veya normal kullanım desenleri belirlenmiştir. Oturumlarda istenen web sayfalarının sıklıkları onların oturum içerisindeki sıraları yerine kullanıldı. Bu şekilde oturumun davranışı elde edilmeye çalışıldı. Web sayfaları bir kelime, oturumlarda bir doküman olarak sunularak verilere metin sınıflamada başarılı olan kNN algoritması uygulanmaya çalışıldı [4].
2. Davranış modelleme ile ilgili çalışmalar
Program davranışlarının modellenmesi ile kullanıcı davranışlarının modellenmesi ve hatta oturumların modellenmesi konuları aynı etki alanı içerisinde bulunurlar. Bunların her üçü de rahatça en yakın k komşu algoritmasına uygulanabilirler. Dolayısıyla program davranışları ile ilgili çalışmalar diğer davranış modelleri içinde örneklik oluşturmaktadır.
İlk çalışma UC Davis’ten Ko ve arkadaşları tarafından yapılmıştır, Ko bu çalışmasında kural özellikli bir dil kullanarak imtiyazlı programlardan bazılarının amaç davranışlarını belirlemek için ilk öneriyi sundu (setuid root programları ve unix için daemonlar) [7]. Program çalışması esnasında belirlenen davranıştan farklılık gösterenler “misuse” olarak varsayıldı. Bu araştırma saldırı tespitinde program davranışının modellenebileceğini göstermiştir.
New Mexico üniversitesinden Forrest’in grubu ise saldırı tespiti için discriminator olarak çalışan, programlar tarafından yayılan sistem çağrılarının kısa dizilerinin kullanımını tanıttı [2]. Normal davranış, çalışan bir Unix prosesindeki sabit uzunluklu sistem çağrılarının kısa dizileri olarak tanımlandı ve bunlar bir veritabanında toplandı. Bu çalışmalar artificial imnune, rule learning, hidden markov models gibi sınıflama şemaları ile birlikte yerine getirilmektedir [8,9,10]. Ghosh ve diğerleri [11] 1998 yılında DARPA BSM denetleme verisi için sistem çağrıları ile program davranışını öğrenmek için yapay sinir ağları teknikleri üzerinde çalıştı. 150 den fazla program profili oluşturuldu. Her bir program bir yapay sinir ağı ile eğitildi ve anormallik tespiti için kullanıldı. Onların Elmann recurrent sinir ağları bütün saldırıların % 77,3 lük kısmını % 10 hata ile tespit etti.
Birçok araştırmacı bireysel program profilleri inşa etmeye odaklansa bile Asaka [10] diskriminant analiz tabanlı bir yöntemi kullandı.
Bütün çalışmalar sistem çağrılarının sırası ile sistem çağrılarının sıklıklarının bulunması arasındaki karşılaştırma şeklindedir [11].
3. Saldırı tespiti nedir?
Saldırı tespitini tanımlamak için, sistem veya ağ kaynaklarının münasebetsiz, hatalı veya normal olmayan kullanımlarının neler olduğunun bilinmesi bir ihtiyaçtır. Bu, organizasyonun güvenlik politikası olarak tanımlanır.
Basit olarak güvenlik politikası; bir sistem veya ağ üzerindeki kaynaklara izin verilip verilmediğinin tanımlanmasıdır.
Saldırı tespiti bilgisayar sisteminde meydana gelen olayları izler ve onları analiz eder.
Bir saldırı bir kaynağın güvenilirlik, bütünlük ve kullanılabilirlik özelliklerini ortadan kaldırmaya çalışan etkidir, bu saldırılar her zaman başarılı olmayabilir.
Bu yüzden Saldırı Tespiti tanımlanan güvenlik politikasına aykırı olan münasebetsiz bir saldırıyı tespit etme sanatıdır.
Saldırı Tespit Sistemi (STS), İnternet veya yerel ağdan gelebilecek, ağdaki sistemlere zarar verebilecek, çeşitli paket ve verilerden oluşan saldırıları fark etmek üzere tasarlanmış sistemlerdir. Temel amaçları saldırıyı tespit etmek ve bunu ilgili kişilere mail, kısa mesaj yoluyla iletmektir.
Bazen yanlış kullanım ve saldırı tespiti arasında bir ayrım yapılır. Saldırı terimi dışarıdan yapılan atakları açıklamak için kullanılır; yanlış kullanım ise daha çok dahili ağ kaynaklı atakları açıklamak için kullanılır. Saldırı tespiti iki tane analiz metoduna göre sınıflanabilir: anormallik ve yanlış kullanım tespiti.
Saldırganlar harici ve dahili olmak üzere iki tiptir. Harici saldırganlar ağın dışından atak yaparlar fakat dahili bir saldırgan daha önceden bildiği sistem üzerinde işlem yapar.
IDS tarafından false positive ve false negative olarak isimlendirilen iki tip hata oluşturulur. False positive hatası, ortada saldırı yokken IDS tarafından saldırı olduğu kararına varılması durumunda meydana gelir. Bir false negative hatası ise gerçekten bir saldırı olduğunda bunun saldırı olarak görülememesidir. Buna kaçak atak ismi de verilir.
Saldırı tespitinin bazı faydaları bulunmaktadır;
-
erken tespit
-
detaylı bilgi toplama
-
toplanan bilgilerin kayıt niteliği taşıması gibi faydaları bulunmaktadır.
Saldırı engelleme için; tanıma ve doğrulama, güvenlik duvarları, şifreleme teknikleri, erişim kontrolü gibi yöntemler kullanılmakta olup bunlar tam anlamıyla yeterli olamamaktadır o yüzden saldırı tespitine ihtiyaç duyulmaktadır [5].
Saldırı tespit sistemlerini Gordeev[6] şu şekilde sınıflamaktadır.
Analiz Açısından
Yanlış kullanım tespiti (Misuse Detection)
Anormallik tespiti (Anomalous Detection )
Kullanılan Bilgi Açısından
Uygulama tabanlı
Host tabanlı
Ağ tabanlı
Reaksiyon Açısından
Aktif saldırı tespiti
Pasif saldırı tespiti
Analiz Zamanı Açısından
Gerçek zamanlı (real time)
Aralıklı (interval)
Mimari
Merkezileştirilmiş
Dağıtılmış
Analiz Yaklaşımı
Yanlış kullanım tespitinde desenler ve bilinen atakların imzası saldırıları tanımak için uygun bir formda saldırı tespit sistemine verilir. Anormallik tespitinde ise anormallik saptayıcıları ile inşa edilen normal davranış profillerine göre sapmalar bulunmaya çalışılır.
Bilgi Tabanlı Sınıflandırma
Uygulama tabanlı saldırı tespit sistemi uygulama katmanında bilgi toplar ve saldırıları tespit eder. (örneğin web sunucular işlem günlükleri üretir). Host tabanlı saldırı tespit sistemi bir host üzerindeki aktivite bilgilerini toplar. Ağ tabanlı saldırı tespit sistemi ise ağ trafiğini analiz eder.
Tepki Tabanlı Yaklaşım
Eğer bir saldırı tespit sisteminin verdiği cevaplar otomatik ise o sistem aktif bir sistemdir. (örneğin güvenlik duvarının yeniden konfigürasyonu, servis kapatma). Eğer saldırı tespit sistemi sadece alarm üretiyorsa o zaman pasiftir.
Analiz Zamanı Yaklaşımı
Bir gerçek zamanlı saldırı tespit sistemi bilgi kaynaklarından devamlı şekilde bilgi ile besleniyorsa bu gerçek zamanlı bir saldırı tespit sistemidir. Bu bir atağın ilerlemesini izlemeye yardımcı olur. Periyodik veya zaman aralıklı saldırı tespit sisteminde ise bilgi belli aralıklarla akar, sistem kesikli olarak çalışır.
Mimari
Merkezi STS ya bir monolitik modül olarak ya da birbiri ile haberleşen STS fonksiyonlarını yerine getiren bir miktar monolitik modülden oluşur. Dağıtılmış STS ise her biri bir işe atanmış varlıklardan oluşur, dağıtım fiziksel olmayıp fonksiyoneldir.
Veri madenciliği
Büyük miktardaki veri içerisinden anlamlı bilginin çıkarıldığı tekniğe veri madenciliği adı verilir. Veri madenciliği tekniğinin web verisine uygulanmasına ise web madenciliği adı verilmektedir. Web madenciliği temel olarak üç alt alana ayrılır.
-
web içerik madenciliği
-
web yapı madenciliği
-
web kullanım madenciliği
Veri madenciliğinin alt alanlarından birisi olan web kullanım madenciliği web sunucu günlük verileri üzerinde çalışır. Bu çalışma sonucunda kullanıcı erişim desenleri yoluyla kullanıcı davranışları bulunur. Web kullanım madenciliği sayesinde bulunan kullanıcı davranışları saldırı tespitinde de etkin olarak kullanılabilmektedir. Saldırı tespiti için kullanılan veri web sunucu günlüklerindeki veriler olduğu için bu çalışma web kullanım madenciliğinin alanına girmektedir.
4. Metodoloji
Elde bulunan oturum bilgileri üzerinde metin sınıflama işlemi yapmak için öncelikle her bir web sayfasının bir kelime, her bir oturumunda bir doküman olarak sunulacağı bilinmelidir. Web sayfalarının istek sırası yerine web sayfalarının istenme sıklıkları kullanılacaktır.
Metin sınıflamada eldeki dokümanlar vektörler şeklinde ifade edilir. Burada da elde bulunan oturum dosyaları sıklık veya tf*idf ağırlık tekniklerinden birisi ile vektörlere dönüştürülür. Yeni bir oturumun normal veya anormal olduğu ise kNN sınıflayıcı ile bulunur. KNN sınıflayıcı yeni oturum ile daha önceden eğitilmiş oturumlar arasındaki benzerliğe veya yakınlığa bakar, yakınlık k komşu derecesinde ise oturum normal, aksi halde anormal kabul edilir.
Metin sınıflama tekniğinin saldırı tespitine uygulanmasının en büyük avantajı saldırı tespitinde elde bulunan farklı durumların sayısının azlığıdır. Mesela bir web sitesinde ortalama olarak 100 civarında web sayfası bulunur halbuki ortalama bir doküman içerisinde 15000 kelime vardır.
5. Uygulama
-
veri kümesi
Üzerinde saldırı tespiti yapılan veri, GYTE (Gebze Yüksek Teknoloji Enstitüsü) Kütüphanesi web sunucusu günlük dosyaları idi. Web sitesi üzerinde bulunan sayfaların sayısı ise toplam 100 civarında idi. Toplam 86 günlük eğitim verisi kullanıldı.
Bir oturumdaki veriler şu şekilde olabilmektedir.
Oturum no:123
Default.asp
Bilgiler.htm
Ktarama.htm
Tarama.asp
Ktarama.htm
Tarama.asp
Veritabanlari.htm
Ktarama.htm
Kaynaklar.htm
Örnek bir oturumda istenen web sayfalarının adları
Elide 100 farklı web sayfası olduğu için dizi yüz elamanlı olacaktır. Önce sıklıklar bulunacak ve ardından bunlar bir ağırlık bulma yöntemi ile vektöre dönüştürülecektir.
-
Anormallik tespiti
Eğitim amaçlı seçilen oturum dosyalarından normal kullanım profilleri bulunur. Daha sonra bu profilden sapma gösterenler bulunmaya çalışılır. Bu şekilde normal kullanım profilinden sapma gösterenlerin anormal davranış gösterdikleri tespit edilir.
Saldırı tespitinde performansın ölçüsünü ROC (Receiver Operating Characteristic) değeri verir. Ve performans k değerine bağlıdır. Bu değer komşuluğun ölçüsünü vermektedir. Bu değer 5 gibi bir sayı olduğu zaman (k=5) normal olarak verilen bir noktaya en yakın beş noktanın da normal olarak kabul edileceği anlaşılır.
Anormallik tespiti için kullanılacak en yakın k komşu algoritmasının sözde kodları aşağıda verilmiştir.
Y. Liao tarafından geliştirilen kNN algoritması
ayrıca eşik değerinin seçimi de önemli bir konudur. Yanlış seçilmesi durumunda hata oranı artmaktadır. Eşik değeri yüksek olduğu zaman bazı saldırılar normal davranış göstermekte ve tespit edilmeleri mümkün olamamaktadır.
Metin sınıflama ve kNN sınıflayıcı
A= aij şeklinde matris olarak verilebilir, aij, j numaralı dokümanda bulunan i numaralı kelimenin ağırlığıdır. aij hesabı için bazı yöntemler bulunur. fij, j dokümanı içerisinde i numaralı kelimenin meydana gelme sıklığını verir. N, bulunan doküman sayısını verir. M, birbirinden farklı olan kelimelerin sayısını vermektedir. ni ise bütün koleksiyondaki i numaralı kelimelerin meydana gelme sıklığını verir. En basit yaklaşım boolean ağırlık bulma yaklaşımıdır. Bu yaklaşımda eğer kelime doküman içerisinde kullanılmışsa 1 değerine set edilir diğer durumda 0 değerine set edilir. Diğer basit bir yaklaşım sıklık ağırlığı yöntemidir. Buna göre doküman içerisinde kelimelerin kaç kez tekrar ettiği bulunur.
aij=fij
Daha genel bir ağırlık bulma yöntemi ise tf*idf (term frequency inverse term frequency) olarak bilinir. Bu yaklaşımda bütün dokümanlardaki kelimelerin kullanım sıklıkları aşağıdaki gibi bulunur.
A matrisi için satırların sayısı dokümanların içerisindeki kelimelerin adedine bağlıdır. Bu kelimelerin adedi çok olduğu zaman azaltmak gerekir. Bu da özellik seçimi gibi bazı yöntemlerle yerine getirilir.
Burada X test dokümanıdır. Dj, j numaralı eğitim dokümanıdır. ti, X ve Dj tarafından paylaşılan bir kelimedir. Xi, X içerisindeki ti kelimesinin bulunma sayısı (ağırlığıdır). dij, Dj dokümanında bulunan ti kelimelerinin sıklığını verir.
6. Sonuç
Saldırı tespiti yapmada davranış modellerinin kullanılması önemli avantajlar sağlamaktadır. Davranışları modellemek için bu çalışmada en yakın k komşu tabanlı yeni bir algoritma kullanılmıştır. Y. Liao tarafından sistem çağrılarına uygulanan algoritma burada web sayfa isteklerine uygulanmıştır. Yapılan saldırı tespiti çalışması metin sınıflama çalışmasına benzetilerek yapılmıştır. Metin sınıflamaya göre daha az nesne ile çalışıyor olması ise bu çalışmanın en büyük avantajı olmuştur.
Kaynaklar
-
Yihao liao, V. Rao Vemuri, “Use of K-Nearest Neighbor classifier for intrusion detection”, Computers & Security, Vol 21, No 5, pp 439-448, 2002
-
S. Forrest, S. A. Hofmeyr, A. Somayaji, and T. A. Logstaff, “A Sense of Self for Unix process”, Proceedings of 1996 IEEE Symposium on Computer Security and Privacy, 120- 128, 1996.
-
K. Ghosh, A. Schwartzbard and A. M. Shatz, “Learning Program Behavior Profiles for Intrusion Detection”, Proceedings of 1st USENIX Workshop on Intrusion
-
Y. Yang, “Expert Network: Effective and Efficient Learning from Human Decisions in Text Categorization and Retrieval”, Proceedings of 17th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR’94), 13-22, 1994.
-
Wenke Lee and Salvatore J. Stolfo, Data Mining Approaches for Intrusion Detection, Computer Science Department Columbia University
-
Mikhail Gordeev, “Intrusion Detection: Techniques and approaches”, Institute of Computer Technology, Vienna University, Vienna, Austria, 2001, available online http://www.infosys.tuwien.ac.at/Technology/Courses/AK2/vor99/t13/
-
C. Ko, G. Fink and K. Levitt, “Automated Detection of Vulnerabilities in Privileged Programs by Execution Monitoring”, Proceedings of 10th Annual Computer Security Applications Conference, Orlando, FL, Dec, 134- 144, 1994.
-
S. Forrest, S. A. Hofmeyr and A. Somayaji, “Computer Immunology”, Communications of the ACM, Vol. 40, 88-96, 1997.
-
W. Lee, S. J. Stolfo and P. K. Chan, “Learning Patterns from Unix Process Execution Traces for Intrusion Detection”, Proceedings of AAAI97 Workshop on AI Methods in Fraud and Risk Management, 50-56, 1997.
-
C. Warrender, S. Forrest and B. Pearlmutter, “Detecting Intrusions Using System Calls: Alternative Data Models”, Proceedings of 1999 IEEE Symposium on Security and Privacy, 133-145, 1999.
-
K. Ghosh, A. Schwartzbard and A. M. Shatz, “Learning Program Behavior Profiles for Intrusion Detection”, Proceedings of 1st USENIX Workshop on Intrusion
-
V. N. P. Dao and V. R. Vemuri, “Computer Network K. Aas and L. Eikvil, T ext Categorisation: A Survey, http://citeseer.nj.nec.com/aas99text.html, 1999.
-
N. Ye, X. Li, Q. Chen S. M. Emran and M. Xu, “Probabilistic Techniques for Intrusion Detection Based on Computer Audit Data”, IEEE Trans. SMC-A, Vol. 31, No. 4, 266-274, 2001.
Dostları ilə paylaş: |