ankara üniversitesi fen bilimleri enstitüsü yüksek lisans tezi saldırı

advertisement
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 )
Download