1. GİRİŞ
Bilgisayar sistemlerinde en genel anlamda sızma ya da saldırı makine başından yapılacak
izinsiz erişimlerden başlar ve çok geniş bir spektruma yayılır. Bilgisayar ağları söz konusu
olduğunda ise saldırılar sadece bu tip kullanıcı ve erişim temelli saldırılar ile sınırlı kalmaz.
Ağ üzerinden yapılan saldırılar günümüzde en sık karşılaşılan problemlerdir. Bu çalışma ağ
üzerinden yapılan saldırıları ve onlara karşı geliştirilen saldırı tespit mekanizmalarını
incelemeyi hedeflemektedir. Bu tip saldırılar 4 temel kategoride incelenebilirler.
1) Bilgi Tarama (Probe ya da scan): Bu saldırılar bir sunucunun ya da herhangi
makinanın, geçerli ip adreslerini, aktif portlarını veya işletim sistemini öğrenmek için
yapılan saldırılardır. Bilinen saldırılardan bunlara örnek olarak:
a. ipsweep: belirli bir protu sürekli tarama saldırısı.
b. Portsweep: bir sunucu üzerindeki hizmetleri bulmak için tüm portları tarar.
verilebilir.
2) Hizmet Engelleme (Denial of Service - DoS): Bu saldırılar genelde TCP/IP protokol
yapısındaki açıklardan faydalanarak veya bir sunucuya çok sayıda istek yönelterek
onu tıkamaya sebep olan saldırılardır. DoS saldırıları kendi içinde gruplara ayrılır [18].
DoS
Şekil 1. DoS saldırı tipleri
Protokol hatalarına dayalı saldırılara örnek olarak ping-of-death (ölümüne ping) saldırısı
yani bir tek büyük boyutlu ICMP eko mesajı gönderilmesi saldırısı vardır. Başka bir
saldırı, TCP SYN paketinin içersine kaynak ve varış adresi aynı makine olan bir paket
gönderilmesiyle olur. Bunlar tek paketle ya da az paketle gerçekleştirilen, protokollerin
açıklarını kullanan saldırılardır. Diğer gruptaki saldırılar devamlı istekte bulunulmasına
dayanır. Hem sunucu makine hem de ağ meşgul edilir. Örneğin bu, bir sunucuya devamlı
bağlantı isteği yapmak olabilir. Saldırı tek bir makine kaynaklı olabileceği gibi ağ
üzerinden ele geçirilen birçok makine ile de yapılabilir. Bu tip makinelere zombi denir.
Eğer zombi kullanılmıyorsa yansıtıcı da kullanılabilir. Yansıtıcı herhangi bir sunucu
Protokol
hatalarına dayalı
Devamlı paket
göndermeye dayalı
Çok kaynak
kullanarak
Tek kaynak
kullanarak
Zombi
kullanarak
Yansıtıcı
kullanarak
3
olabilir. Saldırgan kurbanın adresi ile sorgu yapar ve dolayısıyla sunucu farkında olmadan
kurbanın adresine cevaplar gönderir. Özel olarak kullanılan saldırlardan bazıları:
a. Smurf: ICMP mesajlarının broadcast ile tüm ağa dağıtılmasıyla oluşur.
b. Selfping: kullanıcının makinayı sürekli pinglemesiyle gerçekleşir.
c. tcpreset: saldırgan kurbanın kurmaya çalıştığı bağlantılar için kurban adına
reset göndererek bağlantısını engeller.
d. mailbomb:saldırgan sunucuya sürekli mail gönderir.
3) Yönetici Hesabı ile Yerel Oturum Açma (Remote to Local - R2L): Kullanıcı
haklarına sahip olunmadığı durumda misafir ya da başka bir kullanıcı olarak izinsiz
erişim yapılmasıdır. Bunlara örnek:
a. Sshtrojan: unix üzerinde çalşına bir trojan saldırısıdır.
b. guest: tahmini kolay şifreleri bularak sisteme girilmesidir.
4) Kullanıcı Hesabının Yönetici Hesabına Yükseltilmesi (User to root - U2R): Bu tip
saldırılarda sisteme girme izni olan fakat yönetici olmayan bir kullanıcının yönetici
izni gerektirecek işler yapmaya çalışmasıdır. Örnekleri:
a. Eject: Solaris üzerinde eject programı ile tampon taşmasına yol açıp, yönetici
haklarına sahip olunmasıdır.
b. Sqlattack: sql veritabanı kurulu Linux makinalarda sunucuya bağlanan
kullanıcının belirli komutlarla yönetici hakları ile komut satırı elde etmesidir.
Bu çalışma çerçevesinde tüm bu saldırıları yakalamaya odaklanan saldırı tespit
sistemlerinin yapıları, kullandıkları tespit yöntemleri genel olarak tanıtılacaktır. Fakat özelde
odaklanılacak konu bir kullanıcının hakkı olmadan sisteme giriş yapmak istemesi veya
sisteme girmeye hakkı olup da bazı işlemlere izni olmayan kullanıcının bu izinleri aşmaya
çalışması gibi saldırılar olmayacaktır. Genel tanımlar verildikten sonra daha çok ağ üzerinden
yapılan saldırı tespitine yönelik çalışmalara odaklanacağız.
Ağ trafiğini esas alarak, burada oluşan anormallikleri gözlemleyerek, saldıryı
belirlemek mümkündür. Bu tip modellere ağ aktivitesi modelleri (Network activity models)
adı verilir ve ağdaki trafik yoğunluğu üzerinden saldırı tespitine odaklanırlar. Bu durumda
tespit edilebilecek saldırılar yukarda sıralanan saldırılardan 3. ve 4. maddelere giren ve en
yaygın saldırılardan olan DoS ve tarama (probe) saldırıları olacaktır. Bu tipteki saldırıların ne
kadar önemli olduğu 2002 yılında yapılan bir çalışmada gösterilmiştir. Burada internet
üzerindeki 1600 ağdan toplanmış verilerin analizi yapılmıştır [1]. İnternet üzerinde hergün
25000 civarında saldırı gerçekleştiği saptanmıştır. Bu çalışmadan alınan aşağıdaki grafikte
sadece yoklama (probe/scan) saldırısı göz önüne alındığında Mayıs-Temmuz ayları arasındaki
kapı numaralarına karşı düşen saldırı yoğunluğu verilmiştir. Tek bir saldırı tipi için verilen
Şekil 2, durumun ne kadar ciddi boyutlarda olduğunu göstermektedir. Bundan başka sadece
1999 yıllında NASA, NATO, Beyaz saray, Pentagon gibi merkezlere yapılan ve başarı
sağlanan saldırıların sayısı 10’u geçmektedir [17].
4
Şekil 2. Mayıs-Temmuz 2002 arasında 10 kapı numarasına yapılan saldırı yoğunluğu [1].
1980’lerde sadece bilgisayar sistemleri uzmanları tarafından yapılan saldırılar artık
otomatikleşmiş saldırı araçları ile çok daha hızlı sürede yapılmaktadır. CERT (Computer
Emergency Readiness Team) tarafından 2000 yılında yayınlanan bir rapordan alınan değerler
Şekil 3’te gösterilmiştir. Saldırı sayılarındaki artışın boyutları daha o senelerden çok ciddi
boyutlara ulaşmış ve giderek elektronik ticaret uygulmalarının da artmasıyla fazlaca maddi
kayıba yol açmaya başlamıştır.
Şekil 3 CERT’e raporlanan saldırı sayısı [17].
Şekil 4’te ise saldırgan davranışlarındaki değişim ve saldırı tiplerinin yıldan yıla değişimi
verilmiştir [17].
5
Şekil 4 1980-1999 arası saldırı tiplerindeki ve saldırgan profillerindeki değişiklikler [17].
Saldırı tanımını yaptıktan sonra Saldırı Tespit Sistemi (STS) tanımını yapmak gerekir.
Saldırı tespitinde kullanılan sistemlere STS denir. Her ne kadar bir STS’nin hedefi DoS,
tarama, U2R, R2L saldırılarını yakalamak olsa da bu pratikte pek mümkün olmamıştır. Ticari,
devlet tarafından geliştirilen ve araştırmacılar tarafından geliştirilen bir çok STS mevcuttur.
Sayıları çok fazla olduğundan çeşitli sınıflandırmalara göre incelemek yerinde olacaktır.
STS’ler değişik yaklaşımlar ile sınıflandırılabilirler. Bunlar sistemin gerçek zamanlı olup
olmaması, dağıtık mimaride olup olmaması, ağ veya sunucu tabanlı olması ve kullandığı
analiz yöntemlerine göre dört adet sınıflandırmayı içerir.
Bu çalışmada ilk iki sınıflandırma üzerinde fazlaca durmayacağız. Kendi
gerçekleyeceğimiz basit analiz için gerçek zamanlı ve dağıtık olmayan, ağ tabanlı bir yapı ve
anormallik tespit yöntemleri kullanılacağı için bunlar üzerinde daha fazla duracağız. Bu
sınıflandırmalara daynarak gruplanan ticari ve akademik STS’lerin kısaca tanıtılmasının
ardından iyi bir STS’de olması gereken özellikleri Bölüm 3’te vereceğiz. Saldırılara karşı
verilebilecek tepkileri Bölüm 4’te inceledikten sonra Bölüm 5’te birçok çalışmada kullanılan
DARPA saldırı tespit test veri setlerini tanıtacağız. Daha sonra 6. Bölümde kendi
analizimizde örnek alabileceğimiz yakın tarihli çalışmalar hakkında detaylı bilgi vereceğiz.
Burada çalışmamızın yakından ilgili olduğu anormallik tespinde istatistiksel yaklaşımları
kullanan makale ve bildirileri inceleyeceğiz. Son olarak da Bölüm 7’de bu ders kapsamında
gerçeklemeye çalıştığımız kendi uygulamamız hakkında bilgi vereceğiz.
2. STS’LERİN SINIFLANDIRILMASI
2.1 Veri İşleme Zamanına Göre:
Burada STS’ler “gerçek zamanlı” ve “gerçek zamanlı olmayan” şeklinde ikiye
ayrılırlar. Gerçek zamalı olmayan sistemlerde veri önce depolanır, sonra analiz için ilgili
STS’ye gönderilir. Gerçek zamanlı sistemlerde veri o anda analiz edilir. Bu tip STS’ler yoğun
bilgi akışı olan ağlarda uygulanması zor olan ama aktif olarak cevap üretilmesi gereken
durumlarda da tek çözüm olan sistemlerdir. Ticari uygulamaların gerçek zamanlı olması
tercih edilir. Biz daha kolay olması açısından biz kendi çalışmamızda depolanmış veriler
üzerinde analiz yapacağız.
2.2 Mimari Yapıya Göre:
STS’ler ağ üzerinden birçok noktadan veri toplayıp bir merkezde işleyebilirler. Bu tip
mimarilere sahip STS’lere dağıtık STS denir. Bunun karşısında ağ üzerinden tek bir yerden
6
veri toplayan STS’ler vardır. Bilinen STS’lerin çoğu bu kategoriye girer. Bizim
hedeflediğimiz sistemde tek bir yerden veri toplanıp işlenmesi durumunu göz önüne
almaktadır. Bunun için İnternet üzerinden aldığımız DARPA veri setlerine ait bir adet ağ
dinleyicisi (sniffer) dosyasını kullanacağız (tcpdump.inside[19]).
2.3. Bilgi Kaynaklarına Göre:
STS’ler bilgi kaynaklarına göre 2’ye ayrılılar. Ağ temelli STS’ler ve sunucu-temelli
STS’ler. Sunucu temelli STS’lerin özel bir hali olarak uygulama temelli STS’ler de
mevcuttur.
Ağ-Temelli STS’ler
Bu STS’lerin temel amacı ağ üzerinden yapılan saldırıları ağ trafiğini gözetleyerek
tespit etmektir. Ağ paketlerini yakalayıp bunları analiz ederek saldırı tespiti yaparlar. Son
yıllarda geliştirilen ağ temelli STS’ler bizim çalışmamızın da temelini oluşturmaktadır.
Bunlardan bir kısmı bölüm 6’da ayrıntılı olarak inceleneceklerdir.
Sunucu-Temelli STS’ler
Sunucu-temelli STS’ler bir bilgisayar sistemi içerisinde toplanan veriler üzerinde
çalışırlar. Bu şekilde işletim sistemine yönelen saldırılar için hangi sistem çağrılarının ve
hangi kullanıcıların sorumlu olduğu tespit edilebilir. Sunucu-temelli STS’ler iki tür bilgi
kaynağı kullanır: işletim sistemi izleme seçenekleri ve sistem günlük dosyaları.
Bunların ağ temelli sistemlere göre bir avantajı: olayların olduğu yerel sunucuyu
izleme yetenekleri sayesinde ağ-temelli STS’lerin yakalayamayacağı saldırıları tespit
edebilirler. Bu saldırılar çoğu zaman fazla trafik yaratmayan R2L veya U2R saldırılarını
içerir.
Uygulama-Temelli STS’ler
Bu STS’ler bir yazılım uygulaması ile meydana gelen olayları analiz eden sunucutemelli
STS’lerin özel bir türüdür. Uygulama-temelli STS’lerde bilgi kaynağı olarak
genellikle uygulamaya ait günlük dosyalar kullanılır. Analiz-motoruna belirli uygulamalar
için o uygulamalara has özellikler bildirildiği taktirde, yetkisini aşan kullanıcıların
gerçekleştirdiği saldırılar uygulama-temelli STS’lerce tespit edilebilir [2].
2. 4 Saldırı Tespit Yöntemlerine Göre:
STS’ler saldırı tespit yöntemlerine göre sınıflandırılırsa 2 temel yöntem söz
konusudur. Bunlardan ilki anormallik tespitine dayanır. Diğeri kötüye kullanım tespiti ya da
bazı kaynaklarda tanımlandığı üzere imza-tanıma üzerinden gider. Aşağıda iki yaklaşım da
ayrıntılı olarak incelenecektir.
2.4.1. Anormallik Tespiti:
Anormallik (anomaly) normal davranıştan sapma anlamına gelir. Burada normal
davranıştan farklılık göstren davranışların saldırı olarak işaretlenmesi söz konusudur. Normal
bir sistemde kullanıcı istekleri tahmin edilebilir istatistiksel değerlerle uyuşur. Burada normal
davranışın bilinmesi ve modelenmesi esastır. Ancak bundan sonra bir anormallik varsa tespit
edilebilir. Normal davranış bir dağılım ile (bkz. Şekil 5) veya dağılımın momentleriyle
modellenebilir. Belirli kurallar zinciri ile tanımlanabilir veya başka yöntemler uygulanabilir
ama sonuçta bu tanımlı ya da öğrenilen davranıştan sapma anormallik olarak değerlendirilir
ve sapmanın şiddetine göre saldırı olarak sınıflandırılabilir. Bu yöntemin avantajı daha
önceden tanınmayan saldırıların keşfedilmesi olasılığıdır. Dezavantajı ise yanlış alarmların
(false alarm/positive) sayısının yüksek olmasıdır [3]. Yanlış alarm tanımı bir sonraki bölümde
ayrıntılı olarak verilecektir fakat kabaca “var olmayan” bir durumu “var” olarak tanımaktır .
7
Şekil 5 Normal ve saldırı içeren dağılımın teorik ayrışımı [20]
Anormallik tespitinde istatistiksel yöntemler, yapay sinir ağları, veri madenciliği
bilgisayar bağışıklık sistemi (computer immunology) gibi birçok yaklaşım uygulanabilir [4].
Bunları kendi içinde sınıflandırmak gerekirse [5]:
a) Kendi-kendine öğrenen sistemler: Belli bir veri seti ile eğitilerek normal davranışı
öğreniler. Bunlar i) zaman serilerini kullanmayan kural tabanlı sistemler ve açıklayıcı
istatistikleri kullanan sistemler olarak ve ii) zaman serilerini kullanan yapay sinir ağları
temelli teknikler olarak üçe ayrılırlar.
1. Zaman serisi kullanmayan sistemler:
a. Kural Tabalı (Rule Based) Sistemler: Sistem kendisi trafiği inceleyip kurallar
oluşturuyor ve saldırı tespiti sırasında bu kararlara göre davranıyorsa bu sınıfa
girer.
b. Açıklayıcı İstatistikleri (Descriptive Statistics) Kullanan Sistemler: Kullanıcı
profilinin basit istatistiklerle oluşturulup, buradan uzaklık vektörlerini (distance
vector) kullanarak karar alan sistemlerdir.
2. Zaman serisi kullanan sistemler:
a. Yapay Sinir ağları (Artificial Neural Networks – ANN) yaklaşımı: Burada
sistem önceden bir zaman serisi ile eğitilir ve çalışmaya başladığında, buradan
öğrendikleri ile karar verir.
b) Programlanan Sistemler:
a. Açıklayıcı İstatistikleri kullanan sistemler: Burada yukardakinden farklı olarak
profiller daha önceden tanımlanmıştır. Profilleri sınırlayan belli bir eşik değeri, bir
istatistiksel büyüklük veya basit bir kural olabilir. Bu yaklaşımı kullanan
çalışmaların örnekleri Bölüm 6’da incelenecektir.
b. Bilinmeyeni reddet (Default Deny) yaklaşımı: Tek başına çok sık kullanılan bir
yaklaşım olmasa da, sistem davranışındaki durum-geçiş değerlerini kontrol
ederek, farklı bir geçiş (transition) görüldüğünde izin vermemek şeklinde bir
yaklaşıma sahiptir.
8
c. Sinyal İşleme Tekniklerini Kullanan yaklaşım: Burada sistem parametreleri
sinyal işleme teknikleriyle belirlenir ve saldırı içermeyen normal veri setinden
çıkartılan eşik değerleri ile anormallik tespiti yapılır. Bu yaklaşım diğerlerine göre
yenidir ve çok geniş bir alanı kapsamaktadır. Henüz sınırlı sayıda sinyal işleme
tekniği saldırı içeren zaman serilerine uygulanmıştır. Bölüm 6’da bunların
örnekleri üzerinde duracağız. Özellikle son yıllarda popüler olan temel bileşen
analizi (Principle Component Analysis - PCA) yaklaşımı ile elde edilen
özdeğerlerin sistem parameteresi olarak kullanılması bu alandaki ilginç
çalışmalardan biridir.
2.4.2. İmza-tanıma Temelli Saldırı Tespiti:
Kötüye kullanım tespiti (Misuse detection) ya da imza-tanımaya dayalı sistemlerde ise
her davranışın bir imzası-karakteri vardır. Bunlar daha önce görülen davranış şablonlarıdır.
Eğer gözlenlenen davranış daha önceden bilinen bir saldırı imzası ile eşleşiyorsa saldırı olarak
sınıflandırılır. Daha önce karşılaşılmadıysa saldırı olarak nitelenmez. Avantajı saldırıyı kesin
olarak tanıyabilmesidir. Yani yanlış alarm vermezler fakat yeni bir saldırı gelirse bunu
sezemezler. İmza temelli sistemler daha çok ticari sistemlerde kullanılırlar.
İmza-tanımaya dayalı sistmelere ait yaklaşımlar sınıflandırılırsa [5]:
a. Programlanan Sistemler: Kendi kendine öğrenen hibrid bir teknik olan Ripper
dışında tüm imza temelli teknikler bu sınıfa girerler.
a. Durum modellemesi: Burada tüm davranışlar durumlara karşı düşer. Eğer bir
davranış daha önceden tanımlı durumlara ve durum geçişlerine denk düşen
hareketler yapıyorsa saldırı olarak tanınır.
b. Exper sistemler: Sızma belirlerme sistemlerin ilkleri kural-tabanlı (rulebased)
exper sistemlerdir.
c. Örüntü eşleme (Pattern Matching): Sistemde daha önceden tanımlanmış,
olmaması gereken bazı sözcüklerin tanınmasına yardım eder. Esnek değildir
fakat basittir. Örneğin “parola dosyasını kopyala” komutu görüldüğünde bunun
bir saldırı olduğunu en basit şekilde bu yöntem tespit eder.
Aşağıda Tablo 1’de saldırı tespit sistemlerinin sınıflandırması şeması ve bunlara denk
düşen gerçeklenmiş sistemler yer almaktadır. Bu tablo ve sınıflandırma 2000 yılında yapılan
bir çalışmada yer aldığından en son gelişmeleri içermemektedir. Biz 6. Bölümde bu seneden
sonra önerilen istatistiksel yaklaşımları içeren anormallik tespiti sistemleri inceleyeceğiz.
9
Tablo 1. Saldırı Tespit Yöntemlerinin ve Araçlarının Sınıflandırılması
Zaman serisi Kural tabanlı W&S
kullanmayan Açıklayıcı
İstatistikler
IDES
NIDES
EMERALD
Haystack
Kendi-kendine
Öğrenen
Sistemler
Zaman serisi
kullanan
Yapay sinir
ağları
Hyperview
Basit
istatistikler
MIDAS
NADIR
Haystack
Basit kural NSM
Açıklayıcı
İstatistikler
Eşik değeri ComputerWatch
Anormallik
Tabanlı
Programlanan
Sistemler
Bilinmeyeni Reddet Durum Serileri
Modeli
JANUS
Bro
Durum Modellemesi Durum Geçiş USTAT
Petri-net IDIOT
Exper sistem NIDES
EMERALD
MIDAS
DIDS
Örüntü eşleme NSM
İmza
Tanıma
tabanlı
Programlanan
Sistemler
Basit kural NADIR
Bro
HayStack
İmza
esinlenmeli
Kendi kendine
öğrenen
Otomatik özellik
seçme
Ripper
Tablo 1’de bazı sistemlerin birden fazla kategoride yer alması, ilgili yaklaşımların
tümünü içerdiğini gösteriyor. Burada amacımız varolan bu sistemlerin incelenmesi
olmadığından dolayı sistemler hakkında sadece kısa bilgi vermekle yetineceğiz.
Haystack: Amerikan Hava Kuvvetlerinde kullanılan Unisys 1100/60 ana bilgisayarları için
tasarlanmış bir saldırı tespit sistemidir. 1988 yılında geliştirilmiştir.
MIDAS: 1988’de National Computer Security Centre (Ulusal Bilgisayar Güvelik Merkezi)
için geliştirilmiştir. Exper sistem tabanlıdır.
IDES (Intrusion Detection Expert System): IDES 1988-1992 yılları arasında üzerinde
çalışılan birçok sistemi içerir. Bu arada birçok versiyonu çıkmıştır ve son olarak NIDES
(Next-Generation Intrusion Detection Expert System) adını almıştır. Bu çalışmalardan en
eskilerinden ve ünlülerinden biri olan Denning’in sistemi [6] aşağıda daha ayrıntılı olarak
W&S (Wisdom and Sense – Zeka ve His): Geliştirilmesine 1984 yılında başlanmasına
rağmen ilk makalesi 1989’da çıkmıştır. Zeka kısmı geçmişteki audit verileri inceleyerek
normal davranışı oluşturması anlamına gelir. His kısmı ise bunların kural haline getirilip
exper sisteme verildikten sonra anormal davranışların yakalanması anlamına gelmektedir.
ComputerWatch: AT&T Bell Laboratuarları tarafından ticari bir ürün olarak 1990 yılında
geliştirilmiştir.
10
NSM (Network Security Monitor): NSM’de IDES gibi revizyonlardan geçmiştir ve
geliştirilmesi 1990-94 arasına denk düşer. NSM ağı dinleyerek, ağın kullanımıyla ilgili bir
profil geliştirir ve geçerli kullanımı onunla karşılaştırır. Elde edilen veri beklenen bağlantı
verisiyle karşılaştırılır ve beklenen aralıkta çıkmayan her veri anormal olarak işaretlenir. Biz
çalışmamızda NSM tipinde bir STS gerçeklenmesi üzerinde duracağız.
NADIR: 1991-93 yılları arasında Los Alamos Laboratuarlarında geliştirilmiştir. NADIR
kullanıcılar hakkında haftalık istatistikler tutar. Daha sonra bu istatistikleri exper sistem
kurallarıyla karşılaştırır.
Hyperview: 1992 yılında geliştirilmiş diğer sistemlerden oldukça farklı bir sistemdir. İki ayrı
parçadan oluşur. İlki davranışları izleyen ve sınıflayan bir exper sistem, ikincisi buradan
öğrendikleriyle eğitilen yapay sinir ağlarını içeren parçadır.
DIDS: 1992 yıllarında geliştirilmiş dağıtık mimarili sistemleri kapsar. Bu tip sistemlerde ağın
değişik noktalarından veriler toplanır ve bir merkezde incelenir.
USTAT: 1993-95 yılları arasında geliştirilmiştir. Durum geçiş analizi yapar. Eğer bir davranış
saldırı için tanımlı durum geçişlerini yapıyorsa saldırı olarak sınıflandırılır.
IDIOT: 1994-96 yılları arasında CERIAS (Center for Education and Research in Information
Assurance and Security) geliştirilmiştir. Örüntü tanıma için petri-net’lerin kullanımına
dayanır.
JANUS: 1996’da Berkley’de geliştirilmiş bir sistemdir.
EMERALD (Event Monitoring Enabling Responses to Anomalous Live Disturbances):
1997-98 yıllarında geliştirilmiş ölçeklenebilir, dağıtık bir STS’dir. Bu konuda çokca referans
verilen çalışmalardan birdir.
Bro: 1988’de Vern Paxson tarafından geliştirilmiş bir STS’dir. Gerçek zamanda ağ trafiğini
pasif olarak gözlemleyerek saldırı tespiti yapmaktadır. Birçok değişik özelliği kendinde
barındırması açısından sıkça söz edilen bir STS’dir.
Ripper: 1999 yılında geliştirilen bu sistem veri madenciliği yaklaşımını kullanır. Ripper
DARPA değerlendirmesine katılmış olan sistemlerden bir tanesidir.
Burada adı geçen sistemlerden başkaca birçok STS mevcuttur. Bundan sonraki bölümde IDES
tipinden bir STS modeli incelenecektir.
Denning’e ait IDES tipinden STS modeli:
Sızma belirleme dendiğinde konunun temel taşlarından sayılan Denning’in çalışmasından
bahsetmek gereklidir [6]. Bu çalışmada exper sistemin karar vermesi için 3 farklı istatistiksel
ölçü tanımlanmıştır.
1. Eşik ölçüsü: Kullanıcının belirli bir aralıkta bir işlemi tekrarlamasına izin verilir. Eğer bu
değer aşılırsa anormallik olduğu tespit edilir. Örneğin bir sisteme kullanıcı n den fazla hatalı
giriş (login) denemesi yaparsa kullanıcı hesabı kilitlenebilir.
Burada normal davranış için belirlenen eşik değeri sistemden sisteme çok fazla değişkenlik
gösterebileceği için zayıf bir yöntemdir.
11
2. İstatiksel momentlerin kullanılması: Belirlirli bir davranış için dağılım ve ilk iki
momentin bilindiği varsayılırsa ve eğer değerler belirli bir aralıkta beklenen değerlerden dışarı
çıkarsa bu davranış anormallik olarak kabul edilir. Eşik değerinde geçerli problemler burada
da mevcuttur.
3.Markov modeli kullanılması: Sistem bir durum makinası veya Markov zinciri gibi
düşünülür. Yeni bir olay olunca sistem yeni bir duruma geçer. Eğer bir olay oluşunca, düşük
olasılıklı durum geçişine neden oluyorsa bu davranış kural dışı olarak kabul edilir.
Anormallikler, tek olaya değil bir dizi olaya bağlıdır.
Denning’in kullanıcı hareketlerinden oluşturduğu audit kayıtları şu şekildedir. Örneğin bir
dosyayı kopyalamak için Ali kullanıcısı şöyle bir komut yürütsün:
[ali@computer]# COPY GAME.EXE TO GAME.EXE
Bu komut için oluşturulacak kayıtlar şu şekilde olacaktır.
Kullanıcı İşlem Üzerinde Çalışılan
Nesne
Hata
kodu
Kaynak
Kullanımı
Zaman
Damgası
Ali Execute COPY.EXE 0 CPU=00002 11...60
Ali Read GAME.EXE 0 RECORDS=0 11....61
Ali Execute COPY.EXE Write-viol RECORDS=0 11....62
Bu kayıtlardan hangi kullanıcının hangi işlemi ne zaman yaptığı, herhangi bir hataya
yol açıp açmadığı ve ne kadarlık kaynak harcayıp, kaç kayıt üzerinde değişiklik yaptığı
okunabilmektedir. Bu kayıtlara bakılarak uygulanan yukarda anlatılan 3 istatistiksel ölçüt ile
saldırının varlığını tespit edilir.
3. SALDIRI TESPİT SİSTEMLERİNİN BAŞARIMLARININ DEĞERLENDİRMESİ
Bu bölümde bir saldırı tespit sisteminin hangi özelliklere göre başarılı veya başarısız
şeklinde değerlendirilebileceği üzerinde tartışacağız. Değerlendirme kriterleri aşağıda
verilmiştir [16].
1- Yanlış Alarm Seviyesi
Yanlış alarm, tespit edilmesi planlanan büyüklük için yapılan yanlış değerlendirmeleri içerir.
Yanlış değerlendirmeler iki çeşit olabilir. Biri var olan bir değeri kaçırmak diğeri varolmayan
bir değeri varmış gibi tespit etmektir. Yanlış alarm ikinicisidir. Genelde STS sistemlerinin
başarımını ölçmekte önemli bir parametredir çünkü bir sistemde izin verilen yanlış alarm
sayısı ve doğru tespit miktarı birbiriyle ilintilidir. Yanlış alarmlara izin verildikçe doğru tespit
oranı artmaktadır. Sistem parametreleri ikisinin de optimum olduğu noktaya ayarlanmalıdır.
Burada yapılacak analiz ve başarım hesaplamasında ROC (Receiver Operating Characteristic
– Alıcı Karakteristiği) eğrileri kullanılır. ROC adını radar uygulamalarından almıştır. Şekil
6’da iki sistem için ROC eğrileri verilmiştir. Burada örneğin %40’lık bir yanlış alarma izin
verilirse sistemin doğru yakalama şansı %50 olur. Eğer %60’lık yanlış alarm kabul edilirse
%100’luk bir doğru tespit şansı vardır.
12
Şekil 6 Örnek ROC eğrileri [16]
2- Doğru tespit seviyesi:
Kaç adet saldırılarının doğru olarak tespit edildiğidir. Yukarıda anlatıldığı gibi doğrudan
yanlış alarm ile ilgilidir ve Şekil 6’daki y-eksenini oluşturur. Bir STS’nin var olan saldırıların
kaçını yakaladığı önemli bir parametredir. Fakat bunu yaparken yanlış alarm sayısını da çok
yükseltmemelidir.
3- Yoğun veri ile başa çıkabilme:
Bu kriter ağ tabanlı sistemler için geçerlidir. Trafik yoğunluğu arttıkça tüm sistemler paket
düşürebilir hale gelirler. Bazı STS’ler trafik yoğunluğu çok arttığı zaman saldırı tespitinde
tamamen başarısız olabilirler. Özellikle DoS saldırlarında sistemin güvenli olması için bu
önemli bir parametredir.
4- Olayları ilintilendirebilme:
Farklı kaynaklardan gelen saldırı bilgilerini birleştirebilme yeteneğidir ve halihazırdaki
STS’lerin bu konuda sınırlı yeteneği vardır.
5- Yeni saldırıları tanıyabilme:
Bu sadece anormallik tespitine dayalı sistemler için geçerlidir. İmza temelli sistemler yeni
gelen hiçbir saldırıyı tanıyamazlar ve bir çok ticari STS bu tip bir yöntem benimsediği için bu
yetenekten zaten yoksundurlar.
6- Saldırıyı tanıyabilme:
Saldırnın varlığını tespit etmek ve saldırının tipini söyleyebilmek iki ayrı kavramdır.
STS’lerin ilk odaklandığı konu doğal olarak saldırıların varlığını tespit etmektir. Genelde
saldırı tipi, saldırı olduktan sonra ağ yöneticisi tarafından çeşitli kayıtlar incelenerek ortaya
çıkartılır. Fakat gene de çok genel sınıflandırmalar yapabilen STS’ler mevcuttur.
7- Saldırının başarılı olup olmadığını belirleme:
Aslında gerçekleştirilen saldırıların hepsi başarı ile sonuçlanmaz yani sisteme zarar vermez.
Genelde STS’ler sisteme zarar veren veya vermeyen saldırıları sınıflandırmak konusunda bir
çalışmayı barındırmazlar. Fakat bu özellik bir STS’nin sahip olması istenen özelliklerdendir.
13
4. SALDIRILARA KARŞI ALINACAK ÖNLEMLER:
Saldırı olduktan sonra alınabilecek önlemler saldırının tekrar olmasını engellemeye
yarar ve o andaki saldırı için hiçbirşey yapamazlar. Bu önlemler örneğin yazılım açıklarından
kaynaklanan saldırıları önlemek için yazılım yaması yapmak olabilir. Ama asıl önemli olan
saldırı anında önlem alabilmektir. Saldırılara karşı iki farklı önlem gerçeklenebilir; pasif
gözetleme ve erişim engelleme.
a) Pasif Gözetleme: Bu yaklaşımda saldırganın davranışları kaydedilir, saldırıda araya
girilmez. Amaç, saldırganın istediği şeyi ve kullandığı yöntemleri öğrenmektir. Burada en
büyük sorun, sistemin savunmasız bırakılmasıdır. Saldırgan bu savunmasız durumda diğer
sistemlere de saldırabilir.
b) Erişimi Engelleme: Burada amaç saldırganın erişebileceği sistem kaynaklarını
sınırlamaktır.
Saldırıya karşı yukardaki önlemler alındıktan sonra, saldırıya karışmış sistemlerin erişimi
kaldırılır veya süreçleri sonlandırılır.
STS’leri genel olarak tanıttıktan sonra daha özelde yeni geliştirilen STS’ler ve önerilen
yeni yöntemler üzerinde biraz bilgi vermek gerekir. Bu yakın tarihli çalışmalara geçmeden
önce bu çalışmaların kullandığı veri setlerinin özelliklerinden bahsetmek yerinde olacaktır.
Bundan sonraki bölümde STS’lerin kullanabileceği MIB tabanlı veri setleri ve internetten de
bulunabilecek olan DARPA 1998 ve 1999 saldırı tespit değerlendirme veri setleri ile KDD
Cup veri setlerini tanıtacağız.
5. STS TESTLERİNDE KULLANILAN VERİ SETLERİ
STS’lerin sınanmasında en zorlu kısım güvenilir veri setleri elde edilmesidir. İnternet
ortamından elde edilmiş verilerin çoğu saldırı var ya da yok bilgisi içermez. Herhangi bir ağda
bu bilginin edinilmesi için ağ yöneticisinin sistemi gözlüyor olması ve sistem kayıtlarını
tutuyor olması gerekir. Bu birçok ISP için çok masraflı ve gereksiz görülen bir iştir. Saldırıları
içeren veri setine tümüyle hakim olunmak isteniyorsa, bir benzetim (simulasyon) yapılarak
sentetik test verisi yaratılabilir. Fakat bunun da internet trafiğine benzediğini kanıtlamak
zordur. Bu konudaki zorlukları kısaca özetlersek:
1- Gerçek veri bulmak zordur.
2- Atak sırasında etiketlenmiş veri seti bulmak daha da zordur.
3- Verileri saklamak masraflıdır.
4- Normal davranışı tanımlamak ve simule etmek zordur (çünkü internet trafiği fazlasıyla
dinamiktir.)
Bütün bu zorluklara rağmen STS’lerin test edilmesi için bir veri seti şarttır. Bu durumda 2
değişik veri toplama yöntemi kullanılabilir [7]. Bir yöntem yönlendirici MIB’inde
(Management Information Base – Yönetim Veri Tabanı) tutulan, giren-çıkan IP paketi ve
bunun gibi bazı sayaç değerlerinin SNMP ile sorgulanarak bir makinaya aktarılmasından
ibarettir. Bu yöntem sıkça kullanılmaktadır çünkü maliyeti düşüktür. Fakat veri 5 dakikada bir
sorgulandığından ve 5 dakikanın ortalaması sonuç olarak geri döndüğünden dolayı yeterince
hassas değildir. Ayrıca ağ yöneticisi ile işbirliği içinde olunması gerekir aksi takdirde her
yönlendirici üzerindeki bilgilere erişim hakkı tanımaz. Bir diğer problem bu yöntemle sadece
yönlendirici MIB’inde tutulan verilerin elde edilebilir olmasıdır. Yani sayaç değerleri dışında,
örneğin gidip-gelen paketlerin içeriği gibi bilgilere kesinlikle ulaşılamaz. Burada paket
içeriğinde belirli bir anahtar kelime saldırı yapıldığı anlamına geliyorsa, tespit edilmeden
14
sistemden geçer. Bu durumda zaman serilerini kullanan yaklaşımlar ile analiz yapılabilir ve
sadece trafik volumunde değişikliğe yol açan saldırılar tespit edilebilir.
Diğer yöntem ise IP flow monitor’lerinden veya ağ dinleyicisi (sniffer)
programlarından veri toplanmasıdır. IP Flow monitorleri genelde pahalıdır. Sadece paket
başlıklarına bakıldığından dolayı sınırlı bir bilgi içerir. Yoklayıcı programlar ise en ayrıntılı
bilgiyi içerirler ve dolayısıyla çok fazla disk alanına ihtiyaç duyarlar. Ayrıca çok yoğun
trafiklerde paketlerin hepsini yakalayamayabilirler.
Simule edilen bir ağdan ağ ve en sık kullanılan veri seti DARPA 1998 ve 1999 veri
setleridir. Bu veri setleriyle ilgili bilinen problemler olmasına rağmen kontrollü bir çerçevede
üretilip, ortak kullanıma açık olan yegane veri setleridir. Daha yeni tarihli çalışmalara
geçmeden önce bu çalışmaların kullandığı DARPA veri setlerinin özelliklerinden bahsetmek
yerinde olacaktır. Bundan sonraki bölümde DARPA 1998 ve 1999 saldırı tespit
değerlendirme veri seti, bu veri setine getirilen eleştiriler ile yine bu verilerden türetilen KDD
Cup’99 veri setlerini tanıtacağız.
5.1 DARPA Veri Seti Detayları:
DARPA’nın sponsorluğunda MIT Lincoln Laboratuarlarında STS’ler için bir
karşılaştırma ortamı sunan IDEVAL veri setlerini oluşturulmuştur [8]. Özellikle saldırı tespit
sistemlerinin sınanması amacıyla saldırıların hedefi olacak bir ağ ve saldırıları gerçekleştiren
başka bir ağ dizayn edilmiştir. İç ağda Amerikan Hava Kuvvetlerindeki bir yerel ağın
simülasyonu gerçeklenmiştir. 1999 değerlendirmesinde kullanılan ağ aşağıdaki gibidir.
Şekil 7 DARPA 99 Ağ yapısı[2]
Hava kuvvetlerini temsil eden iç ağ 172.16.0.0/16 IP adres uzayına sahiptir. Bu ağ
içerisinde dört “kurban” makine bulunmaktadır. Bunların üzerinde SunOS, Solaris, Linux, ve
Windows NT koşmaktadır. (1998 veri setlerinde sadece UNIX makinalar kullanılmıştır.)
Şekilde görülen trafik oluşturucular yüzlerce sunucuyu ve çeşitli uygulamaları çalıştıran
İnternet kullanıcılarını simüle etmektedir. Protokollerin (HTTP, SMTP, telnet,...) karışımı,
trafik yoğunluğunun saatlik değişimleri, 1998’de gerçek Hava Kuvvetleri ağından toplanan
trafiğe benzer olacak şekilde tasarlanmıştır. Ağ üzerinden 2 noktadan veri toplanmıştır: dört
15
kurban makine ile yönlendirici arasındaki iç ağ dinleyicisi ve yönlendirici ile İnternet
arasındaki dış ağ dinleyicisi üzerinden [2].
1999 değerlendirmesi iki aşamadan oluşmaktadır. Veri setleri toplam 5 haftalık bir
süreyi kapsamaktadır, ilk 3 haftası eğitim (training) verileri, son 2 haftası da test verileridir. 1.
hafta ve 3. hafta saldırı içermemektedir. 2. hafta bazı saldırılar içermekte ve bu saldırılar
ayrıca bir dosyada işaretlenmiştir