ANKARA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ YÜKSEK LİSANS TEZİ SALDIRI TESPİT SİSTEMLERİNDE YAPAY SİNİR AĞLARININ KULLANILMASI Haluk TANRIKULU ELEKTRONİK MÜHENDİSLİĞİ ANABİLİM DALI ANKARA 2009 Her Hakkı Saklıdır TEZ ONAYI Haluk TANRIKULU tarafından hazırlanan “Saldırı Tespit Sistemlerinde Yapay Sinir Ağlarının Kullanılması” adlı tez çalışması aşağıdaki jüri tarafından 10/02/2009 tarihinde oy birliği ile Ankara Üniversitesi Fen Bilimleri Elektronik Mühendisliği Anabilim Dalı’nda YÜKSEK LİSANS TEZİ olarak kabul edilmiştir. Danışman : Yrd. Doç. Dr. Murat H. SAZLI Jüri Üyeleri : Üye : Doç. Dr. Ziya TELATAR Ankara Üniversitesi Elektronik Mühendisliği Anabilim Dalı Üye :Yrd. Doç. Dr. Murat H. SAZLI Ankara Üniversitesi Elektronik Mühendisliği Anabilim Dalı Üye :Yrd. Doç. Dr. Süleyman TOSUN Ankara Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı Yukarıdaki sonucu onaylarım. Prof. Dr. Orhan ATAKOL Enstitü Müdürü ÖZET Yüksek Lisans Tezi SALDIRI TESPİT SİSTEMLERİNDE YAPAY SİNİR AĞLARININ KULLANILMASI Haluk TANRIKULU Ankara Üniversitesi Fen Bilimleri Enstitüsü Elektronik Mühendisliği Anabilim Dalı Danışman : Yrd. Doç. Dr. Murat H. SAZLI İnternet’in yaygınlaşması ile bilgisayar ağları üzerinde oluşan saldırılar artmaktadır. Gelişen yazılım teknolojileri sayesinde geleneksel savunma ve tespit sistemlerinin yerine daha hızlı ve saldırıyı önceden sezebilen akıllı savunma mekanizmaları geliştirilmiştir. Bu çalışma kapsamında ağ üzerindeki bilgi sistemlerine yapılan saldırıların tespitinde Yapay Sinir Ağlarının (YSA) kullanılması araştırılmış, yüksek başarımı tespit edilmiş ve örnek bir saldırı tespit sistemi (STS) oluşturulmuştur. Bu tez çalışmasında STS’lerin oluşturulmasında kullanılan YSA’nın ağ güvenliği kapsamında ne gibi görevler üstlendiği ve nasıl çözümler ürettiği incelenmektedir. Deneylerde Defense Advanced Research Projects Agency (DARPA) tarafından yapılan çalışmalarda oluşturulan veri setleri kullanılmıştır. Bu veri setleri düzenlenerek MATLAB üzerinde örnek bir STS oluşturulmuş ve oluşturulan STS’lerde çok katmanlı algılayıcılar (ÇKA) kullanılmış, geliştirilen modelin ağ güvenliğinde kullanılması ve başarısı için önerilerde bulunulmuştur. DARPA eğitim veri setleri üzerinde düzenleme ve gerekli değişikliler yapıldıktan sonra YSA’ın eğitiminde kullanılmıştır. Eğitilen YSA, DARPA tarafından oluşturulan test veri setleri ile test edilmiş ve YSA’nın dışarıdan yapılan saldırıları tespit ettiği gözlenmiştir. Saldırıların tespitinde YSA’nın normal veri akışı içine saklanan anormal veri akışını ve kötüye kullanım saldırılarını başarılı bir şekilde sınıflayabildiği izlenmiştir. Oluşturulan YSA’nın başarımını artırmak için farklı yöntemler kullanılmıştır. Kullanılan yöntemlere göre başarı oranları karşılaştırılmış, hız ve başarım açısından üstünlükleri tartışılmıştır. Şubat 2009, 92 sayfa Anahtar Kelimeler: saldırı tespit, yapay sinir ağları, çok katmanlı algılayıcı, saldırı tespit sistemleri, DoS atakları, bilgisayar ağları. i ABSTRACT Master Thesis INTRUSION DETECTION SYSTEM USING NEURAL NETWORKS Haluk TANRIKULU Ankara University Graduate School of Natural and Applied Sciences Department of Electronic Engineering Supervisor : Asst. Prof. Dr. Murat H. SAZLI Network intrusions increase steadily with the rapid expansion of Internet. By means of the development of software technologies, conventional defense and identification systems were replaced with the rapid and proactive sensible systems. In the present study, neural networks in the detection of intrusions towards information systems were analyzed and high performance was determined and a sample intrusion detection system was constructed. Benefits of neural networks in the intrusion detection systems and the solutions are examined in this research. Data sets produced by Defense Advanced Research Projects Agency (DARPA) are reorganized and used in the experiments. With these sets, an example intrusion detection system (IDS) using Multi Layer Perceptrons (MLP) is established in MATLAB. Consequently, suggestions are made in order to use the proposed system in the network security. After making required changes on DARPA data sets, they are used in training various neural networks. Then, the trained neural networks are tested by DARPA test data. Finally, we observed that the proposed method using neural networks is quite successful in detecting intrusions. In the detection of intrusions, neural networks could find abnormal data flow mixed with normal data flow. Besides, misuse intrusions are successfully classified. In order to maximize the performance of the proposed neural networks within the scope of this thesis, various methods are used. Success rates were compared with respect to the employed methods and speed and performance advantage are discussed. February 2009, 92 pages Key Words: intrusion detection, artificial neural networks, multi layer perceptron, intrusion detection system, DoS attacks, computer networks. ii TEŞEKKÜR Çalışmalarımı yönlendiren, araştırmalarımın her aşamasında bilgi, öneri ve yardımları ile bana destek veren danışmanım Yrd. Doç. Dr. Murat H. SAZLI’ya (Ankara Üniversitesi Mühendislik Fakültesi), yüksek lisans eğitimim boyunca desteğini ve yardımlarını esirgemeyen Doç. Dr. Gökhan İLK’e (Ankara Üniversitesi Mühendislik Fakültesi), oyun vakitlerini çaldığım sabırlı kızlarım Ezgi ve Duru’ya, anlayışı ve desteği için eşim Fazi’ye teşekkür ederim. Haluk TANRIKULU Ankara, Şubat 2009 iii İÇİNDEKİLER ÖZET ................................................................................................................................i ABSTRACT ....................................................................................................................ii TEŞEKKÜR ...................................................................................................................iii SİMGELER DİZİNİ.....................................................................................................vii ŞEKİLLER DİZİNİ .......................................................................................................x ÇİZELGELER DİZİNİ................................................................................................xii 1. GİRİŞ............................................................................................................................1 1.1 Problemin Açıklanması ............................................................................................1 1.2 Önceki Çalışmalar.....................................................................................................3 1.3 Araştırma Veri Setleri ..............................................................................................4 1.4 Çalışmanın Amacı .....................................................................................................6 1.5 Çalışma Yöntemi .......................................................................................................6 1.6 Çalışmada Kullanılan Program ve Uygulamalar ..................................................7 1.7 Çalışmanın İçeriği .....................................................................................................7 2. BİLGİSAYAR AĞLARI, İNTERNET VE TCP/IP PROTOKOLÜ......................8 2.1 Giriş ............................................................................................................................8 2.2 TCP/IP ……………………………………………………………………………...9 2.2.1 İletişim kontrol protokolü katmanı (TCP katmanı)…………………………..11 2.2.2 İnternet protokolü – IP………………………………………………………....12 2.2.2.1 İnternet protokolü (IP) paket yapısı ..…………………………………….....13 2.3 Ağ İzleme Araçları………………………………………………………………...16 2.3.1 TCPdump………………………………………………………………………..17 2.3.2 Ethereal ………………………………………………………………………….17 2.4 Bölüm Özeti……………..…………………………………………………………17 3. SALDIRI TESPİT SİSTEMLERİ (STS)………………………………………….18 3.1 Tanımlar…………………….……………………………………….…….………18 3.2 STS’lerin Sınıflandırması ………………………………………………………..19 3.3 Saldırı Tipleri ve Özellikleri ……………………………………………………..21 3.4 Tespit Edilecek Saldırılar ………………………………………………………..22 3.4.1 SYN flooding (Neptune) saldırısı ……………………………………………...23 iv 3.4.2 “The Ping of Death” – Pod saldırısı .…………………………………………..25 3.5 Bölüm Özeti ………………………………………………………………………25 4. YAPAY SİNİR AĞLARI…………………………………………………………..26 4.1 Giriş ………………………………………………………………………………..26 4.2 Yapay Sinir Ağlarının Tanımı ………………………………………………..….26 4.3 Yapay Sinir Hücresi ……………………………………………………………...28 4.4 Yapay Sinir Ağının Yapısı ……………………………………………….………32 4.5 Yapay Sinir Ağ Modelleri ……………………….…………………….…………33 4.5.1 Tek katmanlı algılayıcılar……..…...……………..……………………...……..34 4.5.1.1 Basit algılayıcılar…..…………..…….………………………………….…….34 4.5.1.2 ADALINE/MADALINE modeli……………………………...…….…...........35 4.5.2 Çok katmanlı yapılar ……………………………………………….…………..36 4.5.2.1 ÇKA’nın yapısı ……………………………………………………………….37 4.5.2.2 Çok katmanlı ileri beslemeli ağ ……………………………………………...39 4.5.2.3 Geri yayılım ağı ve algoritması ………………………………………………40 4.6 Yapay Sinir Ağının Öğrenmesi ………………………………………………….43 4.6.1 Öğretmenli öğrenme…………….………………………………………….…...44 4.6.2 Öğretmensiz öğrenme ……..………………………………………...……….…45 4.7 Yapay Sinir Ağlarının Temel Özellikleri…….………………………………......46 4.8 Yapay Sinir Ağlarının Avantajları ……….………………….……….…….......47 4.9 Bölüm Özeti …………………………………………………………………….…47 5. VERİ SETLERİ …………………………..….………………………………...…..48 5.1 DARPA Veri Seti ..........……………………………………………………..........48 5.2 Veri Setinin Formatı ……………………………………………………………...50 5.3 Eğitim Veri Setinin Oluşturulması .......................................………….….…..…52 5.3.1 Kullanılacak veri seti özellikleri ……………………………………………….54 5.4 Veri Setinin Kullanımı..............................................................……….……….....58 5.5 Bölüm Özeti .......................................….…………………….…………….……...58 6. UYGULAMALAR ...............................……………………….…………….....…...60 6.1 Giriş .............................................……………….…………….………..………….60 6.2 YSA’ların Oluşturulması………………………………………………………...60 6.2.1 Deney grafikleri ……………………………………….………………………..61 v 6.3 Doğrudan Eğitim Yöntemi Kullanılarak Yapılan Deneyler ...............................61 6.3.1 Deney -1 : Bilinen saldırıların (Neptuen, Pod) bulunması................................62 6.3.2 Deney -2 : Bilinmeyen saldırının (SATAN) bulunması ………………..…….65 6.4 Saldırıları Ayrı Ayrı Tanıyan Eğitim Setlerinin Kullanılması Yöntemi ...........67 6.4.1 Deney -3 : Bilinen saldırıların (Neptune, Pod) bulunması ...............................67 6.4.2 Deney -4 : Bilinmeyen saldırının (SATAN) bulunması ....................................72 6.5 Deney Sonuçları.......................................................................................................76 6.5.1 Başarım oranının tespiti ………………………..................................................76 6.5.1.1 Saldırı bulma başarım oranının tespit edilmesi……………………………..77 6.5.1.2 Normal ağ trafiğinin başarım oranının tespit edilmesi……………………..77 6.5.2 Deneylerin başarım oranları ve süreleri ............................................................78 6.6 Bölüm Özeti ........................................................……………………………….....80 7. TARTIŞMA ve SONUÇ…........................................................................................82 KAYNAKLAR………………………………………………………………...……....87 EKLER ………………………………………………………………………..............91 EK 1 Doğrudan Eğitim Yönteminde Kullanılan Eğitim Veri Seti Bilinen ve Bilinmeyen Saldırıların Bulunması (CD) EK 2 İki Yöntemde de Kullanılan Test Veri Seti - Bilinen Saldırıların Bulunması (CD) EK 3 İki Yöntemde de Kullanılan Test Veri Seti - Bilinmeyen Saldırıların Bulunması (CD) EK 4 Saldırıları Ayrı Ayrı Tanıyan Eğitim Yöntemi – Eğitim Veri Setleri (CD) EK 5 Başarılı Ağın Bulunması İçin Oluşturulan MATLAB Kodları (CD) EK 6 Başarılı Ağın Bulunması İçin Yapılan Testlerin Sonuçları (CD) ÖZGEÇMİŞ ……………………………………………………..……………………92 vi SİMGELER DİZİNİ ABD Amerika Birleşik Devletleri ACK Acknowledge ADALINE Adaptive Linear Neuron (Adaptif/Uyumlu Doğrusal Nöron) ANN Yapay Sinir Ağları (Artificial Neural Network) ARP Adres Çözümleme Protokolü ARPANET DARPA’nın oluşturduğu ilk bilgisayar ağ ART YSA çıktılarının aritmetik ortalaması BP Geri Yayılım (Back Propagation) ÇKA Çok Katmanlı Algılayıcı DARPA Savunma İleri Araştırma Projeleri Teşkilatı (Defense Advanced Research Projects Agency) DoS Hizmet Engelleme (Denial of Service) DF Parçalama (Don’t Fregment) DVM Destek Vektör Makinaları FBI Federal Bureau of Investigation FTP Dosya Aktarım Protokolu (File Transfer Protocol) HTTP Bağlantılı Metin Aktarım Protokolu (Hypertext Transfer Protocol) ICMP İnternet Kontrol Mesajı Protokolü (Internet Control Message Protocol) IDEVAL Saldırı Tespiti Değerledirmesi Veri Seti (Intrusion Detection Evaluation Data Sets) IDS Intrusion Detection Systems IP İnternet Protokolü (Internet Protocol) vii IPSec IP Security IPv4 IP sürüm 4 IPv6 IP sürüm 6 ICMP Internet Control Message Protocol KDD Knowledge Discovery and Data Mining Tools Competition LAN Yerel Alan Ağı LM Levenberg-Marquardt MAC Media Access Controler MATLAB Mathworks firmasının bir ürünü MF Daha çok parça (More Fregments) MIT Massachusetts Teknoloji Enstitüsü (Massachusetts Institute of Technology) MLP Çok Katmanlı Perseptron (Multilayer Perceptron) NAT Network Address Translator NBO Normal ağ trafiğinin başarım oranı (%), NCP Network Control Protocol NN Neural Networks OS İşletim Sistemi (Operating System) Pod The ping of death R2L Uzaktan Yerele (Remote to Local) RFC Request For Comments SBBO Saldırı bulma başarım oranı (%), SMTP Basit Posta Gönderme Protokolü (Simple Mail Transfer Protocol) Kendini Örgütleyen Haritalar (Self-Organizing Maps) SOM viii SRI Stanford Research Institute STS Saldırı Tespit Sistemleri (Intrusion Detection Systems) SVM Support Vector Machines SYN Senkronize (Synchronous) TCP Transmission Control Protocol TCPdump Paket Yakalama Programı TCP/IP Transmission Control Protocol / Internet Protocol TKA Tek Katmanlı Algılayıcı U2L Kullanıcıdan Yerele (User to Local) U2R Kullanıcıdan Yöneticiye (User to Root) UCLA University of California at Los Angeles UCSB University of California at Santa Barbara UDP Kullanıcı Veri Birimi Protokolü (User Datagram Protocol) YSA Yapay Sinir Ağları (Artificial Neural Networks) WWW Dünya Geniş Ağı ix ŞEKİLLER DİZİNİ Şekil 1.1 Birinci Yöntem : Doğrudan Eğitim Yöntemi .……………..………………...5 Şekil 1.2 İkinci Yöntem : Saldırıları ayrı ayrı tanıyan eğitim setlerinin kullanılması......5 Şekil 2.1 OSI Modeli ve TCP/IP Modeli ..……………………………….……….…....9 Şekil 2.2 TCP/IP Mimarisi………….…………………………..………………..…….11 Şekil 2.3 TCP Yığını ………………….……….………………………………….......12 Şekil 2.4 IP paket başlığı …………….……………..….…….…………………..........13 Şekil 2.5 IPv4’te IP adreslerinin sınıflandırılması..……………….……………..…....16 Şekil 3.1 Hizmet engelleme saldırı tipleri …..................................................................22 Şekil 3.2 SYN Flooding saldırısı …….…………………..…………….….………..…24 Şekil 4.1 Biyolojik sinir hücresinin yapısı ......................................................................28 Şekil 4.2 Yapay sinir hücresi (işlem elemanı).................................................................29 Şekil 4.3 Aktivasyon fonksiyonları …………………………………………….…..….31 Şekil 4.4 Yapay sinir ağı katmanları …………………………………………………..33 Şekil 4.5 Tek katmanlı algılayıcı modeli ………………………………………………34 Şekil 4.6 Basit algılayıcı modeli ……………………………….………………...…….35 Şekil 4.7 İki ADALINE ağından oluşan MADALINE ağı ……………………………36 Şekil 4.8 Çok katmanlık YSA modeli ………………………...….……………………38 Şekil 4.9 Çok katmanlı ileri beslemeli bir ağ örneği…………………………………...40 Şekil 5.1 DARPA ağının topolojisi...………………………………..….……………...49 Şekil 5.2 DARPA veri setlerindeki saldırıların kurban sunuculara dağılımı…………..50 Şekil 5.3 TCPdump komutu ile elde edilen DARPA verileri ………………………….51 Şekil 5.4 DARPA verilerinin Ethereal program ile işlenmiş hali………………………52 Şekil 5.5 DARPA veri seti sütun başlıkları …….……………………………………...53 Şekil 5.6 Çalışmada kullanılacak veri seti özelliklerini belirten sütun başlıkları………54 Şekil 5.7 Kullanılan veri seti başlıkları ………………………………………………..55 Şekil 5.8 Neptune saldırısını gösteren veri seti örneği…………………………………57 Şekil 5.9 Normal ağ trafiğini gösteren veri seti örneği …………………...……………58 Şekil 6.1 MATLAB kodları (Bilinen saldırıların (Neptune, Pod) bulunması .......…….63 Şekil 6.2 Deney 1, deneme -1 grafiği ………………………………………………….63 Şekil 6.3 Deney 1, deneme -2 grafiği ………………………………………………….64 x Şekil 6.4 Deney 1, deneme -3 grafiği ………………………………………………….64 Şekil 6.5 MATLAB kodları (bilinmeyen saldırının bulunması)……………………….65 Şekil 6.6 Deney 2, deneme -1 grafiği ………………………………….…..….……….66 Şekil 6.7 Deney 2, deneme -2 grafiği ………………………………….………..……..66 Şekil 6.8 Deney 2, deneme -3 grafiği ………………………….……….…………..….67 Şekil 6.9 MATLAB kodları ………………………………….………….…………..…68 Şekil 6.10 Deney 3, deneme -1 grafikleri ………..…………….………….…………...69 Şekil 6.11 Deney 3, deneme -2 grafikleri …………..…………………….……………70 Şekil 6.12 Deney 3, deneme -3 grafikleri ……………………………..….……………71 Şekil 6.13 Deney 4’te kullanılan MATLAB kodları………..…………….………......72 Şekil 6.14 Deney 4 – Deneme 1: Bilinmeyen saldırının yakalanması ……….………..73 Şekil 6.15 Deney 4 – Deneme 2: Bilinmeyen saldırının yakalanması ………….……..74 Şekil 6.16 Deney 4 – Deneme 3: Bilinmeyen saldırının yakalanması …..…..…..….…75 Şekil 6.17 Deneylerde kullanılan veri setleri ……….……………………….……...….81 xi ÇİZELGELER DİZİNİ Çizelge 3.1 Saldırı isimleri ve sayısal değerleri …………………………………….…23 Çizelge 4.1 Toplama fonksiyonları…………………………........................................30 Çizelge 4.2 Aktivasyon fonksiyonları ………………………………………………....32 Çizelge 5.1 Servis isimlerinin sayısal forma dönüştürülmesi ………………………….56 Çizelge 6.1 Deney 1 – Süre ve başarım oranları …………………………..………......78 Çizelge 6.2 Deney 2 – Süre ve başarım oranları ………….……….………………......78 Çizelge 6.3 Deney 3 – Süre ve başarım oranları ……..……………………………......79 Çizelge 6.4 Deney 4 – Süre ve başarım oranları ……………………………………....79 Çizelge 7.1 Ortalama Başarım Oranları ……… ……………………………………....82 Çizelge 7.2 Önceki Çalışmaların Başarım Oranları ….…………….………………....84 xii 1. GİRİŞ İnternet ve yerel ağ sistemlerinin hızlı gelişimi ve yaygınlaşması özellikle son yıllarda bilgisayar ve bilgi iletişim dünyasını köklü bir biçimde değiştirmektedir. İnternet özellikle iş dünyasında yeni açılımların ve fırsatların doğmasında büyük bir rol oynamaktadır. Bunun doğal sonucu olarak ortaya çıkan yeni iş yapma şekilleri, kurumların daha karmaşık bilgi ağları oluşturmasına neden olmuştur. Sonuçta veri dağıtma sistemleri, depolama sistemleri, şifreleme ve doğrulama teknikleri, IP (internet protokolü) üzerinden ses ve video aktarımı, uzaktan erişim, kablosuz erişim teknikleri ve son kullanıcının oyuncağı olan web servisleri geliştirilmiştir. Bu sayede ortak ağlar yani internet daha erişilebilir bir hale gelmiştir. Gün geçtikçe internete bağlanan bilgisayar sayıları ve kullanıcılarının artması ağ sistemlerine izinsiz giriş yapmak isteyenler (intruders) ve ağ korsanlarının (hackers) sayısını artırmıştır. İnternette kullanılan yazılımların, sistemlerin, protokollerin açıklarını kullanan saldırganlar yaptıkları saldırılar ile sistemlere geçici veya kalıcı zararlar vermektedirler. Bilgisayar Güvenliği Enstitüsü ve FBI’ın (Federal Bureau of Investigation) yayınladığı 2005 bilgisayar suçları ve güvenlik teftişi yıllığına göre, şirketlerin ağ saldırılarından kaynaklanan finansal kayıp 130 milyon dolardır (Patcha 2006). 1.1 Problemin Açıklanması Günümüzde şirketlerin ve kurumların bilgi güvenliğine verdikleri önem gittikçe artmaktadır. Virüs, solucan ve benzeri şekilde olabilecek saldırılardan korunmak için kullanabilecek anti-virüs, firewall gibi yazılım ve donanımlar bulunmaktadır. Ancak bu yöntemlerin günümüzde yeterli olmadığı anlaşılmıştır. Çünkü tüm bu koruma sistemleri yalnızca önceden bilinen ve tanımlanmış olan saldırılara veya virüslere karşı etkili olmaktadır. Bilgi sistemlerinin güvenliğinde kullanılan bu geleneksel yaklaşım, sistemi sadece çevresindeki ağ bağlantılarından gelebilecek bildik saldırılardan korumaktadır. Bu amaç ile farklı tanımlama metotları, doğrulama ve zorunlu erişim kontrol teknikleri kullanılmaktadır. Geleneksel güvenlik sistemleri oldukça karmaşık bir yapıya sahip 1 olduğundan oluşturulan güvenlik politikaları kullanıcılar tarafından hassasiyetle uygulanamamaktadır. Çünkü güvenliğin felsefesine uygun bir koruma bilgisayar ağlarını kullananların aktivitelerini ve üreticiliğini sınırlamaktadır (Ilgun et al. 1995). Bu nedenle geleneksel güvenlik sistemlerinin pratik olmayan çözümlerine alternatifler aranmaya başlanmıştır. Şirketler, araştırma firmaları, organizasyonlar kendi ağ yapılarındaki veri akışının güvenliğini sağlayarak bilgilerin korunması için farklı yöntemler geliştirmeye başlamışlardır. Bu sistemlere genel olarak saldırı tespit sistemleri (STS) denilmektedir. Saldırı tespit sisteminin amacı organizasyonun güvenlik politikasına uymayan aktiviteleri tanımlamaktır. STS kısaca bilgi sistemini denetler ve herhangi bir saldırı olması halinde yetkiliye uyarı mesajı gönderir veya belirlenmiş bir savunma mekanizması var ise onun devreye girmesini sağlar. STS’lerin oluşturulmasında istatistik, yapay zeka, veri madenciliği gibi farklı yöntemler kullanılmıştır. STS’lerde kullanılan yöntemlerin oluşturduğu çözümlerde sistemlerin hızlı çalışması, saldırıların doğru algılanması ve doğru tespitte bulunulması önemlidir. Bu nedenle zeki sistemler, özellikle YSA 1990’lardan sonra yaygın bir şekilde STS oluşturulmasında kullanılmaya başlanmıştır. Kaplantzis and Mani (2006) saldırı tespitinde yüksek doğrulukta başarının YSA ile sağlandığını belirtmişlerdir. Saldırı tespit sistemleri aslında normal ve anormal veri paket akışlarını birbirlerinden ayırarak sınıflandırmaktadır. Kaplantzis and Mani (2006) STS’lerde kullanılan üç tip sınıflandırmayı (K-kare en yakın komşuluğu, YSA ve destek vektör makinaları (DVM, support vector machines (SVM)) yaptığı çalışmada karşılaştırmışlardır. Çalışmada DVM’in kısa zamanda kabul edilebilir bir hassasiyette saldırıyı yakaladığı, YSA’nın ise uzun süreli eğitimler sonunda yüksek başarım ile saldırıları kesin olarak tespit ettiği belirtilmiştir. Bu tez çalışmasında saldırıların YSA ile tespitindeki yaklaşımlar araştırılmış, uygun çözümler için öneriler ortaya konulmuştur. 2 1.2 Önceki Çalışmalar YSA’nın saldırı tespit sistemlerinde uygulamaları 1998 yılında Cannady’in çalışmalarında görülmeye başlanmıştır. Cannady (1998) çalışmasında ağ üzerinde kötü amaçlı saldırıların tespit edilmesinde YSA’nın nasıl kullanılacağına dair metotlar geliştirmiştir. Cannady YSA’nın STS’lerde kullanılmasındaki avantaj ve dezavantajlarını belirlemeye çalışmıştır. Sonuç olarak Cannady saldırı tespit sistemlerini oluşturmada YSA’nın çok uygun çözümler üretebileceğini öngörmüştür. Ayrıca söz konusu çalışma iyi eğitilmiş bir YSA’nın etkili bir şekilde saldırıları yakalayabileceğini ve sürdürülebilir bir performans ortaya koyabileceğini göstermiştir. Cannady’nin çalışması ağ temelli saldırı tespit sistemlerinde YSA’ların kullanılabileceğini gösteren ilk ciddi çalışmadır. Ryan et al. (1998) ise çalışmasında bir sinir ağını geri yayılım algoritması ile eğiterek, ağ üzerinde çalışan aktif kullanıcıların neler yaptığını ve ağdaki bilgisayarların işletim sistemlerini tespit etmiştir. Bu çalışmada oluşturulan yazılım “Neural Network Intrusion Detection” olarak bilinmekte ve Unix işletim sistemi üzerinde çalışmaktadır. Söz konusu çalışmada ağa bağlanan tüm kullanıcıların bilgileri ve sistem üzerinde yazdıkları her komut izlenmiştir. Çalışmada sistemlerin saldırı niteliğindeki kötü veya yanlış kullanımları kaydedilmiş ve bu kayıtlar kullanılarak kötüye kullanım tespit edilmiştir. Aynı çalışmanın benzeri Lipmann et al. (1999) tarafından gerçekleştirilmiştir. Lipmann ve Ryan’ın yaptığı çalışmalar literatüre, anahtar kelime sayma temelli kötüye kullanım tespit sistemi (keyword-count-based misuses detection system) olarak geçmiştir. Ghost et al. (1999) çalışmalarında, Ryan’ın kişi davranış profillerinin incelenmesi yerine, program davranış profillerini analiz eden sinir ağları oluşturmuşlardır. Bu metot belirli programların normal sistem davranışlarını tanımakta ve elde edilen bilgiyi mevcut sistem davranışı ile karşılaştırmaktadır. Ghost and Schwartzbard (1999) çalışmalarında hem ağda oluşan anormallikleri hem de kötü kullanımları YSA kullanarak tespit etmişlerdir. 3 Moradi and Zulkernine (2004) YSA’yı çevrimdışı (offline) STS uygulamalarında kullanmışlardır. Moradi ve Zulkernine’nin çalışmaları çok katmanlı algılayıcı (ÇKAMulti Layer Perceptron (MLP)) temelli YSA’lar ile başarılı sonuçlar alınabileceğini göstermiştir. Moradi and Zulkernine (2004) çalışmalarında, saldırının tespit edilmesinden çok saldırıların sınıflandırılması üzerine yoğunlaşmışlardır. Çalışmalarında düzenli eğitilmiş sinir ağlarının kullanılması ile oluşturulan STS’lerin çevrimiçi (online) çalışabilecekleri gösterilmiştir. Sazlı ve Tanrıkulu (2007) internet ortamından topladıkları veri paketleri içerisinde saklanan saldırıları tespit etmek için bir YSA oluşturmuşlardır. ÇKA kullanılarak oluşturulan YSA DARPA eğitim veri setleri ile eğitilmiş ve gerçek ağ trafiği ile test edilmiştir. Zanero (2004) çalışmasında, STS oluşumunda öğretmensiz öğrenme yöntemlerinden biri olan kendini örgütleyen haritalar (self-organizing maps-SOM) kullanmış ve başarı sağlamıştır. Benzer bir çalışma Öksüz (2007) tarafından yapılmış ve SOM kullanan bir STS testlerde başarılı olmuştur. Lichodzijewski et al (2002) tarafından yapılan çalışmada, DARPA veri setleri oldukça sadeleştirilmiş ve SOM bu sadeleştirilmiş veri setlerine göre oluşturulmuştur. Bu çalışmada çevrimdışı bir STS oluşturulmuş ancak Moradi’nin çalışmasından farklı olarak çok az sayıda özellik kullanılmıştır. Temel DARPA veri setleri yeniden düzenlenerek, YSA’nın hem eğitilmesinde hem de test edilmesinde kullanılmıştır. 1.3 Araştırma Veri Setleri 1998 yılında DARPA tarafından yapılan çalışmalarda oluşturulan veri setleri STS tasarımlarında yaygın bir şekilde kullanılmış ve başvuru niteliğinde bir kaynak olmuştur. DARPA veri setleri ile hem istatistiki yöntemlerde hem de YSA’lar da kullanılarak farklı yapılarda STS’ler oluşturulmuştur. Ayrıca bu veri setlerinin kullanılması ile mevcut STS’ler de test edilmiştir. Bu çalışmada YSA’ların 4 eğitimlerinde DARPA veri setleri sayısallaştırılarak kullanılmış, saldırı tipine göre farklı eğitim setleri hazırlanmıştır. DARPA veri setleri detaylı olarak bu çalışmanın dördüncü bölümünde anlatılmaktadır. Bu çalışmada başarım oranlarının karşılaştırılması için farklı yöntemler kullanılmıştır. Bu farklı yöntemler için DARPA tarafından üretilen eğitim setleri özelleştirilmiş ve ilgili olan iki yönteme uygun hale getirilmiştir. Birinci yöntemde özelleştirilmiş eğitim veri seti doğrudan tek bir eğitim seti olarak sinir ağına öğretilmiştir. Oluşturulan YSA’nın öğrenme hızı ve saldırı tespit oranı (başarım oranı) ölçülmüştür. İkinci yöntemde ise saldırılara özgü YSA’lar oluşturulmuştur. Bu nedenle eğitim setleri her bir saldırı için ayrı ayrı hazırlanmış ve ilgili sinir ağının eğitiminde kullanılmıştır. Normal ağ trafiğini tanıyan sinir ağı da sadece normal ağ trafiğine ait eğitim veri seti ile eğitilmiştir. Her iki yöntemle eğitilen YSA’lar DARPA’nın hazırladığı aynı test veri seti ile test edilmiştir. Oluşturulan YSA’ların öğrenme hızı ve saldırı tespit oranları ölçülmüştür. Yukarıda belirtilen yöntemler Şekil 1.1 ve Şekil 1.2’de şema halinde gösterilmiştir. DARPA Veri Seti Eğitim Tüm Saldırıları Bilen Tek Bir Sinir Ağı Şekil 1.1 Birinci yöntem : Doğrudan Eğitim Yöntemi DARPA Veri Seti Neptune Eğitim Neptune POD Eğitim Seti POD YSA Normal Eğitim Seti Eğitimler NORMAL Şekil 1.2 İkinci yöntem : Saldırıları ayrı ayrı tanıyan eğitim setlerinin kullanılması 5 DARPA veri setleri veri madenciliği yöntemi ile KDD’99 Cup (Knowledge Discovery and Data Mining Tools Competition) çerçevesinde yapılan bir çalışma ile daha detaylı bir şekle kavuşmuştur. Temel DARPA veri setinde her bağlantıda 11 özellik bulunur iken KDD’99 Cup veri setinde 41 özellik bulunmaktadır. Bağlantılardaki özellik sayılarının artması nedeni ile YSA’ların eğitim süreleri artmaktadır. Bu nedenle bu çalışmada KDD’99 Cup veri setleri yerine temel DARPA veri setleri kullanılmıştır. 1.4 Çalışmanın Amacı Bu çalışmanın amacı çok katmanlı algılayıcılar kullanılarak bilgisayar ağlarında oluşan saldırıların tespit edilmesi ve farklı eğitim yöntemlerine göre oluşturulan YSA’ların gösterdikleri başarım oranlarının karşılaştırılmasıdır. 1.5 Çalışma Yöntemi Bu çalışmada saldırı tespit sistemlerinde kullanılan YSA’ların eğitim yöntemlerinin araştırılması ve karşılaştırılmasını içermektedir. Çalışmada iki yöntem önerilmiştir: - Tüm saldırıların tek bir YSA ile bulunması, - Her saldırı için farklı eğitim setleri ile eğitilmiş YSA’ların kullanılması. Yöntemlerin oluşturulması ve karşılaştırılması için aşağıda sıralanan yollar takip edilmiştir. İnternet ortamında görülen saldırılardan “Neptune”, “The ping of death - Pod” ve bir yoklama (probe) atağı olan “SATAN” ın bulunması için ÇKA kullanılarak çok sayıda yapay sinir ağı oluşturulmuştur. Sinir ağının kurulmasında MATLAB programı kullanılmıştır. YSA’nın eğitilmesinde DARPA veri setleri kullanılmıştır. DARPA deneyinde elde edilen test veri setleri çalışmamızda test veri seti olarak kullanılmış ve oluşan saldırıların tespit edilmesine çalışılmıştır. 6 1.6 Çalışmada Kullanılan Program ve Uygulamalar Çalışmamızda veri setlerini incelemek için TCPdump ve “Ethereal Paket Analiz” programları kullanılmıştır. Tcpdump uzantılı dosyaları açmak için “Editpcap” programı, DARPA tarafından üretilen ham verinin düzenlenmesi ve sayısallaştırılması için elektronik tablolama programı olan MS Excel programı kullanılmıştır. YSA’nın oluşturulması ve test edilmesi için MATLAB programının “Neural Networks” (NN) bileşeni kullanılmıştır. 1.7 Çalışmanın İçeriği Çalışmanın ikinci bölümünde bilgisayar ağları, internet ve TCP/IP incelenmiştir. Üçüncü bölümde STS’lerin ne şekilde yapılandıkları, hangi yöntemleri kullandıkları incelenmiştir. Bu bölüm kapsamında genel olarak saldırı tipleri ve özellikleri ele alınmıştır. Çalışmanın dördüncü bölümünde YSA’nın çalışma prensipleri anlatılmıştır. Bu bölümde genel olarak YSA’nın ne olduğu, yapısı, tipleri ve özellikleri anlatılmıştır. Bu çalışmada kullanılacak ÇKA modeli detaylı olarak bu bölümde açıklanmıştır. Beşinci bölümde çalışmada kullanılan yöntemler, veri setlerinin oluşturulması, eğitim ve test veri setlerinin özellikleri anlatılmıştır. Altıncı bölümde yapılan deneyler anlatılmıştır. Deney sonuçları grafikler halinde verilmiştir. Yedinci bölüm ise sonuçların açıklandığı ve tartışmanın yapıldığı bir bölüm olarak sunulmuştur. 7 2. BİLGİSAYAR AĞLARI , İNTERNET VE TCP/IP PROTOKOLÜ STS’ler bilgisayar ağları ve internet üzerinde oluşan saldırıları tespit etmektedir. Bu nedenle bu bölümde bilgisayar ağlarının çalışma prensipleri ve internet hakkında bilgi verilecektir. Ayrıca internet üzerinde bilgilerin taşınması ve kontrolünü sağlayan iletişim kontrol protokolü (TCP -Transmission Control Protocol) ve paketlerin adreslenerek iletilmesi ile ilgilenen internet protokolü (IP) açıklanmaktadır. 2.1 Giriş 1960 yılında ABD Savunma Bakanlığı ABD’ye yapılacak bir saldırıda eyaletler arasında iletişimin kesilmeden devam etmesini sağlayacak bir proje üzerinde çalışmaya başlamıştır. 1961 yılında Massachusetts Institute of Technology’de (MIT) Leonard Kleinrock (1961) paket anahtarlama teorisi ile ilgili ilk makaleyi yayınlamıştır. O güne kadar tüm iletişim teknolojileri devre anahtarlama mantığı ile çalışmaktadır. Kleinrock bu çalışmasında verilerin paketler ile taşınabileceğini ve her paketin ulaşacağı yere farklı bağlantı noktalarından geçerek ulaşabileceğini öngörmektedir. Bu yaklaşım günümüz veri iletişiminin temelini oluşturmuştur. 1962 yılında J.C.R. Licklider’in MIT’de tartışmaya açtığı "Galaktik Ağ" fikri internet kavramının ortaya çıkmasını sağlamıştır. Licklider dünyadaki tüm bilgisayarların birbirleri ile konuşabileceklerini ve bilgi alışverişi yapabileceğini öngörmüştür. 1965 yılında MIT’de çalışan Lawrence Roberts ile Thomas Merrill ilk kez birbirlerinden fiziksel olarak uzak iki bilgisayarın iletişimini sağladılar. Roberts 1969 yılında DARPA'da çalışmaya başlamış ve günümüz internetinin çekirdeğini oluşturan "ARPANET" isimli proje önerisinde bulunmuştur. Bu proje kapsamında aynı yıl içerisinde ABD’nin dört farklı yerleşkesinde bulunan bilgisayarların bir ağ üzerinden iletişimi sağlanmıştır. ARPANET’in temelini oluşturan bu dört yerleşke University of California at Los Angeles (UCLA), Stanford Research Institute (SRI), University of Utah ve University of California at Santa Barbara (UCSB)’dır. Bu ağa birçok katılım olmuş ve 1971 yılında ağın çalışmasını sağlayan ağ kontrol protokolü (NCP) geliştirilmiştir. 1973 yılında Xerox firmasında çalışmaya başlayan Robert Metcalf ağa bağlı bilgisayarların ortak bir yazıcıyı kullanmasına olanak tanıyan ağ kartı tasarımı ile Ethernet’in keşfini başlatmıştır. Bu süreç iletişim kontrol 8 protokolü / internet protokolünün (TCP/IP) 1983 yılında ARPANET’in ana protokolü kabul edilmesine kadar sürmüştür. Günümüzde internet TCP/IP protokol ailesini kullanmaktadır. Aşağıdaki bölümlerde TCP/IP protokol ailesi açıklanmaktadır. 2.2 TCP/IP Her türlü iletişimde iki tarafın karşılıklı konuşması, iletişime geçmesi, iletişimi sürdürmesi ve iletişimi sonlandırması için oluşturulan kural ve politikalar vardır. Karşılıklı olarak mutabakat sağlanan kural ve politikaların tümüne protokol denilir. İnternetin konuşma, anlaşma protokolü TCP/IP’dir. TCP/IP mimarisi bilgisayarların marka ve teknolojilerinden bağımsız çalışabilmelerini sağlayan ve geniş bir kullanım alanı olan bir protokoller kümesidir. TCP/IP, OSI referans modeli gibi katmanlı bir yapıya sahiptir. Ancak OSI modeli yedi katmandan oluşurken TCP/IP protokol ailesi dört katmandan oluşmaktadır. OSI modelindeki yedi katmanda yapılan tüm işler TCP/IP’de dört katmanda yapılmaktadır. OSI Modeli TCP/IP Modeli 7. Uygulama Katmanı 6. Sunum Katmanı 4. Uygulama Katmanı 5. Oturum Katmanı 4. İletişim Katmanı 3. İletişim Katmanı 3. Ağ Katmanı 2. Yönlendirme Katmanı 2. Veri Bağı Katmanı 1. Fiziksel Katman 1. Fiziksel Katman Şekil 2.1 OSI Modeli ve TCP/IP Modeli 9 Elektriksel iletimin olduğu fiziksel katman dışında her katman kendisine özgü alt protokollerden oluşmaktadır. TCP ve IP, TCP/IP mimarisinin temel protokolleridir. Her katman farklı protokolleri destekler. Bu protokoller “Yorumlar için talep” (Request For Comments - RFC) başlığı altında çok sayıda dokümanda açıklanmıştır. TCP/IP ‘nin tanımlanması için çok sayıda RFC dokümanı bulunmaktadır. Örneğin TCP/IP protokol kümesindeki TCP’i açıklamak için RFC 793 sayılı doküman hazırlanmıştır. Benzer şekilde RFC 959 sayılı doküman FTP’yi (dosya transfer protokolü) tanımlamıştır. Garantisiz paket iletim protokolü UDP ( kullanıcı datagram (veri paketi) protokolü) ise RFC 768 sayılı doküman ile tanımlanmaktadır. RFC’lerin tümünü http://www.faqs.org/rfcs/ isimli web adresinden bulmak mümkündür. TCP/IP protokolü zamanın gereksinimlerine göre yeni RFC’ler ile güncellenmektedir. TCP/IP protokol kümesinde IP ikinci katmanda çalışırken, TCP üçüncü katmanda çalışmaktadır. Uygulama katmanında ise dosya transfer protokolü (FTP), dinamik isim sunucusu (DNS) gibi protokoller çalışmaktadır. Örneğin ikinci katmanda çalışan adres çözümleme protokolü (ARP) yerel alan ağı (LAN) içinde IP adresi bilinen alıcı bilgisayarın fiziksel adresini (MAC adresini) bulmak için kullanılan bir protokoldür. İnternet üzerindeki bilgisayarlar, TCP/IP’nin mimarisi gereği kullanıcı/sunucu şeklinde çalışırlar. İletişimdeki iki bilgisayardan biri hizmet sunarken, diğeri hizmet alan pozisyonunda çalıştırmaktadır. İnternetin veri iletişimi IP paketleri ile yapılmaktadır. Ağın izlenmesi IP paket içeriklerinin izlenmesi anlamındadır. Bu nedenle IP’nin yapısının bilinmesi bu çalışmada önemli bir yer tutmaktadır. 10 Uygulama Katmanı İletişim Katmanı SMTP Rlogin FTP Telnet T C P DNS TFTP U D P Yönlendirme Katmanı Fiziksel Katman IP ICMP IEEE 802.2 / LAPB/HDLC Ethernet, X.25, Token‐Ring, Dial‐up, vs. Şekil 2.2 TCP/IP Mimarisi 2.2.1 İletişim kontrol protokolü katmanı (TCP katmanı) TCP’nin ana görevi üzerinde bulunan uygulama katmanından gelen bilgileri yığınlar (segment) haline dönüştürmek, iletişim esnasında kaybolan bilgileri tekrar göndermek ve farklı zamanlarda gelen sıralı paket parçalarını doğru sıraya sokarak birleştirmektir. TCP bir veri paketinin içeriğinin değiştirilmeden iletilmesini sağlar. Kısaca TCP bir paketin bütünlüğünü ve iletişim garantisini sağlayan protokoldür. Şekil 2.3’de bir TCP yığını gösterilmiştir. TCP katmanı büyük bir veriyi taşınabilecek büyüklükte veri parçalarına (yığınlara) ayırır. Her yığının başında bir TCP başlığı bulunmaktadır. Bu başlık bilgisi içinde kapı (port) ve paket sıra numaraları bulunmaktadır. Kapı numaraları kaynak ve varış bilgisayarlarına ait kapı numaralarıdır. Sıra numarası ise büyük bir verinin parçalandıktan sonra karşı tarafta hangi sıraya göre sıralanması gerektiğini göstermektedir. 11 Kaynak Kapısı (Port) Varış Kapısı (Port) Sıra Numarası Onay (Acknowledgement) Data Offset Kontrol Toplamı Reserve Pencere (Window) Acil İşareti (Urgent Pointer) B i l g i Şekil 2.3 TCP Yığını Kontrol toplamı yığın içindeki tüm verilerin matematiksel olarak toplanması ve TCP başlığına yazılması ile oluşur. Verinin alıcı tarafına geldiğinde tekrar toplamı alınır ve bu toplam kontrol toplamında yazılan değer ile aynı değil ise veri yolda bozulmuştur denilir. Aksi taktirde veri bozulmamıştır. Bozulan veri karşı taraftan istenir. TCP ile verilerin bütünlüğü sağlanmış olur. TCP üç yollu el sıkışması ilkesine göre iletişimi başlatır. Üç yollu el sıkışması detaylı olarak üçüncü bölümünde anlatılmıştır. 2.2.2 İnternet protokolü – IP İnternet Protokolü (IP), insanlığı bilgi çağına taşıyan internet ağının temel yapı taşıdır. İnternete bağlı herhangi iki bilgisayar arasındaki iletişim bu protokol aracılığı ile sağlanır. İnternet, çok sayıda ağın birbirine bağlı olduğu bir ağlar topluluğudur. Ağ üzerinde yüksek bant genişlikli hatlardan ve hızlı yönlendiricilerden oluşan bir dizi omurga bulunmaktadır. Bu omurgalara bölgesel ve ulusal ağlar bağlanmıştır. İnternet içindeki ağları ve bilgisayarları birbirlerine bağlayan, iletişim kurmalarını sağlayan protokol IP’dir. Bu neden ile IP internetin ortak dilidir. IP, ağ içerisindeki paketlerin adreslenerek iletişimi ve yönlendirilmesinden sorumludur. IP paketlerine IP Datagrams (IP veri setleri) denilmektedir. 12 2.2.2.1 İnternet protokolü (IP) paket yapısı IP paketi erişim bilgileri, kullanılan protokol bilgisi ve kontrol bilgileri gibi verilerden oluşmaktadır. Şekil 2.4’te IP paket formatı gösterilmiş ve başlık bilgilerinin açıklamaları aşağıda yapılmıştır. Sürüm IHL Hizmet Tipi T op l a m U z u n l u k Bayrak Tanım Yaşam Süresi Parçalama Bilgisi Başlık Kontrol Toplamı Protokol K a y n a k I P A d r e s i V a r ı ş I P A d r e s i S e ç e n e k l e r P a d d i n g Şekil 2.4 IP paket başlığı Sürüm : Paketin IP sürümü IHL (IP Başlık Boyu - IP Header Lenght): Başlık alanının kaç adet 32 bitlik (en az 5, en çok 15) sözcükten oluştuğunu gösterir. Hizmet Tipi: Göndericinin ağdan beklediği güvenilirlik, hız ve gecikmenin düzeyini belirtir. Ancak bu alanı mevcut yönlendiricilerin pek azı değerlendirmektedir. Toplam Uzunluk: Başlık ve verinin birlikte uzunluğunu gösterir. Tanım: Alıcının parçaları (fragment) birleştirmek için kullandığı bir değerdir. Aynı IP paketinin bütün parçalarının tanıtıcı değeri birbirinin aynıdır. Parçalama Bilgisi: Bu bölüm IP paketinin parçalama bilgilerini içerir. DF (Don’t fragment) ve MF (More Fragment) bölümlerinden oluşmaktadır. DF, paketin 13 yönlendiricilerden geçerken parçalara bölmemesini gösteren bir bitlik istek alanıdır. Alıcının parçaları birleştiremediği durumlarda gereklidir. MF (More Fragment) kısmında ise bir datagramın son parçası dışındaki tüm parçalarında MF=1’dir. Bayrak : Üç tane bayrak bitinden oluşur. İlk bit bilgisi içinde bulunduğu datagramın kaç parçadan oluştuğunu belirtir. Eğer bu değer 1 ise gönderilen verinin tek datagramdan oluştuğu anlaşılır. Bu sayede alıcı veriyi aldıktan sonra başka mesajın olmadığını anlar. İkinci bayrak bilgisi ise verinin parçalanıp birçok datagram haline dönüştürüldüğünü ve gönderilen verinin en son datagram olduğunu belirtir. Üçüncü bit alanı ise saklı tutulmaktadır. Yaşam Süresi: IP paketinin alıcısına belirli bir süre içinde ulaşamaması durumunda yok edilmesini sağlayan bir alandır. Bu alana başlangıçta 255 veya daha küçük bir tam sayı yerleştirilir. Her yönlendiricide bu alandaki değer bir eksiltilir. Ayrıca yönlendiricide paket bir bekleme kuyruğuna alınırsa her geçen saniye yaşam süresi alanındaki sayıyı bir eksiltir. Sayı sıfıra ulaşırsa paket çöpe atılır. Çöpe atan yönlendirici kaynağa bir uyarı paketi gönderir. Protokol: IP’nin üst katmanı olan iletişim katmanında hangi protokolün (TCP, UDP) yürütüldüğünü gösterir. Başlık Kontrol Toplamı: Başlıkta bir bozulma olup olmadığını belirlemeye yarar. Her yönlendiricide bu alandaki değer kullanılarak verinin bozulup bozulmadığı araştırılır. Sonuç olumlu ise paket bir sonraki yönlendiriciye gönderilir. Bu arada başlıktaki bazı değerler ile birlikte (örneğin yaşam süresi) bu alandaki değerde gönderilen pakette yeniden hesaplanır. Yöntem yalnızca başlıktaki hataları açığa çıkardığı için iletişim katmanının verideki muhtemel bozuklukları yakalayacak önlemler alması gerekmektedir. Kaynak ve Varış Adresleri: 32 bit uzunluğunda IP paketinin gönderildiği ve varacağı bilgisayarların IP adreslerdir. 14 Seçenekler: Bu alanda güvenlik, izlenecek yörünge, yönlendirici numaralarını ve gerçek zaman saatlerini IP paketine eklemeleri için uyarı gibi bazı ek bilgiler bulunmaktadır. Günümüz interneti IP protokolünün 4.sürümünü (IPv4) kullanmaktadır. IPv4 sınıf (class) sistemine dayalı bir sözleşmedir. Bilgisayarların iletişim sırasında uçtan uca adreslenebilmesini sağlayan IPv4 adresleri sadece 32 bitten (4 adet 8 bitten) ibarettir. 32 bitlik adres alanı teoride 4,294,967,296 tane adres yaratabilse de pratikte bu değere ulaşılamamaktadır. Bir IP adresi a.b.c.d şeklinde her biri 8 bitten oluşan bir yapıda inşa edilmiştir. a, b, c ve d harfleri ikili sayı sisteminde örneğin 10001000.11000001.00001111.10000001 şeklinde gösterilebilir. Onlu sistemde ise a,b,c,d değerleri 134.193.15.129 şeklinde gösterilmektedir. Yani a,b,c ve d değerleri 0 ile 255 arasında değerler alabilirler. IP adresleri a.b.c.d şeklindeki yapısında a’nın aldığı değerlere göre alt sınıflara ayırmak mümkündür. a.b.c.d şeklindeki bir IP adresinde a değeri 1-126 arasında ise A sınıfı, 128-192 arasında B sınıfı, 193-223 arasında ise C sınıfı olarak tanımlanmaktadır. Çoklu dağıtım (multicast) amaçlı kullanılan D sınıfı ve deneysel çalışmalarda kullanılmak üzere E sınıfı da bulunmaktadır. Sınıflardaki IP adres sayıları aşağıda sıralanmıştır. A Sınıfı : 125 ağ, ağ başına yaklaşık 16 milyon adres B Sınıfı : 16382 ağ, ağ başına 65534 adres C Sınıfı : Yaklaşık 2 milyon ağ, ağ başına 256 adres D Sınıfı : Multicast kullanım için ayrılmıştır. E Sınıfı : Gelecekte kullanım için ayrılmıştır. IP adreslerinin sınıflandırmasındaki ağ ve kullanıcı (IP adresi) gösterimleri de Şekil 2.5’te verilmiştir. IP adreslerinin kıtlığı nedeni ile bir yerel alan ağının bir gerçek IP adresini kullanarak internete çıkmasını sağlamak için ağ adres dönüştürücü (NAT – Network Address Translator) kullanılır. Ancak NAT kullanımı ile iki bilgisayarın uçtan uça adreslenememesi, paket bütünlüğünün korunamaması, istemci-sunucu iletişiminin sadece tek yönlü işleyebilmesi, IPSec bağlantılarının sağlanamaması, ağların sınırlı 15 ölçeklenirliği, yönetim zorlukları başlıca problemler olarak ortaya çıkmıştır. Bu problemlerin çözümü için IPv6 (IP sürüm 6) önerilmiş ve günümüzde halen çalışmaları devam etmektedir. A Sınıfı B Sınıfı C Sınıfı D Sınıfı Kullanıcı Ağ a b c d Ağ Kullanıcı a c b Ağ a b d Kullanıcı c d Kullanıcı a b c d Şekil 2.5 IPv4’te IP adreslerinin sınıflandırılması 2.3 Ağ İzleme Araçları Ağ üzerinde oluşan trafiğin analiz edilmesi için toplanması gerekmektedir. DARPA veri setleri Unix işletim sistemi üzerinde çalışan TCPdump adlı bir program ile toplanmıştır. Günümüzde bu yazılım Linux ve Windows işletim sistemlerinde de çalışmaktadır. Ayrıca TCPdump programının benzeri olan windump programı Windows işletim sisteminde çalışmaktadır. Her iki programda komut satırında çalıştırılmaktadır. Son yıllarda en yaygın ağ analiz programı Ethereal Paket Analiz (Ethereal) programıdır. Bu kısımda DARPA veri setinin toplanmasını sağlayan Tcpdump ile çalışmamızda kullandığımız Ethereal programları kısaca anlatılacaktır. 16 2.3.1 TCPdump TCPdump ağ üzerinde akan trafiği yakalayan bir yazılımdır. Genel olarak “sniffer” denilen, ağa hiç karışmadan ağı “koklayan” yazılımlardan biridir. Adında geçen TCP ön ekine rağmen ağda akan farklı protokollerdeki paketleri de yakalar. Komut satırında çalışır. Yazılımı çalıştırmadan önce yapılan filtrelemelere göre ağ üzerindeki paketleri ayıklayabilir ve yakalamak istenen veri paket tiplerini seçebilir. Raporlama ve bir dosya oluşturarak saklama yapma yeteneği vardır. 2.3.2 Ethereal Ethereal güçlü özelliklere sahip bir paket analiz programıdır. Açık kaynak kodlu olarak üretilmiştir ve hem Linux hem de Windows işletim sisteminde çalışan sürümleri vardır. Paketleri yakalar ve analiz için paketleri çözümler. Çözümleme özelliği çok gelişmiştir. Program grafik ara yüzüne sahiptir. Ethereal da TCPdump programının kullandığı yakalama ve filtreleme mekanizmalarını kullanmaktadır. TCPdump tarafından yakalanıp raporlanan dosyalar Ethereal tarafından okunabilmektedir. Ethereal’in ticari bir ürün olarak Wireshark adı altında satışı yapılmaktadır. Program izleme yapılacak ağ üzerinde çalışan bir bilgisayara yüklenir ve bu bilgisayarın ağ arabirim kartına gelen paketlerin tümünü toplar. Grafik ara yüzü nedeni ile TCPdump programına göre kullanışı daha kolaydır. 2.4 Bölüm Özeti Bu bölümde internetin tarihçesinden bahsedilmiştir. İnternetin kullandığı protokol ailesi olan TCP/IP protokol ailesi ile yönlendirme ve iletişim katmanı protokolleri anlatılmıştır. TCP protokolünün yapısı ve görevleri anlatılmıştır. İnternet protokolünün yapısı, görevleri ve IP adresleme bu bölümde verilmiştir. Son olarak ağ izleme ve analiz programları olan TCPdump ve Ethereal’dan bahsedilmiştir. 17 3. SALDIRI TESPİT SİSTEMLERİ (STS) Bu bölümde çalışmamızın ana konusunu oluşturan saldırı tespit sistemleri (STS) tanıtılacaktır. Saldırı, saldırı tespit ve saldırı tespit sistemleri detaylı olarak açıklanmaktadır. Saldırı yöntemleri, çeşitleri ve deneylerimizde kullanılan saldırılar bu bölümde incelenmektedir. 3.1 Tanımlar STS’yi tanımlamadan önce “saldırı” ve “saldırı tespiti” nin anlamlarını açıklamak gerekmektedir. Anderson (1980) yayınladığı raporunda saldırıyı, “izinsiz olarak bilgiye ulaşmak, değiştirmek, sistemi kullanılmaz veya güvenilmez hale getirmektir” diye tanımlamaktadır. İnternet ve bilgisayar teknolojilerindeki gelişmeleri göz önünde bulundurarak yeni bir tanım yapabiliriz. Anderson’un yaptığı bu tanımı genişletirsek bilginin gizliliği, bütünlüğü ve erişilebilirliğinin bozulması yönünde yapılan her türlü girişime saldırı demek mümkündür. Veri gizliliği verinin yetkisiz birine karşı veya üçüncü şahıslara ifşasını engeller. Veri bütünlüğü verinin doğruluğu, aslına uygun ve bozulmadığı ile ilgilenir. Erişilebilirliğinin bozulması ise hizmetin önceden belirlenmiş bir hizmet kalitesinin altına düşmesi veya verilen hizmetin tamamen işlemez veya erişilemez hale gelmesi anlamını taşımaktır. Sistem için hizmet aksatma büyük bir tehdittir (Vesely and Breclerova 2004). Saldırı tespiti ise ağ üzerinde akan verinin üçüncü şahıs veya sistemler ile izlenerek gizliliğinin, bütünlüğünün ve erişilebilirliğinin kısmen veya tamamen bozulması halinin tespit edilmesidir. 18 Saldırı Tespit Sistemleri bir ağ veya bir bilgisayara karşı yapılan her türlü saldırının tespit edilmesi ve saldırının bertaraf edilmesi için geliştirilmiş sistemlerin bütününe denir. Bilgisayar ağlarında yapılan her türlü yetkisiz erişimin tespit edilmesi ve ağ içerisinde oluşan anormalliklerin gözlenmesi, akan trafiğin analizi ile mümkün olmaktadır. STS’ler ağ ve ağdaki bilgisayarların çalışmalarını izleyerek veri toplar. Toplanan veriler önceden tespit edilen saldırı motiflerine veya saldırı imzalarının yer aldığı veri tabanları ile karşılaştırılarak analiz edilirler. Analiz sonucunda kötü niyetli bir girişim tespit edilir ise STS’ler bir mesaj veya bir alarm oluşturarak ağ yöneticilerini uyarırlar. Günümüzde STS’ler yazılımsal ürünler olarak üretilmektedir. Ağ üzerinde ağ yöneticisinin uygun bulduğu yerlere yerleştirilmektedir. 3.2 STS’lerin Sınıflandırılması STS’leri analiz yaparken kullandıkları yaklaşım ve yöntemlere göre sınıflandırabiliriz. STS’ler iki ana yaklaşım ile saldırıları tespit etmektedir (Moradi and Zulkernine 2004). Kötüye kullanım yolu ile saldırı tespiti: Ağda kötü amaçlı kullanımların tespitidir. Bilinen sistem açıkları ve saldırı imzalarının kullanılması ile oluşan eylemlerin araştırılması ile saldırıların tespit edilmesi olarak tanımlanabilir. Kötüye kullanım tespiti (misuse detection) ya da imza-tanımaya dayalı sistemlerde her davranışın bir imzası (karakteri) vardır. Bu imzalar daha önceden oluşturulan saldırıların davranışlarından çıkarılan şablonlardır. Bu şablonlar STS’nin veri tabanında tutulmaktadır. Eğer gözlenen davranış daha önceden bilinen bir saldırı imzası (önceden çıkarılan şablon) ile eşleşiyor ise saldırı olarak sınıflandırılır. Daha önce karşılaşılmadıysa saldırı olarak nitelenmez. Bu sistemler veri tabanının güncellenmesi ile yeni saldırıları tanıyabilirler. Oluşan olayları STS’nin veri tabanını kullanarak karşılaştırdıkları için saldırıyı kesin olarak tanıyabilirler. Bu nedenle yanlış alarm verme ihtimalleri yoktur. 19 Ancak veri tabanlarında olmayan yeni bir saldırı gelir ise bunu algılayamazlar (Erol 2005). Ağ üzerinde oluşan anormal ağ trafiğinin incelenmesi ile saldırıların tespiti: Anormal ağ trafiği, ağ içerisinde meşru kullanıcıların kendi hak ve sınırlarını aşması veya diğer bağlantılarda oluşan ağ akışını engelleyecek kadar ve kabul edilebilecek sınırları aşan eylemlerin ortaya çıktığı ağ trafiğidir. Anormal ağ trafikleri yoklama (probe) ve hizmet engelleme (Denial of Service – DoS) olarak bilinen saldırıların oluştuğu ağlarda görülmektedir. Bu tür trafiklerin normal trafikten ayıklanarak saldırının tespit edilmesi çalışmamızın konusunu oluşturmaktadır. Normal bir sistemde kullanıcı istekleri tahmin edilebilir bir yapıdadır. Burada normal davranışın bilinmesi ve modellenmesi esastır. Ancak bundan sonra bir anormallik varsa tespit edilebilir. Normal davranış belirli kurallar ile tanımlanabilir. Bu kuralların dışında kalan davranışlar anormallik olarak değerlendirilir. Normal davranış kurallarından sapmanın şiddeti ise saldırının sınıflandırılmasında kullanılır. Daha önceden tanımlanmamış saldırıların tespit edilme olasılığının yüksek olması bu yöntemin en önemli avantajıdır. Dezavantajı ise saldırı sapmasının belirlenmesine göre yanlış alarm (false alarm) verme ihtimalinin yüksek olmasıdır (Kemmerer and Vigna 2002). Bilgisayar ağlarında oluşan anormalliklerin tespitinde istatistiksel yöntemler, yapay zeka, yapay sinir ağları, veri madenciliği, bilgisayar bağışıklık sistemi (computer immunology) gibi birçok yaklaşım kullanılmaktadır (Wu and Zhang 2003). Ayrı bir sınıflandırma ise çalışma zamanlarına göre yapılabilir (Ryan et al. 1998). Saldırı tespit sistemlerini çalışma zamanına göre çevrimiçi (online) ve çevrimdışı (offline) şeklinde ikiye ayırmak mümkündür. Çevrimdışı sistemlerde sistem belli periyotlar arasında çalışmakta ve saldırı gerçekleştikten sonra tespiti mümkün olmaktadır. Saldırının oluştuğu anda tespit edilmesini sağlayan sistemler ise çevrimiçi sistemlerdir. Bu çalışmada tespit sistemimiz çevrimdışı olarak çalışmaktadır. 20 Diğer bir sınıflandırma şekli ise izlenen kaynağın çeşidine göre sınıflandırmadır. Ağ tabanlı (network-based) ve sunucu tabanlı (host-based) tespit sistemleri diye ikiye ayırabiliriz. Ağ tabanlı tespit sistemi ağ üzerinde akan paketleri yakalar ve bunların analizi ile ilgilenir. Bu analizler sonucunda saldırı tespit edilmektedir. Sunucu tabanlı tespit sistemleri ise güvenliğinin sağlanacağı sunucu üzerine kurulurlar. Sunucunun maruz kaldığı saldırıları tespit ederler. Bu sistemler sunucuya yapılan şüpheli işlemleri takip ederek olayın içeriye ve dışarıya yapmış olduğu iletişimi inceler, sistem dosyalarının bütünlüğünü kontrol eder ve oluşan saldırıyı yakalarlar. Çalışmamızda kullandığımız saldırı tespit sistemi ağ tabanlı olarak çalışmaktadır. 3.3 Saldırı Tipleri ve Özellikleri Ağ üzerinden yapılan saldırıları 4 temel sınıfa ayırabiliriz (Erol 2005). a) Bilgi yoklama (probe): Bir sunucunun ya da herhangi bir makinanın, geçerli IP adreslerini, aktif giriş kapılarını veya işletim sisteminin öğrenilmesi amacı ile yapılan saldırılardır (Erol 2005). Örneğin saldırgan yukarıdaki bilgileri öğrenmek için kurbanın bilgisayarındaki bir kapıyı sürekli yoklayabilir. Benzer şekilde kurbanın (hedef) bilgisayarındaki tüm kapıları tarayarak içeriye giriş yapacağı açık bir kapıyı bulabilir. b) Hizmet engelleme (Denial of Service - DoS): TCP/IP protokol yapısındaki açıklardan faydalanarak veya bir sunucuya çok sayıda istek yönelterek sunucunun iş göremez hale gelmesini sağlayan saldırılardır. DoS saldırıları Şekil 3.1’deki gibi ikiye ayırmak mümkündür. ”The ping of death” (ölümüne ping) ve Neptune saldırıları hizmet engellemeye örnek verilebilir. Bu tür saldırılar protokol hatalarından faydalanarak yapılan saldırı grubuna girmektedir. Bir sunucudan sürekli istekte bulunulmasına dayanan saldırı yöntemi hem sunucuyu hem de ağı meşgul etmektedir. ICMP paketlerinin ağ üzerinde her yöne yayılması (broadcast) ile oluşan Smurf saldırısı ve kullanıcının karşıdaki 21 makinaya sürekli ”ping” göndermesi ile gerçekleşen ”Selfping” saldırıları devamlı paket göndermeye dayalı DoS saldırılarına örnek teşkil etmektedir. Hizmet Engelleme (Denial of Service) Devamlı Paket Göndermeye Dayalı Protokol Hatalarına Dayalı Çok Kaynaklı Zombi Tek Kaynaklı Yansıtıcı Kullanılan Şekil 3.1 Hizmet engelleme saldırı tipleri c) Yönetici hesabı ile yerel oturum açma (Remote to Local - R2L): Kullanıcı haklarına sahip olunmadığı halde ağa izinsiz erişim yapılması ile oluşmaktadır. d) Kullanıcı hesabının yönetici hesabına yükseltilmesi (User to root - U2R): Bu tip saldırılar sisteme girme izni olan fakat yönetici olmayan bir kullanıcının izinsiz olarak yönetici haklarına sahip olması ve bu hakları kötü niyetli olarak kullanmasından doğan saldırılardır. Bilgi yoklama ve hizmet engelleme saldırıları ağ tabanlı STS’ler ile engellenirken, R2L ve U2R saldırıları sunucu tabanlı STS’ler ile engellenmektedir. 3.4 Tespit Edilecek Saldırılar Çalışmamızda kullandığımız DARPA eğitim veri setleri normal trafiğin yanı sıra 24 adet saldırıyı kapsamaktadır. DARPA test veri setinde ise eğitim veri seti içerisinde 22 kullanılmayan saldırılara ilave olarak 14 adet saldırı bilgisi de bulunmaktadır (Lichodzijewski et al. 2002). Çizelge 3.1’de DARPA ve KDD veri setlerinde gözlenen normal ve 39 adet saldırının isimleri ve sayısal değerleri yer almaktadır. Sayısal değerler MATLAB programında YSA’ların oluşturulmasında kullanılmaktadır. Çizelge 3.1 Saldırı isimleri ve sayısal değerleri (Güven 2007) Saldırı Adı Sayısal Değeri Saldırı Adı Sayısal Değeri Saldırı Adı Sayısal Değeri Saldırı Adı Sayısal Değeri normal back buffer_overflow ftp_write guess_passwd imap ipsweep land loadmodule multihop neptune 0 1 2 3 4 5 6 7 8 9 10 nmap perl phf pod portsweep rootkit satan smurf spy teardrop warezclient 11 12 13 14 15 16 17 18 19 20 21 warezmaster apache2 named saint sendmail snmpgetattack udpstorm xlock xsnoop mailbomb processtable 22 23 24 25 26 27 28 29 30 31 32 mscan httptunnel ps xterm snmpguess worm sqlattack 33 34 35 36 37 38 39 Bu çalışmamızda YSA’nın eğitimde iki adet DoS saldırısının bulunduğu eğitim seti kullanılmıştır. Bu eğitim seti içerisinde Neptune ve Pod saldırıları bulunmaktadır. Test setlerinde ise bilinmeyen saldırı olarak SATAN saldırısı kullanılmıştır. 3.4.1 SYN flooding (Neptune) saldırısı İnternet dünyasına dahil olan tüm bilgisayarlar haberleşmek için TCP/IP protokolünü kullanırlar. TCP bağlantı temelli (connection oriented) bir erişim sağladığı için üç yollu el sıkışma modelinin gerçekleşmesi gerekir. Üç yollu el sıkışma modeli aşağıda açıklanmıştır. İki bilgisayar bağlantısında bağlantıyı talep eden taraf karşı tarafa bir adet senkronize (SYN) paketi gönderir. Karşı taraf ise cevap olarak bir kabul (SYN/ACK) paketi ile daveti kabul ettiğini belirten bir paket gönderir. Bu iletişim esnasında karşı taraf bağlantı bilgilerini hafızasında (TCP/IP yığınında) tutar. Daha sonra ilk talep eden tekrar bir kabul (ACK) bilgisi göndererek bağlantının kurulmasını sağlamış olur. Karşı taraf bağlantının kurulmasından sonra kısıtlı bir alanı olan hafızasından bu 23 bağlantı bilgisini siler. TCP’nin bu çalışma şekli istendiğinde kötü amaçlar için kullanılır. Bu protokolün çalışma mantığını kullanarak saldırı oluşturmak mümkündür. Saldırgan sunucuya senkronize (SYN) paketi gönderirken bu paketin başlık bilgisinde bulunan kaynak IP kısmına paketi gönderen kişinin IP adresi yerine aslında gerçekte var olmayan bir IP adresi yazarak gönderir. Bu esnada sunucu bu senkronize (SYN) paketini alır ve bağlantı işleminin tamamlanması için var olmayan IP adresine senkronize ve kabul (SYN+ACK) paketi gönderir. Sunucu ”SYN+ACK” paketinin kabul cevabını (ACK) var olmayan bu IP adresli makinadan beklemeye başlar. Bu bekleme sırasında var olmayan bu IP adresi sunucunun TCP/IP yığınında tutulur. Doğal olarak var olmayan IP adresli makinadan kabul (ACK) paketi gelmez ve bir süre sonra sunucunun yığını dolar ve sunucu diğer taleplere cevap veremez. Bu saldırı ”SYN Flooding” saldırısı veya Neptune saldırısı olarak tanımlanmaktadır (http://www.tcpsecurity.com/doc/genel/temelsaldiriteknikleri.html, 2007). Şekil 3.2 SYN Flooding (Neptune) saldırısı SYN Flooding TCP protokolünün üç yollu el sıkışma modelinin kötüye kullanımından başka bir şey değildir. “SYN Flooding” büyük bir ağda bir sunucuyu etkisiz hale getirmesine rağmen ağın genelinde oluşan paketlerin incelenmesi ile anlaşılması oldukça zordur. Bu yüzden ağda “ACK” ve “SYN/ACK” paketlerinin bulunması kolaylık sağlayabilir. Ancak paketler kapalıdır ve içerikleri bilinmemektedir. Paketin içeriği ağ paket analiz programı (sniffer programı) ile anlaşılabilir. Ancak STS’ler her paketin içeriğine bakacak kadar hızlı olamadıkları için saldırı motifinden saldırıyı tespit etmesi gerekir. 24 3.4.2 ”The Ping of Death” – Pod saldırısı ICMP protokolü ağda bilgisayarların hata mesajlarını birbirlerine göndermesini ya da “Ping” gibi basit işlemlerin yapılmasını sağlar. ICMP tanımlamasında, ICMP paketinin veri kısmı 216 ile 65,536 byte arasında olmak zorundadır. Eğer bu sınırların dışına taşmış büyüklükte bir paket sunucuya gönderilir ise sunucunun işletim sistemi böyle bir şey beklemediği için cevap veremez ve hizmet vermeyi durdurur (http://www.tcpsecurity.com/doc/genel/temelsaldiriteknikleri.html, 2007). Günümüz bilgisayar sistemleri Pod saldırılarını kolaylıkla engellemektedirler. 3.5 Bölüm Özeti Bu bölümde saldırı, saldırı tespit ve (STS) tanıtılmıştır. STS’ler kullandıkları yöntemlere göre ikiye ayrılmıştır. Bunlar kötüye kullanım ve anormallik tespiti şeklinde sıralanmıştır. STS’ler çalışma zamanlarına göre çevrimiçi ve çevrimdışı olarak ikiye ayrılmış ve detaylı olarak anlatılmıştır. Ayrıca STS’ler bu bölümde çalışma kaynaklarına göre de ikiye ayrılarak incelenmiştir. Bu bölümde saldırı tipleri de dört alt bölümde incelenmiş ve çalışmamızda kullanılacak saldırılar detaylı olarak anlatılmıştır. Çalışmamızda kullandığımız DARPA veri setlerinde bulunan saldırılar bir liste halinde verilmiştir. 25 4. YAPAY SİNİR AĞLARI Saldırı tespit sistemleri saldırıyı yakalayabilmek için farklı yöntemler kullanmaktadır. STS’ler ve kullandıkları yöntemler üçüncü bölümde detaylı bir şekilde açıklanmaktadır. Kurduğumuz STS’lerde kullanılan YSA bu bölümde tanıtılmaktadır. Çalışmada kullanılan çok katmanlı algılayıcılar (ÇKA) ve Levenberg-Marquardt (LM) algoritması ile birlikte tek katmanlı algılayıcılar, ADALINE, MADALINE modelleri detaylı olarak incelenmektedir. 4.1 Giriş Günümüzde yapılan yazılımlar ile bilgisayar sistemleri her hangi bir olayı öğrenmekte, buna benzer olaylar hakkında fikirler yürütmekte ve diğer olaylar ile ilişkiler kurabilmektedir. Özellikle matematiksel olarak formüle edilemeyen olayların araştırılmasında ve karmaşık problemlerin sezgisel bir şekilde çözülmesinde bilgisayarlar kullanılmaktadır. Bilgisayarların sezgisel yeteneklerinin geliştirilmesi çalışmaları 1950 yıllarında ortaya atılan “yapay zeka” çalışmalarının bir ürünüdür. Yapay zeka bilimsel ve ticari tüm faaliyetlerde günümüze kadar ivmelenen bir artış ile kullanılmış ve bu tür sistemlerin tümüne “Zeki Sistemler” denilmiştir. Zeki sistemler istatistik ve matematik biliminin yoğun bir şekilde kullanıldığı bir alandır. Zeki sistemler içindeki gelişmeler “yapay zeka” çalışmalarına hız vermiştir. Yapay zeka teknolojileri kullandıkları metotlar ve teknolojiler nedeni ile farklılıklar içermektedir. Çalışmanın konusu olan yapay sinir ağları da yapay zeka teknolojilerinden biridir. 4.2 Yapay Sinir Ağlarının Tanımı YSA, insan beyninin çalışma mekanizmasını taklit eder. Bu mekanizma gözlemleme, öğrenme ve düşünme yetilerinden oluşur. Dolayısı ile YSA’lar bir insanın düşünme ve gözlemlemeye yönelik doğal yeteneklerini 26 oluşturan mekanizmalara benzer mekanizmalar oluşturarak problemlere çözüm üretir. Bir insanın, düşünme ve gözlemleme yeteneklerini gerektiren problemlere yönelik çözümler üretebilmesinin temel sebebi ise insan beyninin ve dolayısıyla insanın sahip olduğu yaşayarak veya deneyerek öğrenme yeteneğidir (Yurtoğlu 2005). Öğrenme yöntemi dışarıdan alınan bilgiler ile yeni bilgiler oluşturulmasını sağlar. Oluşturulan bilgiler ile problemin çözümüne yönelik karar verme mekanizmasını çalıştırır. Problemin çözümü için YSA’ın keşif yapması ve keşfetmesi gerekir. Keşif yapma işlemi YSA’nın öğrenmesi ile mümkün olmaktadır. YSA bunları yaparken kullandığı platform genellikle yazılımsal bilgisayar sistemleridir. Kullandığı algoritmalar gücünü matematiksel cebirden ve istatistiki regresyondan alır. Haykin (1999) YSA’yı şöyle tanımlamıştır: “Bir sinir ağı, basit işlem birimlerinden oluşan, deneyimsel bilgileri biriktirmeye yönelik doğal bir eğilimi olan ve bunların kullanılmasını sağlayan yoğun bir şekilde paralel dağıtılmış bir işlemcidir. Bu işlemci iki şekilde beyin ile benzerlik göstermektedir: 1. Bilgi, ağ tarafından bir öğrenme süreciyle çevreden elde edilir. 2. Elde edilen bilgileri biriktirmek için sinaptik ağırlıklar olarak da bilinen nöronlar arası bağlantı güçleri kullanılır”. Vural (2007) çalışmasında, YSA’yı beynin bir işlevi yerine getirme yöntemini modellemek için tasarlanan bir sistem olarak tanımlamıştır. YSA, yapay sinir hücrelerinin birbirleri ile çeşitli şekillerde bağlanmasından oluşur ve genellikle katmanlar şeklinde düzenlenir. Beynin bilgi işleme yöntemine uygun olarak YSA, bir öğrenme sürecinden sonra bilgiyi toplar, hücreler arasındaki bağlantı ağırlıkları ile bu bilgiyi saklar ve genelleme yeteneğine sahip paralel dağılmış bir işlemci olarak çalışır. Bunun yanında öğrenme süreci, arzu edilen amaca ulaşmak için YSA’nın ağırlıklarının yenilenmesini içeren öğrenme algoritmasını içerir. YSA biyolojik sinir ağlarının çalışma prensiplerini kullanarak oluşturulmuş bir modeldir. İnsan beyninde yer alan yaklaşık on milyar biyolojik sinir hücresi kendi 27 aralarında bağlantılar kurmaktadır. Oluşturulan bağlantı sayısı yaklaşık altı trilyondur (Öztemel 2006) . Bir biyolojik sinir hücresinin yapısı Şekil 3.1’de verilmektedir. Bir biyolojik sinir hücresi; dendritler, hücre gövdesi, akson ve sinapslardan oluşmaktadır. Çevreden alınan uyarıcılar elektrik sinyallerine dönüştürülerek hücre gövdesine ulaşır ve burada işlem uygulanarak başka bir sinyal oluşturulup akson aracılığıyla dendrite gönderilir. Dendritler bu bilgileri sinapslara ileterek diğer hücrelere gönderirler. Milyarlarca sinir hücresi bir araya gelerek sinir sistemini oluşturmakta ve bilim adamları biyolojik hücrelerin yapısal özelliklerinden yararlanarak yapay sinir ağlarını geliştirmektedirler (Vural 2007). Şekil 4.1 Biyolojik sinir hücresinin yapısı (Yurtoğlu 2005) 4.3 Yapay Sinir Hücresi YSA’nın yapay sinir hücreleri (nöronları) bulunmakta ve bu hücreler işlem (proses) elemanı olarak adlandırılmaktadır. Genel özellikleri ile bir yapay sinir hücresinin yapısı Şekil 4.2’ de verilmektedir. 28 Şekil 4.2 Yapay sinir hücresi (işlem elemanı) Yapay sinir hücresine dışarıdan verilen bilgilere girdi denir. Şekil 4.2’de girdiler x1 , x2 ,… şeklinde gösterilmiştir. Şekil 4.2’de w1 , w2 ,… gösterilen ağırlık değerleri ise; hücreye girdi olarak verilen bilgilerin önemini ve hücre üzerindeki etkisini gösterir. Toplama fonksiyonu ise hücreye gelen net girdiyi hesaplayan fonksiyondur ve genellikle gelen girdilerin kendi ağırlıklarıyla çarpımlarının toplamıdır. Toplama fonksiyonu Denklem 4.1’de gösterilmektedir (Öztemel 2006). n NET = ∑ wi xi (4.1) i Burada xi girdileri, wi ise ağırlıkları, n ise bir hücreye gelen toplam girdi sayısını göstermektedir. Literatürde farklı toplama fonksiyonları kullanılmıştır, bu fonksiyonlardan bazıları Çizelge 4.1’de verilmektedir. Bir problem için en uygun toplama fonksiyonunu belirlemek için bulunmuş bir formül yoktur. Genellikle deneme yanılma yöntemi ile belirlenmektedir (Öztemel 2006). 29 Çizelge 4.1 Toplama fonksiyonları (Öztemel 2006) Aktivasyon fonksiyonu (transfer fonksiyonu) ise, toplama fonksiyonundan gelen net girdiyi işlemden geçirerek hücrenin çıktısını üreten ve genellikle doğrusal olmayan bir fonksiyondur. Kullanılan hücre modeli çeşidine göre değişik aktivasyon fonksiyonları kullanılmaktadır. Çalışmamızda kullandığımız çok katmanlı algılayıcılı YSA’larda hiberbolik tanjant fonksiyonu (tansig) aktivasyon fonksiyonu olarak kullanılmıştır. Tansig fonksiyonu türevi alınabilir, sürekli ve doğrusal olmayan bir fonksiyon olması nedeni ile doğrusal olmayan problemlerin çözümünde yaygın olarak kullanılmaktadır. Fonksiyonun matematiksel tanımı Denklem 4.2’de verilmektedir. 30 (e NET + e − NET ) f ( NET ) = NET (e − e− NET ) (4.2) Şekil 4.3’te aktivasyon fonksiyonlarından adım, eşik, logsig (logaritmik sigmoid) ve tansig (hiperbolik tanjant sigmoid) fonksiyonlarının grafikleri gösterilmektedir. İşlem elemanının çıktısı aktivasyon fonksiyonu kullanılarak hesaplanır. Üretilen bu çıktı dış dünyaya veya diğer bir hücreye gönderilir. Bunun yanında hücre kendi çıktısını kendisine girdi olarak gönderebilir. Şekil 4.3 Aktivasyon fonksiyonları (Yurtoğlu 2005) Çizelge 4.2’de çeşitli aktivasyon fonksiyonlarının gösterimleri ve açıklamaları verilmiştir. 31 Çizelge 4.2 Aktivasyon fonksiyonları (Öztemel 2006) 4.4 Yapay Sinir Ağının Yapısı YSA, yapay sinir hücrelerinin bir araya gelmeleriyle oluşmaktadır. Hücreler birbirleriyle katmanlar halinde ve her katman içinde paralel olarak bağlanarak ağı oluştururlar. Yapay sinir ağının katmanları Şekil 4.4’te gösterildiği gibi girdi, ara 32 katmanlar ve çıktı katmanında oluşmaktadır. Girdi katmanı dış dünyadan alınan bilgileri hiçbir işlem yapmadan ara katmanlara taşımaktadır. Ara katmanlardaki işlem elemanları girdi katmanından gelen bilgileri işleyip çıktı katmanına göndermektedir. Bilgiler ara katmandaki işlem elemanları tarafından işlenmektedir. Çıktı katmanındaki işlem elemanları, ara katmandan gelen bilgileri işleyip ağın girdilerine uygun olarak ağ çıktıları üretmektedirler. İşlem Elemanları Çıktı Ara Katman Girdi Katmanı Çıktı Katmanı Şekil 4.4 Yapay sinir ağı katmanları 4.5 Yapay Sinir Ağ Modelleri Çalışma kapsamında saldırıların tespit edilmesinde çok katmanlı algılayıcılar (ÇKA) kullanılmıştır. Bu kısımda ÇKA’yı ve ÇKA’nın oluşumuna katkı sağlayan ilk modeller incelenmiştir. Yapay sinir ağları ile ilgili geliştirilen ilk modeller tek katmanlı algılayıcılar (TKA), basit algılayıcılar (perceptron) ve ADALINE/MADALINE’dır. Bu modeller çalışmamızda kullanılan çok katmanlı algılayıcıların da temelini oluşturmaktadır. 33 4.5.1 Tek katmanlı algılayıcılar Tek katmanlı yapay sinir ağları sadece girdi ( x ) ve çıktı (Ç) katmanlarından oluşur. Çıktı bütün girdi ünitelerine ( x ) bağlanmaktadır ve her bağlantının bir ağırlığı ( w ) vardır. İki girdi ve bir çıktıdan oluşan tek katmanlı bir yapay sinir ağı Şekil 4.5’te verilmiştir. Bu ağlarda işlem elemanlarının değerlerinin ve dolayısıyla ağın çıktısının sıfır olmasını önleyen bir eşik değeri (Φ) vardır ve değeri daima 1’dir. Ağın çıktısı ağırlık değerleri ile işleme konulmuş girdi değerlerinin eşik değeri ile toplanması ile bulunmaktadır. Bu girdi bir aktivasyon fonksiyonundan geçirilerek ağın çıktısı olarak hesaplanmaktadır. Tek katmanlı algılayıcılarda çıktı fonksiyonu doğrusal bir fonksiyondur ve 1 veya -1 değerlerini almaktadır. Sınıflandırma problemlerinin çözümünde çıktı değeri 1 olan birinci grubu, -1 olan ise ikinci grubu göstermektedir (Öztemel 2006). x1 w1 x2 w2 Tek Katmanlı Algılayıcı Ç Eşik Girdisi Φ Şekil 4.5 Tek katmanlı algılayıcı modeli Tek katmanlı algılayıcılarda önemli iki model bulunmaktadır. 1958 yılında Rosenblatt (1958) tarafından geliştirilen basit algılayıcılar (perceptron), diğeri ise 1959 yılında Widrow ve Hoff tarafından geliştirilen ADALINE modelidir. 4.5.1.1 Basit algılayıcılar Basit algılayıcılar eğitilebilir tek bir yapay sinir hücresinden oluşur ve bu sinir hücresi birden fazla girdiyi alarak bir çıktı üretmesi prensibine dayanmaktadır. Ağın çıktısı bir veya sıfırdan oluşan mantıksal değerlerdir. Çıktının hesaplanmasında eşik değer fonksiyonu kullanılır. Ağın yapısı Şekil 4.6’da verilmektedir. 34 w1 x1 Toplama Ç (1 veya 0) w2 x2 Φ Şekil 4.6 Basit algılayıcı modeli Şekil 4.6’da gösterilen YSA işlem elemanı sayesinde tüm girdileri alarak işlemektedir. Her girdi setine karşılık gelen beklenen çıktı değerleri de ağa gösterilmektedir. Daha sonra öğrenme kuralına göre ağ çıktı değerlerini hesaplamaktadır. Eğer ağın çıktısı beklenen çıktı değerinden farklı ise ağırlıklar ve eşik değerleri değiştirilir. Değişikliğin nasıl yapılacağını ise ağın kullandığı öğrenme kuralı belirlemektedir. Basit algılayıcılarda girdilere karşılık gelen çıktı değerleri bir veya sıfırdan oluşmaktadır (Öztemel 2006). 4.5.1.2 ADALINE/MADALINE modeli ADALINE/MADALINE modelini Bernard Widrow ve Marcian Hoff 1959 yılında geliştirmiştir. ADALINE uyarlanabilen (adaptif) LINear Elements) ağının kısaltmasıdır. doğrusal elemanlar (ADAptive Çoklu uyarlanabilen doğrusal elemanlar (MADALINE - Multiple ADAptive LINear Elements) ise birden fazla ADALINE işlem elemanının bir araya gelmesinden oluşmaktadır. ADALINE ağı en küçük ortalamaların karesi yöntemini kullanır. Ağın kullandığı delta öğrenme kuralı ile tek katmanlı algılayıcılardan farklılık gösterir. Delta öğrenme kuralı, ağın çıktısının beklenen çıktı değerine göre oluşan hatanın en aza indirilmesi için gerekli döngülerin oluşturulmasıdır. Bunu yapabilmek için ağın ağırlık değerleri sürekli değiştirilerek hatanın en aza indirilmesi gerekmektedir. ADALINE ağının yapısı Şekil 4.6’da gösterilen basit algılayıcı modelinin yapısına benzemektedir (Öztemel 2006). Şekilde görüleceği gibi ADALINE ünitesinin çıktı değerleri de bir veya sıfırdır. 35 MADALINE ağları birçok ADALINE ünitesinin bir araya gelmesiyle oluşmaktadır. Öğrenme kuralı ADALINE ile aynıdır. MADALINE ağı genel olarak iki katmandan oluşur. Her katman içinde çok sayıda ADALINE ünitesi bulunmaktadır. Ağın çıktısı 1 ve -1 değerleri ile gösterilmekte ve her biri bir sınıfı temsil etmektedir. Şekil 4.7 iki ADALINE ünitesinden oluşan bir MADALINE ağını göstermektedir. Tüm ADALINE işlemleri AND veya OR sonlandırıcısı ile sonlandırılırlar. AND sonlandırıcısının kullanılması ile bütün ADALINE ünitelerinin 1 değerini üretmesi nedeni ile MADALINE ağının çıktısı 1 olmaktadır. Aksi takdirde -1 (veya 0) değerini alır. OR sonlandırıcısının kullanılması halinde ADALINE ünitelerinin birisinin 1 üretmesi MADALINE ağının çıktısının 1 olması için yeterlidir (Öztemel 2006). Şekil 4.7 İki ADALINE ağından oluşan MADALINE ağı (Vural 2007) 4.5.2 Çok katmanlı yapılar Minsky 1969 yılında yayınladığı “Perceptrons” adlı kitabında basit algılayıcılarda girdi ve çıktılar arasında doğrusal ilişki olmadığı zaman çözümü oluşturacak öğrenmenin mümkün olmadığını belirtmiştir. Bu nedenle yapay sinir ağlarındaki çalışmalar uzun bir süre durmuştur. Doğrusal ilişkilerin olmadığı problemlerin çözümünde çok katmanlı algılayıcıların kullanılması ile YSA çalışmaları hızlanmıştır. Rumelhart ve arkadaşları 36 tarafından önerilen çok katmanlı algılayıcılar öğrenme algoritması olarak genelde türeve dayalı geri yayılım (back propogiton) veya hata yayma algoritmaları kullanmaktadırlar. Bu nedenle ÇKA’ya geri yayılım ağı da denilmektedir. ÇKA, ADALINE modelinde de kullanılan Delta öğrenme kuralının gelişmiş halini kullanmaktadır. 4.5.2.1 ÇKA’nın yapısı Çalışmamızda bu yapı kullanılmıştır. Şekil 4.8’de ÇKA’nın yapısı gösterilmektedir. Şeklin incelenmesi ile bu yapının ileriye doğru bağlantılı olduğu ve girdi, ara katmanı ve çıktı katmanlarından oluştuğu görülmektedir. Çok katmanlı ağlar ara katmanının olması nedeni ile tek katmanlı ağlardan ayrılır. Ara katman sayısı arttıkça girdi verilerinden edinilen istatistiki bilgi artmakta dolayısı ile öğrenme daha iyi olmaktadır. Ağın yapısına göre ÇKA ileri beslemeli veya geri yayılımlı bir ağ olarak tasarlanabilir. Girdi katmanı, verilerin ağa girişini sağlar. Bu katmanda herhangi bir işlem olmadan gelen bilgiler bir sonraki katmana aktarılır. Girdi sayısında bir kısıtlama yoktur. Ancak girdi katmanındaki işlem elemanlarının sadece bir girdisi olmaktadır. Girdi katmanının çıktısı ara katmandaki tüm işlem elemanlarına gönderilir. Kısaca girdi katmanındaki işlem elemanı girdinin diğer katmanlara dağıtılmasını sağlamaktadır. Ara katman, saklı katman olarak da tanımlanmaktadır. Girdi katmanından gelen bilginin işlenmesi bu katmanda olur. İşlemin yapılmasından sonra bilgi bir sonraki katmana aktarılır. ÇKA ağında birden fazla ara katman ve her katmanda birden fazla işlem elemanı olabilir. Ara katmanda faaliyet gösteren işlem elemanları bir sonraki katmandaki tüm işlem elemanları ile bağlantılıdır. Yani oluşturduğu yeni bilgiyi bir sonraki katmandaki tüm işlem elemanlarına göndermektedir (Öztemel 2006). Çıktı katmanı kendinden önceki ara katmanlardan gelen bilgileri işleyerek girdi katmanında girdi olarak verilen bilgilere karşılık çıktılar üretir. Çıktı katmanında da ara katmanda olduğu gibi birden fazla işlem elemanı olabilir. Her işlem elemanı bir önceki 37 Şekil 4.8 Çok katmanlı YSA modeli (Öztemel 2006) katmanda bulunan tüm işlem elemanları ile bağlantılıdır. Ancak çıktı katmanındaki her işlem elemanının sadece bir tane çıktısı vardır (Öztemel 2006). ÇKA ağı öğrenme stratejisi öğretmenli öğrenme yöntemidir. Kurulan ÇKA ağına eğitim seti içerisinde örnek bilgiler verilirken aynı zamanda bu bilgilerin (girdilerin) karşılığında çıkması beklenen çıktı bilgileri de verilir. ÇKA ağı öğrenme sürecinde kendisine verilen örneklerden genelleme yapar ve çözmesi gereken problem için bir çözüm yolu veya kalıbı oluşturur. Bu çözüm yolu veya kalıba bakarak daha sonra ÇKA ağına sunulan problemler için çözümler üretir. ÇKA ağı kendisine verilen her girdi için bir çıktı vermek üzere programlanmıştır. ÇKA en küçük kareler yöntemine dayalı Genelleştirilmiş Delta Kuralını kullanır. Ağın eğitilebilmesi için eğitim seti adı verilen bir veri tabanının oluşturulması ve bu veri setinin ağa verilmesi gerekmektedir. Eğitim seti yukarıda da belirtildiği gibi hem örnek gidileri hem de o girdiler için ağın üretmesi gereken beklenen çıktıları içermesi gerekir. 38 Genelleştirilmiş Delta Kuralı iki kısımdan oluşur. Bunlar ileri beslemeli ağ ve geriye yayılım ağı diye tanımlanır. 4.5.2.2. Çok katmanlı ileri beslemeli ağ Çok katmanlı ileri beslemeli ağ yapısı öğretmenli öğrenme metodunu kullanmaktadır. Bir girdi katmanı, en az bir ara katman ve bir çıktı katmanından oluşmaktadır. Çıktı katmanındaki her işlem elemanı, düzeltilebilen ağırlıklar yoluyla, bir önceki ara katmandaki işlem elemanlarından bilgi almaktadır. Tek katmanlı ileri beslemeli yapay sinir ağları, sadece doğrusal sınıflandırabilir fonksiyonları hesaplayabilmektedir. Bununla birlikte, bir veya daha çok ara katmana sahip olan ileri beslemeli ağlar ile çok daha karmaşık fonksiyonlar hesaplanabilmektedir (Bolat ve Kalenderli 2007). İşlemlerin yapıldığı ara katman, girdi ve çıktı katmanlarını kullanışlı bir şekilde bir araya getirir. Ağda bir veya daha çok ara katman olması, tek katmanlı ağlarla hesaplanamayan, doğrusal olmayan fonksiyonların da hesaplanmasını kolaylaştırır. Girdi katmanındaki eğitim veri seti doğrudan birinci ara katmana uygulanır. Birinci ara katmanın çıktısı, ikinci ara katmana girdi olarak verilir ve bu işlem ağın çıktısına kadar devam eder. Her katmandaki işlem elemanlarına yapılan girdiler bir önceki katmanın çıktılarıdır. Çıktı katmanındaki işlem elemanları girişte uygulanan motiflerin ağda oluşturduğu toplam yanıtı vermektedir (Bolat ve Kalenderli 2007). Şekil 4.9’da çok katmanlı ileri beslemeli bir ağ yapısı görülmektedir. Ağda girdi katmanı, ara katman ve çıktı katmanı olmak üzere üç katman bulunur. Burada dikkat edilmesi gereken nokta, bir ileri beslemeli ağda, işaretlerin girişten çıkışa bir veya daha fazla ara katman üzerinden yayılmasıdır. 39 Çıktılar Girdiler Ara Katman Şekil 4.9 Çok katmanlı ileri beslemeli bir ağ örneği. 4.5.2.3 Geri yayılım ağı ve algoritması ÇKA tipi YSA’ların eğitiminde oldukça yaygın olarak kullanılan geri yayılım algoritmaları giriş katmanı, ara katman ve çıkış katmanları arasında mevcut olan ağırlıkların ağ çıkışında oluşan hatayı en aza indirecek şekilde düzenlenmesini amaçlar. Girdiler ve beklenen çıktı bilgileri ağı eğitmek için kullanılmaktadır. Girdiler olayın motifini belirleyen veri setleri olarak ağın ilk katmanına verildikten sonra ara katmanlardan geçerek en sondaki çıktı katmanına ağırlıklar yardımı ile ulaşırlar. Ağdaki her bir işlem elemanı, kendisinde sonlanan ağırlık değerlerinin aritmetik toplamını aldıktan sonra sonucu kendinden sonraki katmanın tüm işlem elemanlarına ulaştırmaktadır. Tüm bu değerler kullanılan aktivasyon fonksiyonuna bağlı olarak oluşturulmaktadır. Altun vd. (2007) çalışmasında katmanlar arasındaki ağırlıkların yenilenmesini sigmoid aktivasyon fonksiyonu kullanarak aşağıda gösterildiği gibi elde etmiştir. Çıkış katmanındaki her bir işlem elemanı için çıktı bilgisi Ok = 1 1 + e − netk (4.3) şeklinde tanımlanmış olsun. Burada Ok çıktı katmanının aktivasyon değerini göstermektedir. 40 netk = ∑W jk O j (4.4) j Benzer şekilde ara katman için aktivasyon değerlerinin ifadesi aşağıdaki gibi bulunur. Oj = 1 − net 1+ e j (4.5) net j = ∑WijOi (4.6) i Ağırlıkların yenilenmesi W jk = W jk +W jk (4.7) eşitliği ile gerçekleştirilir. Burada W jk ağırlık yenileme değeridir. Geri yayılım algoritmasında ortalama kare hatası olarak bilinen hata kriteri kullanılabilir. E= 1 ∑ 2 p ∑ (t pk − o pk )2 (4.8) k Hataların karesi alınarak beklenen değerden uzak olan çıkış değerlerinin toplam hatayı oluşturması sağlanmaktadır. Hatayı minimum yapmak amacı ile hatanın ağırlıklara olan bağımlılığı hesaplanır ve gradyana bağlı olarak ağırlıklar hatayı düşürecek şekilde yenilenmektedir. W jk = −η(∂Ε/∂W jk ) (4.9) Zincir kuralı kullanarak diferansiyel denklem çözümü aşağıdaki şekilde elde edilir. ∂Ε/∂W jk = δk O j (4.10) Bu eşitlik bir önceki Denklem 4.9’da yerine konursa ağırlık yenileme değeri aşağıdaki gibi elde edilir. 41 W jk = −ηδ k O j (4.11) Wij = −ηδ jOi Burada δ k (4.12) ve δ j sırası ile çıkış ve saklı katman için hata terimi, η ise öğrenme oranıdır. Çıktı katmanı için hata terimi δ k = (tk − Ok ) f ' (netk ) (4.13) ve ara katman için hata terimi ise aşağıdaki gibi hesaplanmaktadır. δ j = f ' ( netk )∑ δ kiWkj (4.14) k Yukarıdaki ifadelerde f ' katmanlar arası sigmoid aktivasyon fonksiyonunun türevidir. Her bir ağırlıklı bağlantı için algoritmanın üreteceği ağırlık yenileme tek tek incelenir ise ağırlık değerlerinin her bir katman için işlem elemanı aktivasyon seviyeleri dikkate alınarak verilmesi daha uygun olmaktadır. W jk = −ηOk' Ok O j (4.15) M Wij = −ηO 'j ∑ Ok' W jk Ok O j (4.16) k δ k = Ok (1 − Ok )(tk − Ok ) (4.17) δ j = O j (1 − O j )∑ δ kW jk (4.18) k Ok = ƒ ( ∑ O jW jk ) (4.19) j O j = f (∑ OW i ij ) (4.20) i Ok = (tk − Ok ) (4.21) 42 Denklemlerde kullanılan terimler aşağıda tanıtılmıştır. f : sigmoid aktivasyon fonksiyonu δ : delta hata ifadesi η : öğrenme oranı tk : beklenen değer Ok : çıktı aktivasyon seviyesi Ok ' : çıkış aktivasyon seviyesinin türevi W jk : ara katman-çıktı katmanı arasında ağırlıklı bağlantı W jk : ara katman çıktı katmanı arasında ağırlıklı bağlantılar için ağırlık yenileme değeri Wij : girdi ve ara katman arasında ağırlıklı bağlantı Wij : girdi ve ara katman arasında ağırlıklı bağlantılar için ağırlık yenileme değeri Elde edilen son ifadelerden yapay sinir ağında girdi değerlerinin ağırlık değerlerinin belirlenmesinde ve dolayısı ile işlem elemanlarının eğitimde önemli bir rol oynadığı görülmektedir (Altun vd. 2007). Yapay sinir ağları, girdileri bir kez öğrendikten sonra, ağırlık değerlerini öğrenme işlemine göre ayarlar. Bu çalışmada, geri yayılım (back-propagation) algoritmasının bir türü olan Levenberg – Marquardt algoritması kullanılmıştır. 4.6 Yapay Sinir Ağının Öğrenmesi YSA’da kullanılan mimarinin yanı sıra, ağırlık değerlerinin belirlenmesi işlemi de ağın performansını etkileyen önemli bir unsurdur. Ağın ağırlık değerlerinin belirlenmesi işlemi, ağın eğitilmesi olarak tanımlanır ve ağın problem ile ilgili doğru sonuçlar veren ağırlık değerlerine ulaşması işlemine de ağın öğrenmesi denir. Gruplama açısından bakıldığında, öğrenme modelleri ikiye ayrılabilmektedir; öğretmenli ve öğretmensiz öğrenme modelleri. 43 4.6.1 Öğretmenli öğrenme Öğretmenli öğrenme YSA’nın eğitilmesinde kullanılan en yaygın yöntemdir. Bu modelde yapay sinir ağından elde edilen gerçek çıktı değeri ile beklenen çıktı değeri karşılaştırılır. Başlangıçta ağ tarafından rastgele atanan ağırlık değerleri, ağ tarafından tekrar düzenlenir, böylelikle bir sonraki döngüde beklenen çıktı ile gerçek çıktı arasında daha yakın değerler üretir. Bu öğrenme metodu, bütün işlem elemanlarının var olan bütün hatalarını minimize etmeye çalışır ve hataların azaltılması işlemi, girdilerin ağırlık değerlerinin sürekli olarak değiştirilerek kabul edilebilir bir ağ performansına ulaşılıncaya kadar devam eder. Oluşturulan sinir ağı öğrenmeye başlamadan önce eğitilmesi gerekmektedir. Eğitim, girdi ve beklenen çıktı verilerinin ağa sunulmasını içermektedir. Bu veriler eğitim seti olarak tanımlanır ve sisteme sunulan her girdiye karşılık beklenen çıktı değerleri de ağa tanıtılır. Eğitim aşaması çok fazla zaman alabilir ve yetersiz işlem gücüne sahip bir bilgisayar sisteminde öğrenme haftalar alabilir. YSA’nın eğitimi, ağ kullanıcının tanımladığı performans seviyesine ulaştığında sonlandırılabilir. Bu seviye, ağın verilen girdi değerlerine karşılık beklenen çıktı değerlerini makul ölçülerde üretebildiği nokta olarak tanımlanır. Eğer daha ileri seviyede bir öğrenmeye ihtiyaç duyulmuyor ise elde edilen ağırlık değerleri uygulamalar ve testlerde kullanılır. Bu duruma gelmiş bir ağ öğrenmesini tamamlamıştır denir. Eğer ağdan önemli özellikleri ve ilişkileri öğrenmesi isteniyorsa, eğitim setinin de ihtiyaç duyulan bütün bilgileri sağlayacak derecede oldukça büyük olması gerekmektedir. Ağ sadece bir örnek olay çerçevesinde eğitiliyor ise girdi veri seti ve başlangıç ağırlık değerleri çok dikkatli seçilmeli ve belirlenen başlangıç ağırlık değerleri gerekiyor ise sonraki örnek olayın öğrenilmesinde değiştirilmelidir. Önceden öğrenilen örnek olay yeni bir şey öğrenildiğinde ağ tarafından unutulabilir. Sonuç olarak sistem her şeyi birlikte öğrenmeli ve bütün örnekler için en iyi ağırlık değerlerini belirlemelidir. Bir ağı başarılı bir şekilde eğitmek için, girdi ve çıktı verilerinin ağa nasıl sunulacağı çok önemlidir. Yapay sinir ağları sadece sayısal girdi 44 verileri ile çalışabilmekte, bu nedenle dış dünyadan alınan sembolik ve sayısal olmayan verilerin sayısal değerlere dönüştürülmesi gerekmektedir. Ayrıca, bu verilerin ölçeklendirilmesi veya ağın algılayabileceği şekle getirilmesi gerekmektedir. Ağ eğitim veri setleri ile eğitildikten sonra daha önce hiç görmediği test verileri ile test edilmesi gerekmektedir. Eğer bir ağ test veri setleri ile test edilirken makul çıktılar üretir ise ağın öğrendiği kanaatine varılır. Test aşamasında ağın girdileri ezberlemediği ve bir uygulama içindeki genel örnekleri öğrendiğini göstermesi önemlidir (Anderson and McNeill 1992). Widrow ve Hoff tarafından geliştirilen delta kuralı ve Rumelhart ve McClelland tarafından geliştirilen genelleştirilmiş delta kuralı algoritması öğretmenli öğrenmeye örnek olarak verilebilir. 4.6.2 Öğretmensiz öğrenme Öğretmensiz öğrenme gelecekte ümit verici gelişmeler sağlayacak bir metot olarak karşımıza çıkmaktadır. Öğretmensiz öğrenme ağları her hangi bir olayı kendi kendine öğrenir ve organize olurlar. Bu nedenle bu ağlar kendini örgütleyen ağlar olarak adlandırılırlar. Öğretmensiz öğrenme yöntemi ile kurulan sinir ağları gelecekte programlanabilir her türlü makinanın yazılım sisteminde kullanılarak insanoğluna iş, zaman ve para tasarrufu konusunda faydalar sağlayacaktır. Öğretmensiz öğrenme yöntemleri ile oluşturulan YSA’lar girdi ağırlıklarını belirlemek için dışarıdan bir etkiye ihtiyaç duymazlar. Bunun yerine performanslarını içeriden yaptıkları gözlemler ile belirlerler. Bu ağlar girdi verilerinde bir düzen ararlar ve ağın fonksiyonuna göre kendilerini ayarlamaktadırlar. Ağa tanıtılan bir verinin doğru veya yanlış olup olmadığı belirtilmeden, ağ onu nasıl organize edebileceği hakkında bazı bilgilere sahip olmaktadır. Bu bilgi ağ topolojisinin ve öğrenme kurallarının içine yerleştirilmiştir. 45 Öğretmensiz öğrenme algoritması işlem elemanlarından oluşan gruplar arasındaki işbirliğine önem vermektedir. Eğer grup içine dışarıdan bazı girdiler aktivite edilirse, grubun etkinliği artabilir. Benzer şekilde, eğer gruba dışarıdan verilen girdiler azaltılırsa, bütün grup üzerinde engelleyici etki yaratabilmektedir (Anderson and McNeill 1992). 4.7 Yapay Sinir Ağlarının Temel Özellikleri YSA çalışması bilgisayarlardan farklı olarak paralel işlem yapma becerilerine sahiptir. Paralel işlem yapma becerisi ağa hesaplama ve bilgi işlemde üstünlükler sağlar. YSA insan beyninin sahip olduğu öğrenebilme ve genelleme yeteneğine sahiptir. Genelleme, eğitim ya da öğrenme sürecinde karşılaşılmayan girdiler için de YSA’nın uygun tepkileri üretmesi olarak tanımlanmaktadır. Bu beceri YSA’nın karmaşık problemleri kolaylıkla çözmesini sağlamaktadır. YSA’nın paralel çalışma, öğrenme ve genelleme dışındaki genel kabul görmüş becerileri aşağıda sıralanmıştır. YSA doğrusal olmayan problemlerin çözümünde başarılıdır. Çünkü YSA’yı oluşturan işlem elemanları doğrusal değildir. Dolayısı ile ağın tümü doğrusal değildir. YSA, ağırlıklarının değiştirilmesi ile farklı problemlerin çözümünü sağlamaktadır. Çünkü YSA farklı problemlere göre aynı eğitim seti ile tekrar eğitilebilir. Dolayısı ile YSA uyarlanabilir bir yapıda çalışır. YSA’da hata toleransı yüksektir. YSA’nın paralel dağıtılmış yapısı sayesinde işlem elemanlarının birinin veya bir kaçının yapmış olduğu hata problemin doğru çözümünü etkilemez. 46 4.8 Yapay Sinir Ağlarının Avantajları YSA’nın önemli avantajları aşağıda sıralanmıştır. • Genelleme yeteneğinin yüksek olması nedeni ile önceden görmediği örnekler hakkında da bilgi üretebilmektedir. • Sınıflandırma yapabilme yetenekleri yüksektir. Eğitilmiş bir YSA sınıflandırma yaparak sonradan kendisine gösterilen örnekleri hangi grupta olduğunu kolaylıkla gösterebilmektedir. • Şekil ilişkilendirme yetenekleri sayesinde eksik bir şeklin tamamlanmasını sağlarlar. Benzer şekilde eksik bilgiler ile bir olayın çözümünü öngörebilir ve eksik kısmı tahmin edebilirler. • Kendi kendilerine öğrenme yetenekleri vardır. 4.9 Bölüm Özeti Bu bölümde YSA’nın çalışma prensipleri, çeşitleri ve bu çalışmamızda kullanılan ÇKA detaylı olarak incelenmiştir. ÇKA’nın anlaşılması için öncelikle basit algılayıcılar, ardından da ADALINE/MADALINE ağ yapıları anlatılmıştır. ÇKA’nın yüksek sınıflandırma yeteneğini nasıl oluşturduğu anlatılmıştır. ÇKA’nın bu yeteneğini aldığı ileri beslemeli ağ yapısı ile geri yayılım ağlarının çalışma prensipleri incelenmiştir. Öğretmenli ve öğretmensiz öğrenme yöntemleri detaylı olarak anlatılmış, bölümün sonunda YSA’nın faydaları sıralanmıştır. 47 5. VERİ SETLERİ Çalışmada iki adet veri seti kullanılmaktadır. Bu veri setleri YSA’nın eğitim için gerekli olan eğitim veri seti ve eğitilmiş YSA’nın test edilmesi için kullanılan test veri setleridir. Eğitim veri setleri Lippmann’ın 1998 yıllında DARPA adına MIT Lincoln Laboratuvarı’nda yaptığı eğitim veri setlerinden örnekler alınarak yapılmıştır. Bu bölümde çalışmamızda kullanılacak olan eğitim ve test veri setlerinin özellikleri ve nasıl elde edildiklerinden bahsedilmektedir. 5.1 DARPA Veri Seti 1998 yılında DARPA’nın sponsorluğunda MIT Lincoln Laboratuvarları’nda STS’lerin karşılaştırılması için aşağıda topolojisi verilen ortam hazırlanmış ve kısaltması IDEVAL olan “intrusion detection evaluation data sets” verileri 7 hafta boyunca toplanmıştır (Lippmann et al. 2000). Veri setleri MIT Lincoln Laboratuvarı’nın web sitesinde (http://www.ll.mit.edu/ Lincoln Lab, 2008) yıllara, haftalara ve günlere göre TCPdump formatında yerleştirilmiştir. Ağ yapısı Şekil 5.1’de gösterilmiştir. Saldırı tespit sistemlerinin sınanması amacı ile iki ağ kurulmuştur. Ağlardan biri saldırıların hedefi olan iç ağ olurken diğer ağ ise iç ağa doğru saldırıların yapıldığı dış ağ olarak tasarlanmıştır. İç ağın yapısı Amerika Birleşik Devletleri Hava Kuvvetleri merkezindeki bilgisayar ve sunucuların oluşturduğu yapıda oluşturulmuştur. ABD Hava Kuvvetlerini temsil eden ağ içerisinde hedefteki kurban makinalar bulunmaktadır. Bunların üzerinde SunOS, Solaris, Linux, ve Windows NT (Windows NT 1999 testlerinde çalıştırılmıştır) işletim sistemleri bulunmaktadır. Şekilde görülen trafik üreteçleri (traffic generator) internet kullanıcılarının davranışlarını benzetim yapmaktadırlar. Bu trafik üreteçleri yüzlerce sunucunun ve çeşitli uygulamaların oluşturdukları trafik yoğunluğunda çalışmakta ve ağa veri göndermektedirler. Trafik yoğunluğu 1998 yılında ABD Hava Kuvvetleri merkezindeki ağın trafik yoğunluğuna göre ayarlanmıştır. Ağ trafiği http, smtp, telnet, ftp ve benzeri protokollerden 48 oluşmaktadır. Bu yoğunluk dahilinde ağa Şekil 5.2’deki saldırılar enjekte edilmiştir. Normal ve saldırıyı motifleyen paket akışları bir birine karıştırılmış ve ağ gözlenmiştir. Bilgisayarlar Bilgisayarlar Sniffer İç Ağ Dış Ağ Yönlendirici Linux SunOS Solaris Makinası Makinası Makina Solaris Benzetim Sistemi Kurban Makina Solaris Makina İç Ağ Trafik Üreteci Sniffer Web Sunucu Dış Ağ Trafik Üreteci Şekil 5.1 DARPA ağının topolojisi Ağ üzerinde iki noktadan TCPdump programı ile veri toplanmıştır. Veri analizi için iç ağda sunucular ile yönlendirici (router) arasında bir makina kullanılır iken dış ağda yönlendirici ile internet arasında bir adet veri toplama ve analiz programı (TCPdump) konulmuştur. Şekil 5.2 ’de DARPA deneylerinde oluşturulan ve gözlenen saldırılar tiplerine göre sıralanmıştır. 49 S o l a r i s S u n O S L i n u x Hizmet Önleme apache2, back, mailbomb, neptune, ping of death, process table, smurf, syslogd, UDP Storm apache2, back, mailbomb, neptune, ping of death, process table, smurf, syslogd, UDP Storm apache2, back, mailbomb, neptune, ping of death, process table, smurf, syslogd, UDP Storm Yönetici Yerine eject, ffbconfig, ps fdformat loadmodule, ps perl, xterm Kullanıcıya uzaktan erişim dictionary, ftp‐write guest, phf, xlock, xsnoop dictionary, ftp‐write guest, phf, xlock, xsnoop dictionary, ftp‐write guest, phf, xlock, xsnoop, imap, named, sendmail Gözlem ve Yoklama ip sweep, mscan, nmap, saint,satan ip sweep, mscan, nmap, saint,satan ip sweep, mscan, nmap, saint,satan Şekil 5.2 DARPA veri setlerindeki saldırıların kurban sunuculara dağılımı 5.2 Veri Setinin Formatı DARPA veri setleri TCPdump programı kullanılarak toplanmıştır. TCPdump program önceki bölümlerde anlatılmıştır. TCPdump programı farklı parametreler kullanılması halinde içerikleri farklı veri setleri oluşturmaktadır. Farklı parametreler her bağlantıda birer boşluk bırakılarak sıralanmıştır. Aşağıdaki komut kullanılarak tcpdump -s 66000 -F options -w <datafile> elde edilen sonuçlar işlenerek aşağıdaki biçime (parametrelerine göre) uygun bir şekilde sıralanmıştır. Saldırı ismi (attack name) sonradan eğitim setine beklenen çıktı olarak yerleştirilmiştir. 50 Oturum Sırası Bağlantı Tarihi Başlama Saati Hizmet Varış Kapısı Kaynak IP Kaynak Kapısı Oturum Varış IP süresi Saldırı Sayısı Saldırı Adı Session ID Start Date Start Time Duration Service Source Port Destination Port Source IP Destination IP Attack Score Attack Name 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 143 144 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 01/23/1998 17:00:03 17:00:04 17:00:05 17:00:07 17:00:09 17:00:10 17:00:12 17:00:16 17:00:18 17:00:20 17:00:21 17:00:22 17:00:25 17:00:28 17:00:32 17:00:35 17:00:39 17:00:41 00:00:22 00:00:01 00:00:14 00:00:00 00:00:00 00:00:11 00:00:00 00:00:00 00:00:00 00:00:00 00:00:02 00:00:01 00:00:02 00:00:02 00:00:01 00:00:02 00:00:02 00:00:40 telnet 1906 23 192.168.1.30 192.168.0.20 1 guess ftp-data 20 43550 192.168.1.30 192.168.0.40 0 rlogin 1022 513 192.168.1.30 192.168.0.20 1 rlogin ftp-data 20 43552 192.168.1.30 192.168.0.40 0 ftp-data 20 43554 192.168.1.30 192.168.0.40 0 ftp 43555 21 192.168.0.40 192.168.1.30 0 ftp-data 20 43558 192.168.1.30 192.168.0.40 0 ftp-data 20 43562 192.168.1.30 192.168.0.40 0 ftp-data 20 43563 192.168.1.30 192.168.0.40 0 ftp-data 20 43564 192.168.1.30 192.168.0.40 0 rsh 1022 514 192.168.1.30 192.168.0.20 1 rsh rsh 1022 1021 192.168.0.20 192.168.1.30 1 rsh http 1908 80 192.168.1.30 192.168.0.40 0 http 1909 80 192.168.1.30 192.168.0.40 0 http 1910 80 192.168.1.30 192.168.0.40 0 http 1912 80 192.168.1.30 192.168.0.40 0 http 1913 80 192.168.1.30 192.168.0.40 0 telnet 1914 23 192.168.1.30 192.168.0.20 1 guess Şekil 5.3 TCPdump komutu ile elde edilen DARPA verileri Saldırı başlıklarının açıklamaları aşağıda sıralanmıştır. Session ID: Oturum Sırası Start Date : Bağlantının (oturumun) yapıldığı tarih Start Time : Oturumun başladığı saat Duration : Oturum süresi Service : Bağlantının yapıldığında kullanılan hizmet protokolü Source Port : Kaynak kapı (port) adresi Destination Port : Varış kapı (port) adresi Source IP : Kaynak IP adresi Destination IP : Varış IP adresi Attack Score : Saldırının kaç adet yapıldığını belirtir Attack Name : Yapılan saldırının adı Günümüzde çok yaygın kullanılan Ethereal Paket Analiz programı tcpdump uzantılı veri setlerini okuyup analiz etmemizde bize yardımcı olmaktadır. Benzer şekilde editpcap programı tcpdump uzantılı veri setlerini okumaktadır. 51 TCPdump ile elde edilen DARPA veri seti Ethereal Packet Analiz programı ile işlenerek aşağıdaki formata getirilmiştir. Address A, Port A, Address B, Port B, Packets, Bytes, Packets A->B, Bytes A->B, Packets A<-B, Bytes A<-B 172.16.117.111,8297,199.94.100.2,http,1,60,0,0,1,60 172.16.113.84,11179,205.181.112.46,8080,2,120,1,60,1,60 172.16.113.84,12380,205.181.112.46,8080,2,120,1,60,1,60 205.181.112.46,8080,172.16.112.194,4144,2,120,1,60,1,60 205.181.112.46,8080,172.16.112.194,4781,2,120,1,60,1,60 205.181.112.46,8080,172.16.117.103,6704,2,120,1,60,1,60 205.181.112.46,8080,172.16.117.111,6804,2,120,1,60,1,60 172.16.117.111,17587,209.67.19.129,8088,2,120,1,60,1,60 172.16.117.111,17591,209.67.19.129,8088,2,120,1,60,1,60 172.16.117.111,18959,205.181.112.46,8080,2,120,1,60,1,60 172.16.114.148,21682,205.181.112.46,8080,2,120,1,60,1,60 172.16.114.148,23119,205.181.112.46,8080,2,120,1,60,1,60 Şekil 5.4 DARPA verilerinin Ethereal programı ile işlenmiş hali TCPdump veri setlerinin başlık bilgileri, Ethereal ile oluşturulan veri setlerinin başlık bilgilerinden farklılık göstermektedir. Her ikisinin de başlık bilgileri ile veri yapıları Şekil 5.3 ve Şekil 5.4’te verilmiştir. Sazlı ve Tanrıkulu’nun (2007) yaptığı çalışmada Ethereal Paket Analiz programı kullanılmıştır. DARPA veri setleri Ethereal formatına dönüştürülmüş ve YSA’ya eğitim veri seti olarak tanıtılmıştır. Bu çalışmada Sazlı ve Tanrıkulu’nun (2007) çalışmasından farklı olarak veri setleri TCPdump formatında kullanılmıştır. 5.3 Eğitim Veri Setinin Oluşturulması Çalışmamızdaki eğitim veri setleri DARPA eğitim veri setlerinden alınan örneklerden oluşturulmuştur. DARPA veri setlerini oluşturan her bağlantı Şekil 5.3’te gösterildiği gibi 11 özellik taşımaktadır ve özellik isimleri verilerin sütun başlıklarında belirtilmiştir. Bu özellikler ayrıca toplu olarak Şekil 5.5’te gösterilmiştir. Bu özelliklerden saldırı adları (attack name) son sütuna sonradan eklenmiş ve 11 sütunlu eğitim seti olarak duyurulmuştur. Ancak çalışmamızda Şekil 5.5’te belirtilen özelliklerden sadece Service 52 (hizmet adı), Source Port (kaynak kapısı), Destination Port (varış kapısı), Source IP (kaynak IP adresi) , Destination IP (varış IP adresi) ve Attack Name (saldırı adı) ile bilinen özellikler kullanılmıştır. Kullanılmayan özelliklerden biri olan session ID (oturum sırası) bağlantılara verilen sıra numaralarını göstermektedir. Deneyin yapıldığı günlerde oturum sırası birden başlayıp ardışık olarak artmaktadır. Oturum sırası bağlantı sırasını göstermekte ve verinin sonradan bulunmasını kolaylaştırmaktadır. Bu nedenle farklı günlerde oturum sıraları aynı sayıları alabilmektedir. Bu yüzden oturum sırası bağlantıların ayırt edici bir özelliği değildir. Kullanılmayan diğer iki özellik ise start date (başlama günü) ve start time (başlama zamanı) ise sırasıyla günün tarihini ve bağlantı zamanını saat cinsinden göstermektedir. Bu iki özellik verinin içerdiği saldırının bir niteliği değildir. Diğer kullanılmayan özellik ise saldırı süresidir (duration). Saldırı süresi tüm saldırılarda 1 ms olarak gösterilmektedir. Tüm saldırılarda bu değerin aynı olması nedeni ile saldırıyı diğer saldırılardan ayırt etmek mümkün olmamaktadır. Kullanılmayan diğer bir özellik ise saldırı sayısıdır (attack score). Her bağlantıda sadece bir saldırı olacağından tüm saldırılar için “1” değeri taşımaktadır. Bu nedenle saldırı sayısı özelliği saldırıların diğer saldırılardan ayırt edilmesini sağlayacak bir özellik değildir. Ancak bu değer normal trafikten saldırı trafiğini ayırt etmek için kullanılmaktadır. Session ID Start Time Service Source Port Source IP Attack Score Start Date Destination Port Duration Destination IP Attack Name Şekil 5.5 DARPA veri seti sütun başlıkları 53 5.3.1 Kullanılacak veri seti özellikleri Yukarıdaki açıklamalar doğrultusunda oluşturulan eğitim ve test veri setleri Şekil 5.6’da isimleri belirtilen bağlantı özelliklerinden oluşturulmuştur. Service Source Port Destination Port 8 8 339 339 1025 1027 19456 19456 80 80 12454 12454 Source IP Destination IP 172.15.4.3 172.15.4.3 172.15.4.3 172.15.4.3 195.175.104.6 195.175.104.6 195.175.104.6 195.175.104.6 Attack Name 0 0 10 10 Şekil 5.6 Çalışmada kullanılan veri seti özelliklerini belirten sütun başlıkları Çalışmada kullanılan hizmet başlığı (Service), bağlantının iletişime geçtiğinde kullandığı protokolün ismini taşımaktadır. Protokol isimleri ve aldıkları sayısal değerler Çizelge 5.1’de gösterilmiştir. Çalışmamızda MATLAB programı kullanılmaktadır. MATLAB programı sadece sayısal değerleri işleyebildiğinden DARPA veri setlerini kullanabilmemiz için verilerin sayısal değerlere dönüştürülmesi gerekmektedir. Kaynak ve varış kapı adres bilgileri sayısal değerler taşıdığı için doğrudan kullanılmıştır. Örneğin 80’ninci kapı adresi bir bilgisayarda çalışan web sunucusunun kapı adresini gösterirken 21’inci kapı adresi ise FTP sunucusunun çalıştığı kapı adresini belirtmektedir. Kaynak ve varış IP adreslerinin her biri dört sekizliden (octet) oluşmaktadır. IP adreslerinden çalışmamızın ikinci bölümünde detaylı olarak bahsedilmiştir. IP adresleri onluk sisteme göre aralarında nokta (.) olan 4 adet sayıdan oluşmaktadır. IP adresini a.b.c.d diye tanımlarsak buradaki a değeri 1 ile 254 arasında bir değer alırken, b,c,d ise 0 ile 254 arasında bir değer almaktadır. MATLAB programında IP adreslerinin işlenebilmesi için her bir IP adresi a, b, c ve d diye dört parça halinde veri setlerine yerleştirilmiştir. Buna göre oluşturduğumuz veri seti başlıkları Şekil 5.7’de gösterildiği gibi sıralanmıştır. 54 Hizmet Adı Kaynak Kapısı Kaynak IP Varış Kapısı a b c Varış IP d a b c Saldırı İsmi d Şekil 5.7 Kullanılan veri seti başlıkları Veri setinde yer alan saldırı ismi kısmı bağlantının normal veya saldırıya maruz kalıp kalmadığını belirtmektedir. DARPA veri setinde bu sütunda bağlantı normal ise “-“ işareti, saldırı var ise saldırının ismi yazılmıştır. DARPA veri setinde saldırı isimleri kısmı doğrudan saldırı ismi yazılarak oluşturulmuş ve sayısal değerler kullanılmamıştır. Bu nedenle ilgili sütundaki normal ve saldırı isimleri Güven (2007) tarafında oluşturulan Çizelge 3.1’de belirtilen sayısal değerlere dönüştürülmesi gerekmektedir. Bu çalışmada normal trafik verileri “0” ile gösterilirken, Neptune saldırısı 10, Pod saldırısı ise 14 ile gösterilmiştir. Deneylerde YSA’lardan çıktı olarak bu değerlere yakın değerler üretmesi beklenmektedir. Çünkü YSA’lar sayısallaştırılmış saldırı isimlerini eğitim sırasında beklenen çıktı olarak öğrenmekte, test ortamında benzer motifleri bu beklenen çıktılara yakınsamaktadır. 55 Çizelge 5.1 Servis isimlerinin sayısal forma dönüştürülmesi (Güven 2007) 56 Hizmet Adı Kaynak Kapısı Kaynak IP Varış Kapısı a 309 309 309 309 309 309 309 309 309 309 36184 35928 35672 35416 35160 34904 34648 34392 34136 33880 309 309 309 309 309 309 309 309 309 309 10 10 10 10 10 10 10 10 10 10 20 20 20 20 20 20 20 20 20 20 b c 30 30 30 30 30 30 30 30 30 30 40 40 40 40 40 40 40 40 40 40 Varış IP d a 172 172 172 172 172 172 172 172 172 172 b 16 16 16 16 16 16 16 16 16 16 Saldırı İsmi c d 112 112 112 112 112 112 112 112 112 112 50 50 50 50 50 50 50 50 50 50 10 10 10 10 10 10 10 10 10 10 Şekil 5.8 Neptune saldırısını gösteren veri seti örneği Şekil 5.8’de Neptune saldırısına ait işlenmiş veri setinden örnek bir parça gösterilmektedir. Birinci sütunda hizmet adı, ikinci ve üçüncü sütunlarda kaynak ve varış kapı adresleri yer almaktadır. 4., 5., 6., ve 7. sütunlar ise 10.20.30.40 şeklinde oluşan kaynak IP adresinin sütunlara dağıtılmış olarak göstermektedir. Benzer şekilde 8., 9., 10., ve 11. sütunlar ise varış IP adresini (172.16.112.50) göstermektedir. Son sütun ise bu bağlantının Neptune saldırısına maruz kaldığını göstermesi için “10” değeri verilmiştir. Benzer şekilde normal saldırının işlenmiş veri setinden örnek bir parça Şekil 5.9’da gösterilmiştir. Burada kaynak ve varış IP adresleri farklılık göstermektedir. Birinci sütunda hizmet adı, ikinci ve üçüncü sütunda kaynak ve varış kapı adresleri yer almaktadır. 4., 5., 6., ve 7. sütunlar ise ilk sıradaki bağlantı için 172.16.112.20 şeklinde oluşan kaynak IP adresini göstermektedir. Benzer şekilde 8., 9., 10., ve 11. sütunda ise varış IP adresi 192.168.1.10 olarak gösterilmiştir. Son sütun ise bağlantının normal bir ağ trafiği olduğunu gösteren “0” değerini göstermektedir. 57 Hizmet Adı Kaynak Kapısı Kaynak IP Varış Kapısı a 8 8 7 9 7 3 3 3 3 1 1 1 3 3 123 123 0 0 0 53 53 53 53 1025 1026 1027 53 1088 123 123 0 0 0 53 53 53 53 25 25 25 53 53 172 172 192 192 192 172 172 172 172 172 172 172 172 172 16 16 168 168 168 16 16 16 16 16 16 16 16 16 b 112 112 1 1 1 112 112 112 112 114 114 114 112 112 c Varış IP d 20 20 5 1 5 20 20 20 20 207 207 207 20 20 a 192 192 192 192 192 192 192 192 192 135 197 196 195 192 b 168 168 168 168 168 168 168 168 168 13 182 37 73 168 Saldırı İsmi c d 1 1 1 1 1 1 1 1 1 216 91 75 151 1 10 10 1 5 1 20 20 10 10 191 233 158 50 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Şekil 5.9 Normal ağ trafiğini gösteren veri seti örneği 5.4 Veri Setinin Kullanımı Bir sonraki bölümde oluşturulan YSA’lar bu bölümde oluşturulan eğitim veri setlerini kullanmaktadırlar. YSA’ya verilen ilk 11 özellik işlenerek 12. özelliğin (beklenen çıktı) öğrenilmesi istenmektedir. YSA ilk 11 özelliği belli bir matematiksel model kurarak 12. özelliğe ulaşmaya çalışacaktır. Burada elde edilen ağırlık değerleri kullanılarak YSA kurulacaktır. Test veri setinde ise 12. özellik YSA’ya verilmeden öğrenilmiş kurallara göre bu değerleri yakalaması beklenmektedir. Test sonucunun doğruluğunu ölçmek için test veri setindeki 12. özellik kullanılarak grafikleri çizilecektir. 5.5 Bölüm Özeti Veri setleri hazırlanırken YSA tarafından ayırt edicilik özelliği olmayan bazı DARPA veri seti özellikleri (oturum süresi, oturum sırası gibi) kullanılmamıştır. Çünkü bu özellikler tüm veri setinde aynı değeri aldıklarından veri setindeki bağlantıların bir birlerinden ayırt edilmesi mümkün olmayacaktır. Burada hizmet adı, kaynak ve varış kapı numaraları, kaynak IP ve varış IP adresleri ile saldırı isimleri sayısallaştırılarak kullanılmıştır. IP adresleri 4 adet sekizliden (octet) oluştuğu için sayısallaştırılırken her IP adresi 4 kolonda ayrı ayrı değerlendirilmiştir. Böylelikle veri setindeki kolon sayısı 58 12’ye çıkmıştır. Hizmet ve saldırı isimleri için bölüm içerisinde verilerin çizelgelerdeki sayısal değerler kullanılmıştır. Çalışmalarda kullanılan eğitim ve test veri setleri metin halinde ekler bölümünde verilmiştir. 59 6. UYGULAMALAR Bu bölümde çalışmada yapılan deneyler hakkında bilgiler verilmektedir. 6.1 Giriş Çalışmanın amacı doğrultusunda bu bölümde STS’lerde kullanılmak üzere YSA’lar oluşturulacaktır. YSA’yı oluşturmak için MATLAB programı içerisindeki Neural Networks (NN, sinir ağları) bileşeni kullanılmaktadır. NN esnek ve kolay kullanımı ile başarılı bir yazılım aracıdır. Deneylerimizde oluşturduğumuz sinir ağı sayısallaştırdığımız eğitim veri seti ile eğitilecektir. Eğitim seti normal trafik ile Neptune ve Pod saldırılarının olduğu bağlantı bilgilerini içermektedir. Eğitim seti DARPA veri setinden temin edilmiştir. Özelleştirilmiş bu eğitim setinin nasıl temin edildiği Bölüm 5’te detaylı olarak verilmiştir. Eğitilmiş YSA’lar önceden öğrendikleri saldırıları yakalamak için test edilerek başarım oranları karşılaştırılacaktır. Benzer şekilde çalışmamızda eğitilmiş YSA’lar eğitimde öğrenmedikleri bir saldırıyı yakalamaları için başka bir test veri seti ile de test edilmektedir. 6.2 YSA’ların Oluşturulması Bölüm 1.3’te belirttiğimiz gibi deneylerimizde farklı iki yöntem kullanılacaktır. Her yöntemde farklı eğitim veri setleri YSA’lara tanıtılacaktır. Yöntemlerde kullanılacak uygun YSA’ların bulunması için çok sayıda test yapılmıştır. Bu testleri oluşturmak için kullanılan MATLAB kodları Ek 5’te ve test sonuçları ise Ek 6’da verilmiştir. Çalışmamızda oluşturduğumuz YSA’lar aktivasyon fonksiyonu olarak hiperbolik tanjant sigmoid fonksiyonu (tansig) kullanılmıştır. Çünkü deneylerimizde en başarılı YSA’ların hiperbolik tanjant sigmoid fonksiyonunu kullananlar olduğu gözlenmiştir. Deneylerde hiperbolik tanjant sigmoid fonsiyonunun tercih edilmesinin nedeni bilinmeyen saldırıların yakalanmasında logaritmik sigmoid fonksiyonu kullanan YSA’lardan daha başarılı olmasıdır. 60 İlk yöntemde normal, Neptune ve Pod saldırılarının tümünün bir arada bulunduğu eğitim veri seti kullanılmıştır. Şekil 1.1’de birinci yöntem gösterilmektedir. Çalışmamızda bu yönteme “Doğrudan Eğitim Yöntemi” ismini vermiştik. İkinci yöntemde saldırı motiflerini ayrı ayrı tanıyabilen YSA’lar oluşturulmuş ve bu YSA’lar sadece ilgili bulundukları saldırıların eğitim veri setleri ile eğitilmeleri sağlanmıştır. Bu yöntem Şekil 1.2’de grafikler yardımı ile anlatılmıştır. İkinci Yöntem ise “saldırıları ayrı ayrı tanıyan eğitim setlerinin kullanılması yöntemi” olarak isimlendirilmiştir. Deneyler bu iki yöntem başlığı altında yapılmıştır. Her yöntemi kullanan YSA’lardan hem bilinen saldırıları bulmaları hem de bilinmeyen bir saldırıyı bulmaları için ayrı ayrı deneyler yapılmıştır. Bölümün sonunda deney sonuçları değerlendirilmiş ve çizelgeler halinde özetlenmiştir. 6.2.1 Deney grafikleri Deney sonuçları grafikler halinde her deneyin altında sıralanmıştır. Grafiklerde yatay sütun bağlantı sıra numarasını göstermektedir. Bir ağ analiz programı bilgisayar ağlarında akan veri paketlerini toplar ve bağlantının oluştuğu zamana göre sıralar. Her bağlantı iki bilgisayar arasındaki tek bir veri akışını göstermektedir. Dikey sütunlar ise YSA’nın eğitim sonrası test veri setindeki motifleri yorumlaması sonucunda verdiği çıktı (yakınsama) değeridir. Grafiklerdeki “*” değerleri eğitilmiş YSA’nın test esnasında oluşturduğu çıktı değerlerini göstermektedir. Grafiklerdeki düz çizgiler ise test veri setindeki verilerin gerçekte yakınsamaları gereken değerleri göstermektedir. Deneylerimizin yüksek başarım oranları “*” değerleri ile düz çizgilerin bir biri ile örtüşmesi halinde oluşmaktadır. 6.3 Doğrudan Eğitim Yöntemi Kullanılarak Yapılan Deneyler Bu bölümde iki deney yapılacaktır. Her deney üç denemeden oluşmaktadır. Birinci deneyde (Deney 1) normal ve saldırı (Neptune ve Pod) motiflerinin tümünün bir arada bulunduğu eğitim veri seti ile eğitilmiş bir YSA oluşturulacaktır. Eğitilmiş sinir ağı daha sonra içinde normal ve saldırı (Neptune ve Pod saldırıları) motifleri bulunan bir test veri seti ile test edilecektir. Birinci deneye bilinen saldırıların (önceden öğretilen 61 saldırıların) bulunması deneyi denilmektedir. İkinci deney (Deney 2) ise birinci deneydeki YSA’nın bilinmeyen saldırı motiflerinin bulunduğu bir test veri seti ile test edilmesinden oluşmaktadır. 6.3.1 Deney -1 : Bilinen saldırıların (Neptune, Pod) bulunması MATLAB programının NN bileşeni ile bir sinir ağı (net1) oluşturulmuştur. Bu sinir ağı içerisinde normal ağ trafiği ile Neptune ve Pod saldırıları motiflerinin bulunduğu eğitim seti (tumun.txt) ile eğitilmiştir. Normal trafik veri setleri “0” değerine yakınsarken, Neptune saldırısı “10” değerine, Pod saldırısıda “14” değerine yakınsamaktadır. Test veri seti ise içinde normal, Neptune ve Pod saldırıları motiflerinin bulunduğu bir test veri setidir. Bu test veri seti test.txt dosyası içinde bulunmaktadır. Aşağıda verilen MATLAB program kodları ile “net1” adında bir YSA oluşturulmuş, eğitilmesi ve test edilmesi sağlanmıştır. Bu deneyde net1 sinir ağı ile üç deneme yapılmıştır. Her denemede Şekil 6.1’de gösterilen MATLAB kodları kullanılarak yapılmış, sonuçları grafikler halinde Şekil 6.1, Şekil 6.2 ve Şekil 6.3’de sıralanmıştır. Deneylerin başarım oranları ile deney süreleri ise bölüm sonunda detaylı olarak verilmiştir. Net1 sinir ağı “newff” komutu ile oluşturulmuştur. Uygun ağın bulunması testlerinde başarılı olan [12 40 40 1] ağ yapısı net1 sinir ağında kullanılmıştır. Net1 sinir ağının ilk saklı katmanında 12 adet işlem elemanı kullanılmaktadır. İkinci ve üçüncü saklı katmanların her birinde 40 adet işlem elemanı kullanılmıştır. Çıktı katmanı ise bir adet işlem elemanından oluşmaktadır. Çünkü net1 ağı tek çıktı olarak sadece bir değer üretmektedir. İyi eğitilmiş bir ağdan yukarıda belirtildiği gibi “0”, “10” veya “14” değerlerinden birini üretmesi beklenmektedir. Net1 sinir ağında saklı katmanlarda aktivasyon fonksiyonu olarak hiperbolik tanjant sigmoid transfer fonksiyonu ve çıktı katmanında ise doğrusal transfer fonksiyonu kullanılmıştır. 62 load test.txt; %% Test Seti load tumun.txt; %% Normal Neptune ve Pod Saldırıları Eğitim Seti P1=tumun(1:2031,1:11); T1=tumun(1:2031,12); a1=test(1:180,1:11); s1=test(1:180,12); net1= newff(minmax(P1'),[12 40 40 1],{'tansig' 'tansig' 'tansig' 'purelin'}); figure; net1.trainParam.epochs=50; net1.trainParam.goal = 1e-6; net1=train (net1,P1',T1'); y1=sim(net1,a1'); figure; plot(y1,'*'); hold plot(s1','r');title('[12 40 40 1] Bilinen Saldirilarin Tespit Edilmesi (Normal, Neptune, Pod)'); hold Şekil 6.1 MATLAB kodları (Bilinen saldırıların (Neptune, Pod) bulunması) Eğitim veri setinin (tumun.txt) metin halindeki çıktısı Ek 1’de, test veri setinin (test.txt) metin halindeki çıktısı Ek 2’de verilmiştir. Neptune Saldırısı YSA Çıktı Değeri Pod Saldırısı Normal Veri Trafiği Bağlantı Sıra Numarası Şekil 6.2 Deney 1, deneme -1 grafiği 63 Neptune Saldırısı YSA Çıktı Değeri Pod Saldırısı Normal Veri Trafiği Bağlantı Sıra Numarası Şekil 6.3 Deney 1, deneme -2 grafiği Neptune Saldırısı YSA Çıktı Değeri Pod Saldırısı Normal Veri Trafiği Bağlantı Sıra Numarası Şekil 6.4 Deney 1, deneme -3 grafiği 64 6.3.2 Deney - 2 : Bilinmeyen saldırının (SATAN) bulunması Net1 sinir ağı bu deneyde de “tumun.txt” eğitim seti ile eğitilmiştir. “tumun.txt” eğitim veri seti içerisinde SATAN saldırı motifi bulunmamaktadır. Bu deneyde kullanılan test veri seti (testsatan.txt) bir önceki deneyde kullanılan “test.txt” veri setinden farklı olarak içerisinde SATAN saldırı motifini de içermektedir. Net1’den eğitimlerde önceden öğrenmediği SATAN saldırısını tespit etmesi beklenmektedir. Şekil 6.5’te deneyde kullanılan MATLAB kodları verilmiştir. Oluşturulan net1 sinir ağı SATAN saldırısını “0”, “10” ve “14” değerlerinin dışında bir değere yakınsamaktadır. Eğitim veri setinin (tumun.txt) metin halindeki çıktısı Ek 1’de, test veri setinin (testsatan.txt) metin halindeki çıktısı Ek 3’te verilmiştir. MATLAB programının sonuçları grafikler halinde Şekil 6.6, Şekil 6.7 ve Şekil 6.8’de sunulmuştur. load testsatan.txt; %% Test Seti (Bilinmeyen Saldırı Dahil) Bilinmeyen Saldırı SATAN load tumun.txt; %% Normal Neptune ve Pod Saldırısı Dahil Eğitim Seti P1=tumun(1:2031,1:11); T1=tumun(1:2031,12); a1=testsatan(1:324,1:11); s1=testsatan(1:324,12); net1= newff(minmax(P1'),[12 40 40 1],{'tansig' 'tansig' 'tansig' 'purelin'}); %% Normal figure; net1.trainParam.epochs=50; net1.trainParam.goal = 1e-6; net1=train (net1,P1',T1'); y1=sim(net1,a1'); figure; plot(y1,'*'); hold plot(s1','r');title('[12 40 40 1] NORON - Bilinmeyen saldırının (SATAN) bulunması- '); hold Şekil 6.5 MATLAB kodları (bilinmeyen saldırının bulunması) 65 YSA Çıktı Değeri Neptune Saldırısı Normal Veri Trafiği Pod Saldırısı Önceden öğretilmemiş Saldırı : Satan Bağlantı Sıra Numarası Şekil 6.6 Deney 2, deneme - 1 grafiği YSA Çıktı Değeri Neptune Saldırısı Normal Veri Trafiği Pod Saldırısı Önceden öğretilmemiş Saldırı : Satan Bağlantı Sıra Numarası Şekil 6.7 Deney 2, deneme - 2 grafiği 66 YSA Çıktı Değeri Neptune Saldırısı Normal Veri Trafiği Pod Saldırısı Önceden öğretilmemiş Saldırı : Satan Bağlantı Sıra Numarası Şekil 6.8 Deney 2, deneme - 3 grafiği 6.4 Saldırıları Ayrı Ayrı Tanıyan Eğitim Setlerinin Kullanılması Yöntemi Bu bölümde her saldırı kendine özgü bir eğitim veri seti ile eğitilecektir. Normal, Neptune ve Pod saldırıları motiflerini içeren üç adet eğitim seti hazırlanmıştır. Bu yöntem Şekil 1.2’de gösterilmiştir. NN kullanılarak hazırlanan net1 sinir ağı sadece normal ağ trafiğini tanımakta iken, net2 ile Neptune saldırısını, net3 ise sadece Pod saldırısını tanımaktadır. Eğitilmiş YSA’lar ortak bir test veri seti ile test edilecektir. Bu yöntemde bilinen ve bilinmeyen saldırıların yakalanması amacı ile iki farklı deney yapılmıştır. 6.4.1 Deney -3 : Bilinen saldırıların (Neptune, Pod) bulunması NN yazılımı kullanılarak net1, net2 ve net3 adında üç adet sinir ağı oluşturulmuştur. Net1’in eğitimi için norm.txt, net2’nin eğitimi için nept.txt ve net3’ün eğitimi için ise pod.txt dosyaları kullanılmıştır. Normal trafik “0” değerine yakınsarken, Neptune saldırısı “10” değerine, Pod saldırısı da “14” değerine yakınsamaktadır. Test veri seti 67 içinde normal, Neptune ve Pod saldırılarına ait motif bilgileri bulunmaktadır. Test veri seti olarak test.txt dosyası kullanılmıştır. Aşağıda NN bileşeni ile oluşturulan YSA’nın eğitilmesi ve test edilmesini gösteren kodlar verilmiştir. Bu deneyde yapılan üç denemede de Şekil 6.9’da gösterilen MATLAB kodları kullanılmıştır. Bu programın çıktıları Şekil 6.10, Şekil 6.11 ve Şekil 6.12’de grafikler halinde gösterilmiştir. Eğitim veri setleri (norm.txt, nept.txt, pod.txt) metin halindeki çıktısı Ek 4’te, test veri setinin (test.txt) metin halindeki çıktısı Ek 2’de verilmiştir. load test.txt; %% Test Seti load norm.txt; %% Normal Trafik Eğitim Seti load nept.txt; %% Neptune Atağı load pod.txt; %% Pod Atağı P1=norm(1:1458,1:11); T1=norm(1:1458,12); P2=nept(1:391,1:11); T2=nept(1:391,12); P3=pod(1:182,1:11); T3=pod(1:182,12); a1=test(1:180,1:11); s1=test(1:180,12); net1= newff(minmax(P1'),[12 40 40 1],{'tansig' 'tansig' 'tansig' 'purelin'}); %% Normal net2= newff(minmax(P2'),[12 20 20 1],{'tansig' 'tansig' 'tansig' 'purelin'}); %% Neptune net3= newff(minmax(P3'),[12 10 10 1],{'tansig' 'tansig' 'tansig' 'purelin'}); %% Pod figure; net1.trainParam.epochs=50; net1.trainParam.goal = 1e-5; net1=train (net1,P1',T1'); net2.trainParam.epochs=25; net2.trainParam.goal = 1e-5; net2=train (net2,P2',T2'); net3.trainParam.epochs=25; net3.trainParam.goal = 1e-4; net3=train (net3,P3',T3'); y1=sim(net1,a1'); y2=sim(net2,a1'); y3=sim(net3,a1'); figure;plot(y1,'*'); hold plot(s1','r');title(' NORMAL [12 40 40 1] '); figure; plot(y2,'*'); hold plot(s1','r');title(' NEPTUNE [12 20 20 1] '); figure; plot(y3,'*'); hold plot(s1','r');title(' POD [12 10 10 1'); hold Şekil 6.9 MATLAB kodları 68 YSA Çıktı Değeri Sadece Normal trafiği yakalayan net1 ağının sonuçları: net1 ağı normal trafiği 0 değerine yakınsamaktadır. Bağlantı Sıra Numarası Sadece Neptune trafiğini yakalayan net2 ağının sonuçları : net2 ağı Neptune trafiğini 10 değerine yakınsamaktadır. YSA Çıktı Değeri Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Pod trafiğinin yakalayan net3 ağının sonuçları : net3 ağı Pod trafiğini 14 değerine yakınsamaktadır. Bağlantı Sıra Numarası Şekil 6.10 Deney 3, deneme - 1 grafikleri 69 YSA Çıktı Değeri Sadece Normal trafiği yakalayan net1 ağının sonuçları: net1 ağı normal trafiği 0 değerine yakınsamaktadır. Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Neptune trafiğini yakalayan net2 ağının sonuçları : net2 ağı Neptune trafiğini 10 değerine yakınsamaktadır. Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Pod trafiğinin yakalayan net3 ağının sonuçları : net3 ağı Pod trafiğini 14 değerine yakınsamaktadır. Bağlantı Sıra Numarası Şekil 6.11 Deney 3, deneme - 2 grafikleri 70 YSA Çıktı Değeri Sadece Normal trafiği yakalayan net1 ağının sonuçları: net1 ağı normal trafiği 0 değerine yakınsamaktadır. Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Neptune trafiğini yakalayan net2 ağının sonuçları : net2 ağı Neptune trafiğini 10 değerine yakınsamaktadır. Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Pod trafiğinin yakalayan net3 ağı sonuçları : net3 ağı Pod trafiğini 14 değerine yakınsamaktadır. Bağlantı Sıra Numarası Şekil 6.12 Deney 3, deneme - 3 grafikleri 71 6.4.2 Deney - 4: Bilinmeyen saldırıların (SATAN) bulunması Net1, net2 ve net3 sinir ağları bu deneyde de “norm.txt”, “nept.txt” ve “pod.txt” eğitim setleri ile eğitilmiştir. Hiçbir eğitim veri seti içerisinde SATAN saldırı motifi bulunmamaktadır. Bu deneyde kullanılan test veri seti (testsatan.txt) bir önceki deneyde kullanılan “test.txt” veri setinden farklı olarak içerisinde SATAN saldırı motifini de içermektedir. Net1, net2 ve net3’den eğitimlerde önceden öğrenmedikleri SATAN saldırısını tespit etmeleri beklenmektedir. Şekil 6.13’de deneyde kullanılan MATLAB kodları verilmiştir. Deney-4 kapsamında üç adet deneme yapılmış ve sonuçları Şekil 6.14, Şekil 6.15 ve Şekil 6.16’da grafikler halinde gösterilmiştir. Eğitim veri setleri (norm.txt, nept.txt, pod.txt) metin halindeki çıktısı Ek 4’te, test veri setinin (testsatan.txt) metin halindeki çıktısı Ek 3’te verilmiştir. load testsatan.txt; %% Test Seti load norm.txt; %% Normal Trafik Eğitim Seti load nept.txt; %% Neptune Atağı load pod.txt; %% Pod Atağı P1=norm(1:1458,1:11); T1=norm(1:1458,12); P2=nept(1:391,1:11); T2=nept(1:391,12); P3=pod(1:182,1:11); T3=pod(1:182,12); a1=testsatan(1:324,1:11); s1=testsatan(1:324,12); net1= newff(minmax(P1'),[12 40 40 1],{'tansig' 'tansig' 'tansig' 'purelin'}); net2= newff(minmax(P2'),[12 40 40 1],{'tansig' 'tansig' 'tansig' 'purelin'}); net3= newff(minmax(P3'),[12 10 10 1],{'tansig' 'tansig' 'tansig' 'purelin'}); net1.trainParam.epochs=50; net1.trainParam.goal = 1e-6; net1=train (net1,P1',T1'); net2.trainParam.epochs=50; net2.trainParam.goal = 1e-7; net2=train (net2,P2',T2'); net3.trainParam.epochs=50; net3.trainParam.goal = 1e-6; net3=train (net3,P3',T3'); y1=sim(net1,a1'); y2=sim(net2,a1'); y3=sim(net3,a1'); figure;plot(y1,'*'); plot(s1','r');title(' NORMAL [12 40 40 1] '); figure;plot(y2,'*'); plot(s1','r');title(' NEPTUNE [12 40 40 1] '); figure;plot(y3,'*'); plot(s1','r');title(' POD [12 10 10 1] ');hold Şekil 6.13 Deney 4’te kullanılan MATLAB kodları 72 YSA Çıktı Değeri Sadece Normal trafiği yakalayan net1 sonuçları: net1 ağı normal trafiği 0 değerine yakınsamaktadır. Bilinmeyen saldırı Bağlantı Sıra Numarası Sadece Neptune trafiğini yakalayan net2 sonuçları : net2 ağı Neptune trafiğini 10 değerine yakınsamaktadır. YSA Çıktı Değeri Bilinmeyen saldırı Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Pod trafiğinin yakalayan net3 sonuçları : net3 ağı Pod trafiğini 14 değerine yakınsamaktadır. Bilinmeyen saldırı Bağlantı Sıra Numarası Şekil 6.14 Deney 4 – Deneme 1: Bilinmeyen saldırının yakalanması 73 YSA Çıktı Değeri Sadece Normal trafiği yakalayan net1’in sonuçları: net1 ağı normal trafiği 0 değerine yakınsamaktadır. Bilinmeyen saldırı Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Neptune trafiğini yakalayan net2’in sonuçları : net2 ağı Neptune trafiğini 10 değerine yakınsamaktadır. Bilinmeyen saldırı Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Pod trafiğinin yakalayan net3’ün sonuçları : net3 ağı Pod trafiğini 14 değerine yakınsamaktadır. Bilinmeyen saldırı Bağlantı Sıra Numarası Şekil 6.15 Deney 4 – Deneme 2: Bilinmeyen saldırının yakalanması 74 YSA Çıktı Değeri Sadece Normal trafiği yakalayan net1’in sonuçları: net1 ağı normal trafiği 0 değerine yakınsamaktadır. Bilinmeyen saldırı Sadece Neptune trafiğini yakalayan net2’in sonuçları : net2 ağı Neptune trafiğini 10 değerine yakınsamaktadır. YSA Çıktı Değeri Bağlantı Sıra Numarası Bilinmeyen saldırı Bağlantı Sıra Numarası YSA Çıktı Değeri Sadece Pod trafiğinin yakalayan net3’ün sonuçları : net3 ağı Pod trafiğini 14 değerine yakınsamaktadır. Bilinmeyen saldırı Bağlantı Sıra Numarası Şekil 6.16 Deney 4 – Deneme 3: Bilinmeyen saldırının yakalanması 75 6.5 Deney Sonuçları Yapılan deneylerin değerlendirilmesi bu bölümde yapılmaktadır. Bu kısımda denemelerin süreleri ve başarım oranları verilmektedir. Deney 1 ve deney 2’de aynı eğitim veri seti kullanılarak üçer deneme yapılmıştır. Benzer şekilde deney 3 ve deney 4’e ait eğitim veri setleri de aynıdır. Tüm deneylerde üç adet deneme yapılmıştır. Çünkü aynı veri setleri kullanmalarına rağmen bir YSA her zaman aynı sonucu üretmeyebilir. Bunun nedeni kullanılan NN bileşeninin başlangıçta kullandığı ağırlık değerlerini rastgele seçmesidir. Oluşturulan ÇKA geri yayılım özelliği nedeni ile oluşan hataları en aza indirmeye çalışmakta ve verilen yineleme (iterasyon) değerine ulaşana kadar en uygun ağırlık değerlerini bulmaktadır. Bu nedenle tüm denemelerin başarım oranları ile deney sürelerinde farklılıklar gözlenmiştir. Deney sonuçları MATLAB programı kullanılarak oluşturulan .fig uzantılı grafik dosyası formatında kaydedilmiştir. Deney sonuçlarını üzerinde tutan .fig uzantılı grafik dosyaları, sonuçların sonradan da incelenmesine olanak tanımaktadır. Başarım oranları deneyler esnasında MATLAB kodları yardımı ile aşağıda belirtilen matematiksel ortalama ve oran bulma yöntemleri ile tespit edilmiştir. 6.5.1 Başarım oranının tespiti YSA’lar normal ve saldırı motiflerini eğitim veri setinde verilen yakınsama değerine göre öğrenirler. YSA’lar normal trafik verilerini “0” değerine yakınsarken, Neptune saldırısını “10” değerine, Pod saldırısı ise “14” değerine yakınsarlar. Yani YSA sonradan kendisine verilen bir test veri setinde Normal değeri görünce “0” değerini üretirken, Neptune saldırısı için “10” değerini üretir. Deneylerde YSA’lardan test sonucunda bu değerleri yakalaması beklenir. Bu değerlere ne kadar yaklaştığını gösteren oranlara başarım oranları denilmektedir. 76 6.5.1.1 Saldırı bulma başarım oranının tespit edilmesi Ek 1’de verilen metin halindeki eğitim veri setindeki saldırıların bulunduğu satırların aldığı değerler sadece farklı kaynak kapı numaraları kullanmaları ile ayrılmaktadır. Veri setindeki saldırıları gösteren bağlantıların diğer tüm özellikleri aynı değerlere sahiptir. Dolayısı ile eğitilmiş bir YSA’dan saldırıyı yüksek başarım ile bulması beklenmektedir. Saldırıyı bulma başarım oranı YSA’nın çıktı ortalamasının beklenen değere yakılığının yüzde cinsinden hesaplanmasıdır. Ek 5’te verilen MATLAB kodlarında bu oran Denklem 6.1’de gösterildiği gibi kullanılmıştır. SBBO = yd − | yd − art | *100 yd (6.1) Burada; SBBO : Saldırı bulma başarım oranı (%), yd : yakınsanacak değer, art : YSA çıktılarının aritmetik ortalamasını göstermektedir. 6.5.1.2 Normal ağ trafiği başarım oranının tespit edilmesi YSA normal trafiği “0” değerine yakınsamaya çalışırken (-1) ile (+1) arasında bir salınım yaptığı deneylerimizde gözlenmiştir. Bunun nedeni eğitim veri setinde normal trafik motifleri içerisindeki kaynak kapı numarası, varış kapı numarası, kaynak IP adresi ve varış IP adreslerinin kendi aralarında büyük farklılıkların olmasıdır. Ek 1’de verilen eğitim veri setinin incelenmesinde normal ağ trafiğine ait bağlantıların (satırların) bir birlerinden çok farklı olduğu gözlenmektedir. Bu yüzden normal trafiğin başarım oranları “0” değerinde % 100, -1 ve +1’de ise % 0 olacak şekilde değerlendirilmiştir. Ek 5’te verilen MATLAB kodlarında normal trafiğin başarım oranı Denklem 6.2’de gösterildiği gibi kullanılmıştır. NBO =|1− | art || *100 (6.2) 77 Burada; NBO : Normal ağ trafiğinin başarım oranı (%), art : YSA çıktılarının aritmetik ortalamasını göstermektedir. 6.5.2 Deneylerin başarım oranları ve süreleri Doğrudan Eğitim Yöntemi kullanılarak yapılan Deney 1 ve Deney 2’nin başarım oranları ile deney süreleri Çizelge 6.1 ve Çizelge 6.2’de gösterilmiştir. Çizelge 6.1 Deney 1 – Süre ve başarım oranları Deney1 Süre (sn) 192 Doğrudan Eğitim Yöntemi Kullanılan Ağ Yapısı : [12 40 40 1] Deneme 1 Deneme 2 Başarım % Başarım % Süre Süre (sn) Normal Neptune (sn) Normal Neptune Pod Pod 71.78 85.31 99.83 201 91.13 88.73 99.83 195 Deneme 3 Başarım % Normal 99.92 Neptune 100 Pod 99.83 Deney 1’de deneme 3’e ait başarım oranları en yüksek değerlere sahiptir. Net1 sinir ağı kesin olarak saldırıları tanımıştır. Çizelge 6.2 Deney 2 – Süre ve başarım oranları Deney2 Süre (sn) 241 Deneme 1 Başarım % Normal Neptune Pod Satan 99.19 83.5 98 100 Doğrudan Eğitim Yöntemi Kullanılan Ağ Yapısı : [12 40 40 1] Deneme 2 Başarım % Süre Süre (sn) Normal Neptune Pod Satan (sn) 248 70.96 85.31 95.42 100 251 Deneme 3 Başarım % Normal Neptune Pod Satan 97.58 83.25 98 100 Deney 2’de deneme 1’e ait başarım oranları en yüksek değere sahiptir. Net1 sinir ağı kesin olarak SATAN saldırısını diğer saldırılardan ayırmayı başarmıştır. Saldırıları ayrı ayrı tanıyan eğitim setleri yöntemi kullanılarak yapılan Deney 3 ve Deney 4’ün başarım oranları ile deney süreleri Çizelge 6.3 ve Çizelge 6.4’te verilmiştir. 78 Çizelge 6.3 Deney 3 – Süre ve başarım oranları Deney3 Saldırıları ayrı ayrı tanıyan eğitim setleri yöntemi – Bilinen saldırıların bulunması Deneme 1 Deneme 2 Başarım % Sür e (sn) 192 Deneme 3 Başarım % [12 40 40 1] [12 20 20 1] 12 10 10 1] Normal Neptune Pod 98.38 97.3 99.84 Süre (sn) 201 Başarım % [12 60 60 1] [12 50 50 1] [12 10 10 1] Normal Neptune Pod Süre (sn) 96.77 88.72 99.84 190 [12 60 60 1] [12 50 50 1] [12 10 10 1] Normal 95.96 Neptune Pod 79.82 99.84 Deneme 1’in başarım oranı en yüksek değere sahiptir. Ancak Şekil 6.10’daki Neptune saldırı motifini bulan net2 sinir ağı Neptune saldırısının olduğu bağlantı noktalarında bu saldırıyı yakalamasına rağmen normal trafik motifini de “10” değerine yakınsamıştır. Bu yakınsama normal trafik akışının Neptune saldırısı gibi görünmesine neden olmuştur. Benzer şekilde Şekil 6.10, Şekil 6.11 ve Şekil 6.12’deki normal trafik grafiklerinde görüldüğü gibi normal trafiği yakalayan net1 sinir ağı diğer verilerin sonuçlarını da “0” değerine yakınsamaktadır. Bu yüzden saldırılar da normal trafik gibi görülmektedir. Dolayısı ile Deney 3’te yapılan denemelerde sinir ağları farklı trafikleri birbirlerinden ayırmada başarılı olamamıştır. Çizelge 6.4 Deney 4 – Süre ve başarım oranları Deney4 Saldırıları ayrı ayrı tanıyan eğitim setleri yöntemi – Bilinmeyen saldırının bulunması Kullanılan Ağ Yapısı : Normal [12 40 40 1] – Neptune [12 40 40 1] – Pod [12 10 10 1] Deneme 1 Deneme 2 Başarım % Süre (sn) Normal Neptune Pod 211 98.38 93.02 99.82 Deneme 3 Başarım % Süre Satan (sn) Normal Neptune Pod 0 198 100 100 99.82 Satan Süre (sn) 0 201 Başarım % Normal Neptune 100 98.31 Pod 99.82 Satan 0 Deney 4’te bilinmeyen saldırıyı (SATAN) YSA’lar (net1, net2, net3) normal ve diğer saldırıların motiflerinden ayıramamıştır. Şekil 6.14’te normal trafiği yakalayan net1 sinir ağını gösteren grafikte normal trafiğin yakınsanması gereken “0” değerine hem bilinen hemde bilinmeyen saldırılar yakınsanmıştır. Şekil 6.14’teki Neptune saldırısının bulunmasını gösteren grafikte bilinmeyen saldırı da Neptune saldırısının yakınsanacağı “10” değerine yakınsanmıştır. Benzer şekilde Şekil 6.14’te Pod grafiğinde bilinmeyen 79 saldırının Pod saldırı motifine (“14” değerine) yakınsandığı görülmektedir. Şekil 6.15 ve Şekil 6.16’daki Pod grafiklerinde de bilinmeyen saldırı motifi “14” değerine yakınsanmıştır. Şekil 6.14, Şekil 6.15 ve Şekil 6.16’daki tüm grafiklerde bilinmeyen saldırı (SATAN) motifi diğer motiflerin yakınsandığı değerlere yakınsandığı görülmektedir. Bu nedenle ayrı ayrı sinir ağları ile yapılan bilinmeyen saldırıların bulunması deneylerinde bilinmeyen saldırıların bulunması mümkün olmamıştır. 6.6 Bölüm Özeti Uygulamalar MATLAB programı kullanılarak yapılan deneylerden oluşmaktadır. NN ile oluşturulan YSA ‘ların normal ve saldırı nitelikli motifleri birbirlerinden ayırmaları beklenmektedir. Yapılan dört deneyin grafiksel gösterimleri yukarıda verilmiştir. Yapılan deneylerde kullanılan eğitim ve test veri setleri Şekil 6.17’de tablo halinde özetlenmiştir. Deneylerde iki yöntem kullanılmıştır. Bunlar tek bir eğitim seti kullanılarak hazırlanan “Doğrudan Eğitim Yöntemi” ve ayrı ayrı eğitim veri setlerini kullanan “saldırıları ayrı ayrı tanıyan eğitim setleri yöntemi” dir. Her iki yöntemde bilinen ve bilinmeyen saldırıları tespit etmeleri için farklı test veri setleri ile test edilmiştir. Deneylerde elde edilen başarım oranları ve süreleri detaylı olarak çalışmada belirtilmiştir. Başarım oranının nasıl hesaplanacağı ve ölçütleri belirtilmiş, normal ağ trafiği için tolerans aralıkları belirlenmiştir. 80 Bilinen Saldırıların Yakalanması Eğitim Seti Test Seti Bilinmeyen Saldırıların Yakalanması Eğitim Seti Deney 1 Doğrudan Eğitim Yöntemi tumun.txt Deney 2 test.txt tumun.txt norm.txt nept.txt pod.txt testsatan.txt Deney 4 Deney 3 Saldırıları ayrı ayrı tanıyan eğitim setleri yöntemi Test Seti text txt norm.txt nept.txt pod.txt testsatan.txt Şekil 6.17 Deneylerde kullanılan veri setleri Yapılan deneylerin sonucunda Doğrudan Eğitim Yöntemi’ni kullanan YSA’ların hem bilinen hem de bilinmeyen saldırıları başarılı bir şekilde yakaladığı gözlenmiştir. 81 7. TARTIŞMA ve SONUÇ Bu tezde YSA kullanılarak STS’ler oluşturulmuştur. Kullanılan YSA çok katmanlı algılayıcıları kullanmaktadır. MATLAB programının NN bileşeni ile oluşturulan YSA modeli LM algoritmalarını kullanmaktadır. YSA oluşturulurken iki yöntem kullanılmıştır. Birinci yöntem tüm saldırıların tek bir YSA ile bulunması yöntemidir. İkinci yöntem ise her saldırı için farklı eğitim setleri ile eğitilmiş YSA’ların kullanılması yöntemidir. Her iki yöntemde kurulan YSA’lardan önceden bilinen ve bilinmeyen saldırıları yakalamaları beklenmiştir. Birinci yöntemde hem bilinen hem de bilinmeyen saldırıların yakalanmasında yüksek başarım sağlanmıştır. Bilinen saldırıların bulunması deneylerinde normal, Neptune ve Pod saldırılarının başarım oranları sırası ile % 99.92, % 100 ve % 99.83’dür. Bilinen saldırıların bulunması deneylerinde ortalama başarım oranı % 99.91’dir. Benzer şekilde bilinmeyen saldırıların bulunması deneylerinde normal, Neptune, Pod ve SATAN saldırılarının başarım oranları sırası ile % 99.19, % 83.5, % 98 ve % 100’dür. Bilinemeyen saldırıların bulunması deneylerinin ortalama başarım oranı ise % 98.40’dır. Birinci yönteme göre yapılan deneylerin sonuçları Çizelge 7.1’de özet halinde verilmiştir. Çizelge 7.1 Ortalama Başarım Oranları YSA Yapısı İşlem Eleman Sayısı Veri Seti ÇKA [12 40 40 1] Darpa’98 Özellik Sayısı 5 82 Bilinen Saldırıların Bulunması Ortalama Başarım Oranı(%) Bilinmeyen Saldırıların Bulunması Ortalama Başarım Oranı(%) 99.91 98.40 İkinci yöntemde ayrı ayrı oluşturulan YSA’lar bilinen saldırıyı veya normal trafiği yakalamalarına rağmen, bilinmeyen saldırıların bulunması deneylerinde farklı saldırı trafik değerlerini, önceden öğrendikleri saldırıların değerlerine yakınsamışlardır. Bu nedenle ikinci yöntem başarılı olmamıştır. Normal ve tüm saldırıların bilgilerini tek bir eğitim setinden öğrenen YSA’lar çalışmamızda başarılı olmuştur. Bunun nedeni YSA’nın ağın tümünü öğrenmesindeki başarısıdır. Ağın tümünü öğrenen bir YSA karşılaştırmalı olarak ağdaki ağırlıkları özenle değiştirmekte ve olabildiğince ayırt edici olmaktadır. Bir sinir ağının tek bir saldırıyı öğrenmesi daha kolaydır. Tüm eğitim seti içerisinde öğrenmesi gereken sadece bir saldırı veya normal trafik motifi olduğundan YSA kısa süre içerisinde eğitimini tamamlayacaktır. Bunu yapmak için YSA hedef (goal) değerine ulaşmak için birkaç yineleme (iterasyon) yapması gerekmektedir. Eğitilmiş YSA aslında test ortamında sadece kendisine öğretilen bir motifi bulmaya çalışacaktır. Örneğin Neptune saldırısını öğrenen bir YSA test veri seti içerisindeki Pod ve normal saldırıları bir grup olarak algılarken Neptune saldırısını farklı bir grup olarak görecektir. Ek 5’te verilen test veri setinde saldırı motiflerinin bir birlerine çok benzediği görülecektir. Dolayısı ile sadece öğrendiği saldırıyı diğer gruplardan ayırabilme yeteneğine sahip bir YSA bilinmeyen bir saldırı motifi ile karşılaştığında bu saldırıyı sadece kendisinden farklı olan gruba ait olduğunu düşünecektir. Sonuç olarak YSA eğitimini aldığı saldırı motifi dışında kalan tüm saldırıları ve normal trafiği tek bir değere yakınsamaktadır. Bu nedenle yaptığımız deneylerde tek tek saldırıları öğrenen ağlar başarısız olmuş ve tüm saldırılar aynı değerlere yakınsanmıştır. Tüm ağı öğrenen YSA’lar başarım oranları yüksek olmalarına karşı ağın büyüklüğüne göre öğrenme süreleri daha fazla olduğu yapılan deneylerimizde gözlenmiştir. Tüm ağı öğrenen YSA’lar tek tek saldırıları öğrenen ağlara göre % 2.56 oranında daha uzun sürede eğitimlerini tamamlamaktadırlar. Ancak tüm saldırıları tek bir YSA ile öğrenme yönteminin başarım oranlarının yüksek olması nedeni ile bu zaman farkı önemli değildir. 83 Logaritmik sigmoid aktivasyon fonksiyonları kullanan YSA’lar bilinen saldırıları yakalamada başarılı olmalarına rağmen bilinmeyen saldırıları yakalamada başarılı olmadıkları gözlenmiştir. Altun vd. (2007) çalışmalarında belirttiği gibi hiperbolik tanjant sigmoid (tansig) ve doğrusal aktivasyon (purelin) fonksiyonlarını kullanan YSA’ların sınıflandırma problemlerindeki yüksek başarımları bu çalışmada da gözlenmiştir. Bu çalışmanın benzer önceki çalışmalar ile karşılaştırılması aşağıda yapılmıştır. Literatür incelemesinde YSA kullanılarak yapılan çalışmalardan bazılarının başarım oranları elde edilmiş ve Çizelge 7.2’de verilmiştir. Çizelge 7.2 Önceki Çalışmaların Başarım Oranları Çalışmayı Yapan Güven (2007) YSA Yapısı ÇKA İşlem Eleman Sayısı Veri Seti Özellik Başarım Sayısı Oranları(%) [41 6 8 1] KDD'99 41 92,5 10 91 Cannady (1998) ÇKA [9 * * 1] Cannady'in Oluşturduğu Veri Seti Ryan (1998) ÇKA [100 30 10] Kendi veri seti 100 96 ÇKA, DVM [41 40 40 1] KDD'99 41 99,25 [50 30 3] DARPA '99 35 93,43 Mukkamala (2002) Sammany (2007) ÇKA Çizelge 7.1’de verilen bu çalışmaya ait başarım oranlarının Çizelge 7.2’deki çalışmaların başarım oranlarından yüksek olduğu görülmüştür. Mukkamala et al. (2002) çalışmalarında elde ettiği % 99,25’lik başarım oranının ise çok sayıda özelliğin kullanılması ve ÇKA / DVM’nin birlikte çalıştırılmasından kaynaklandığı görülmüştür. Çalışmada DARPA veri setinin farklı bir şekilde düzenlenerek kullanılması literatürde ki çalışmalardan farklılık göstermektedir. Veri setleri hazırlanırken YSA tarafından ayırt 84 edici özelliği olmayan DARPA veri seti özellikleri kullanılmamıştır. Özelliklerin azaltılması eğitim süresini azaltmasına karşın, oluşturulan YSA’ların daha fazla katman ve işlem elemanı kullanılmalarına neden olmuştur. Ancak bu çalışmada kullanılan veri setlerindeki IP adresleri bir özellik yerine dört adet özellik olarak tanıtılarak bu olumsuzluk giderilmeye çalışılmıştır. Veri setlerindeki IP adresleri 4 adet sekizliden (octet) oluştuğu için her sekizli 4 ayrı özellik olarak değerlendirilmiştir. Kaplantzis and Mani (2006), Güven (2007) ve Öksüz’ün (2007) çalışmalarından farklı olarak bu tez çalışmasında ilk kez IP adresi parçalanarak 4 ayrı özellik olarak YSA’ya öğretilmiştir. Çalışmanın diğer farklı yönü ise bilgisayar ağlarının güvenliği için pratik bir çözüm üretmesidir. DARPA veri setleri ile eğitilen YSA’lar TCPdump programı ile gerçek internet ortamında toplanan verilerin test edilmesine olanak sağlamaktadır. Çünkü internet ortamında toplanan TCPdump veri paketleri düzenlenmiş DARPA veri setleri ile aynı yapıya sahiptir. Çalışma boyunca karşılaşılan sıkıntılar ve bu sıkıntıları giderecek görüşlerimiz aşağıda sıralanmıştır. Çalışmada oluşturulan YSA’ların eğitim sürelerinin uzun veya kısa olmaları kullanılan bilgisayarlara bağlıdır. İşlemci sayısı fazla olan bilgisayarlar ile yapılan denemelerde deney sürelerinin kısaldığı gözlenmiştir. Çalışmada YSA’ların aynı eğitim veri setini kullanmalarına rağmen farklı zamanlarda eğitilmeleri halinde başarım oranlarının farklı olduğu gözlenmiştir. Başarım oranlarındaki bu farklılığın nedeni ise YSA’ların her yeni eğitimde saldırı motiflerini farklı ağırlıklar ile öğrenmeleridir. Bu yüzden çok sayıda deneme yapılarak başarım oranı yüksek YSA’ların tespit edilmesi ve bu eğitilmiş YSA’ların pratik uygulamalarda kullanılması gerekmektedir. YSA’ların eğitimlerinde kullanılan veri setlerinin oluşturulması ve güncellenmesinde zorluklar yaşanmaktadır. Çok hızlı artan saldırıların tespiti ve bu saldırıların bulunduğu 85 veri setlerinin oluşturulması oldukça güç ve pahalıdır. Bu nedenle veri setleri günümüzde gönüllülerin ve ağ güvenlik şirketlerinin oluşturduğu kara listelerden (black list) temin edilmektedir. Hibrit bir yapıda oluşturulan STS’lerde bu veri setleri hem YSA’larda hem de imza tabanlı saldırı tespit mekanizmalarında kullanılmaktadır. YSA’lar bilinmeyen saldırıların bulunmasında yüksek başarım sağlarken imza tabanlı saldırı tespit yöntemleri ise bilinen saldırıları yakalamada yüksek başarım sağlamaktadırlar. 86 KAYNAKLAR Altun, H., Eminoğlu, U. ve Tezekici, B.S. 2002. MLP Yapay Sinir Ağlarında Öğrenme Sürecinin Aktivasyon Fonksiyonu ve İstatiksel Değişim Gösteren Giriş Verilerine Bağımlılığı. Eleco’2002 Bildiriler Kitabı, s.310-314, Bursa. Anderson, D. and McNeill, G. 1992. Artificial Neural Networks Technology. A DACS State-of-the-Art Report, pp. 31, New York. Anderson, J.P. 1980. Computer security threat monitoring and surveillance. Technical Report, Fort Washington, Pennsylvania, pp. 5-8, Washington. Anonymous. MIT Lincoln Lab. 2008. Web Sitesi : http://www.ll.mit.edu/mission/communications/ist/index.html, Erişim Tarihi : 10/04/2008. Atabey, O. 2007. Temel Saldırı Teknikleri, http://www.tcpsecurity.com/doc/genel/temelsaldiriteknikleri.html. Erişim Tarihi : 23/ 11/ 2007. Bolat, S. ve Kalenderli, Ö. 2003. Levenberg-Marquardt Algoritması Kullanılan Yapay ve Sinir Ağı ile Elektrot Biçim Optimizasyonu. International XII. Turkish Symposium on Artificial Intelligence and Neural Networks – TAINN 2003, 18 Mart Üniversitesi, Çanakkale. Cannady, J. 1998. Artificial neural networks for misuse detection. Proceedings of the 1998 National Information Systems Security Conference (NISSC'98), pp. 2-4, Arlington, VA. Erol, M. 2005. Saldırı Tespit Sistemlerinde İstatistiksel Anormallik Belirleme Kullanımı. İTÜ Bilgisayar Müh. Bölümü, İstanbul. 87 Ghosh, A.K., Schwartzbard, A. and Schatz, A. 1999. Learning Program Behaviour for Intrusion Detection. USENIX Proceedings of the Workshop on Intrusion Detection and Network Monitoring, Santa Clara, California. Ghosh, A.K. and Schwartzbard, A. 1999. A study in using neural networks for anomaly and misuse detection. USENIX Security Symposium, Proceedings of the 8th conference on USENIX Security Symposium - Volume 8, pp. 12, Washington, D.C. Güven, E.N. 2007. Zeki Saldırı Tespit Sistemlerinin İncelenmesi, Tasarımı ve Gerçekleştirilmesi. Yüksek Lisans Tezi, Gazi Üniversitesi, Ankara. Haykin, S. 1999. Neural Networks : A Comprehensive Foundation, Macmillan College Publishing Company, pp. 24, New York. Ilgun, K., Kemmerer, R.A and Porras, A.P. 1995. State Transition Analysis: A RuleBased Intrusion Detection Approach. IEEE Transactions on Software Engineering, Vol. 20. Kaplantzis, S. and Mani, N. 2006. A Study on Classfication Techniques for Network Intrusion Detection. Monash University, Australia. Kemmerer, R.A. and Vigna, G. 2002. Intrusion Detection: A Brief History and Overview, Security and Privacy, pp. 27-30. Kleinrock, L. 1961. Information Flow in Large Communication Nets Proposal of PhD., MIT, Boston, MA. Lichodzijewski, P., Zincir-Heywood, A. and Heywood, M. 2002. Dynamic intrusion detection using self organizing maps. Dalhousie University, Halifax, NS. 88 Lippmann, R., Haines, W.H., Fried, D.J., Korba, J. and Das, K. 2000. The 1999 DARPA Off-Line Intrusion Detection Evaluation. MIT Lincoln Laboratory Technical Report. Moradi, M. and Zulkernine M. 2004. A Neural Network Based System for Intrusion Detection and Classification of Attacks. Natural Sciences and Eng. Research Council of Canada (NSERC) Reports, 148-04. Mukkamala, S. 2002. Intrusion Detection Using Neural Networks and Support Vector Machine. Proceedings of the 2002 IEEE International Joint Conference on Neural Networks (IJCNN). Honolulu, USA. Öksüz, A. 2007. Unsupervised Intrusion Detection System. Master Thesis, Technical University of Denmark, Lyngby, Denmark. Öztemel, E. 2006. Yapay Sinir Ağları. Papatya Yayıncılık, 232, İstanbul. Patcha, A. 2006. Network Anomaly Detection with Incomplete Audit Data. Ph.D., Virginia Polytechnic Institute and State University, Blacksburg, Virginia. Rosenblatt, F. 1958. Perceptrons . Psychological Review Vol. (65), No:6. Ryan J., Lin, M. and Miikkulainen, R. 1998. Intrusion Detection with NN. The University of Texas, Austin. Sammany, M., Sharawi, M., El-Beltagy, M. and Saroit, I. 2007. Artificial Neural Networks Architecture For Intrusion Detection Systems and Classification of Attacks. INFOS 2007 Fifth International Conference, Giza, Egypt. Sazlı, M. H. ve Tanrıkulu, H. 2007. Saldırı tespit sistemlerinde YSA kullanımı. İnet-tr 2007 Konferansı Bildiri Kitabı, s. 211-216., Ankara. 89 Vesely, A. and Breclerova, D. 2004. Neural Networks in Intrusion Detection Systms. Agriculture Economy, 50, 2004 (1), pp. 35-39. Prague, Czech Republic. Vural, B.B. 2007. Yapay Sinir Ağları ile Finansal Tahmin. Ankara Üniversitesi, Yüksek Lisans Tezi, Ankara. Wu, N. and Zhang, J. 2003. Factor analysis based anomaly detection. Information Assurance Workshop, pp. 108-115. West Point, New York. Yurtoğlu, H. 2005. Yapay sinir ağları metodolojisi ile öngörü modellemesi: bazı makroekonomik değişkenler için Türkiye örneği. Uzmanlık Tezi, Devlet Planlama Teşkilatı, Ekonomik Modeller ve Stratejik Araştırmalar Genel Müdürlüğü, Ankara, s. 3-43. Zanero, S. 2005. Improving Self Organizing Map Performance for Network Intrusion Detection. International Workshop on Clustering High-Dimensional data and its applications, SDM 05 SIAM Conference On Data Mining, pp. 30-37. 90 EKLER (Ekler CD ortamında verilmiştir) EK 1 Doğrudan Eğitim Yönteminde Kullanılan Eğitim Veri Seti Bilinen ve Bilinmeyen Saldırıların Bulunması. Deney -1 ve Deney -2 ‘de Kullanılan Eğitim Seti tumun.txt dosyası : 2031*12 Matrix EK 2 İki Yöntemde Kullanılan Test Veri Seti - Bilinen Saldırıların Bulunması 180*12 Matrix Deney -1’de Kullanılan Eğitim Veri Seti test.txt dosyası : 180*12 Matris EK 3 İki Yöntemde de Kullanılan Test Veri Seti - Bilinmeyen Saldırıların bulunması 180*12 Matrix Deney -2 ve Deney -4 ’de Kullanılan Test Veri Seti testsatan.txt dosyası : 1324*12 Matris EK 4 Saldırıları ayrı ayrı tanıyan eğitim yöntemi – Eğitim Veri Setleri Deney -3 ve Deney -4’de Kullanılan Test Veri Setleri: norm.txt, nept.txt ve pod.txt dosyaları EK 5 Başarılı Ağın Bulunması İçin Oluşturulan MATLAB Kodları EK 6 Başarılı Sinir Ağının Bulunması İçin Yapılan Testlerin Sonuçları 91 ÖZGEÇMİŞ Adı Soyadı : Haluk TANRIKULU Doğum Yeri : Erzurum Doğum Tarihi : 25.02.1968 Medeni Hali : Evli Yabancı Dil : İngilizce Eğitim Durumu (Kurum ve Yıl) Lise : Ankara Keçiören Lisesi (1985) Lisans : ODTÜ – Mühendislik Fakültesi Makine Mühendisliği (1992) Yüksek Lisans : Ankara Üniversitesi Fen Bilimleri Enstitüsü Elektronik Mühendisliği Anabilim Dalı (Şubat 2005 – Mart 2009) Çalıştığı Kurumlar : Türk Telekom A.Ş. Genel Müdürlüğü (1992 - 92 )