5.4. Anomali-Tabanlı Boğma Saldırı Tespit Sistemi (ABSTS)Tasarımı
5.4.4. Gelişmiş boğma saldırı tespit sistemi
Temel saldırı tespit yönteminin bazı doğal ağ koşullarından negatif yönde etkilenmesi ve sınır düğümlerinde saldırı tespitinde yetersiz kalması ortam koşullarına daha dayanıklı ve başarımı daha yüksek bir yöntem geliştirilmesini
bool BOGMA,HATA=FALSE
/*Her örnekleme periyodunda çağrılır*/
TemelBogmaSezmeAlgoritmasi(){
if (PTO<PTOEş and ETMn>ETMEş and HPOn>HPOEş) BOGMA=TRUE // Aldatıcı,Rasgele,Darbe else if(PTO<PTOEş and ETMn>ETMEş and HPOn<HPOEş)
BOGMA=TRUE //Sürekli,Dinleme ve Kontrol Aralığı
else if(PTO<PTOEş and ETM<ETMEş and HPOn>HPOEş)
BOGMA=TRUE //Reaktif,Veri,Küme,Kesme,Darbe, else if(PTOn<PTOEş and ETMn<ETMEş and HPOn<HPOEş) BOGMA=FALSE
HATA=TRUE;
else if (PTOn>PTOEş) BOGMA=FALSE
end if }
97
zorunlu kılmaktadır. Bu sebeple temel saldırı tespit metodunda kullanılan eşik mekanizmasının bir başka ek mekanizma ile desteklenmesi gerekmektedir. Gelişmiş saldırı tespit yönteminde eşik mekanizmasının dezavantajlarını en aza indirmek üzere düğümlerin birbirlerinden faydalanarak saldırı kararını vermesini sağlayan sorgulama tabanlı saldırı tespit yöntemi geliştirilmiştir. Yöntemin esası; PTO, HPO ve ETM parametrelerine göre saldırı altında olduğundan şüphe eden düğümün komşu düğümlere gönderdiği SORGU (QUERY) paketi ve buna karşılık komşulardan gelecek CEVAP (REPLY) paketlerine dayanmaktadır. Düğümler Şekil 5.7’de görüldüğü gibi SORGU paketlerinde bulunan ALARM bayrağını kurarak kendisinin saldırı altında olma ihtimalinin yüksek olduğunu ve karar vermek için komşularının bilgilerinden faydalanacağını bildiren SORGU paketini gönderir. SORGU paketi alan düğümler ise PTO, HPO ve ETM değerlerine bakarlar. (PTO<PTOEş ve ETM>ETMEş) ya da (PTO<PTOEş ve HPO>HPOEş) şartlarının gerçekleşmesi durumunda CEVAP paketindeki ALARM bayrağını 1’e kurarak aksi durumda ise sıfırlayarak geri gönderirler. Ancak sürekli ve aldatıcı saldırgan gibi iletişim kanalını kesintisiz meşgul eden saldırganlar SORGU-CEVAP paketlerinin gönderimini de engellemektedir. Reaktif saldırgan gibi bazıları ise gönderilen sorgu paketlerin bozulmasına neden olmakta, veri paketi saldırganı gibi saldırganlar ise SORGU-CEVAP paketlerine saldırmamaktadır.
Şekil 5.7. SORGU ve CEVAP paketlerinin yapısı
Tablo 5.2’de gelişmiş sorgu tabanlı saldırı tespit yöntemi görülmektedir.
SorguTabanliSaldiriTespitAlgoritmasi fonksiyonu her örnekleme
periyodunda çağrılmaktadır ve bu fonksiyon harici bazı parametreleri de kullanarak koşul yapıları yardımıyla saldırı tespitini gerçekleştirmektedir. Fonksiyon, geçerli
Dügüm_ID Paket_ID Bayraklar 2 bayt 2 bayt 1 bayt
Zorlama Alarm ……...
Boş
Dügüm_ID Hedef_ID Bayraklar 2 bayt 2 bayt 2 bayt
Alarm ……... Paket_ID Boş Boş 1 bayt
PTO’nun eşikten küçük ve ETM’nin eşik değerinden fazla olması ya da PTO’nun eşikten küçük ve HPO’nun eşikten fazla olması gibi anormal bir durumda, anomalinin saldırılar sebebiyle ortaya çıktığından emin olmak için SORGU sürecini başlatmaktadır. Ancak gereksiz paket gönderimini engellemek üzere SORGU paketi göndermeye karar veren düğüm, gönderim yapmadan önce bir komşusundan SORGU paketi alıp almadığını kontrol etmektedir. Eğer bir SORGU paketi kendisine ulaştıysa SORGU göndermek yerine var olan SORGU/CEVAP trafiğinin bitmesini ve belirlenen zaman aşımının dolması beklemektedir. Düğüm eğer tüm komşularından CEVAP paketi aldı ise kendisine ulaşan CEVAP paketlerine göre saldırı kararını vermekte ve böylece gereksiz yere paket gönderiminin ve alımının önüne geçilmektedir. Düğüm SORGU göndermeden önce herhangi bir SORGU paketi almadıysa çekişme kurallarına da uyarak iki örnekleme periyodu içerisinde SORGU paketini göndermeye çalışmaktadır. Düğüm eğer bu süre zarfında SORGU paketi gönderemez ise sürekli veya aldatıcı saldırgan gibi kanalı meşgul eden bir saldırıya maruz kaldığına karar vermektedir. Belirlenen zaman dilimi içerisinde SORGU paketini gönderebilen bir düğüm CEVAP paketlerini beklemeye başlar ve CEVAP paketleri için belirlenen sürenin dolması ile kendisine gelen CEVAP paketlerini değerlendir.
Düğüm;
1. Hiç CEVAP paketi almadıysa
2. Aldığı CEVAP paket sayısı komşu sayısına oranla daha az ise VE sonraki atlama komşusundan CEVAP paketi gelmediyse
3. Aldığı CEVAP paket sayısı komşu sayısına oranla daha az VEYA eşit ise VE bir sonraki atlama komşusundan alınan CEVAP paketindeki Alarm bayrağı kurulu ise saldırı altında olduğuna karar vermektedir.
Doğrudan bir saldırgan etkisinde olan düğümler için yukarıdaki kurallara göre saldırı tespiti gerçekleştirilirken sınır düğümler için farklı kurallar gerekmektedir. Sınır düğümlerin sürekli, dinleme aralığı ve kontrol aralığı saldırıları altında PTO değerlerinin düşmesi, bu düğümler için saldırı tespitinin gerçekleştirilmesini zorunlu kılmaktadır. Ancak PTO düşmesine rağmen HPO ve ETM parametrelerinin saldırılardan etkilenmemesi, sınır düğümler için saldırı durumları ile komşu düğüm
99
hata durumlarının karışmasına yol açabilmektedir. Önerilen ileri saldırı tespit yönteminde bu sorunu aşmak için ZORLAMA SORGU paketlerinden faydalanılmaktadır. Đletişim kanalını sürekli meşgul eden saldırıların etkisi altındaki düğümler normal şartlarda herhangi bir paket gönderememektedir. Ancak bu düğümler, sınır düğümlerin saldırı tespitini kolaylaştırmak için çekişme kurallarına aldırmadan rasgele süre bekleyerek ZORLAMA SORGU paketi göndermektedir. Saldırgan kapsama alanın sınırlarında bulunan düğümler sayesinde ZORLAMA SORGU paketleri sınır düğümlere ulaşabilmekte ve böylece sınır düğümlerinde saldırı durumları ile hata durumlarının ayrımı gerçekleştirilebilmektedir
Tablo 5.2. Gelişmiş boğma saldırı tespiti yöntemi
/*Her örnekleme periyodunda çağrılır*/ SorguTabanliSaldiriTespitAlgoritmasi( {
if ((PTO<PTOEş AND ETM>ETMEş) OR (PTO<PTOEş AND HPO>HPOEş)) if(SorguAlindi=TRUE and DigerleriĐcinCevapBekleniyor=FALSE) CevapTimeriniKur(Simdi+2*OrneklemePeriyodu) DigerleriĐcinCevapBekleniyor=TRUE
else if ( DigerleriĐcinCevapBekleniyor=TRUE AND SorguTimerTasti=TRUE) if (CevapPaketSayisi=KomsuSayisi) CevapPaketleriniAnalizEt() else SorguAlindi=FALSE end if else if(SorguAlindi=FALSE) if (SorguSureciBasladi=FALSE) SorguGondermeyiDene() SorguTimeriniKur(Simdi+2*OrneklemePeriyodu) SorguSureciBasladi=TRUE
else if(SorguTimeriTasti=FALSE AND SorguGonderildi=TRUE)
SorguTimeriniDurdur() CevapTimeriniKur(Simdi+2*OrneklemePeriyodu)
else if (SorguTimeriTasti=TRUE AND SorguGonderildi=FALSE) BOGMA=TRUE; if(ZorlamaSorguSayisi<3) ZorlamaSorguGonder(Simdi+RasgeleZaman) ZorlamaSorguGonderildi=TRUE ZorlamaSorguSayisi++ end if else if(CevapTimeriTasti=TRUE) CevapPaketleriniAnalizEt (); end if; end if;
/*Sınır düğümlerde saldırı tespiti için geçerli şartlar */
else if (PTO<PTOEş AND HPO<HPOEş AND ETMn<ETMEş AND ZorlamaSorguAlindi=TRUE)
BOGMA=TRUE;
else if (PTO<PTOEş AND HPO<HPOEş AND ETM<ETMEş)
HATA=TRUE; else
BOGMA=FALSE;
end if }