[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Deutsch  Francais  Nederlands  Turkce  

[Photo of the Author]
Klaus M�ller
<Socma(at)gmx.net>

Yazar hakk�nda:
Klaus M�ller a.k.a. 'Socma' Linux programlama ve g�venli�i konular� ile u�ra�an bir ��rencidir.

T�rk�e'ye �eviri:
Muzaffer AYVAZ <ayvazm(at)be.itu.edu.tr>

��erik:

 

IDS- �zinsiz Giri� Sezimleme Sistemi, 2. B�l�m

[Illustration]

�zet:

1. B�l�m IDS �zerine olan tipik sald�r�lara odaklan�r. 2. B�l�m ise, bunlar�n ke�if ve yan�t y�ntemlerine giri� yapar ve imzalar ve filtrelerin bunlar aras�nda uygulamas�na anlat�r. Sonunda da Snort LIDS'e giri� yapaca��z.

_________________ _________________ _________________

 

��z�mleme Olas�l�klar�

�ncelikli olarak IDS'leri ve var olan bir�ok sistemi korumak i�in ayr�nt�l� bir �ekilde sald�r�lar �zerine haz�rlnad�k. Daha sonra ��z�mleme y�ntemlerini ve bir IDS'in bir sald�r� olup olmad���n�, nas�l tan�mlad���n�, asl�nda bir sald�r�n�n ba�ar�l� olup olmad���n�n nas�l tan�mlad���n� inceledik.

Asl�nda, yanl�� kullan�m sezimleme (Misuse Detection) ile Anormallik Denetleme(Anomaly Detection)'i birbirinden ay�r�yoruz. Misuse Detection sald�r�lar� meydana ��karmak i�in �zel tan�ml� �r�nt�lerden faydalan�r. Bu �r�nt�ler "imzalar"(signatures) olarak adland�r�l�rlar, bunlar kendilerine ayr�lan b�l�mde ele al�nacaklar. �imdilik a� trafi�ini kesin dizgeler(�r./etc/passwd) ara�t�ran "imzalar"'�, �zel dosyalara giri� izinlerini reddedi�ini ve bir uyar� mesaj� g�nderdi�ini bilmemiz gerekir. Misuse Detection'�n avantaj�, imza kriterleri iyi bir �ekilde tan�mlanabildi�i takdirde yanl�� uyar�lar�n d���k olma olas�l���d�r.Dezavantajlar� ki olduk�a a��k, s�k s�k yeni sald�r�lar�n ka��r�laca��d�r, ��nk� bunlar tan�mlanmam��t�r. ( "imzalar" b�l�m�ne bak�n�z).

Di�er metod Anomaly Detection' d�r. Bu basitce kullan�c�lar�n normal hareketlerinin profillerinin geli�tirilmesi anlam�na gelir. E�er kullan�c�n�n davran��� profilinden �ok fazla farkl�la��rsa bir uyar� tetiklenir. Bu ��z�mlemenin ilk ad�m� normal kullan�c� davran�� profillerinin(veri taban�) olu�turulmas�d�r. De�i�ik t�rde ad�mlar kaydedilebilir: Kullan�c� �zel komutlar� hangi s�kl�kta �al��t�r�yor? Bu �zel komutlr� ne zaman �al��t�r�yor? �zel dosyalar� hangi s�kl�kta a��yor? .... K���k bir �rnek: - kullan�c� "Example" , /bin/su komutunu g�nde �� kere �al��t�r�yor. ( Bu de�er profilde olamal�). Ans�z�n - birg�n - kullan�c� "Example" , su komutunu g�nde yedi kere �al��t�r�yor, normal davran���n iki kat�ndan daha fazla. Anomaly Detection bu "onormal" davran��� sezer ve sistem y�neticisini kullan�c� "Beispiel's"'�n normal davran���n� su komutunu �� kez �al��t�rmak oldu�u ancak yedi kez �al��t�rd��� hakk�nda uyar�r. Bu y�ntemin dezavantajlar�, uygalamaya ba�lad���mda, daha anla��l�r hale geldi ( sondaki �rne�e bak�n�z - COLOID). Kullan�c� davaran��lar� i�in bir veritaban� y�klemek olduk�a hesaplama yo�unlukludur. �rne�in, on �zel dosyay� kullan�c�n�n ne s�kl�kta a�t���n� g�zleyelim. Her open() komutu, a��lan dosyan�n on �zel dosayadan biri olup olamad���n� anlamak i�in kontrol edilmeli ve sonu� pozitif ise, var olan saya� artt�r�l�mal�. Yinede, "anormal" gibi g�r�nd�kleri m�dedetce yeni ��kan sald�r� tekniklerini ortaya ��karmak i�in, bu b�y�k bir f�rsat. Ayr�ca, sistem y�neticisinin kendiside ne kadarl�k bir farkl�l���n "anormal" tan�mlanaca��n� belirleyebilir, �r. 10% sapma yada 75%.... Bu y�ntemden faydalanmak i�in kullan�c� profillerini "g�venli bir a�da" olu�turmaya dikkat etmeliyiz, aksi takdirde sald�rgan�n(attacker) davaran��� "normal" san�l�rken,yasaya uyan kullan�c�n�n iletisi "anormal" san�labilir. Genel olarak Anomaly Detection a�a��daki prosed�rleri i�erir:
Heuristic Threshold Detection bu ko�ulda sayac�n ( Ne s�kl�kta ne �al��t�rabilir) sabit bir ba�lang�� de�eri yoktur ancak de�i�ken bir de�eri vard�r. Bir kullan�c� normal olarak /bin/login komutunu 4 kez �al��t�r�sa sayaca 5 atanabilir....
Protocol Anomaly Detection, Anomaly Detection'�n bir alt grubudur. Bu nispeten yeni bir tekniktir,Anomaly Detection'a benzer bir �ekilde �al���r. Her protokol�n bir �n tan�ml� imzas� vard�r.(RFC'e bak�n�z).Protocol Anomaly Detection'�n amac� protokol davran���n�n daha �nceden tan�mland��� gibi olup olmad���n� bulmakt�r. �o�u sald�r�lar yanl�� protokol kullan�m�na dayan�r ve �una inan�labilir ki, bu alt prub IDS ler i�in olduk�a �nemlidir. Tarama (scanning) b�l�m�ne bakt���m�zda Protocol Anomaly Detection'a baz� g�stergeler bulabiliriz.
�lgili RFC'lerde do�ru spesifikleri bulaca��z, ayn� zamanda ne t�r davaran��lar olmamal�?,yan�t. Hangi t�r davaran��lar �zel bi olaya kar�� yan�tlarda bulunmal�? Buna ek olarak Application Anomaly Detection ( yakla��k Application Based IDS bigi �al���r) var. Baz� literat�rlerde bu �apta g�stergeler buldum, bu y�zden inceledim. Tabii ki,bir program "normal" davran�r, �r. Olay X'e..yada Y'ye nas�l kar��l�k verdi yada e�er kullan�c�n�n giri�i yanl��sa. S�k var olan ikililer(binaries) (�r. ps, netstat, v.b. ) kullan�c� giri�iyle yer de�i�tirilirler,ps olmas� ko�ulunda �zel prosesleri saklamk i�in. Application Anomaly Detection'la, bir program�n anormal davran���n� ��z�mlemek olas�d�r.IDSs'den yaralanan baz� uygulmalar bu �ekilde �al���r, ancak benim �ok az bir deneyimim var.

sonu� olarak bir ba�ka yeni ID-Sistem metodu: Intrusion Prevention(�zinsiz Giri� Korumas�). Baz� yeni ID-Sistemlerine uyguland�, bu metod di�er tan�mlanan metodlardan farkl�l�k g�steriyor. Trafi�in logfileslar�n� analiz etmek yerine, sald�r� olduktan sonra ortaya ��kar�r, ataklardan korumaya u�ra��r.

Klasik IDSs'lerin tersine, sald�r�lar� ��z�mlemek i�in hi�bir imza kullan�lmaz.A�a��daki IPSs'lerin nas�l �al��t���n�n k�sa bir a��klamas�d�r, bunlar�n fonsiyonalli�i bu �rneklerle daha a��k olacak:



'Monitor application behavior', Application-Based-IDSs'lerle ilgilidir, i.e.bir uygulaman�n davran��� analiz edilir ve kaydedilir, �r. Hangi data normal olarak soruluyor , hangi programlarla birlikte �al��yor, hangi kaynaklar� gerektirir.Anomaly Detection gibi, bir program�n normal olarak nas�l �al��t���n� bulmaya �al���r,yan�t. Ne yap�lmas�na izin verildi?

���nc� konu ('Alert on violations') herhangi bir a��klama gerektirmemeli , sadece bir sapma oldu�u zaman ( bir sald�r� sezildi�inde) bir uyar� tetiklenir. Bunun sonucu bir "log entry" ya da bloklanm�� kaynaklar olabilir.

�kinci ad�mla beraber ('Create application rules') b�yle adland�r�lan uygulama kurallar� b�l�m I ( 'Monitor application')'deki analizlere uygun olarak bulunur. Bu kural seti ne uygulmas�na izin verildi�i (ne kaynaklar� isteyebilece�i) ve neyin uygulanmas�na izin verilmedi�i hakk�nda bilgi �retir.

'Correlate with other events' beraber �al��an sens�rlerin bilgi payla��m� anlam�na gelir, Bu daha iyi bir sald�r� korumas�(attack preventation) �retir.
       Application
        |
        V
       Action
        |
        V
    ---------------------
    | Realtime decision |
    ---------------------
       /       \
      Deny     Allow
       /           \
   Alert         execute Action


Bu basitle�tirilmi� diagram prosesi biraz daha iyi a��klayabilir. Bir aktiviteden �nce 'realtime decision'(ger�ek zamanl� karar verme)�al��t�r�l�r. (Aktivite kural setiyle kar��la�t�r�l�r.) E�er aktivite yasaya uygun de�ilse (�r.Program , sistem datas�na ula�mas�na izin verilmemesine ra�men bile data ister ya da onlar� de�i�tirmek ister) bir uyar� ba�lat�l�r. �o�u �artlarda,di�er sens�rler( ya da merkezi konsol) bilgilendirilir. Bu a�daki di�er bilgisayarlar� �zel dosyalar�n a��lmas�ndan/�al��t�r�lmas�ndan korur. E�er aktivite kurallar setine uyarsa , izin kabul edilir ve sonunda proses ger�ekle�tirilir.

Listemizdeki son konu: 'System call interception'. Geli�tirilmi� "system call" lar ("rootkits" diye adland�r�l�r) s�k s�k sezilirler."system call" lar�n durdurulmas�na yakla��m olduk�a basittir: Bir "system call" kabul edilmeden �nce,kontrol edilir. Kontrol etmek a�a��daki sorular�n sorulmas� anlam�na gelir.( [5]'e bak�n�z):



Bu �nemli config/sistem dosyalar�nda ki ba�ar�l� de�i�ikliklerin g�zlenmesini sa�lar,izin verir, "sistem call" un �n tan�ml� kural setine uygun olup olmad���n� denetlemek zorunday�z.

               Program
                   |
                   V
             System call
                   |
                   V
            System call Interception
                 /          \
             Deny           Allow
               |               |
            do not call     Kernel
            System call


Intrusion Prevention di�er metodlarla k�yaslayacak olursak nispeten yeni, ve bu konuyla ilgili daha fazla bilgi bulunabilecek.

Sonu� olarak OKENA' ya bir ima yapacak olursak,�ok g��l� bir IPS. www.okena.com'un "white paper" Storm Watch hakk�nda ek bilgi bulabilirsiniz.Storm Watch'un eksiklerini bulmak i�in [6]. b�l�m� okuyun

 

�mzalar



�imdi IDSs �zerinde imza kullan�m� hakk�nda konu�aca��z, ikinci b�l�m bunlar�n zay�fl�klar�ndan olu�acak.

 

Kavram

�mzalar�n yard�m�yla bilinen ataklar tan�nabilir, bir imza veri tarfi�inde kesin bir �r�nt� arar. Bu �r�nt� bir �ok �ey olabilir, dizgiler, g�ze �arpan header(ba�l�klar) (de�i�ik flag kombinasyonlar�yla), trojan'lar taraf�ndan kullan�ld��� bilinen portlar. �o�u sald�r�lar�n kesin karakteristikleri vard�r, �r. �zel flaglar kurulu ya da payload(ta��nan veri) i�indeki par�al� dizgiler. �mzalar sayesinde bu karakterlerden bir sald�r� bulunabilir.

"Payload Signatures" diye adland�r�lanlardan ba�lamak istiyorum. Bu paket payload'un bir b�l�m�d�r.:
00 00 00 00 E9 FE FE FF FF E8 E9 FF FF FF E8 4F    ...............
0 FE FF FF 2F 62 69 6E 2F 73  68 00 2D 63 00 FF FF .../bin/sh.-c...


Daha sonra SNORT kurallar�n�n tan�mlanmas�nda g�rece�imiz gibi yap�lacak baz� se�enekler var. S�k�a payload'�n i�eri�i �zel sipesifik dizgeler i�in ara�t�r�l�r. (in Snort with 'content' or 'content-list'). Birinin bir password dosyas�na ula�mak istedi�ini varsayal�m (�r. /etc/passwd) Payload (/etc/passwd)' i�in ara�t�r�labilir, e�er dizge saya� �l��m�n� i�eren paket ba�lat�labilmi�se,�rne�in:

 alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80        \
 (msg:"WEB-MISC/etc/passwd";flags: A+; content:"/etc/passwd"; \
 nocase;classtype:attempted-recon; sid:1122; rev:1;)


Bir ba�ka olas�l�k bir �zel, spipesifik bir dizge i�ermeyen paketlerin sezilmesidir.

Olas� bir arabellek ta�mas�ndan korunmaya bir ba�ka yakla��m, �zel portlardaki paket b�y�kl���n�n kontrol edilmesidir . Genel olarak kaynak portu ve hedef portu tan�mlamak m�mk�nd�r, sipesifik portlardan veya sipesifik portlara olan istekler engellenebilir. Genel olarak dizgi imzalar payload imzalard�r. Payload imzalar bir paketin payload�n� kontrol ederler, �r. Payload�n dizgi imzas� sipesifik dizgi i�in ara�t�r�l�r. .
�mzalardan ba�ka ne sezilebilir? Payloadlar� sipesifik dizgiler i�in kontrol etmek her zaman en iyisi de�ildir.�mzalara TCP ba�l�klar�n�n flag kombinasyonlar�n� ara�t�rmas�n� sa�lamak bir ba�ka olas�l�kt�r.E�er bir pakette SYN ve FIN kurulmu�sa, bu onormal olarak g�r�l�r. Sald�rgan(attakcer) i�letim sisteminin �zelliklerini bulmak i�in kullanabilir(ya da i�letim sisteminin kendisini). Ba�lang��ta de�indi�imiz gibi, tojanlar taraf�ndan tercih edilen baz� �zel portlar var. B�yle portlara �rnek 31337 ya da 27374't�r.

Prosesi bir �rnekle a��klarsam, belki daha anla��l�r olacak. Synscan sald�r�lar�n�n tipik ortaya ��kar�c�lar�na bir bakal�m :



Bu gibi �artlarda imzalar�n fonksiyonu "normal" ve "anormal" ba�lant� �zelliklerinin ayr�lmas� olabilir. Baz� IDSs'ler bilgilerle birlikte �zel veri taban� tutarlar , yukar�da g�sterildi�i gibi, e�lemeler i�in ara�t�racaklar.
Pirensip olarak, anormallikler imza kontrol� yard�m�yla synscanlerde sezilebilir:


Synscan attacklar�n sezilmesi i�in kullan�lan imzalar�n geli�imi yukar�da de�inilen kriterlerden daha �ok g�z �n�ne al�nmas� gerekir. �mzalara�n amac� Var olanlar oldu�u gibi yeni versiyon sald�r�lar�nda sezilmesidir. Bu sebeble sald�r� seziminin olas�l���n� y�kseltmek i�in genel ve �zel karakteristikler kombine edilir. Bir sald�r�n�n her yeni versiyonu i�in yeni bir imza yazmak m�mk�n olsa bile, bu bizi daha �nemli i�ler yapmaktan al� koyup me��ul edecektir. Bu y�zden imzalara dikkat etmeleyiz ki bu imzalar m�mk�n oldu�u kadar �ok sald�r�y� (ve onlar�n versiyonlar�n�) yeni imzalar d�zenlemeye gerek duymadan sezebilsin.

�mzalar �zel sald�r�lar� sezmek i�in yaz�lmal�, fakat onormallikleri bulmak i�in genel imzalara ihtiya� vard�r. �zel ataklar�n sezilmesi i�in �rnek bir imza a�a��da g�sterilmi�tir. ( synscan attack ). Daha genel bir imza,�rne�in, a�a��daki kriterleri kontrol eden bir imza olabilir:



Protokoldeki anormallikleri bulan imzalar "Protocol analysis based signatures" diye adland�r�l�rlar, di�er grup "Packet Grepping" diye bilinir.  

Zaaflar


Payload imzalar metodu (dizgi imzalar� i�eren) olduk�a g�venilir g�r�nse bile,bunlar�n da hilesini bulmak i�in yollar var. Snort kurallar�yla nas�l �al���laca�� hakk�nda yakla��k bir sayfa yazaca��m, burada faydal� olmak i�in kendimi s�n�rl�yorum. "/etc/passwd"'i ara�t�ran bir imza nocase 'le birlikte hesaba kat�lmaz,bunlara ald�r�lmaz. Her ne kadar, biz /etc/passwd'e do�rudan de�ilde dolayl� olarak yakla��rsak, �rne�in,sald�rgan(attacker) ' /etc/blablabla/.../.../\passwd ' kullan�rsa �mza hala bir uyr� vereck mi? Hay�r, ��nk� o /etc/passwd'� ar�yor. (ve di�er capitilized/non-capitalized versiyonlar�). Bu imzalar�n di�er bir limiti �ok bilinen sald�r�lar�n sezimlenmesi ve bilinen "vulnerability(�rselenebilirlikleri)" leri aramas�d�r. Belirli attacklar�n yeni versiyonlar� s�kl�kla bulunmad�, ke�fedilmedi.... Di�er imzalar - sipesifik attacklara �zelle�tirilmi� olanlar - ya da genelle�tirilmi� imzalar yeni sald�r�lar� ke�fetme avantaj�na sahiptir. Her ne kadar, �mza kurallar�n�n olu�turulmas�nda �ok dikkatli olunmas� gereksede . Sipesifik attacklara �zelle�mi� bir imza az geli�mi� bir varyasyonu bulamayacakt�r. ( sabit bir IP ID de�eri(39426) yerine yeni sald�r�n�n de�i�ken bir de�eri vard�r...). Genel imzalar� haritalarken (protocol analysis based signatures) kurallar�n global olarak tan�mland���ndan emin olmal�y�z, Bu olamayan ya da olmayan anormalliklerin onlar tafar�ndan i�aret edilebilmesi anlam�na gelir.

Di�er a��klar Unicode attack s�navlar�nda g�r�l�r. ([4]'e bak�n�z). Burada Unicode attack taraf�ndan ger�ekle�trilen MS IIS deki bir g�venlik a����n� g�r�yorsunuz.

"�zet:
Microsoft Internet Information Server (IIS)' da uzak kullan�c�lar�n dizin i�eriklerini listelemelerine, dosyalar� g�r�nt�lemelerine, dosyalar� silmelerine, keyfi komutlar�n� �al��t�rmalar�na izin veren bir noksanl�k vard�r. Attacker'lar Unicode karakter setini kullanarak ve IIS den yararlanarak normal olarak ula�al�maz kayanaklara URL'ler vas�tas�yla ula�abilirler. IIS'in �imdiki b�t�n versiyonlar� bu �rselenebilirlikten etkilenir. Bu �rselenebilirli�in i�letmesi sa�mad�r. ISS X-Force yayg�n olan bu �rselenbilirli�in i�letmesinden haberdard�r."

IDSs'ler i�in ger�ekte var olan bir problem UTF-8 karekterlerinin ayn� sonucu veren bir�ok kodu vard�r, e.g. "A" : U+0041, U+0100,

U+0102, U+0104, U+01CD, U+01DE, U+8721. MS IIS ko�ul ba��ms�z olunca, yine bir�ok karalter g�r�nt�lemek i�in bir�ok olas�l�k var. (�rne�in AEIOU 'u g�r�nt�lemek i�in 83.060.640 farkl� olas�l�k var).

E�er bir attacker �rne�in "http://victim/../../winnt/system32/cmd.exe"'� �a��r�rsa IIS bir hata verir. Her ne kadar , "../.." yerine UTF-8 e�iti yaz�l�rsa hi�bir hata vermez: "http://victim/..%C1%9C../winnt/system32/cmd.exe". Zaten , UN-escape UTF-8 diye adland�r�lan kodlar bizim ula�mam�z gereken sayfalar� a�mam�z� m�mk�n k�lar. Olay uygulama tabakas�nda yer ald���ndan,bir NIDS '�n attacklar� sezmesinde zorluklar vard�r - ��yle bir ko�ulda HIDS'�n uygulanmas� daha uygundur. �ifreleme genel olarak sens�rler i�in bir problemdir. - Bu arada bu ger�ek s�k s�k istismar edilir. Baz� "IDS-producers"'lerinin raporlar� imzalar�n limitlerini a��k�a g�stermektedir, faydal� imzalar baz� bilinen Unicode-attacklar� sezdiler, ancak sald�r�lar�n k���k modifikasyonlardan sonra imzalar yeniden kullan��s�z hale geldiler. Sadece NetworkICE ba�ar�l� bir �ekilde bu tip attacklar� sezen imzalar ke�fetti. (Snort ISS Real Secure sadece bilinen Unicode attack'lar� sezen imzalar ke�fettiler).

 

Yan�tlar


�nceden a��kland��� gibi, IDSs PC ve a�daki aktivitekleri analiz eder. - fakat bir kar��l�k vermeden veya bir uyar� yapmadan IDS nas�l faydal� olur? IDS de�ersiz olur, makine performans�n�n bo� yere harcanmas� olur. 'Response(Yan�t)' Active Response ve Passive Response aras�nda farkl�l�k g�sterir. �zel bir b�l�mde bu farkl�l�klar� a��klayaca��z. �lgili okuyucu bu ba�lant�y� t�klayabilir OPSEC
Secured by Check Point' appliances are security solutions that integrate
Check Point VPN-1/FireWall-1 technology onto our partners' hardware
platforms.


Bu sistem var olan sistemlerin Fire Wall-1(g�venlik duvar�)'da b�t�nle�mesine olanak sa�lar.Ek bir avantaj� ise d�nya �ap�nda bilinmesidir. 300 civar�nda orta�� vard�r). E�er bir sald�r� ke�federsiniz, sald�rgan�n IP adresini kitleyebilirsiz.( sadece olas� bir yan�t se�ene�i) ...E�er OPSEC ile ilgiliyseniz "Deployment Platforms"'u okuyunuz, Orada sisteme kat�l�m "joining" i�in bir �ok ko�ul bulacaks�n�z (ortak olmak i�in).

 

Aktif Yan�t

Active Response,IDS bir sald�r�(veya buna benzer bir u�ra�) sezdi�i zaman otomatik olarak tepki g�sterilmesidir. Attack lar�n farkl�l���na ba�l� olarak IDSs bir�ok yan�tlma se�ene�i sunar.
1) Muhtemel sald�rgana kar�� tepkide bulunmak. 2) "Simply(basitce)" ek veriler toplamak (sald�rgan sald�r�s� ve onun i�eri�i hakk�nda). 3) Konfig�rasyonu de�i�tirmek Birinci yap�labilir tepki, sald�rgan kar��s�nda ba�lang�� ad�mlar� olmal�d�r. Bu bir �ok ad�m i�erebilir, insanalar�n ul�a�m� kitlemek ya da sald�rgan kar��s�nda ataklar� sonland�rmak gibi.Honeypot'la ba�lant�larda a��klad���m�z gibi, sald�rgana kar�� �o�onlukla zor de�ildir fakat ayn� zamanda yas d���d�r. Bu ba�lamda "Third Party Effect" diye adland�r�lanlar ��kagelir. Ger�ekte bu etki nedir? Third Party Effect'in grafik olarak a��klanmas� a�a��daki gibidir:
 ------------               ------------              -------
 | Intruder | ------------> | Innocent  | ----------> | YOU |
 ------------               ------------              -------

Third Pary Effect masum bir insan ( ya da masum bir network)'�n attacker taraf�ndan sald�r�ya u�ramas�, mutakiben bu masum insan�n a��n� kullnarak bizim a��m�za sald�rmas� anlam�na gelir (ve olsa� di�er a�lara). B�ylece problem nedir? Problem bizim a��m�z�n masum a�� masum de�ilmi� gibi ortaya ��karamas�d�r ve bunun sonucu olarak ihmal edilen a�� istila eden masum olmayan ki�i bize kar�� yeni bir attack �retecektir. bizim ata��m�z�n sonucu olarak (yanl�� zannetti�imizde masum olmayan ki�iye sald�rabiliriz) "masum" �zerinde tespit edilemez hasarlara yol a�abiliriz. E�er su�lu izini saklamaya yetecek kadar zeki ise zarardan biz sorumlu tutulaca��z. "su�lu" de�il.

�kinci se�enek (ek bilgiler toplama) daha az tart��mal�. Bir olas� sald�r� veya izinsiz giri� sadece sald�r ve sald�rgan hakk�nda bilgiler toplanarak sezimlenebilir. E�er bir IDS �zel bir kullan�c�n�n ayr�cal�klar�n� geni�letti�ini kararla�t�r�sa (veya ba�ka bir �e�it sald�r� meydana gelirse) bu kullan�c�n g�zlenmesi geni�letilebilir, �r. logging komutlar� (active edilmemi�se), kullan�c� nerde sisteme girecek, ne kadar kalacak, ne zaman giri� yapt�, son iki g�n i�erisinde ne zaman ve hangi s�kl�kta giri� yapt� , Spesifik ikilileri transfer(FTP) etmeye u�ra�t� m�... Bu yolla sald�rgan�n bir profili olu�turulur. Bununla beraber detayl� kay�tlar�n ve yak�n olas� ka�amklar�n analizini yapma avantaj�m�z olur, bu ayn� zamanda bizim yasal ad�mlar atmam�z� olas� k�lar. ���nc� se�enek sistemin modifikasyonu g�venlik duvar�, v.b. E�er sald�rgan sipesifik IP adresleri kullan�yorsa bu IP adresinden a�a olan ba�lant�s�n� kesebiliriz. Tabii ki di�er ku�kulu olkasyonlardan geln ul�a�m isteklerini bloklayabilir ve kaydeddebiliriz . �zel �artlarda kendi a��m�za olan herhangi bir ula��m� engelleyebiliriz (yada herhangi bir tp �zel port iste�i, �zel network aray�zlerinden...).Active Response 'un bir ba�ka olas�l��� TCP ba�lant�s�na devam etmemektir (TCP kill olarak da bilinir). Ba�lant�y� sonland�rabilmek i�in bir RST g�nderilir (Reset Flag), bu da oturumu sonland�r�r("kill"). Normalde RST, ba�lant�da bir hata oldu�u zaman yollan�r..., burada ba�aka bir bilgisayarla olan oturumu bitirmek i�in IDS ( ISS RealSecure gibi) bundan faydalan�r. ( Win-NT i�inde ayn� isimde bir ara� vard�r.).

 " tcpkill - kill TCP connections on a LAN
   .......
   tcpkill  kills specified in-progress TCP connections (use-
   ful for libnids-based applications which  require  a  full
   TCP 3-whs for TCB creation). "

Bu 'man tcpkill''den se�ilmi�tir ....
G�r�ld��� gibi, sald�r�lara kar�� yan�tlar�n ger�ekten geni� olas�l�klar� var. Kontraatak y�r�tmek �ekici g�r�nsede yap�lmamal�.
 

Pasif Yan�t


Active Response k�yasla, �a�unlukla rastlanan uyar�lar�n kaydedilmesidir, admin/user'lar taraf�ndan g�zetlenmeleri gerekir. Yan�t se�enekleri �unlard�r:

1) uyar�lar, imalar...kay�t
2) sistemi �zel bir zamnada denetleyen raporlar�n olu�turulmas� ve bir hesap a��lmas�

Hemen her IDS uyar�lar olu�turma ve kullan�c�ya/browsera belirtiler g�nderme yetene�ine sahiptir. Sald�r� ba�ar�ld�ysa - �rne�in - �nemli bir sistem dosyas�n� silmek, �zel servisleri ba�latamak (kullan�m� yasaklananlar) ... olay� bildiren bir uyar� geli�tirilir, ayn� zamanda ne zaman oldu�u ve kimin rol ald���. Bu arada �ok fazla IDSs b�yle adland�r�lan raporlar� olu�turma se�ene�ine sahiptir. Sistemin durmu geni� bi zamanda g�zlenebilir, aktiviteler kaydedilebilir ve durum raporlar� geli�tirilebilir. Hemen b�t�n IDSs'ler passive response se�ene�ini desteklerler.
 

Filtre

Sald�r�lar�n kimlere ait oldu�unu imzalr� yard�m�yla belirlemek i�in filtrelerden faydalan�l�r.Bu imza daha �nce ed�inilen imzalarla dolayl� olarak ilgilidir, burada bir sald�r�n�n tipik karekteristi�ini ar�yoruz ( dest/src ports, dest/src IPs, gibi...). Bu b�l�m�n bir ba�ka k�sm� N-code giri� yap�lmas� ve bilinen sald�r�lar i�in filtre �rneklerinin a��klanmas�d�r. Bu makalenin sonunda kullan�c�lara (ileri kullan�c� klavuzu - nfr) N-code plan� sunan bir sayfa bulacaks�n�z - e�er iyi bilmiyorsan�z.
land:
# This is an example on how to detect

# in N-code a land attack
 filter pptp ip () {
        if(ip.src == ip.dest)
        {
                record system.time,
                        eth.src, ip.src, eth.dst, ip.dest
                to land_recdr;
        }
 }
Bilinmeyen de�i�kenler kullan�ld���nadan k�sa bir a��klama yap�lm��t�r :


g�r�ld��� gibi N-code == operat�r�n� tan�r, E�er ileri kullan�c�lar klavuzunu okursan�z,di�er var olan benzerlikleri bulacaks�n�z (di�er y�ksek seviye dilleele birlikte), �r. N-code + , - , *... operat�rlerini tan�r ya da d�n��t�r�len operat�rleri >=, != ....gibi, ay da yukar�da g�sterildi�i gibi ==. Xmas Scan: "Types of Attacks"'tan an�msayaca��n�z gibi Xmas Scan'da b�t�n flaglar atan�r. Bu y�zden ,onlar�n atan�p atanmad���n� tasdik etmek akla yak�nd�r. Bunun i�in ayr� ayr� atanan bitlerin de�erlerine ihtiya� duyar�z:
 Bit                    Value
 --------------------------------------
 F-FIN                  1
 S-SYN                  2
 R-RST                  4
 P-PSH                  8
 A-ACK                  16
 U-URG                  32
---------------------------------------
filter xmas ip() { if(tcp.hdr) { $dabyte = byte(ip.blob,13); if(!($dabyte ^ 63)) { record system.time, ip.src,tcp.sport,ip.dest, \ tcp.dport, "UAPRSF" to xmas_recorder; return; } } }
Burada yine baz� bilinmeyen de�i�kenler var:

$dabyte byte (ip.blob,13)'a atanan yerel bir de�i�kendir. "byte expression"'� a��klamak i�in burada k���k bir TCP code bits �rneklmesi var:
| Src Port | Dest Port | Seq Number | ACK Number | HDR Length | Flags |\
URG | ACK | PSH | RST | SYN | FIN | Win Size | Chksum | Urg Off | Opt |
byte()'da neden 13 byte'�n yer ald���n�n fark�nday�z, ��nk� flaglar� ayakta tutmak i�in 13 byte gerekli. Bytelar�n nas�l �al��t���n� anlamadan �nce ilk baz� laflar var. �rne�in "blob". �leri kullan�c�lar kalvuzunda ���nc� b�l�me bakarsan�z, "blob" "keyfi boyutland�r�lm�� ard���k bytelard�r". bir 'byte' bir blob'un �zellle�tirilmi� offsetinden bir byte d�ner, al���lagelen sentax ��yledir: byte (str blob_to_search, int offset). �lk arg�man ara�t�r�lacak blob'u belirler ( yukarda: ip.blob), �kinci arg�man arama sonras� byte (sought-after byte) (in 'blob_to_search') ofsetini belirler. 'if(!($dabyte ^ 63))' komutuyla b�t�n flaglar�n atan�p atanmad��� kontrol edilir, bunun sonucu b�t�n flaglar�n de�erleri (32+16+8+4+2+1) toplan�rsa 63 olur, e�er bilinmek istenirse: " ^ " birlikte, XOR �al��t�r�l�r.

bu se�eneklerin ayn�nda N-code �ok geni� olas�l�klar sunar. �rne�in, �unlar� blmak m�mk�nd�r:


N-code ile ilgili ek bilgiyi �u linklerde Bulabilirsiniz Advanced User's Guide Guide at:http://www.cs.columbia.edu/ids/HAUNT/doc/nfr-4.0/advanced/ advanced-htmlTOC.html

Bu sayfalar�n gelecek versiyonlar�nda daha �ok filtre ler tart���lacak, yenileri i�in d�zenli aral�klarla ontrol edin ;)
 

Standartlar


Bu b�l�mde �e�itli standartlara ve bir�ok uzmanlar tafa�ndan kullan�lan liste/anla�malar'a (list/agreements) giri� yapaca��z.
 

CVE

CVE (Common Vulnerabilities and Exposures) �rselenebilirlik ve ���nlamlar�n(vulnerabilities/exposures)listesinden ba�ka bir�ey de�ildir. �lk bak��ta e�lenceli gelebilir, Daha sonra olduk�a el alt�nda bulunacak. Sezilmi� �rselenebilirlikler i�in �e�itli ara�lar CVE(herkesin anlayip kullanabilecegi tek tip cesitli orselenebilirlik ve isinlama tanimlamasi )'lerden faydalanarak farkl� terimler kullan�yorlar. Boylece baska kullanicilar icin ayni araclari kullanmak artik zorunlu degil.

CVE spesifik orselenbilirlik ve isinlama icin bir isim ve tektip bir tanimlama uretir bunlar farli kullanicilar arasindaki yanlis anlasimalari onler. CVE orselenebilirligi, normal orselenebilirlik ile ilgili problemler ve butun makul guvenkil policelerinin conteksi anlama�na gelir. CVE �s�nlamay� baz� makul sigorta policelerindeki ihlal problemi olarak tanimlar. CVE � de ikisinin arasindaki fark temeldir. Orselenbilirlige ornekler phf, world-writeable pasword dosyalar�. Is�nlaman�n ornekleri Bruteforce tarf�ndan calictirilan programlarin kullanimi ya da genel olarak calistirilan servislerin kullanilmasidir.Tanimlama ve orneklerle orselenebilirlik ve isinlan�n ayrimi mumkun oldu. Temel fark saldirganin farkl� bir kullaniciymis gibi komutlari uygulama yetenegi ya da dosya izinlerine bagli olarak mumkun olmayan dosyalari okuyup bunlar uzerinde degisiklik yapmasidir. Isinlamalar, tersine, kullaniciya sistem ve sistemin durumu hakkinda ek bilgiler edinmesine izin verir. Bu aktiviteler arka planda olur�Isinlamalar, duzeltilebilen kusurlu guvenlik ayarlar�ndan dogar.Orselenebilirlikler normal guvenlik sistemlerindeki(izin kontrolune karsi olasi saldirilarda tehlikeyi en aza indirme olanagi bulunan) aciklardir. Her ne kadar bu �liste� su anda kaliyor olsa da , her orselenebilirlik ya da isinlamalar kabul edilmez. Bir orselenebilirlik/isinlama sezildikten sonra ilk once bir aday numaras� ula�t�r�r.(Bu CNA � Candidate Numbering Authority i�inde olur) Buna ek olarak CVE edit�r� tafar�ndan Board�a g�nderilir ve �rselenebilirli�in/isinlaman�n kabul edilip edilmedi�i ele al�n�r.E�er Board aday�n kabul edilmedi�ini sonuca ba�larsa (�imdilik) bunun sebebi web sitesi �zerine g�nderilir. E�er aday kabul edilirse listeye eklenir(ve CVE nin resmi bir par�as� olur). �imdilik, her olas� �rselenebilili�in ba�lang�� olarak bir aday numaras� (kabul edilip edilmeyece�i tart���lan) ald��� a��k olmal�. �rselenebilirlik bu aday numaras�n� listedeki resmi giri�lerden ay�rmak i�in al�r. Her aday�n 3 temel alan� vard�r.


Bu ba�lamda numara aday�n ger�ek ismidir,ek bir numara olarak giri� y�l�yla birle�tirilir,bu o y�l i�indeki ard���k adaylar� ortaya ��kar�r:
        CAN-Year - sequential candidate of the year

Daha �nce i�lendi�i gibi kabul edilen aday listeye eklenir. Sonu� olarak 'CAN-YEAR- Candidate number' 'CVE-Year-Candidate number' halini al�r. �rne�in: 'CAN-2001-0078' listede 'CVE-2001-0078' halini al�r .

Hepsi bu, daha fazla bilgi i�in CVE�nin resmi web sitesine bak�n�z.
 

Ornekler


Bu son b�l�mde baz� IDS � lere ba�lang�� yap�lacak.
 

Snort

��nk� Snort �ok iyi bilinen ve daha sonra �ok detayl� anlataca��m bir �ok se�enek sunan bir IDS �rne�idir. Esas�nda, Snort 3 moddan birinde olabilir: Sniffer, Packet Logger ve Network Intrusion Detection System. Sniffer modunda Snort konsolda paket olu�turur, Packet Logger modunda onlar� hardiske kaydeder ve Network Intrusion Detection modu paketleri analiz etmeyi sa�lar. �o�unlukla son modan bahsedece�im, fakat burada Sniffer ve Packer Logger modunada bir giri� yapaca��m:
Sniffer modunda �e�itli paket bilgileri okunabilir, TCP/IP paket ba�l��� gibi:
 [Socma]$ ./snort -v

��kt� olarak yaln�zca IP/TCP/ICMP/UDP ba�l���n� al�r�z. �ok fazla opsiyonu, kullan�m se�ene�i var, burada bir ka�� g�sterilecek.
 -d = will deliver the packet data
 -e = shows the Data Link Layer

Packet Logger Modu:
Sniffer modundan farkli olarak Packet Logger modu hard diske paketleri kayit edebilir. Bizim yaln�zca Snort�un kaiyt edecegi dizini belirlemiz gerekir ve o otomatik olarak Packet Logger moduna gececektir:
 #loggingdirectory must exist:
 [Socma]$ ./snort -dev -l ./loggingdirectory
�-l� girince Snort bazen uzak bilgisayarin adresini dizinmis gibi gosterir (icine kaydetigi) bazende yerel host adresini alir. Ev agina kayit edebilmek icin ev agini komut satirinda belirlememiz gerekir:
[Socma]$ ./snort -dev -l ./loggingdirectory -h 192.168.1.0./24
Baglanmak icin diger bir olasilik TCP-DUMP format�d�r:
 [Socma]$ ./snort -l ./loggingdirectory -b
�imdi giri� paketi kay�t edilecek, yanlizca belirlei bolumler degil, ek secenekler icinde eleme yapar. Dosyalari ASCII�ye donusturebilmek icin tcpdump gibi programlar� kullanmak mumkundur, ancak Snort bunu yapabilir:
 [Socma]$ ./snort -dv -r packettocheck.log
Network Intrusion Detection Modu: NIDS moduna gecebilmek icin asagidaki gibi bir komut kullanabiliriz:
 [Socma]$ ./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf
Bu sartlarda snort.conf dosyasi konfigurasyon dosyasidir. Bu dosya bir sladiri olup olmadigini belirten kurallarin nerede oldugunu Snortun bilmesi icin kullanilir (ve istege izin verilip verilmedigini). Snort.conf �ta tan�mlanan kurallar, bunlari analiz etmek icin pakette uygulanacak. Eger belirli bir cikti dizini olusturulmamissa var olan dizin /var/log/snort kullanilir. Snort ciktisi uyari moduna baglidir � bunun uzerine yakin yada uzak bir zamanda gerceklesme bilgisi verir.
 ----------------------------------------------------------------
 |      Modus   |  How/what is displayed                    |
 ----------------------------------------------------------------
 | -A fast      |  Time, Source and Destination IPs/ports,  |
 |              |  the Alert Message              |
-----------------------------------------------------------------
 | -A full      |  Default Setting                          |
-----------------------------------------------------------------
 | -A unsock    |  Sends the Warnings to a UNIX           |
 |              |  socket                                       |
-----------------------------------------------------------------
 | -A none      |  Stops the Alerts                          |
-----------------------------------------------------------------

Goruldugu gibi �b ile binary moda kayit yapabiliriz, -N ile paket kaydi tamamen sonlandirilir. Fakat bu bir sinir degildir, ornegin Snort syslog�a mesajlar gonderebilir bunun icin var olan ayar LOG_AUTHPRIV ve LOG_ALERT�tir. Syslog�a mesaj gondermek icin yapmamiz gereken tek sey ��s� kullanmaktir. Bunadan baska smbclient�a mesaj gonderme yada Windows bir bilgisyara Win-pop-up uyarilari gonderme olanagimiz vardir. Bu ozellikten faydalanabilmek icin Snort�un knfigurasyonuna "-enable-smbalerts" girmek yeterlidir.
 [Socma]$ ./snort -c snort.conf -b -M MYWINWORKSTATION
Uyari modunun bir uygulama ornegi:
 [Socma]$ ./snort -b -A fast -c snort.conf
Tanimlanan secenkelerin yaninda digerleri asagidaki gibidir:
 -D = starts Snort in daemon mode
 -u usersnort= starts Snort with UID 'usersnort'
 -g groupsnort = starts Snort with GID 'groupsnort'
 -d = also log the data of the applications layer
r


Eger bir bilgisayarda Snort �h komutunu calistirirsaniz yada problem olan mail listesine bakarsaniz Snort bircok secenek sunar. Takip eden bilen Snort kurallarindan olusur. Eger anlamaya dikkat etmek istemiyorsaniz bu bolumu gecebilirsiniz. Bu bolumun en sonunda belirttigim gibi (Snort hakkinda) www.snort.org �tan Snort kullanici manuelini indirebilirsiniz, bu bizim gercek kaynagimizdir.

Snort Kurallar�:
Snort�u daha iyi anlamak icin Snort kurallarini bilmek zorunludur. Snort bazen �var� diye tanimlanabilen belirli degiskenler kullaniyor:
   var: <name> <wert>      var

   MY_NET [192.168.1.0/24,10.1.1.0/24]
   alert tcp any any -> $MY_NET any (flags:S;msg: "SYN packet";)
Degisken ismi girebilmek icin baska yollarda mevcut:
$variable = defines the Meta variable
$(variable) = here the value of the variable 'variable' is entered
$(variable:-default) = if 'variable' is defined, its  value is entered here,
is 'variable' not defined the value 'default' is entered.
$(variable:?msg) = enters the value of the variable 'variable' or
if not defined puts the message 'msg' out.

Daha once kabuk programlama ile ilgilendiyseniz asagidaki size yabanci gelmeyecektir:
 [Socma]$ shelltest=we
 [Socma]$ echo hello $shelltestlt
 hello
 [Socma]$ echo hello ${shelltest}lt
 hello world
Snort�taki $(variable) ile kabuktaki ${variable} aynidir. Kabuk programlamada baska esitleri (yada benzer terimleri) vardir:
 [Socma]$ shelltest = bash
 [Socma]$ echo ${shelltest:-nobash}
 bash
 [Socma]$ echo ${notdefined:-nobash}
 nobash
'$(variable:-default)' teriminin uygulanmasi sadece () yerine kabugun {} kullanmasidir. Son terim kabukta da vardir:
 [Socma]$ shelltest = bash
 [Socma]$ echo ${shelltest:?"then csh"}
 bash
 [Socma]$ echo ${notdefinedvariable:?"not defined or nil"}
 not defined or nil

Bu kisa gezintinin amaci bilgi ile iliksi kurmakti. Terimleri, kafamda dusunmektense Snortun syntax��n� boyle daha hizli hatirladim.
Konfigurasyon dosyasini bircok komut satiri secenegi yazilabilir. Bunun icin 'config' kullanilir::
        config <directive> [: <value> ]

En onemli komutlar:
alertfile = uyarilarin kayit edildigi dosyayi degistirir
daemon = daemon ( -D) olarak porosesi baslatir
reference_net = home network (-h)
logdir = kayit edilecek dizini atar (-l
nolog = Kayiti sonlandirir
set_gid = GID'� de�i�tirir (-g)
chroot = chroot'ed in th especified directory (-t)
set_uid = UID'� atar (-U)


Eger uyari dosyasini degistirmek istiyorsaniz, ornegin "mylogs" soyle yazin:
        config alertfile : mylogs

Gercek kurallara geri donersek ( burada ftp.rules orne�i ):
alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP EXPLOIT overflow";\
flags: A+; content:"|5057 440A 2F69|";\
classtype:attempted-admin; sid:340;rev:1;)

Esas�nda , Snort kurallar� iki par�adan olu�ur : Kural ba�l��� ve kural se�ene�i. Kural ba�l��� 2 �ey hakk�nda bilgi verir.:

Yukar�daki ftp kural�nda ba�l�k a�a��daki gibidir.
 Action       source ip         destination ip
    |              |                |
 alert tcp $EXTERNAL_NET any -> $HOME_NET 21
         |                |               |
        Protokoll       From any port   Port

G�r�ld��� gibi ilk �nce kural ba�l��� sona erer ( ve sonra kural se�enekleri ba�lar. Bir�ok olas� hareket (Snort kurallar�n�n ku�kulu bir �ey ke�fedip ke�fetmedi�ini ortaya koyan)vard�r (bu ko�ulda 'alert�)

�kinci alan (burada protocol - tcp ) hangi protokolun analiz edilece�ini belirler. Olas� olanlar: tcp, udp, icmp and ip ( gelecekte ba�kalar� da olabilir ... ARP, GRE,..gibi).
Sonraki alanla ba�lant� olarak (source ip) s�k�a �! �� operat�r�n� buluyoruz. (negations operator).
 alert tcp !$EXTERNAL_NET any -> $HOME_NET 21

Sonu� olarak �!�operat�r� $EXTERNAL_NET �den ula�mayan paketleri kaydeder. IP adresi girmek, IP adresi listesi gibi bir�ok olas�l�k var. Adresler virg�lle ayr�lmlar� ve �[ ]� i�ine al�nmal�d�r..
        alert tcp ![ip address,ip address] any -> ....

Bir ba�ka alternatif "any"i kullanmakt�r, bu her IP adresini i�erir.
        log tcp any any -> ...

Kural ba�l�klar�ndaki son b�l�m portlar�n belirlenmesidir, �rne�imizde ftp. Tek bir portu g�zetlemek m�mk�n de�ildir fakat bir �ok portu g�zetlemek m�mk�nd�r. Se�enkler a�a��dad�r.
 :portnumber                     -> all ports smaller equal
                                 portnumber
 portnumber:                     -> all ports higher equal
                                 portnumber
 fromportnumber:toportnumber     -> all ports between fromportnumber
                                 and toportnumber (and those included)

Girilenler d���ndaki b�t�n portlar�n g�zetlenmesi i�in �!� operat�r�n� kullanmak tabii ki m�mk�nd�r.
       !:21            -> all ports which are not smaller equal 21
A��klanmayan fakat kullan�lan bir operat�rde y�n operat�r�d�r. "->".
                "source" -> "destination"
Ba�ka bir �eklide var .<> :
                 "source" <> "destination"
Bu Snort�un kaynaklar gibi hedefleride ara�t�raca�� anlam�na gelir
Belirtti�im gibi 'activate' ad�m� vard�r, bu bir uyar� mesaj� olu�turur ve ba�ka bir dinamik Snort kural�na d�ner.
Belirli bir kural hareketlerini tamamlam��sa,ba�ka bir kural� active edebilir. Esas�nda, normal kurallar ile "activated rules" kurallar� aras�ndaki farksadece belirli bir alan olu�turulmas�d�r.: "activates". Dinamik kurallar, di�er taraftan, log gibi �al���r (yukar�ya bak�n�z),tek fark : "activate_by" girilmelidir. Bir alan daha girilmelidir: "count". "activate rule" yap�ld�ktan sonra onun g�revi dinamik kurallar�n istenmesidir, yaln�zca �forcount" kaydeder (count=40 iken 40 paket).
activate tcp !$HOME_NET any -> $HOME_NET 143 (flags : PA;  \
  content : "|E8C0FFFFFF|\bin|;activates : 1; msg : "IMAP buf!";)
dynamic tcp !$HOME_NET any -> $HOME_NET 143 (activated_by : 1; \
  count : 50;)

Se�eneklerin baz�lar�na, kural se�enekleri gibi, hen�z girilmedi,onlar� �imdi a��klayaca��m, fakat siz daha sonra emin olacaks�n�z. L�tfen yukar�daki �rne�imizdeki alanlar� activates ve activated_by (dynamic rule) not al. �lk kural dinamik kural� gerektirir, bu ilk kuraldan sonra g�revi biter, bu ayn� zamnda �u ifade ile belirtilir.

Snort Kurallar�n�n �kinci B�l�m�: Kural Se�enekleri. Yeniden ilk ftp.rule �u kullanal�m:

alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP EXPLOIT
overflow"; flags: A+;\
content:"|5057 440A 2F69|";classtype:attempted-admin;\
sid:340; rev:1;)


Bu ko�ulda kural se�ene�i (ilk �nce kural ba�l��� durur)):

 (msg:"FTP EXPLOIT overflow";\
flags: A+; content:"|5057 440A 2F69|";\
classtype:attempted-admin; sid:340; rev:1;)


34 tane anahtar kelime var , ben kendimi en �nemlilerle ya da en �ok kullan�lanlarla s�n�rlad�m. Bu nedenle b�t�n anahtar kelimeleri g�rmek isteyen Snort Kullan�c� Manualine bakabilirler..

msg -uyar� mesajlar�n� g�r�nt�ler ve Packet Logger Moduna kaydeder
logto -belirli dosyalara paketleri kaydeder.
dsize - farkl� de�erlerdeki paket b�y�kl�klerini k�yaslar
flags - belirli de�erler i�in TCP flag lar�n� kontrol eder
content - pakette belirli bir �rg�/dizgi arar
content-list - pakette belirli bir �rg�/dizgi arar
nocase - yukar� ve a�a�� ko�ullarda bulunan dizgiler ihmal edilir
react - aktif yan�t (web sitelerini bloklar)
sid - Snort Kural id'si
classtype - bir gruptaki olas� sald�r�lar� s�ralar
priority - duyarl�l��� kurar
Ki�isel kurallar nas�l �al���r ? msg:
Kurallar� �al��t�rt���m�zda 'msg' � olduk�a s�k g�r�yoruz, uyar�lar�n olu�turulmas� ve kaydedilmesine sorumludur..
   msg:"<text>";
t "" uyar� dosyas�na yaz�lan mesajd�r
logto:
Kural�n uygulanabildi�i her paket belirli bir dosyaya kaydedilir.
    logto: "<filename>";
Bu ko�ulda "" uygulanabilir dosyalar�n kaydedildi�i dosyad�r.
dsize:
Bu paketin b�y�kl���n� belielemek i�in kullan�l�r.Belirli bir servisin arabellek b�y�kl���n� biliyorsak,bu se�enek olas� bir arabellek ta�mas�ndan korunmak i�in kullan�labilir. 'content' � e k�yasla dha h�zk�d�r, bu y�zden ara bellek ta�malar�n� �nlemek i�in s�k�a kullan�l�r.
        dsize: [>|<] <size>;
�ki opsiyonel operat�r( > ve < ) paket b�y�kl���n�n daha b�y�k olmas� gerekti�ini belirtir,yani: belli de�erlerdeki flaglardan daha k���k olmal�:
Bu hangi flaglar�n atand���n� test eder. Snort da 9 flag kullan�lmaktad�r:
 F      FIN
 S      SYN
 R      RST
 P      PSH
 A      ACK
 U      URG
 2      Bit 2 assigned
 1      Bit 1 assigned
 0      no TCP flags set

Flaglar�n belli kriterlerini test etmek i�in baz� mant�ksal operat�rlerde vard�r.
 + ALL flag     = Hit at all specified flags (others as well).
 * ANY flag     = Hit at all specified flags.
 ! NOT flag     = if the specified flags are not set.

Anahtar kelime �flag� genelde �u �ekilde kullan�l�r.
        flags: <Flag valuet>;

Reserve edilen bitler ol�and��� davran��lar�n sezilmesinde kullan�labilir
content:
En �ok kullan�lan anahtar kelimelerden bir ( 'msg' yan�nda) 'content' dir. Paketlerin payloadlar�n�n k�smi i�eriklerini ara�t�rmak i�in kullan�l�r . E�er belirlenen content sezilmi�se, �ncden tan�ml� ad�mlar kullan�c�ya kar�� ortaya konur. Paketin payload�ndaki contentlerin sezilmesinden sonra Snort kurallar� �al��t�r�l�r. 'nocase' (a�a��ya bak) uygulmadan capitalization yap�labilir. Payload�n contenti binarileri tex gibi ara�t�rabilirler. Binary veri | | i�ine al�n�r ve byte kodlar� g�sterilir. Byte Kodlar� binary bilgiyi hexadecimal numaralar olarak verir .Bu anahtar kelimenin i�eri�inde (!) operat�r� uygulanbilir, �rne�in, paket belirli bir text i�eriyorsa, bit uyar� mesaj� verebiliriz..
        content: [!] "<content>";

"!" zorunlu de�il.
 alert tcp any any -> 192.168.1.0/24 143 \
(content: "|90C8 C0FF FFFF|/bin/sh";\
msg: "IMAP buffer overflow";)

Bu kuralda kan�tland��� gibi binary veri | | i�ine al�n�r, bunu m�teakip, normal text�de uygulanabilir. Snort User Manual.�de �offset� ve �depth��in tan�m�na bak�n�z , ��erikte s�k s�k 'context' � le birlikte kullan�l�r.

content-list:

Bu anahtar kelime 'content'�e benze olarak �al���r,dizgi numaras� (paketlerin ara�t�r�lmas� i�in kullan�l�r) fark�yla. Uygun hexa munaralar�, dizgileri, v.g. bir dosyaya girdik.Bu dosya(ara�t�r�lacak kelimeleri i�eren), 'content list'�in uygulanmas�nda belirlenecek.. Dizgilerin d��ey olarak yaz�ld���n� akl�m�zda tutmam�z gerekir (her dizgi bir sat�rda), �r.

        "kinderporno"
        "warez"
        .....

Bunu takiben, 'content-list: [!] "" �i uygulayarak ' dosyay� ara�t�rabiliriz. Tabii ki ! opsiyonel, 'content'.� Teki ayn� etkiyi yapar

nocase:
'content' anahtar kelimesiyle birlikte i�erikte bu kural �ok �nemli bir rol oynar . normalde b�y�k/k���k harf gereklidir, 'nocase' ko�ul duyarl�l��� kullan�larak bu ihmal edilir.

 alert tcp any any -> 192.168.1.0/24 21 (content: "USER root";\
  nocase; msg: "FTP root user access attempt";)


�nocase' kullan�lmazsa sadece 'USER root' ara�t�r�l�r, ��nk� 'nocase' ko�ul duyarl�l���n belirlenmesi uygulanmam��t�r..
Belirli bir 'content' i�in ara�t�rma bir darbeyle sonu�lan�rsa 'react' bunu yan�tlamak i�in kullan�labilir.Kullan�c� taraf�ndan istenen belirli genel ama�l� sayfalar bloke edilir(porno sayfalar...) Flex Resp ba�lant�s� uygulanarak ba�lant�s� sonland�r�labilir yada penceresine bir uyar� g�nderilebilir. A�a��daki se�nekler olas�d�r.

block - ba�lant�y� sonland�r�r ve bir bildiri g�nderir
warn - g�r�n�r bir uyar� yollar (daha sonra kullan�labilir olacak)
Bu basit arg�manlar ek arg�manlarla tamamlanabilir(b�ylece el geli�tirici diye adland�r�l�rlar)

msg - 'msg' anahtar kelimesinden yararlan�lara g�nderile text kullan�c�ya b�nderilen bidiri i�inde de yer al�r.
proxy : - Bildirileri g�ndermek i�in kullan�l�r(daha sonra kullan�labilir olacak)
        react : <basic argument [, additional modifier ]>;

'react' anahtar kelimesi kural se�eneklerinin en sonuna eklenir, ��yle kullan�labilir.
 alert tcp any any <> 192.168.1.0/24 80 (content-list: "adults"; \
   msg: "This page is not for children !"; react: block, msg;)
sid:
'sid' ya da Snort Kurallar Belirlenmesi �zel Snort kurallar�n�n kimlere ait oldu�unu saptar belirler.'ouput plugin'ler i�in her kural� belirlemek olas�d�r. Bir�ok sid grubu vard�r.
 < 100 = reserved for future use
 100-1 000 000 = rules which come with Snort
 > 1 000 000 = being used for local rules

 sid-msg.map contains a mapping of msg tags for sid's.
It is being used foe post processing to assign a warning to an id.
 sid:  <snort rules id>;

 alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80  \
  (msg: "WEB-IIS file permission canonicalization"; uricontent:\
  "/scripts"..%c1%9c../"; flags: A+;nocase;sid: 983;rev:1;)
classtype:
'classtype'� kullanarak sald�r�lar� bir�ok gruba ay�rabiliriz.Kurallarda olas� sald�r�lar�n �nceli�ini tan�mlayabiliriz. Konfig�rasyon dosyas�nda s�n�fland�r�lan kurallar standart bir �nceli�e otomatik olarak atanacakt�r.

 classtype: <class name>;

Kurallar�n kategorileri clasification.config ' de tan�mlan�r.A�a��daki sentaks kullan�l�r.
 config classification: <class name>,<class description>,\
       <standard priority>

A�a��daki paragrafda - priority'nin tan�mlanmas�- ne �e�it sald�r� grublar�n�n oldu�unu ��renece�iz.
priority:
Bu anahtar kelime kurallar�m�za g�venlik �nceli�ini atamak i�in kullan�l�r, olas� bir sald�r�n�n ne kadar zarar verece�i anlam�na gelir.�ncelik ne kadar b�y�kse olas� g�venlik riski,zarar� o kadar fazlad�r. 'clas types' da daha �nce a��kland��� gibi �ncelikleri anlamak olduk�a kolayd�r.
Class type                    Description                Priority
---------------------------------------------------------------------
 not-suspicious                Any "unsuspicious" traffic    0
 unknown                       Unknown traffic                  1
 bad-unknown                  Potential "bad" traffic      2
 attempted-recon              Attempted Information Leak            3
 successful-recon-limited     Information Leak                      4
 successful-recon-largescale  Large Scale Information Leak          5
 attempted-dos                Attempted DoS-attack                6
 successful-dos               Successful DoS-attack              7
 attempted-user              Attempted to get user privileges 8
 unsuccessful-user            Unsuccessful attempt to get
                                        user privileges
 successful-user             Successful attempt to get
                                     user privileges
 attempted-admin              Attempt to get admin privileges     10
 successful-admin            Successful attempt to get admin privileges

Daha �nce belirtildi�i gibi, y�ksek �ncelikler b�y�k g�venlik riskleri demektir. Admin �nceliklerini kullanan bir kullan�c� bir �ok sald�r� �retebilir.
 alert tcp any any -> any 80 (msg: "WEB-MISC phf Versuch";\
        flags: A+;content: "/cgi-bin/bash";priority:10;)

Kurallar konusu �ok karma��k ancak zor de�il.Bir ka� kurala �al���p, manuelde ara�t�rd�ktan sonra bir s�re sonra bu konuda �ok iyi olursunuz :) Snort i�in kaynaklar ve belgeler http://www.snort.org da bulunabilir. Orada baz� de�erli .pdf'ler bulacaks�n�z. Snort kullan�c� Manuel'i bu tan�mlama i�in ana kaynakt�r  

LIDS


Stealth'in bildirisi (ve kaynaklar) ve LIDS-Hacking-HOWTO'ya bakt�ktan sonra LIDS'in ger�ekten bilgisayar g�venli�ini y�kseltmedi�ini biliyoruz.

LIDS kavram�na g��l� ve zay�f y�nlerine bir bakal�m. LIDS temel olarak-�rne�in- �nemli sistem dosyalar�n� korumak, kullan�c�dan gelen belirli prosesleri gizlemek i�in geli�tirildi. Buna ek olarak bind modullerini basitle�tirmeye izin verilmedi, gerekli moduller sistemin ba�lat�lmas�yla s�n�rland�r�ld�.Daha �nce LIDS-Hacking-HOWTO ve Stealth'in bildirisinden bahsettim, her ikiside LIDS'in �al��mas�n� ve zaaflar�n� a��kl�yor. En �neli �zelliklerle ben kendimi s�n�rlayaca��m. Her iki text'e linki bu b�l�m�n sonunda bulacaks�n�z

LIDS'in ana g�revi dosya sisteminin korunmas�d�r. �nemli dosya ve dizinleri korumak i�in bunlar farkl� grublara ayr�l�rlar.

  • Read Only = Bu dosya veya dizin sadece okunabilir. De�i�ikliklere izin verilmez
  • Append Only = Sadece dosyaya ek yapmaya izin verilir
  • Exception = Bu dosyalar korunmam��t�r.
  • Protect (un)mounting = Bir kullan�c�n�n dosya sistemini de�i�tirmesine izin verilmesini ya da verilmemesini sa�lar.

Ger�ek koruma i�in baz� sistemler bu �zellerini geli�tiriyorlar.(�r. sys_open(), sys_mknod(), ...)
Bunula beraber, LIDS �ld�r�len,sonlad�r�lan belirli prosesleride korur. Bu prosed�r�n amac� kullan�c�y� y�neten baz� belirli prosesleri kullan�c�n�n g�rmesini engellemektir. Bir 'ps-ax' bizim prosesimizi ortaya ��karmayacakt�r. Prosesi ger�ekten gizlemek i�in, 'PF_HIDDEN' diye i�aretlenir.'ps' in proses hakk�nda bilgi geli�tirmek i�in �al��mas� durumunda,'PF_HIDDEN' olarak i�aretlenen prosesleri korunmas� s�recektir. Bu kendi ba��na prosesi gizlemek i�in yararl� de�ildir, ��nk� hala ge�ici olarak proc dosya sistemine giri� vard�r(/proc), sonu� olarak LIDS /proc dizinini g�terme fonksiyonunun �nlenmesi i�in ayn� zamanda geli�tirlmektedir. Bunlar�n yan�nda, yeteneklerle birlikte ayr�cal�klar� k�s�tlama olas�l���da vard�r.E�er- �rne�in- CAP_CROOT s�f�ra atan�rsa prosesin chroot'u kullanmas� �nlenecektir. (/usr/src/linux/include/linux/capatibilites.h ' a bak�n�z).
Bununla beraber,LIDS iki g�venlik se�ene�ini �al��t�rma olana��na sahiptir: 'g�venlik' yada 'g�veli olmayan(none_security)'. �kisinin aras�ndaki fark� anlatmak i�in 'lids_load' tan faydalan�l�r. Varsay�lan de�eri 1'dir, bu LIDS in g�venlik modunda �al��t��� anlam�na gelir-s�n�rlamalar yasala�t�rlm��t�r. E�er 'security=0' olarak ba�lang��ta (LILO promptu) 'none_security' �al��t�r�l�r. Sonu� olarak b�t�n kontroller s�n�rlamar �al��maz hale gelir. 'lids_load=0' atanarak bilgisayar�n LIDS y�klenmeyecekmi� gibi �al��mas� sa�lan�r. G�venlik se�ene�ini de�i�tirmek i�in ek bir se�enek 'lidsadm-S' in online olarak uygulanmas�d�r, bu bir parola gerektirir.

LIDS,CONFIG_LIDS_ALLOW_CHANGE_ROUTES active ederek ve CAP_NET_ADMIN kapatarak g�venlik duvar� kuarllar�n� �nleme olana��da sa�lar.E�er bir kimse g�venlik duvar� kurallar�n� modifiye etmek isterse,CAP_NET_ADMIN in bu kurallar� ba�kas�n�n de�i�tirmemesi i�in aktive edilmesi gerekir.Buna ek olarak, Siniffer'�n �al��mas� engellenebilir ve porrt taray�n�n kernelle b�t�nle�tirilebilir.


Lids bir�ok yan�t se�ene�i de sunar(Yan�tlar b�l�m�ne bak�n�z).

Genel olarak bir�ok se�enek vard�r. Stealth LIDS 'in nas�l k�t�ye kulln�laca��n� bildirisinde anlatmaktad�r: http://www.securitybugware.org/Linux/4997.html. LIDS Howto �u adreste bulunabilir: http://www.lids.org/lids-howto/lids-hacking-howto.html.

 

COLOID


COLOID(Collection of LKMs for Intrusion Detection), Bir s�re �nce benim tafar�mdan bulundu.
Projenin par�alar�n� bilmeye gelince iyi �al��m�yor ve proje ge�ici olarak durdurulmu� durumda. Buna ra�men, planlanan �zelliklerin ayr�nt�lar�na girmek istiyorum. �lk modulle(prev_exec) belirli binarylerin belirli zamanlarda �al��t�r�lmas�n� ge�ici olarak �nlemek istedik(Kayna��mda GNU compiler kulland�m GCC) �al��t�r�lma yasakland��� zaman bu kaynakta tan�mlan�r-zaman dakika olarak belirlenebilir.E�er bir kullan�c� bu zamanda GCC �al��t�rmak isterse bloke olacakt�r,GCC �al��t�r�lmayacakt�r. Bir kullanc�n�n izin verilen zamanda GCC yi �al��t�r�p �al��t�ramayaca�� arg�man� kontrol edilecek ve .c dosyalar� i�in ara�t�r�lacak.Bu prosed�r�n amac� kaynaktaki 'tehlikeli fonksiyonalar�n'ara�t�r�lmas�d�r. Varsay�lanlar 'scanf' ve 'strcpy'....vbdir. Bir�ok fonksiyon eklemek m�mk�nd�r. Daha �nce belirti�imiz gibi LKM kayanaklar� ara�t�r�r, fonksiyonlar�n sezilip sezilmedi�i, GCC nin �al��t�r�lmas� yasaklanm��t�r. Kay�t dosyas�na ek olarak bir 'beep' geli�tirlmi�tir.


Sonunda mod�l �al��t� fakat kavram genel olarak yeterli de�ildi ve kolayca atlat�labilirdi.

�kinci mod�l daha �nce bahsetti�imiz Anomaly Dedection'� kullanan'anom_dedection'd�r. Asl�nda iki LKM bu b�l�me aittir.
1) Anomaly_Detection.c : normal kullan�c� aktivitelerinin bi veri taban�n� olu�turur
ve
2) Misuse_Detect.c : kullan�c�n�n davran���n�n veritaban�nda kaydedilen normal davran���ndan farkl�l�k g�sterip g�stermedi�ini kontrol eder.

LKM kontrol� i�in plan a�a��daki gibiydi.

A�a��daki komutlar� kullan�c� nes�kl�kta �al��t�rd�?:
  • su
  • login
  • chmod
  • chown
  • insmod
  • ps
  • lsmod
  • rm
  • last
  • lastlog
  • ftp


a�a��daki komutlar� kullan�c� ne zaman �al��t�rd�:
  • login
  • su

ya da kullan�c� PC'yi ne zaman normal olarak ba�latt� ve ne zaman kapatt�
Di�erleri:
A�a��daki dosyalar� ne s�kl�kta a�maya u�ra�t�:
  • /etc/passwd
  • /etc/group
  • /etc/shadow
  • /etc/ftpusers
  • /etc/ftpgroups
  • /etc/ftpaccess
  • /etc/hosts.allow
  • /etc/hosts.deny
  • /etc/inetd.conf
  • .....


SUID bit setiyle programlar� �al��t�rmaya ne s�kl�kta u�ra�t�?
G�zetlenecek dosyalar�n belirlenmesinde dikkatli olmal�y�z.(Bunalr� ne s�kl�kta a�t�?) E�er biz �ok fazla dosya se�ersek bu PC'nin performans�na bir darbe vuracakt�r. Makul olan dosyalar �al��mayacakt�r.

Tam kayna�� olmayan benzer LKM'ler vard�r.Bu iki modul�n kayna�� a�a��da belirtilen sayfamdan al�nabilir, belki birisi bununla bi�eyler yapmak isteyebilir.


 

Kapan�� Kelimeleri

Bu konunun i�eri�i hakk�nda daha fazla fikir edinmek isteyen birisi bana bir not b�rakabilir:Socma(Q)gmx.net Ek bilgi, g�r�� ve kritikler i�in l�tfen bana mail g�nederin
Referanslar (Bunlarla birlikte text tede var):
  1. http://online.securityfocus.com/infocus/1524
  2. http://online.securityfocus.com/infocus/1534
  3. http://online.securityfocus.com/infocus/1544
  4. http://online.securityfocus.com/infocus/1232
  5. http://www.entercept.com/products/entercept/whitepapers/downloads/systemcall.pdf
  6. http://www.computec.ch/dokumente/intrusion_detection/angriffsmoeglichkeiten_auf_okenas_stormwatch/angriffsmoeglichkeiten_auf_okenas_stormwatch.doc
 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Klaus M�ller, FDL
LinuxFocus.org
�eviri bilgisi:
de --> -- : Klaus M�ller <Socma(at)gmx.net>
de --> en: J�rgen Pohl <sept.sapins(Q)verizon.net>
en --> tr: Muzaffer AYVAZ <ayvazm(at)be.itu.edu.tr>

2004-07-14, generated by lfparser version 2.43