Friday, January 29, 2016

Is IDS/IPS Necessary?

Another cool passage about IDS/IPSs from the same source:
 
"The security manager may have truly found the best IDS/IPS on the market, but unless the employees know how to configure and harness this system, it is just as ineffective as not having any system in place at all!"

(Source: https://www.sans.org/reading-room/whitepapers/detection/intrusion-detection-prevention-systems-cheat-sheet-choosing-solution-common-misconfi-36677)

Which One is Better? IDS or IPS?

A quite cool passage from one of the SANS' studies:

"Some may argue that an IPS is better than an IDS as it maintains the ability to block completely potentially malicious traffic, which in turn might completely stop attackers in their tracks; however, this is simply not the case. The choice between an IDS or IPS system depends solely on meeting the goals of your organization, without causing unnecessary network connectivity issues for legitimate users on the network."

(Source: https://www.sans.org/reading-room/whitepapers/detection/intrusion-detection-prevention-systems-cheat-sheet-choosing-solution-common-misconfi-36677)

Wednesday, January 27, 2016

How Security Works in the Real World

A very wise and also a very realist approach which I faced in a youtube video which I wanna share here:
"How security works in the real world? Security people can't respond every single threat against the system. So basically they wait until a certain threshold has been hit before they respond to a threat."
 

Türkilizce #2

Günlük konuşmalarda şahit olabileceğimiz bir başka dil "acubesini" daha paylaşayım. Ben daha dün kulak şahidi oldum. Kulağımı cızır cızır tırmaladı. (Olayın diyalog haline getirilmesi de benden olsun.)

A: Bir sorunum vardı.
B: Dinliyorum.
A: Abi "issue" "create" edemiyorum.
B: {{HÖNK!!}}

Aklıma gelen muhtemel cevaplar:
1) A be evladım! Issue create etmek senin ne haddine düşmüş? Sen git "tissue" falan create et. Daha iyi gelir.

2) Geçen gün çok samimi bi arkadaşım da "issue" "create" etmek istedi de zor kurtuldu. "N'apıyosun oğlum? Deli misin? Durduk yere hiç "issue" "create" edilir mi?" falan dedim. Biraz nasihat ettim de aklı başına geldi. Hiç tavsiye etmem. Sen git bi çay al. "Issue"dan daha iyidir.

3) "Issue" ile mi doğdun lan? Bi de "create" edeceksin he mi? Oğlum bak git!

4) Bi kerem "issue" "create" edilmez taam ma?

Burada durayım. =))

Tuesday, January 26, 2016

Türkilizce #1

Daha doğru dürüst Türkçe konuşamadan İngilizce öğrendiğimiz için ülkemizde ortaya oldukça garip bir dil çıkmış durumda: Türkilizce. Adama "Cümle kur. Meramını anlat." dersin. Daha onu anlatacak seviyede değil. Tutar bir de cümlelerine İngilizce kelimeler katar. Ne Türkçe'yi doğru dürüst konuşabilir ne de İngilizce'yi adamakıllı bilir. Ortaya da mide bulandırıcı, komik, acube cümleler çıkıverir böylece.

Bu günlükte normal hayatta rastladığım bu tür acube cümleleri de paylaşacağım bundan sonra.

İlk cümlemiz geliyor. Hazır olun: (Noktalama işaretleri benden.)

O "task"ta "agent"ta bulunan modüllerin yapılarını "base class"ta "implement" ediyoruz. Modüllere özgü "feature"ları da o modüle ait olan "class"larda ayrıca implement ediyoruz.

Bu cümleyi anlayıp, Türkçe olarak başkasına anlatabilenlere, çekilişle Türkçe sözlük hediye edeceğiz. =))

TDK'yı göreve çağıracağız ama TDK'nın kendine hayrı yok bu konuda. Sessiz olun! Uyanmasınlar!

Wednesday, January 13, 2016

Suricata'da IP İtibar (IP Reputation) Ayarlarının Yapılması

Suricata saldırı tespit/engelleme sistemi IP kara listesinde (IP blacklist) olan IP adreslerinden ya da bu IP adreslerine doğru olan trafiği de yakalayabilmektedir. Saldırı engelleme modunda kurulu ise bu trafiği engelleyebilmekte, saldırı tespit modunda ise bu trafikle ilgili alarm üretebilmektedir.
Bu yazıda, bunun için Suricata'da yapılması gereken ayarlardan bahsetmeye çalışacağım.
Suricata'nın yapılandırma (konfigürasyon) dosyası olan suricata.yaml dosyası içerisinde "IP reputation" bölümü bulunmaktadır. Bu bölümün altını değiştirerek Suricata'da IP itibar ayarları yapılmaktadır. Suricata'nın örnek bir "IP Reputation" bölümü aşağıdaki gibidir:
#IP Reputation
 reputation-categories-file: /etc/suricata/iprep/categories.txt
 default-reputation-path: /etc/suricata/iprep
 reputation-files:
  - reputation.list
IP itibar ayarı yaparken ilk önce kara listeye dahil edilecek IP adreslerinin bir sınıflandırmaya tabi tutulması gerekiyor. Bu sınıflandırmanın yer aldığı dosyanın varsayılan (default) ismi /etc/suricata/prep/ dizininde bulunan categories.txt dosyasıdır. (Dosya isimleri ya da dosya yol'u tabii ki farklı olabilir. Burada varsayılan isimler kullanılmıştır.)
categories.txt isimli dosyanın formatı aşağıdaki gibi bir CSV dosyasıdır:
root@suricata:/etc/suricata/iprep$cat categories.txt
1,HACK,Hack Siteleri
2,MP3,MP3 Siteleri
3,SPYWARE,Spyware Listesi
categories.txt dosyasının içeriğindeki satırlar "üç" bölümden oluşmaktadır:
, ,
Sınıfladırmaya öncelikle bir numara vermek durumunudayız: . Bu numara 1 ile 60 arasında olmak zorundadır. Yani IP itibar listemizde en fazla 60 kategori olabilmektedir.
Sınıflandırmaya kısa bir de isim veriyoruz: . Bu isimlerin bire bir aynısı, iprep.rules dosyasına saldırı kuralı (attacking rule) yazarken kullanılmaktadır.
Sınıflandırma için bir de açıklama yazıyoruz:
Sınıflandırma dosyasının yol'unu da suricata.yaml yapılandırma dosyası içerisinde reputation-categories-file: /etc/suricata/iprep/categories.txt şeklinde belirtiyoruz.
IP itibar ayarlarının yapıldığı dizini de yine suricata.yaml yapılandırma dosyası içerisinde belirriyoruz: default-reputation-path: /etc/suricata/iprep
Sınıflandırma dosyasının içeriğini doldurduktan sonra hangi IP adreslerinin engelleneceğini ya da hangi IP adreslerine karşı alarm üretileceğini belirlememiz gerekiyor. Bu listeyi de default-reputation-path: /etc/suricata/iprep dizinine reputation.list dosyası adıyla koyuyoruz. Bu dizinin altında birden fazla liste olabilir. badhosts.listzararli_ip.listmalware.list gibi.
reputation.list ya da benzeri dosyaların içeriği aşağıdaki gibidir:
root@suricata:/etc/suricata/iprep$cat reputation.list
63.71.76.111,1,100
66.28.56.113,1,100
210.60.141.1,1,100
24.215.5.116,1,100
83.149.65.117,1,100
85.17.73.137,2,50
216.74.109.140,2,50
64.239.80.146,2,50
198.65.238.151,2,50
195.144.11.157,3,125
abidancegubidance.com,3,125
abeedeekgubeedeek.com,3,125

reputation.list dosyası da categories.txt dosyası gibi yine bir CSV dosyasıdır ve üç alandan oluşmuştur:
, ,
Kara listemizde olan IP numarasını (216.74.109.140) ya da alan ismini (abidancegubidance.com) ilk bölüme yazıyoruz.
Daha sonra bu IP numarasının ya da alan adının sınıflandırma numarasını belirtiyoruz. Bu numara 1 ile 127 arasında olmak durumundadır.
Son alana da bu IP numarasının ya da alan adının skor değerini yazıyoruz.
Kara listedeki IP adreslerine (IP blacklist) ya da alan isimlerine birçok internet sitesinden erişilebilmekte ve bu kara listede yer alan IP adresleri/alan isimleri indirilebilmektedir. Bunlardan paralı olanlar olduğu gibi ücretsiz olanlar da mevcuttur. Bu kara listenin bir örneğine https://sslbl.abuse.ch/blacklist/ adresinden erişilebilir.
Buraya kadar categories.txt ve reputation.list dosyalarının içeriklerini belirledik. Bu dosyalar, bu halleriyle bir şey ifade etmezler. Bu dosyalar için kural(lar) yazmamız gerekmektedir. IP itibar (IP Reputation) kurallarını herhangi bir Suricata kuralı içerisine yazarsak da çalışacaktır. Fakat IP itibar kurallarını /etc/suricata/rules/iprep.rules altına yazmayı tercih ettik. Aşağıda örnek bir iprep.rules lural dosyası bulunmaktadır. (Aşağıdaki imzalar deneme amaçlı oluşturuldukları için kurallarda tutarsızlıklar olabilir.)
alert tcp any any -> any any (msg:"BU NASIL BIR TRAFIK YA? COK AYIP BU!"; iprep:any,SPYWARE,=,125;)
alert tcp any any -> any any (msg:"AHAN DA DUTDUM SENI!";iprep:dst,SPYWARE,=,125;)
alert tcp any any -> any any (msg:"HACKINGAM PALACE"; iprep:any,HACK,=,100; sid:10005; rev:1;)
alert tcp any any -> any any (msg:"HACKLEME BENI HACKLERIM SENI"; iprep:src,HACK,=,100; sid:10006; rev:1;)
alert tcp any any -> any any (msg:"NE SALDIRIYDI BE!"; iprep:dst,MP3,=,50; sid:10007; rev:1;)
alert tcp any any -> any any (msg:"YETTI GARI"; iprep:both,MP3,<,100; sid:10008; rev:1;)
Şimdi bu kural seti içerisindeki bazı satırları inceleyelim:
alert tcp any any -> any any (msg:"HACKINGAM PALACE"; iprep:any,HACK,=,100; sid:10005; rev:1;)
IP itibarı (IP Reputation) için Suricata saldırı imzasının (kuralının) içerisine iprep parametresini eklememiz gerekiyor. iprep parametresi dört alandan oluşmaktadır:
<any/src/dst/both>: Trafiğin kaynağı belirtilmektedir. Buradaki örnekte kaynak ya da hedef IP kısmında kara listedeki bir IP adresi görülürse alarm üretilmektedir.
HACK: Burada yazan ifade categories.txt dosyası içerisindeki ikinci alanın aynısı olmak zorundadır. (1,HACK,Hack Siteleri) Buradaki kural için bir sınıflandırma belirtmiş oluyoruz bu şekilde.
=,<,>: Burada reputation.list dosyasının üçüncü alanındaki değerle bir kıyaslama yapılmaktadır. (83.149.65.117,1,100) Buradaki örnekte sınıflandırma numarası "1" olan IP adresleri için geçerli bir kural vardır. Sınıflandırma numarası "1" olan IP adresinin "score" değeri de "100" olarak verilmiştir. Bu kurala denk gelen bir trafik olduğu zaman da kurada yer alan tırnak içerisindeki uyarıyı vermektedir. (HACKINGAM PALACE)
categories.txt
1,HACK,Hack Siteleri
reputation.list
83.149.65.117,1,100
Suricata kuralı
alert tcp any any -> any any (msg:"HACKINGAM PALACE"; iprep:any,HACK,=,127; sid:10005; rev:1;)
Konuyu özetleyen bir resmi de aşağıya ekliyorum:

Thursday, January 7, 2016

Suricata'nın Saldırı Trafiği Haricindeki Kayıtları Tutma(ma)sı

Suricata, beta sürümü ilk defa 2009 yılının Aralık ayında ve ilk kararlı sürümünün de 2010 yılının Temmuz ayında piyasaya sürülmüş olan açık kayaklı bir saldırı tespit/engelleme sistemi yazılımıdır. (http://suricata-ids.org) Suricata, OISF (Open Information Security Foundation) adlı bir sivil toplum kuruluşu tarafından geliştirilmiştir. (http://oisf.net)

Bu yazımızda Suricata'nın özelliklerine değinmeyeceğiz. Bu yazımızda değineceğimiz hususu aşağıya yazmaya çalıştım.

Suricata, -diğer tüm saldırı tespit sistemleri gibi- ağa gelip giden tüm trafiği dinleyecek şekilde ağ topolojisi üzerinde konumlandırılır. Saldırı tespit sistemleri, dinledikleri ağ trafiği içerisinde kendi saldırı imza veri tabanlarına (signatures) karşılık gelen trafikleri alarm (alert) oluşturacak şekilde bir kayıt (log) dosyasına yazarlar. Yani saldırıları kayıt (log) altına alırlar.
Suricata, dinlediği ağ trafiği içerisinde saldırı veri tabanıyla eşleşmeyen trafiği -yani saldırı haricindeki trafiği- de bir kayt (log) dosyasına yazabilir. Yani ağa gelip giden tüm trafiği dinliyor ve sizin seçmiş olduğunuz protokole göre bu trafiği de kayıt (log) altına alabiliyor. Örneğin herhangi bir saldırı örüntüsü içermeyen; SSH (TCP 22), HTTP (TCP 80), NTP (UDP 123), SMTP (TCP 25),... gibi trafikleri de kayıt altına alabilmektedir. Suricata bu kayıtları "json" kayıt formatında tutabilmektedir. Bu kayıt dosyasının varsayılan (default) ismi “eve.log”dur. (/var/log/suricata/eve.log)
Saldırı olmayan trafiğin kayıtlarını (log) tutmak istemiyorsak Suricata'nın yapılandırma (konfigürasyon) dosyası olan suricata.yaml dosyasının içeriğinde değişiklik yapmamız gerekmektedir. suricata.yaml dosyası içerisinde "app-layer" başlığı altındaki parametreler, saldırı örüntüsü içermeyen ağ trafiğinin dinlenmesini sağlamaktadır.
Aşağıda örnek bir suricata.yaml dosyasının "app-layer" başlığı altındaki bazı parametre değerleri gösterilmektedir. Aşağıdaki örnekte Suricata saldırı tespit sisteminin sadece SMB trafiğini eve.json isimli kayıt (log) dosyasına kaydetmesi sağlanmıştır. Bunun haricinde kalan hiçbir trafik kayıt (log) dosyasına kaydedilmemektedir. Sadece imza veri tabaındaki saldırılara karşılık gelen saldırı kayıtları (log) ve SMB trafiği kayıt (log) altına alınmaktadır.
**********
app-layer altında yapılan değişiklikler aşağıda açıklanmıştır:
  
-app-layer:
--protocols:
---tls:
----enabled: no (HTTPS trafiğinin kaydı engellenmiştir.)
----detection-ports:
-----dp: 443
---dcerpc:
----enabled: no (DCE/RPC trafiğinin kaydı engellenmiştir.)
---ftp:
----enabled: no (FTP trafiğinin kaydı engellenmiştir.)
---ssh:
----enabled: no (SSH trafiğinin kaydı engellenmiştir.)
---smtp:
----enabled: no (SMTP trafiğinin kaydı engellenmiştir.)
---imap:
----enabled: no (IMAP trafiğinin kaydı engellenmiştir.)
---msn:
----enabled: no (MSN trafiğinin kaydı engellenmiştir.)
---smb:
----enabled: yes (SMB trafiğinin kaydına izin verilmiştir.)
----detection-ports:
-----dp: 139
**********
Suricata ile ilgili olarak şimdilik bu kadar. Yukarıda yazdığım özelliği bulmak biraz vaktimi aldığı için çözümü paylaşmak istedim.