SlideShare a Scribd company logo
Suricata ile
Siber Tehdit Avcılığı
İçerik
●
Saldırı Tespit ve Engelleme Sistemleri
– IDS (Intrusion Detection System)
●
NIDS, HIDS
– IPS (Intrusion Protection System)
●
NIPS, HIPS
●
False Positive, False Negative
●
Suricata
●
Performans ve Testler
●
IDS Kural Yapısı
●
IDS Kural Başlığı
●
IDS Kural Seçenekleri
●
IDS Kural Testleri
●
IDS Kural Yazma
●
Sonuç
Riskiniz Nedir?
● Kaç kurum siber saldırıya maruz kaldığını
biliyor?
– Ağınızda neler olup bittiğini bilmek...
– Nasıl?
– Ne zaman?
False Positive
● False Positive
– Yanlış alarm
– IDS tarafından saldırı tespiti
olduğunu ancak gerçekte bir saldırı
olmayan durumdur.
– Çok olması zaman kaybı
False Negative
● False Negative
– Gerçek bir saldırının olması ancak
IDS tarafından tespit edilememe
durumu
– IDS yetersizliği
● Kullanılan IDS sistemi mi yetersiz?
● Yanlış konfigürasyon veya
yetersiz kurallar?
NIDS & HIDS
● NIDS (Network based IDS) - Ağ tabanlı saldırı tespit sistemi
– Ağ üzerinde gelen-giden paketleri analiz ederek alarm üretilmesini
sağlar ve log kaydını tutar.
● HIDS (Host based IDS) - Host tabanlı saldırı tespit sistemi
– Host üzerindeki logları analiz ederek alarm üretilmesini sağlar.
– Dosya bütünlük kontrolü ve zararlı dosyaların tespiti konusunda da
kullanılabilir.
IDS / IPS Yerleşimi
● Ağın durumuna göre yerleşim önemli
● Güvenlik Duvarı Önü
– Gereksiz trafik ve uyarı
– Tehditleri daha iyi belirleme
● Güvenlik Duvarı Arkası
– Güvenlik duvarını geçen trafik
– Tehditleri daha az belirleyebilir.
● Ağ anahtarı Span portu
– Port mirror
● TAP / HUB Cihazları
Suricata
● Suricata açık kaynak kodlu,
– GPLv2 lisansı ile dağıtılan saldırı tespit ve engelleme sistemidir.
● Kar amacı gütmeyen bir topluluk olan OISF (Open
Information Security Foundation) tarafından geliştirilmektedir
● Snort saldırı tespit sistemi gibi imza/kural tabanlı
çalışmaktadır.
● Snort kural setini desteklemektedir.
● Suricata’nın önemli bir özelliği multi-thread çalışmasıdır.
● Sniffer & Logger
Suricata
● Ağ trafiğini izleyerek, trafiğin pcap formatında
kaydedilmesini sağlar.
– Kaydedilen bu trafik daha sonra analiz edilebilir.
● Konfigürasyon dosyası YAML formatındadır.
● Paket işleme performansının arttırılması için
AF_PACKET, PF_RING gibi uygulamalar
kullanılabilmektedir.
● Kurallar günlük güncellenmelidir.
● Kendi kurallarınızı yazabilirsiniz
Suricata Çalışma Yapısı
● Birçok çalışma moduna sahip olan Suricata’nın hangi modda
çalışacağı başlangıçta verilen parametrelerle belirlenmektedir.
● En çok tercih edilen “pcap device” yani saldırı tespit sistemi
modunda bir paket sırasıyla paket yakalama, paket çözümleme,
akış işlemi ve tespit modüllerinden geçer. Bu işlemlerin
sonucuna göre paket geçirilir ya da alarm üretilir.
Suricata NIDS Çalışma Modu
Performans & IDS Testleri
● txt formatında loglama
● JSON formatında loglama
● Yanlış donanım kullanımı
● Yanlış / Eksik konfigürasyon yapılandırması
● Kurallar (Rules)
– Kurallar denetlendi mi?
– Gereksiz kural fazlalığı
– Hedef sistemlere uygun kural yazımı
– False positive oranı?
– False negative oranı?
● Port tarama eşik değerlerinin düşürülmesi
Performans & IDS Testleri
Testler
● Şifreli iletişimler (SSH, SSL)
● IP fragmentation
● IP Spoofing
● IDS Atlatma teknikleri
● Kuralları denetleme
● Test araçları
– Fragroute, metasploit, nessus, nmap, tomahawk,
idswakeup, pytbull
Kural Yapısı
● Temel olarak iki kısımdan oluşur
● Kural = Kural Başlığı + Kural Seçenekleri
– Rule Header (Kural Başlığı)
● Rule Actions
– Pass, Drop, Alert, Reject
● Protocol
– IP, ICMP, TCP, UDP, HTTP
– Rule Options (Kural Seçenekleri)
● Keywords
Kural Yapısı
● Her kural bir adet kural başlığı ve kural
seçeneği bulunur.
●
Kural Yapısı
● Kuralların gücü kural seçenekleridir.
● Kuruma özel kurallar yapılandırılabilir.
Kural Başlığı
● Kural Başlığı temel olarak 4 alt bölüme ayrılır.
– Kural Aksiyonu (Pass, Drop, Alert, Reject)
– Protokol (TCP, UDP, ICMP, IP, vb)
– Kaynak IP-Port
● Tek bir IP adresi veya gruplama kullanılabilir.
– Hedef IP-Port
● Tek bir IP adresi veya gruplama kullanılabilir.
Kural Başlığı
● Aksiyon:
– Yazılan kurala uyan paket için ne yapılacağını belirtir.
alert tcp 10.46.1.0/24 any -> $HOME_NET any
– Alert: uyan paketler için uyarı verir ve loglama yapar
– Pass: paketi geç
– Drop: Paketi bloklar ve durumu loglar. (IPS mod)
– Reject: Paketi engeller, geri reset döner. Durumu loglar (IPS mod)
Kural Başlığı
● Protokol:
– Hangi protokolün kontrol edildiğini belirtir.
alert tcp 10.46.1.0/24 any -> $HOME_NET any
– TCP
– UDP
– ICMP
– IP
– HTTP
Kural Başlığı
● IP Adres Alanı:
– Kaynak IP adresini belirtir.
– Ağ trafiğinin nerden geldiğini gösterir.
alert tcp 10.46.1.0/24 any -> $HOME_NET any
– ! hariç anlamına gelir
– any tüm ip adresleri anlamına gelir.
– $HOME_NET gibi değişken tanımları kullanılabilir.
Kural Başlığı
● IP Adres Alanı:
– Hedef IP adresini belirtir.
– Ağ trafiğinin nereye gittiğini gösterir.
alert tcp 10.46.1.0/24 any -> $HOME_NET any
– ! hariç anlamına gelir
– any tüm ip adresleri anlamına gelir.
– $HOME_NET gibi değişken tanımları kullanılabilir.
Kural Başlığı
● Port Alanı:
– Trafiğin geldiği ve gittiği port gösterilir.
alert tcp 10.46.1.0/24 any -> $HOME_NET any
Kural Başlığı
● Yön Belirteci:
– Trafiğin sol taraftan sağ tarafa doğru gittiğini belirtir.
alert tcp 10.46.1.0/24 any -> $HOME_NET any
Kural Seçenekleri
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı
(msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold:
type both, track by_src, count 1, seconds 120;
reference:url,en.wikipedia.org/wiki/Brute_force_attack;
reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon;
sid:2001219; rev:20;)
– () parantezler arasına yazılır.
– ; Noktalı virgül ile seçenekler birbirinden ayrılır.
● Her yazılan seçenek ; ile biter.
– : her seçenek ile alacağı değer birbirinden ayrılır.
– Meta-settings, Header Keywords, Payload Keywords, Flow Keywords,
HTTP Keywords, DNS Keywords, File Keywords gibi alanlara ayrılır.
Kural Seçenekleri Meta-settings
● Meta ayarlarının Suricata’nın kural kontrolü üzerinde bir etkisi yoktur.
● Meta ayarları Suricata’nın olayları rapor etmesi üzerinde yeri vardır.
– msg (message)
● Kural tetiklendiğinde gösterilecek mesaj
● Kural seçenekleri bölümü genelde msg ile başlar.
● (msg:"ET SCAN Potential SSH Scan";
– sid (signature id)
● Her bir kuralın tanımlandığı numara
● sid:2001219;
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı
(msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold:
type both, track by_src, count 1, seconds 120;
reference:url,en.wikipedia.org/wiki/Brute_force_attack;
reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon;
sid:2001219; rev:20;)
Kural Seçenekleri Meta-settings
● Meta ayarlarının Suricata’nın kural kontrolü üzerinde bir etkisi yoktur.
● Meta ayarları Suricata’nın olayları rapor etmesi üzerinde yeri vardır.
– rev (revision)
● Kuralın versiyonunu gösterir.
● Kuralda bir değişiklik olduğunda rev numarası bir arttırılır.
● Kural seçenekleri bölümünde genelde sid ve rev en sondadır.
● rev:20;
– reference
● Kuralla ilgili detay bilgilerin yerlerini gösterir.
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı
(msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold: type
both, track by_src, count 1, seconds 120;
reference:url,en.wikipedia.org/wiki/Brute_force_attack;
reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon;
sid:2001219; rev:20;)
Kural Seçenekleri Meta-settings
● Meta ayarlarının Suricata’nın kural kontrolü üzerinde bir etkisi yoktur.
● Meta ayarları Suricata’nın olayları rapor etmesi üzerinde yeri vardır.
– classtype
● Kuralın sınıflandırılması hakkında bilgi verir.
● Classification.config dosyasında gerekli bilgiler tutulur.
● Kuralın default priority değeri classtype içerisinde tanımlanmıştır.
– Genelde 1-4 arası kullanılır. En yüksek öncelik 1 dir.
– priortiy:5; şeklinde kurala eklerseniz, default değerin üzerine
yazar
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı
(msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold: type
both, track by_src, count 1, seconds 120;
reference:url,en.wikipedia.org/wiki/Brute_force_attack;
reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon;
sid:2001219; rev:20;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– IP Keywords
● TTL
● Ipopts (ip options)
● Sameip
● ip_proto
● Id
● Fragbits
● Fragoffset
alert icmp $EXTERNAL_NET any -> $HOME_NET any Kural Başlığı
(msg:"GPL ICMP_INFO traceroute"; itype:8; ttl:1; reference:arachnids,118;
classtype:attempted-recon; sid:2100385; rev:5;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– IP Keywords
● TTL
– IP başlığındaki TTL alanını kontrol etmek için kullanılır.
– Formatı:
● ttl:<değer>;
– Örnek
● ttl:5;
● Traceroute yakalamak için varsayılan olarak gelen kural
#alert icmp $EXTERNAL_NET any -> $HOME_NET any
(msg:"GPL ICMP_INFO traceroute"; itype:8; ttl:1; reference:arachnids,118;
classtype:attempted-recon; sid:2100385; rev:5;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– IP Keywords
● ipopts
– Pakette herhangi bir IP seçeneğinin kontrol edilmesi
#alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"GPL MISC source route
ssrr"; ipopts:ssrr ; reference:arachnids,422; classtype:bad-unknown; sid:2100502;
rev:3;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– IP Keywords
● sameip
– Kaynak ve hedef ip adreslerinin aynı olması durumunun kontrol
edilmesi
● Kaynak ve hedef ip adreslerinin aynı olup olmadığını kontrol etmek
için varsayılan olarak gelen kural
#alert ip any any -> any any
(msg:"GPL SCAN same SRC/DST"; sameip; reference:bugtraq,2666;
reference:cve,1999-0016; reference:url,www.cert.org/advisories/CA-1997-28.html;
classtype:bad-unknown; sid:2100527; rev:9;
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– IP Keywords
● ip_proto
– Paket başlığında IP protokol değerinin kontrol edilmesi
● https://www.iana.org/assignments/protocol-numbers/protocol-number
s.xhtml
Adresinden ip protokol numaralarının listesini görebilirsiniz.
alert ip $HOME_NET any -> $EXTERNAL_NET any (msg:"ET POLICY Protocol 41 IPv6
encapsulation potential 6in4 IPv6 tunnel active"; ip_proto:41; threshold:type both,track
by_dst, count 1, seconds 60; reference:url,en.wikipedia.org/wiki/6in4; classtype:policy-
violation; sid:2012141; rev:2;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– IP Keywords
● fragbits
– Ip parçalama alanını kontrol eder.
#alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"ET EXPLOIT Invalid non-
fragmented packet with fragment offset>0"; fragbits: !M; fragoffset: >0;
reference:url,doc.emergingthreats.net/bin/view/Main/2001022; classtype:bad-unknown;
sid:2001022; rev:5;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– TCP Keywords
● TCP başlık bilgilerinin kontrol edilmesi için kullanılır.
● Seq
● Ack
● Window
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"GPL SCAN NULL";
flow:stateless; ack:0; flags:0; seq:0; reference:arachnids,4; classtype:attempted-recon;
sid:2100623; rev:7;)
Kural Seçenekleri Header Keywords
● Protokollerin başlıkları ile ilgili anahtar kelimeler.
– ICMP Keywords
● ICMP başlık bilgilerinin kontrol edilmesi için kullanılır.
● itype
● icode
● icmp_id
● icmp_seq
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN ICMP @hello
request, Likely Precursor to Scan"; itype:8; icode:0; content:"@hello ???";
reference:url,doc.emergingthreats.net/2010641; classtype:misc-activity; sid:2010641;
rev:2;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Pcre (Perl Compatible Regular Expressions)
● Düzenli ifadeler üzerinden kontrol sağlar.
● Regex yazım kuralları bilinmelidir.
● Performans üzerinde olumsuz etkisi vardır.
● Varsayılan olarak, pcre büyük-küçük harf duyarlıdır.
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET
WEB_SPECIFIC_APPS WP Forum Server wordpress plugin SQL Injection Attempt --
feed.php topic DELETE"; flow:established,to_server; content:"/wp-content/plugins/forum-
server/feed.php?"; nocase; http_uri; content:"topic="; nocase; http_uri;
content:"DELETE"; nocase; http_uri; content:"FROM"; nocase; http_uri; pcre:"/DELETE.
+FROM/Ui"; reference:url,exploit-db.com/exploits/16235/; classtype:web-application-
attack; sid:2012434; rev:3;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Content
● Paket veri alanında spesifik içerik arama
● Içerik alanı hem text hemde hex değerlerden oluşabilir.
– Içerikte yazılması gereken http:// ise
● content:”http|3A|//” şeklinde yazılmalıdır.
● Hex değerler iki pipe arasında yazılmalıdır.
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET
WEB_SPECIFIC_APPS WP Forum Server wordpress plugin SQL Injection Attempt --
feed.php topic DELETE"; flow:established,to_server; content:"/wp-content/plugins/forum-
server/feed.php?"; nocase; http_uri; content:"topic="; nocase; http_uri;
content:"DELETE"; nocase; http_uri; content:"FROM"; nocase; http_uri;
pcre:"/DELETE.+FROM/Ui"; reference:url,exploit-db.com/exploits/16235/; classtype:web-
application-attack; sid:2012434; rev:3;)
Bu karakterler kural içerisinde farklı anlamları olduğu için hex
olarak kullanılmalıdır.
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Nocase
● Content büyük-küçük harf duyarlıdır.
● Content seçeneğinde belirtilen aramalarda büyük-küçük harf ayrımı
yapılmasın istenirse, kullanılır.
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET
WEB_SPECIFIC_APPS WP Forum Server wordpress plugin SQL Injection Attempt --
feed.php topic DELETE"; flow:established,to_server; content:"/wp-content/plugins/forum-
server/feed.php?"; nocase; http_uri; content:"topic="; nocase; http_uri;
content:"DELETE"; nocase; http_uri; content:"FROM"; nocase; http_uri; pcre:"/DELETE.
+FROM/Ui"; reference:url,exploit-db.com/exploits/16235/; classtype:web-application-
attack; sid:2012434; rev:3;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Depth
● Content içerisinde payload’un başlangıcından kaç byte’a
bakılacağını belirtir.
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"OS-WINDOWS Microsoft
Windows SMB remote code execution attempt"; flow:to_server,established; content:"|FF|
SMB3|00 00 00 00|"; depth:9; offset:4; byte_extract:2,26,TotalDataCount,relative,little;
byte_test:2,>,TotalDataCount,20,relative,little; metadata:policy balanced-ips drop, policy
connectivity-ips drop, policy security-ips drop, ruleset community, service netbios-ssn;
classtype:attempted-admin; sid:41978; rev:3;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Offset
● Content içerisinde payload’un kaçıncı byte tan başlayarak
bakılacağını belirtir.
alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"OS-WINDOWS Microsoft
Windows SMB remote code execution attempt"; flow:to_server,established; content:"|FF|
SMB3|00 00 00 00|"; depth:9; offset:4; byte_extract:2,26,TotalDataCount,relative,little;
byte_test:2,>,TotalDataCount,20,relative,little; metadata:policy balanced-ips drop, policy
connectivity-ips drop, policy security-ips drop, ruleset community, service netbios-ssn;
classtype:attempted-admin; sid:41978; rev:3;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Distance
● Önceki Content den ne kadar byte ileri gidileceğini belirtir.
● Negatif sayı alabilir.
alert tls $EXTERNAL_NET any -> $HOME_NET any (msg:"ET TROJAN Unknown
Malicious SSL Cert 5"; flow:established,from_server; content:"|07|Makeups"; content:"|55
04 03|"; distance:0; content:"|12|www.ignorelist.com"; distance:1; within:19;
classtype:trojan-activity; sid:2023906; rev:2;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Within
● Önceki content den sonra ne kadarlı bir byte içerisinde ikinci content
in aranacağı belirtilir.
alert tls $EXTERNAL_NET any -> $HOME_NET any (msg:"ET TROJAN Unknown
Malicious SSL Cert 5"; flow:established,from_server; content:"|07|Makeups"; content:"|55
04 03|"; distance:0; content:"|12|www.ignorelist.com"; distance:1; within:19;
classtype:trojan-activity; sid:2023906; rev:2;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
– Dsize
● Paketin payload kısmının boyutunu kontrol etmek için kullanılır.
● Anormal boyuttaki payloadları araştırmak için kullanılabilir.
alert tcp $EXTERNAL_NET any -> $HOME_NET [23,2323] (msg:"ET TROJAN Possible
Linux.Mirai Login Attempt (1111111)"; flow:to_server,established; content:"1111111|0d
0a|"; nocase; dsize:9; reference:url,krebsonsecurity.com/2016/10/who-makes-the-iot-
things-under-attack; classtype:attempted-admin; sid:2023430; rev:2;)
Kural Seçenekleri
Payload Keywords
● Paketin içerisinin incelenmesini sağlayan kural seçenekleri
Payload Detection Options
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– http_method
● GET, PUT, HEAD, DELETE, TRACE, OPTIONS, CONNECT, PATCH
● Sadece http metotları üzerinden kontrol sağlamak için
alert http any any -> $HOME_NET 8080 (msg:"ET WORM TheMoon.linksys.router 2";
flow:to_server,established; content:"POST"; http_method; content:"/tmUnblock.cgi";
http_uri; reference:url,isc.sans.edu/forums/diary/Linksys+Worm+Captured/17630;
reference:url,devttys0.com/2014/02/wrt120n-fprintf-stack-overflow/; classtype:trojan-
activity; sid:2018132; rev:4;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– http_uri
● Http trafiği içerisinde URL üzerinden kontrol sağlamak için
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET WORM Possible Worm
Sohanad.Z or Other Infection Request for setting.nql"; flow:established,to_server;
content:"/setting.nql"; nocase; http_uri; reference:url,www.threatexpert.com/report.aspx?
md5=a70aad8f27957702febfa162556dc5b5; classtype:trojan-activity; sid:2012201;
rev:4;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– uricontent
● http_uri ile aynı işi yapar.
● Uricontent kullanımdan kaldırıldı. Ancak hala desteklenmektedir.
● Yeni bir kural yazılacağı zaman http_uri önerilir.
● http_uri ile uricontent arasındaki fark;
alert http $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"ET WORM
Win32.Socks.s HTTP Post Checkin"; flow:established,to_server; content:"POST ";
depth:5; uricontent:".php"; content:"|0d 0a 0d 0a|proc=[System Process]|0a|";
reference:url,doc.emergingthreats.net/2008020; classtype:trojan-activity; sid:2008020;
rev:4;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– urilen
● Http trafiği içerisinde URL uzunluğu üzerinden kontrol sağlamak için
alert http any any -> any any (msg:"ET TROJAN Generic - Mozilla 4.0 EXE Request";
flow:established,to_server; urilen:6<>15; content:".exe"; http_uri; content:"|3a|
Mozilla/4.0|0D 0A|Host|3a|"; http_header; classtype:trojan-activity; sid:2020705; rev:3;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– http_header
● Http trafiği içerisinde http başlığı üzerinden kontrol sağlamak için
alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET WEB_SERVER
MorXploit Shell Command"; flow:established,to_server; content:"?cmd=ZXhpdA==";
http_uri; fast_pattern; content:"User-Agent|3a 20|Mozilla 5"; http_header;
reference:url,seclists.org/fulldisclosure/2014/Nov/78; classtype:bad-unknown;
sid:2019951; rev:2;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– http_cookie
● Http başlığı içerisinde geçmesine rağmen, kendi seçeneği ile
kullanılmalıdır.
alert http any any -> any any (msg:"ET WEB_SERVER WebShell - GODSpy - Cookie";
flow:established; content:"godid="; http_cookie; classtype:trojan-activity; sid:2017085;
rev:2;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– http_user_agent
● Http başlığı içerisinde geçmesine rağmen, kendi seçeneği ile
kullanılmalıdır.
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET WEB_SERVER
WPScan User Agent"; flow:established,to_server; content:"WPScan v"; depth:8;
http_user_agent; threshold: type limit, count 1, seconds 60, track by_src;
reference:url,github.com/wpscanteam/wpscan; classtype:web-application-attack;
sid:2020338; rev:3;)
Kural Seçenekleri HTTP Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– http_stat_code
● Http durum kodu üzerinden kontrol sağlamak için,
alert http $HTTP_SERVERS any -> $EXTERNAL_NET any (msg:"GPL WEB_SERVER
403 Forbidden"; flow:from_server,established; content:"403"; http_stat_code;
classtype:attempted-recon; sid:2101201; rev:10;)
Kural Seçenekleri Flow Keywords
● Kuralların yalnızca trafik akışının belirli yönlerine uygulanmasına izin verir.
– Flow
● to_client
● from_client
● to_server
● from_server
● Established
● Stateless
● only_stream
● no_stream
Kural Seçenekleri Flow Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– TCP bağlantısında durum (üçlü el sıkışmadan sonra)
alert http any any -> any any (msg:"SURICATA HTTP Request line with leading
whitespace"; flow:established,to_server; app-layer-
event:http.request_line_leading_whitespace; flowint:http.anomaly.count,+,1;
classtype:protocol-command-decode; sid:2221031; rev:1;)
Kural Seçenekleri Flow Keywords
● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural
seçenekleri
– UDP bağlantısında durum
alert udp any 53 -> $HOME_NET any (msg:"ET EXPLOIT Possible 2015-7547
Malformed Server response"; flow:from_server; content:"|00 01 00 00 00 00 00 00|";
offset:4; depth:8; isdataat:2049; byte_test:1,&,128,2; byte_test:1,!&,64,2; byte_test:1,!
&,32,2; byte_test:1,!&,16,2; byte_test:1,!&,8,2; byte_test:1,&,2,2; byte_test:1,!&,1,3;
byte_test:1,!&,2,3; byte_test:1,!&,4,3; byte_test:1,!&,8,3; pcre:"/^[^x00]+x00x00x01/R";
reference:cve,2015-7547; classtype:attempted-user; sid:2022531; rev:1;)
Kural Sınıflandırma
● Kurallar belirli bir şekilde kategorilendirilmiştir.
● emerging-web_server.rules
– Web sunucularına yapılacak çeşitli saldırıların tespit edilmesini sağlar
● emerging-scan.rules
– Çeşitli ağ ve servis tarama araçlarının yaptığı taramaları tespit eden
kuralların toplandığı kategori
IDS Kural Test Örneği - 1
● SSH Port ve Servis tarama yaptığımda suricata herhangi bir alarm
üretmediğini görüyoruz.
– Suricata kuruma özel yapılandırılmadığı sürece yeterli verim
alınamayacaktır.
– Gerekli testler yapılıp, kurallar yapılandırılmalıdır.
– İhtiyaç halinde kuruma özel kurallar geliştirilip, eklenmelidir.
IDS Kural Test Örneği - 1
● Suricata üzerinde gerekli yapılandırmaları gerçekleştiriyoruz.
● Tekrar SSH Port ve Servis tarama yaptığımda suricata alarm ürettiğini
görüyoruz.
IDS Kural Test Örneği - 2
● Kural: #alert tcp $EXTERNAL_NET any <>
$HOME_NET 0 (msg:"GPL POLICY tcp port 0
traffic"; flow:stateless; classtype:misc-activity;
sid:2100524; rev:9;)
– Varsayılan olarak kural kapalı gelmektedir.
– Kuralı aktif hale getiriyoruz. Aksi takdirde herhangi
bir alarm oluşturmayacaktır.
IDS Kural Test Örneği - 2
● Kural: #alert tcp $EXTERNAL_NET any <> $HOME_NET 0
(msg:"GPL POLICY tcp port 0 traffic"; flow:stateless; classtype:misc-
activity; sid:2100524; rev:9;)
IDS Kural Test Örneği - 3
● drop.rules:alert ip
[204.126.244.0/23,204.128.151.0/24,204.128.180.0/24,204.130.16.0
/20,204.130.167.0/24,204.147.64.0/21,204.155.128.0/20,204.187.15
5.0/24,204.187.156.0/22,204.187.160.0/19,204.187.192.0/19,204.18
7.224.0/20,204.187.240.0/21,204.187.248.0/22,204.187.252.0/23,20
4.187.254.0/24,204.194.64.0/21,204.194.184.0/21,204.225.16.0/20,
204.225.159.0/24] any -> $HOME_NET any (msg:"ET DROP
Spamhaus DROP Listed Traffic Inbound group 30";
reference:url,www.spamhaus.org/drop/drop.lasso; threshold: type
limit, track by_src, seconds 3600, count 1; classtype:misc-attack;
flowbits:set,ET.Evil; flowbits:set,ET.DROPIP; sid:2400029; rev:2602;)
– Rules to block Spamhaus DROP listed networks (www.spamhaus.org)
– Emerging Threats Spamhaus DROP List rules.
IDS Kural Test Örneği - 3
● drop.rules:alert ip
[204.126.244.0/23,204.128.151.0/24,204.128.180.0/24,204.130.16.0/20,204.
130.167.0/24,204.147.64.0/21,204.155.128.0/20,204.187.155.0/24,204.187.
156.0/22,204.187.160.0/19,204.187.192.0/19,204.187.224.0/20,204.187.240
.0/21,204.187.248.0/22,204.187.252.0/23,204.187.254.0/24,204.194.64.0/21
,204.194.184.0/21,204.225.16.0/20,204.225.159.0/24] any -> $HOME_NET
any (msg:"ET DROP
– Kullanılan ip adresi bloğu 204.126.244.0/23
IDS Kural Test Örneği - 4
● Kural: alert http $EXTERNAL_NET any -> $HOME_NET
any (msg:"ET SCAN Nikto Web App Scan in Progress";
flow:to_server,established; content:"(Nikto";
http_user_agent; threshold: type both, count 5, seconds
60, track by_src;
reference:url,www.cirt.net/code/nikto.shtml;
reference:url,doc.emergingthreats.net/2002677;
classtype:web-application-attack; sid:2002677; rev:13;)
– Varsayılan olarak kural açık gelmektedir.
– User agent kısmında Nikto görüldüğü zaman, kuralda belirtilen
eşik değerlerine ulaştığında alarm oluşacaktır.
IDS Kural Test Örneği - 4
● Kural: alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET
SCAN Nikto Web App Scan in Progress"; flow:to_server,established;
content:"(Nikto"; http_user_agent; threshold: type both, count 5, seconds
60, track by_src; reference:url,www.cirt.net/code/nikto.shtml;
reference:url,doc.emergingthreats.net/2002677; classtype:web-application-
attack; sid:2002677; rev:13;)
IDS Kural Test Örneği - 5
● Kural: alert http $EXTERNAL_NET any ->
$HTTP_SERVERS $HTTP_PORTS (msg:"ET
WEB_SERVER Possible Attempt to Get SQL Server Version
in URI using SELECT VERSION"; flow:established,to_server;
content:"SELECT"; nocase; http_uri;
content:"VERSION"; nocase; distance:1; http_uri;
reference:url,support.microsoft.com/kb/321185;
reference:url,doc.emergingthreats.net/2011037;
classtype:web-application-attack; sid:2011037; rev:4;
– Varsayılan olarak kural açık gelmektedir.
– SQL Injection (UNION SELECT VERSION) kullanımı ile saldırı
denemesi ve alarm oluşması
IDS Kural Test Örneği - 5
● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS
$HTTP_PORTS (msg:"ET WEB_SERVER Possible Attempt to Get SQL
Server Version in URI using SELECT VERSION";
flow:established,to_server; content:"SELECT"; nocase; http_uri;
content:"VERSION"; nocase; distance:1; http_uri;
reference:url,support.microsoft.com/kb/321185;
reference:url,doc.emergingthreats.net/2011037; classtype:web-application-
attack; sid:2011037; rev:4;
IDS Kural Test Örneği - 6
● Kural: alert tcp any any -> any any
(msg:"Possible TCP DoS"; flags:S;
flow:stateless; threshold: type both, track
by_dst, count 70, seconds 10; sid:10001;rev:1;)
– local.rules dosyasına belirtilen kuralı yazıyoruz.
– Kural belirli eşik değerlerini aştığında olası DoS
saldırı örneğini göstermektedir.
IDS Kural Test Örneği - 6
● Kural: alert tcp any any -> any any (msg:"Possible TCP DoS"; flags:S;
flow:stateless; threshold: type both, track by_dst, count 70, seconds 10;
sid:10001;rev:1;)
IDS Kural Test Örneği - 7
● Kural: alert tcp any any -> any any
(msg:"facebook is blocked";
content:"facebook.com"; http_host; nocase;
classtype:policy-violation; sid:2;)
– local.rules dosyasına belirtilen kuralı yazıyoruz.
– Güvenlik cihazı üzerinden engellenen siteye
gitmeye çalışan ip adreslerini belirleme
IDS Kural Test Örneği - 7
● Kural: alert tcp any any -> any any (msg:"facebook is blocked";
content:"facebook.com"; http_host; nocase; classtype:policy-violation; sid:2;)
IDS Kural Test Örneği - 8
● Kural: alert http $EXTERNAL_NET any ->
$HTTP_SERVERS any (msg:"GPL
WEB_SERVER /etc/passwd";
flow:to_server,established;
content:"/etc/passwd"; nocase;
classtype:attempted-recon; sid:2101122; rev:8;)
– Varsayılan olarak kural kapalı gelmektedir.
– Web üzerinden /etc/passwd saldırı denemesini
tespit edebilme
IDS Kural Test Örneği - 8
● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS any
(msg:"GPL WEB_SERVER /etc/passwd"; flow:to_server,established;
content:"/etc/passwd"; nocase; classtype:attempted-recon; sid:2101122;
rev:8;)
IDS Kural Test Örneği - 9
● Kural: alert http $EXTERNAL_NET any ->
$HTTP_SERVERS any (msg:"GPL
WEB_SERVER /etc/passwd";
flow:to_server,established; content:"2f
%65%74%63%2f%70%61%73%73%77%64";
nocase; classtype:attempted-recon; sid:1; rev:8;)
– local.rules dosyasına belirtilen kuralı yazıyoruz.
– Web üzerinden /etc/passwd saldırı denemesinin hex
encoding yöntemi ile yapılması ve tespit edebilme
IDS Kural Test Örneği - 9
● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS any
(msg:"GPL WEB_SERVER /etc/passwd"; flow:to_server,established;
content:"2f%65%74%63%2f%70%61%73%73%77%64"; nocase;
classtype:attempted-recon; sid:1; rev:8;)
IDS Kural Test Örneği - 10
● Kural: alert http $EXTERNAL_NET any ->
$HTTP_SERVERS $HTTP_PORTS (msg:"ET
WEB_SERVER Script tag in URI Possible Cross Site
Scripting Attempt"; flow:to_server,established;
uricontent:"</script>"; nocase;
reference:url,ha.ckers.org/xss.html;
reference:url,doc.emergingthreats.net/2009714;
classtype:web-application-attack; sid:2009714; rev:6;)
– Varsayılan olarak kural açık gelmektedir.
– Web üzerinden XSS (Cross Site Scripting) kullanımı ile saldırı
denemesi ve alarm oluşması
IDS Kural Test Örneği - 10
● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS
$HTTP_PORTS (msg:"ET WEB_SERVER Script tag in URI Possible Cross
Site Scripting Attempt"; flow:to_server,established; uricontent:"</script>";
nocase; reference:url,ha.ckers.org/xss.html;
reference:url,doc.emergingthreats.net/2009714; classtype:web-application-
attack; sid:2009714; rev:6;)
IP Reputation
● IP Reputation ile belirlenen zararlı ip adreslerine doğru olan ağ trafiği
yakalanabilir.
● Böylece bilinen zararlı ip adreslerinden komuta kontrol merkezlerinin (C&C
Command and Control) tespit edilmesi sağlanabilir.
● suricata.yaml konfigürasyon dosyasında aşağıdaki şekilde görüldüğü üzere
“IP Reputation” ayarları yapılandırılmalıdır.
IP Reputation
● /etc/suricata/iprep
– Ip reputation ile ilgili bilgilerin tutulduğu default dizin
● /etc/suricata/iprep/categories.txt
– Kara listeye alınacak ip adreslerinin sınıflandırıldığı dosya
– Dosya formatı bir CSV dosyasıdır.
– Bu dosya kategori numarası, kısa adı ve açıklama olmak üzere üç
bölümden oluşur.
– Kategori numarası 1-60 arasında bir numara olmalıdır.
– Kısa ad olarak belirlediğimiz isim, saldırı tespit kuralı oluşturulurken
kullanılmaktadır.
IP Reputation
● reputation-files:
- reputation.list
● Alarm oluşması ve izlenmesi istenen ip adreslerinin yazıldığı default
dosya
● Bunun dışında oluşturulmak istenen farklı isimlerde dosya listeleri
oluşturulabilir.
– Örnek: zararli_ip.list gibi
● Dosya formatı bir CVS dosyasıdır ve üç bölümden oluşur
– ip adresi
– Kategori, kategoriler dosyasında tanımlanan kategori numarası
– Üçüncü bölümde de IP adresinin skorunu belirliyoruz. Bu değer
1-127 arasında olmalıdır.
IP Reputation
● categories.txt ve reputation.list dosyalarından gerekli bilgiler girildikten
sonra, bu dosyalar için kural yazılmalıdır.
● Bu kurallar local.rules dosyasına yazılabilir.
● Önceki slaytlarda gösterildiği gibi örnek amaçlı zararlı adında bir kategori
oluşturulmuş ve reputation.list dosyasına da ip yazılır.
● local.rules dosyasına aşağıda belirtilen kural yazılır:
– alert ip any any -> any any (msg:"Zararli ip adresleri";
iprep:any,zararli,=,100; sid:3; rev:1;)
– Zararlı olarak belirtilen ip adresine erişilmek istendiğinde aşağıdaki
şekilde görüldüğü gibi alarm oluşacaktır.
IP Reputation
● Zararlı olarak belirtilen ip adresine erişilmek istendiğinde
● Böylece sadece zararlı ip adreslerine değil, ayrıca istenilen ip adreslerine erişim
olup olmadığı takip edilebilir.
● Oluşan alarm
IP Reputation
● IP reputation ayarları yapıldıktan sonra, kural oluşturup, alarm oluşmasını
sağladık.
● Şimdi kural nasıl oluşturuluyor ona bakalım.
● Örnek kuralımız üzerinden kural oluşturma süreçlerini inceleyelim.
– alert ip any any -> any any (msg:"Zararli ip adresleri";
iprep:any,zararli,=,100; sid:3; rev:1;)
– Kural iprep parametresi üzerinden şekillenmektedir.
– iprep parametresi dört bölümden oluşur.
- side to check: <any|src|dst|both>
- category: the category short name
- operator: <, >, =
- reputation score: 1-127
IP Reputation
● Örnek kuralımız üzerinden kural oluşturma süreçlerini inceleyelim.
– alert ip any any -> any any (msg:"Zararli ip adresleri";
iprep:any,zararli,=,100; sid:3; rev:1;)
– <any/src/dst/both>: Oluşacak ağ trafiğinde kaynak-hedef
belirtilmektedir. Örnekte any dediğimizden kaynak ya da hedef IP
kısmında kara listedeki bir IP adresi görülürse alarm üret
– Kategori: Burada istenilen kategori dosyasında belirtilen kategori kısa
adın yazılmasıdır. Örnekte zararli olarak belirtiğimiz kategori için kural
yazmış oluyoruz.
– =,<,>: Belirtilen kategori için skor değeri üzerinden karşılaştırma
yapılarak, bu değere uygun olan bir ağ trafiği oluştuğunda alarm üret
IP Reputation
● Örnek kuralımız üzerinden kural oluşturma süreçlerini inceleyelim.
– Oluşturulan Kategori:
● 1,zararli, zararli ip adresleri
– Oluşturulan reputation.list:
● 192.168.0.102,1,100
– Oluşturulan Kural:
● alert ip any any -> any any (msg:"Zararli ip adresleri";
iprep:any,zararli,=,100; sid:3; rev:1;)
Sonuç
● Saldırı Tespit Sistemi Alırken Nelere Dikkat Edilmeli
– Saldırının tanımı yapılmadan alacağınız IDS güvenlik ürününün size
katkısı ölçülemez.
– Siber güvenlik ürünlerine yapılan yatırım kadar güvenlik ürününü
kullanacak personele veya danışman firmaya yatırım yapılmalıdır.
● Aksi takdirde aldığınız ürünler atıl kalabilir ve/veya yatırımların
karşılığı alınamayabilir.
– Almak istenen ürün size neler sağlayacak? beklenti nedir?
● PoC yapılmalıdır.
– Ucuz olsun mantığı!
● Bir ürünün ortalama %30 ucuz olması karşısında üründen beklenen
verimin yeterli seviyede alınamayacağı unutulmamalı
Kaynak
● Suricata User Guide
– Release 4.0dev
– https://media.readthedocs.org/pdf/suricata/latest/suricata.pdf
● BGA Security
– Snort intrusion prevention system
– https://www.slideshare.net/bgasecurity
İletişim Bilgileri
Kurtuluş Karasu
– kurtuluskarasu@gmail.com

More Related Content

What's hot

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
BGA Cyber Security
 
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI
BGA Cyber Security
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş
Murat KARA
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
BGA Cyber Security
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
BGA Cyber Security
 
Pfsense Firewall ve Router Eğitimi
Pfsense Firewall ve Router EğitimiPfsense Firewall ve Router Eğitimi
Pfsense Firewall ve Router Eğitimi
BGA Cyber Security
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıBGA Cyber Security
 
Understanding NMAP
Understanding NMAPUnderstanding NMAP
Understanding NMAP
Phannarith Ou, G-CISO
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA Cyber Security
 
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım KılavuzuNmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Mehmet Caner Köroğlu
 
Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12
Murat KARA
 
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriBeyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
PRISMA CSI
 
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİM
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİMSiber Güvenlik Eğitimleri | SPARTA BİLİŞİM
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİM
Sparta Bilişim
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
BGA Cyber Security
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
BGA Cyber Security
 
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware SaldırılarıBir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
BGA Cyber Security
 
SSH Tünelleme ile İçerik Filtreleyicileri Atlatmak
SSH Tünelleme ile İçerik Filtreleyicileri AtlatmakSSH Tünelleme ile İçerik Filtreleyicileri Atlatmak
SSH Tünelleme ile İçerik Filtreleyicileri AtlatmakBGA Cyber Security
 
Uygulamalı Ağ Güvenliği Eğitimi Lab Çalışmaları
Uygulamalı Ağ Güvenliği Eğitimi Lab ÇalışmalarıUygulamalı Ağ Güvenliği Eğitimi Lab Çalışmaları
Uygulamalı Ağ Güvenliği Eğitimi Lab Çalışmaları
BGA Cyber Security
 

What's hot (20)

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
 
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
 
Pfsense Firewall ve Router Eğitimi
Pfsense Firewall ve Router EğitimiPfsense Firewall ve Router Eğitimi
Pfsense Firewall ve Router Eğitimi
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
 
Understanding NMAP
Understanding NMAPUnderstanding NMAP
Understanding NMAP
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması Çözümleri
 
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım KılavuzuNmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
Nmap101 Eğitim Sunumu - Nmap Kullanım Kılavuzu
 
Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12
 
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriBeyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
 
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİM
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİMSiber Güvenlik Eğitimleri | SPARTA BİLİŞİM
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİM
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
 
Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware SaldırılarıBir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
 
SSH Tünelleme ile İçerik Filtreleyicileri Atlatmak
SSH Tünelleme ile İçerik Filtreleyicileri AtlatmakSSH Tünelleme ile İçerik Filtreleyicileri Atlatmak
SSH Tünelleme ile İçerik Filtreleyicileri Atlatmak
 
Uygulamalı Ağ Güvenliği Eğitimi Lab Çalışmaları
Uygulamalı Ağ Güvenliği Eğitimi Lab ÇalışmalarıUygulamalı Ağ Güvenliği Eğitimi Lab Çalışmaları
Uygulamalı Ağ Güvenliği Eğitimi Lab Çalışmaları
 

Similar to Suricata ile siber tehdit avcılığı

Ossec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit SistemiOssec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit Sistemi
BilgiO A.S / Linux Akademi
 
Log Yönetimi ve Saldırı Analizi Eğitimi - 2
Log Yönetimi ve Saldırı Analizi Eğitimi - 2Log Yönetimi ve Saldırı Analizi Eğitimi - 2
Log Yönetimi ve Saldırı Analizi Eğitimi - 2
BGA Cyber Security
 
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux 2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
Burak Oğuz
 
Siber Güvenlik 1. hafta
Siber Güvenlik 1. haftaSiber Güvenlik 1. hafta
Siber Güvenlik 1. hafta
Onur Er
 
Prtg Network Monitor
Prtg Network MonitorPrtg Network Monitor
Prtg Network Monitor
Kavi International
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
Oguz Yarimtepe
 
Operating Systems
Operating SystemsOperating Systems
Operating Systems
Gökhan Güller
 
DDoS Engelleme Ürünleri
DDoS Engelleme ÜrünleriDDoS Engelleme Ürünleri
DDoS Engelleme Ürünleri
BGA Cyber Security
 
Packet-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic AracıPacket-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic AracıBGA Cyber Security
 
İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))
İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))
İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))
Kerem Demirtürk
 
Hping, TCP/IP Paket Üretici
Hping, TCP/IP Paket ÜreticiHping, TCP/IP Paket Üretici
Hping, TCP/IP Paket Üretici
BGA Cyber Security
 
AğAğ
Bilgi Sistemleri Güvenliği Metasploit
Bilgi Sistemleri Güvenliği MetasploitBilgi Sistemleri Güvenliği Metasploit
Bilgi Sistemleri Güvenliği Metasploit
msoner
 
Siber tehdit avcılığı 1
Siber tehdit avcılığı 1Siber tehdit avcılığı 1
Siber tehdit avcılığı 1
Kurtuluş Karasu
 
OSI (Open System Interconnection)
OSI (Open System Interconnection)OSI (Open System Interconnection)
OSI (Open System Interconnection)
Ali Can Uzunhan
 
OSI Referans Modeli ve Katmanları - Alican Uzunhan
OSI Referans Modeli ve Katmanları - Alican UzunhanOSI Referans Modeli ve Katmanları - Alican Uzunhan
OSI Referans Modeli ve Katmanları - Alican Uzunhan
Mesut Güneş
 
Özgür yazılımlarla DDOS Engelleme
Özgür yazılımlarla DDOS EngellemeÖzgür yazılımlarla DDOS Engelleme
Özgür yazılımlarla DDOS EngellemeBGA Cyber Security
 
Zafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleriZafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleri
EPICROUTERS
 

Similar to Suricata ile siber tehdit avcılığı (20)

Ossec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit SistemiOssec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit Sistemi
 
Log Yönetimi ve Saldırı Analizi Eğitimi - 2
Log Yönetimi ve Saldırı Analizi Eğitimi - 2Log Yönetimi ve Saldırı Analizi Eğitimi - 2
Log Yönetimi ve Saldırı Analizi Eğitimi - 2
 
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux 2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
 
Nmap & Hping
Nmap & HpingNmap & Hping
Nmap & Hping
 
Siber Güvenlik 1. hafta
Siber Güvenlik 1. haftaSiber Güvenlik 1. hafta
Siber Güvenlik 1. hafta
 
Prtg Network Monitor
Prtg Network MonitorPrtg Network Monitor
Prtg Network Monitor
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Operating Systems
Operating SystemsOperating Systems
Operating Systems
 
DDoS Engelleme Ürünleri
DDoS Engelleme ÜrünleriDDoS Engelleme Ürünleri
DDoS Engelleme Ürünleri
 
Packet-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic AracıPacket-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic Aracı
 
İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))
İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))
İnformation Gathering - Bilgi Toplama (Cyber Security - Siber Güvenlik))
 
Hping, TCP/IP Paket Üretici
Hping, TCP/IP Paket ÜreticiHping, TCP/IP Paket Üretici
Hping, TCP/IP Paket Üretici
 
AğAğ
 
Bilgi Sistemleri Güvenliği Metasploit
Bilgi Sistemleri Güvenliği MetasploitBilgi Sistemleri Güvenliği Metasploit
Bilgi Sistemleri Güvenliği Metasploit
 
Siber tehdit avcılığı 1
Siber tehdit avcılığı 1Siber tehdit avcılığı 1
Siber tehdit avcılığı 1
 
Yönlendi̇rme sunu
Yönlendi̇rme sunuYönlendi̇rme sunu
Yönlendi̇rme sunu
 
OSI (Open System Interconnection)
OSI (Open System Interconnection)OSI (Open System Interconnection)
OSI (Open System Interconnection)
 
OSI Referans Modeli ve Katmanları - Alican Uzunhan
OSI Referans Modeli ve Katmanları - Alican UzunhanOSI Referans Modeli ve Katmanları - Alican Uzunhan
OSI Referans Modeli ve Katmanları - Alican Uzunhan
 
Özgür yazılımlarla DDOS Engelleme
Özgür yazılımlarla DDOS EngellemeÖzgür yazılımlarla DDOS Engelleme
Özgür yazılımlarla DDOS Engelleme
 
Zafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleriZafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleri
 

More from Kurtuluş Karasu

Pardus Kurulum Dokümanı
Pardus Kurulum DokümanıPardus Kurulum Dokümanı
Pardus Kurulum Dokümanı
Kurtuluş Karasu
 
Ubuntu Kurulum Dokümanı
Ubuntu Kurulum DokümanıUbuntu Kurulum Dokümanı
Ubuntu Kurulum Dokümanı
Kurtuluş Karasu
 
Centos kurulumu
Centos kurulumuCentos kurulumu
Centos kurulumu
Kurtuluş Karasu
 
Linux Sistem Yönetimi
Linux Sistem YönetimiLinux Sistem Yönetimi
Linux Sistem Yönetimi
Kurtuluş Karasu
 
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Kurtuluş Karasu
 
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve ÇözümüWordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
Kurtuluş Karasu
 
USB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ AdaptörüUSB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ Adaptörü
Kurtuluş Karasu
 
SIEM Başarıya Giden Yol
SIEM Başarıya Giden YolSIEM Başarıya Giden Yol
SIEM Başarıya Giden Yol
Kurtuluş Karasu
 
linux-enterprise-cluster
linux-enterprise-clusterlinux-enterprise-cluster
linux-enterprise-cluster
Kurtuluş Karasu
 
Ossec kurulumu
Ossec kurulumuOssec kurulumu
Ossec kurulumu
Kurtuluş Karasu
 

More from Kurtuluş Karasu (10)

Pardus Kurulum Dokümanı
Pardus Kurulum DokümanıPardus Kurulum Dokümanı
Pardus Kurulum Dokümanı
 
Ubuntu Kurulum Dokümanı
Ubuntu Kurulum DokümanıUbuntu Kurulum Dokümanı
Ubuntu Kurulum Dokümanı
 
Centos kurulumu
Centos kurulumuCentos kurulumu
Centos kurulumu
 
Linux Sistem Yönetimi
Linux Sistem YönetimiLinux Sistem Yönetimi
Linux Sistem Yönetimi
 
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
 
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve ÇözümüWordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
 
USB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ AdaptörüUSB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ Adaptörü
 
SIEM Başarıya Giden Yol
SIEM Başarıya Giden YolSIEM Başarıya Giden Yol
SIEM Başarıya Giden Yol
 
linux-enterprise-cluster
linux-enterprise-clusterlinux-enterprise-cluster
linux-enterprise-cluster
 
Ossec kurulumu
Ossec kurulumuOssec kurulumu
Ossec kurulumu
 

Suricata ile siber tehdit avcılığı

  • 2. İçerik ● Saldırı Tespit ve Engelleme Sistemleri – IDS (Intrusion Detection System) ● NIDS, HIDS – IPS (Intrusion Protection System) ● NIPS, HIPS ● False Positive, False Negative ● Suricata ● Performans ve Testler ● IDS Kural Yapısı ● IDS Kural Başlığı ● IDS Kural Seçenekleri ● IDS Kural Testleri ● IDS Kural Yazma ● Sonuç
  • 3. Riskiniz Nedir? ● Kaç kurum siber saldırıya maruz kaldığını biliyor? – Ağınızda neler olup bittiğini bilmek... – Nasıl? – Ne zaman?
  • 4. False Positive ● False Positive – Yanlış alarm – IDS tarafından saldırı tespiti olduğunu ancak gerçekte bir saldırı olmayan durumdur. – Çok olması zaman kaybı
  • 5. False Negative ● False Negative – Gerçek bir saldırının olması ancak IDS tarafından tespit edilememe durumu – IDS yetersizliği ● Kullanılan IDS sistemi mi yetersiz? ● Yanlış konfigürasyon veya yetersiz kurallar?
  • 6. NIDS & HIDS ● NIDS (Network based IDS) - Ağ tabanlı saldırı tespit sistemi – Ağ üzerinde gelen-giden paketleri analiz ederek alarm üretilmesini sağlar ve log kaydını tutar. ● HIDS (Host based IDS) - Host tabanlı saldırı tespit sistemi – Host üzerindeki logları analiz ederek alarm üretilmesini sağlar. – Dosya bütünlük kontrolü ve zararlı dosyaların tespiti konusunda da kullanılabilir.
  • 7. IDS / IPS Yerleşimi ● Ağın durumuna göre yerleşim önemli ● Güvenlik Duvarı Önü – Gereksiz trafik ve uyarı – Tehditleri daha iyi belirleme ● Güvenlik Duvarı Arkası – Güvenlik duvarını geçen trafik – Tehditleri daha az belirleyebilir. ● Ağ anahtarı Span portu – Port mirror ● TAP / HUB Cihazları
  • 8. Suricata ● Suricata açık kaynak kodlu, – GPLv2 lisansı ile dağıtılan saldırı tespit ve engelleme sistemidir. ● Kar amacı gütmeyen bir topluluk olan OISF (Open Information Security Foundation) tarafından geliştirilmektedir ● Snort saldırı tespit sistemi gibi imza/kural tabanlı çalışmaktadır. ● Snort kural setini desteklemektedir. ● Suricata’nın önemli bir özelliği multi-thread çalışmasıdır. ● Sniffer & Logger
  • 9. Suricata ● Ağ trafiğini izleyerek, trafiğin pcap formatında kaydedilmesini sağlar. – Kaydedilen bu trafik daha sonra analiz edilebilir. ● Konfigürasyon dosyası YAML formatındadır. ● Paket işleme performansının arttırılması için AF_PACKET, PF_RING gibi uygulamalar kullanılabilmektedir. ● Kurallar günlük güncellenmelidir. ● Kendi kurallarınızı yazabilirsiniz
  • 10. Suricata Çalışma Yapısı ● Birçok çalışma moduna sahip olan Suricata’nın hangi modda çalışacağı başlangıçta verilen parametrelerle belirlenmektedir. ● En çok tercih edilen “pcap device” yani saldırı tespit sistemi modunda bir paket sırasıyla paket yakalama, paket çözümleme, akış işlemi ve tespit modüllerinden geçer. Bu işlemlerin sonucuna göre paket geçirilir ya da alarm üretilir.
  • 12. Performans & IDS Testleri ● txt formatında loglama ● JSON formatında loglama ● Yanlış donanım kullanımı ● Yanlış / Eksik konfigürasyon yapılandırması ● Kurallar (Rules) – Kurallar denetlendi mi? – Gereksiz kural fazlalığı – Hedef sistemlere uygun kural yazımı – False positive oranı? – False negative oranı? ● Port tarama eşik değerlerinin düşürülmesi
  • 13. Performans & IDS Testleri
  • 14. Testler ● Şifreli iletişimler (SSH, SSL) ● IP fragmentation ● IP Spoofing ● IDS Atlatma teknikleri ● Kuralları denetleme ● Test araçları – Fragroute, metasploit, nessus, nmap, tomahawk, idswakeup, pytbull
  • 15. Kural Yapısı ● Temel olarak iki kısımdan oluşur ● Kural = Kural Başlığı + Kural Seçenekleri – Rule Header (Kural Başlığı) ● Rule Actions – Pass, Drop, Alert, Reject ● Protocol – IP, ICMP, TCP, UDP, HTTP – Rule Options (Kural Seçenekleri) ● Keywords
  • 16. Kural Yapısı ● Her kural bir adet kural başlığı ve kural seçeneği bulunur. ●
  • 17. Kural Yapısı ● Kuralların gücü kural seçenekleridir. ● Kuruma özel kurallar yapılandırılabilir.
  • 18. Kural Başlığı ● Kural Başlığı temel olarak 4 alt bölüme ayrılır. – Kural Aksiyonu (Pass, Drop, Alert, Reject) – Protokol (TCP, UDP, ICMP, IP, vb) – Kaynak IP-Port ● Tek bir IP adresi veya gruplama kullanılabilir. – Hedef IP-Port ● Tek bir IP adresi veya gruplama kullanılabilir.
  • 19. Kural Başlığı ● Aksiyon: – Yazılan kurala uyan paket için ne yapılacağını belirtir. alert tcp 10.46.1.0/24 any -> $HOME_NET any – Alert: uyan paketler için uyarı verir ve loglama yapar – Pass: paketi geç – Drop: Paketi bloklar ve durumu loglar. (IPS mod) – Reject: Paketi engeller, geri reset döner. Durumu loglar (IPS mod)
  • 20. Kural Başlığı ● Protokol: – Hangi protokolün kontrol edildiğini belirtir. alert tcp 10.46.1.0/24 any -> $HOME_NET any – TCP – UDP – ICMP – IP – HTTP
  • 21. Kural Başlığı ● IP Adres Alanı: – Kaynak IP adresini belirtir. – Ağ trafiğinin nerden geldiğini gösterir. alert tcp 10.46.1.0/24 any -> $HOME_NET any – ! hariç anlamına gelir – any tüm ip adresleri anlamına gelir. – $HOME_NET gibi değişken tanımları kullanılabilir.
  • 22. Kural Başlığı ● IP Adres Alanı: – Hedef IP adresini belirtir. – Ağ trafiğinin nereye gittiğini gösterir. alert tcp 10.46.1.0/24 any -> $HOME_NET any – ! hariç anlamına gelir – any tüm ip adresleri anlamına gelir. – $HOME_NET gibi değişken tanımları kullanılabilir.
  • 23. Kural Başlığı ● Port Alanı: – Trafiğin geldiği ve gittiği port gösterilir. alert tcp 10.46.1.0/24 any -> $HOME_NET any
  • 24. Kural Başlığı ● Yön Belirteci: – Trafiğin sol taraftan sağ tarafa doğru gittiğini belirtir. alert tcp 10.46.1.0/24 any -> $HOME_NET any
  • 25. Kural Seçenekleri alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı (msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold: type both, track by_src, count 1, seconds 120; reference:url,en.wikipedia.org/wiki/Brute_force_attack; reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon; sid:2001219; rev:20;) – () parantezler arasına yazılır. – ; Noktalı virgül ile seçenekler birbirinden ayrılır. ● Her yazılan seçenek ; ile biter. – : her seçenek ile alacağı değer birbirinden ayrılır. – Meta-settings, Header Keywords, Payload Keywords, Flow Keywords, HTTP Keywords, DNS Keywords, File Keywords gibi alanlara ayrılır.
  • 26. Kural Seçenekleri Meta-settings ● Meta ayarlarının Suricata’nın kural kontrolü üzerinde bir etkisi yoktur. ● Meta ayarları Suricata’nın olayları rapor etmesi üzerinde yeri vardır. – msg (message) ● Kural tetiklendiğinde gösterilecek mesaj ● Kural seçenekleri bölümü genelde msg ile başlar. ● (msg:"ET SCAN Potential SSH Scan"; – sid (signature id) ● Her bir kuralın tanımlandığı numara ● sid:2001219; alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı (msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold: type both, track by_src, count 1, seconds 120; reference:url,en.wikipedia.org/wiki/Brute_force_attack; reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon; sid:2001219; rev:20;)
  • 27. Kural Seçenekleri Meta-settings ● Meta ayarlarının Suricata’nın kural kontrolü üzerinde bir etkisi yoktur. ● Meta ayarları Suricata’nın olayları rapor etmesi üzerinde yeri vardır. – rev (revision) ● Kuralın versiyonunu gösterir. ● Kuralda bir değişiklik olduğunda rev numarası bir arttırılır. ● Kural seçenekleri bölümünde genelde sid ve rev en sondadır. ● rev:20; – reference ● Kuralla ilgili detay bilgilerin yerlerini gösterir. alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı (msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold: type both, track by_src, count 1, seconds 120; reference:url,en.wikipedia.org/wiki/Brute_force_attack; reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon; sid:2001219; rev:20;)
  • 28. Kural Seçenekleri Meta-settings ● Meta ayarlarının Suricata’nın kural kontrolü üzerinde bir etkisi yoktur. ● Meta ayarları Suricata’nın olayları rapor etmesi üzerinde yeri vardır. – classtype ● Kuralın sınıflandırılması hakkında bilgi verir. ● Classification.config dosyasında gerekli bilgiler tutulur. ● Kuralın default priority değeri classtype içerisinde tanımlanmıştır. – Genelde 1-4 arası kullanılır. En yüksek öncelik 1 dir. – priortiy:5; şeklinde kurala eklerseniz, default değerin üzerine yazar alert tcp $EXTERNAL_NET any -> $HOME_NET 22 Kural Başlığı (msg:"ET SCAN Potential SSH Scan"; flow:to_server; flags:S,12; threshold: type both, track by_src, count 1, seconds 120; reference:url,en.wikipedia.org/wiki/Brute_force_attack; reference:url,doc.emergingthreats.net/2001219; classtype:attempted-recon; sid:2001219; rev:20;)
  • 29. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – IP Keywords ● TTL ● Ipopts (ip options) ● Sameip ● ip_proto ● Id ● Fragbits ● Fragoffset alert icmp $EXTERNAL_NET any -> $HOME_NET any Kural Başlığı (msg:"GPL ICMP_INFO traceroute"; itype:8; ttl:1; reference:arachnids,118; classtype:attempted-recon; sid:2100385; rev:5;)
  • 30. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – IP Keywords ● TTL – IP başlığındaki TTL alanını kontrol etmek için kullanılır. – Formatı: ● ttl:<değer>; – Örnek ● ttl:5; ● Traceroute yakalamak için varsayılan olarak gelen kural #alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"GPL ICMP_INFO traceroute"; itype:8; ttl:1; reference:arachnids,118; classtype:attempted-recon; sid:2100385; rev:5;)
  • 31. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – IP Keywords ● ipopts – Pakette herhangi bir IP seçeneğinin kontrol edilmesi #alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"GPL MISC source route ssrr"; ipopts:ssrr ; reference:arachnids,422; classtype:bad-unknown; sid:2100502; rev:3;)
  • 32. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – IP Keywords ● sameip – Kaynak ve hedef ip adreslerinin aynı olması durumunun kontrol edilmesi ● Kaynak ve hedef ip adreslerinin aynı olup olmadığını kontrol etmek için varsayılan olarak gelen kural #alert ip any any -> any any (msg:"GPL SCAN same SRC/DST"; sameip; reference:bugtraq,2666; reference:cve,1999-0016; reference:url,www.cert.org/advisories/CA-1997-28.html; classtype:bad-unknown; sid:2100527; rev:9;
  • 33. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – IP Keywords ● ip_proto – Paket başlığında IP protokol değerinin kontrol edilmesi ● https://www.iana.org/assignments/protocol-numbers/protocol-number s.xhtml Adresinden ip protokol numaralarının listesini görebilirsiniz. alert ip $HOME_NET any -> $EXTERNAL_NET any (msg:"ET POLICY Protocol 41 IPv6 encapsulation potential 6in4 IPv6 tunnel active"; ip_proto:41; threshold:type both,track by_dst, count 1, seconds 60; reference:url,en.wikipedia.org/wiki/6in4; classtype:policy- violation; sid:2012141; rev:2;)
  • 34. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – IP Keywords ● fragbits – Ip parçalama alanını kontrol eder. #alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"ET EXPLOIT Invalid non- fragmented packet with fragment offset>0"; fragbits: !M; fragoffset: >0; reference:url,doc.emergingthreats.net/bin/view/Main/2001022; classtype:bad-unknown; sid:2001022; rev:5;)
  • 35. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – TCP Keywords ● TCP başlık bilgilerinin kontrol edilmesi için kullanılır. ● Seq ● Ack ● Window alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"GPL SCAN NULL"; flow:stateless; ack:0; flags:0; seq:0; reference:arachnids,4; classtype:attempted-recon; sid:2100623; rev:7;)
  • 36. Kural Seçenekleri Header Keywords ● Protokollerin başlıkları ile ilgili anahtar kelimeler. – ICMP Keywords ● ICMP başlık bilgilerinin kontrol edilmesi için kullanılır. ● itype ● icode ● icmp_id ● icmp_seq alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN ICMP @hello request, Likely Precursor to Scan"; itype:8; icode:0; content:"@hello ???"; reference:url,doc.emergingthreats.net/2010641; classtype:misc-activity; sid:2010641; rev:2;)
  • 37. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Pcre (Perl Compatible Regular Expressions) ● Düzenli ifadeler üzerinden kontrol sağlar. ● Regex yazım kuralları bilinmelidir. ● Performans üzerinde olumsuz etkisi vardır. ● Varsayılan olarak, pcre büyük-küçük harf duyarlıdır. alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET WEB_SPECIFIC_APPS WP Forum Server wordpress plugin SQL Injection Attempt -- feed.php topic DELETE"; flow:established,to_server; content:"/wp-content/plugins/forum- server/feed.php?"; nocase; http_uri; content:"topic="; nocase; http_uri; content:"DELETE"; nocase; http_uri; content:"FROM"; nocase; http_uri; pcre:"/DELETE. +FROM/Ui"; reference:url,exploit-db.com/exploits/16235/; classtype:web-application- attack; sid:2012434; rev:3;)
  • 38. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Content ● Paket veri alanında spesifik içerik arama ● Içerik alanı hem text hemde hex değerlerden oluşabilir. – Içerikte yazılması gereken http:// ise ● content:”http|3A|//” şeklinde yazılmalıdır. ● Hex değerler iki pipe arasında yazılmalıdır. alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET WEB_SPECIFIC_APPS WP Forum Server wordpress plugin SQL Injection Attempt -- feed.php topic DELETE"; flow:established,to_server; content:"/wp-content/plugins/forum- server/feed.php?"; nocase; http_uri; content:"topic="; nocase; http_uri; content:"DELETE"; nocase; http_uri; content:"FROM"; nocase; http_uri; pcre:"/DELETE.+FROM/Ui"; reference:url,exploit-db.com/exploits/16235/; classtype:web- application-attack; sid:2012434; rev:3;) Bu karakterler kural içerisinde farklı anlamları olduğu için hex olarak kullanılmalıdır.
  • 39. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Nocase ● Content büyük-küçük harf duyarlıdır. ● Content seçeneğinde belirtilen aramalarda büyük-küçük harf ayrımı yapılmasın istenirse, kullanılır. alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET WEB_SPECIFIC_APPS WP Forum Server wordpress plugin SQL Injection Attempt -- feed.php topic DELETE"; flow:established,to_server; content:"/wp-content/plugins/forum- server/feed.php?"; nocase; http_uri; content:"topic="; nocase; http_uri; content:"DELETE"; nocase; http_uri; content:"FROM"; nocase; http_uri; pcre:"/DELETE. +FROM/Ui"; reference:url,exploit-db.com/exploits/16235/; classtype:web-application- attack; sid:2012434; rev:3;)
  • 40. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Depth ● Content içerisinde payload’un başlangıcından kaç byte’a bakılacağını belirtir. alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"OS-WINDOWS Microsoft Windows SMB remote code execution attempt"; flow:to_server,established; content:"|FF| SMB3|00 00 00 00|"; depth:9; offset:4; byte_extract:2,26,TotalDataCount,relative,little; byte_test:2,>,TotalDataCount,20,relative,little; metadata:policy balanced-ips drop, policy connectivity-ips drop, policy security-ips drop, ruleset community, service netbios-ssn; classtype:attempted-admin; sid:41978; rev:3;)
  • 41. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Offset ● Content içerisinde payload’un kaçıncı byte tan başlayarak bakılacağını belirtir. alert tcp $EXTERNAL_NET any -> $HOME_NET 445 (msg:"OS-WINDOWS Microsoft Windows SMB remote code execution attempt"; flow:to_server,established; content:"|FF| SMB3|00 00 00 00|"; depth:9; offset:4; byte_extract:2,26,TotalDataCount,relative,little; byte_test:2,>,TotalDataCount,20,relative,little; metadata:policy balanced-ips drop, policy connectivity-ips drop, policy security-ips drop, ruleset community, service netbios-ssn; classtype:attempted-admin; sid:41978; rev:3;)
  • 42. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Distance ● Önceki Content den ne kadar byte ileri gidileceğini belirtir. ● Negatif sayı alabilir. alert tls $EXTERNAL_NET any -> $HOME_NET any (msg:"ET TROJAN Unknown Malicious SSL Cert 5"; flow:established,from_server; content:"|07|Makeups"; content:"|55 04 03|"; distance:0; content:"|12|www.ignorelist.com"; distance:1; within:19; classtype:trojan-activity; sid:2023906; rev:2;)
  • 43. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Within ● Önceki content den sonra ne kadarlı bir byte içerisinde ikinci content in aranacağı belirtilir. alert tls $EXTERNAL_NET any -> $HOME_NET any (msg:"ET TROJAN Unknown Malicious SSL Cert 5"; flow:established,from_server; content:"|07|Makeups"; content:"|55 04 03|"; distance:0; content:"|12|www.ignorelist.com"; distance:1; within:19; classtype:trojan-activity; sid:2023906; rev:2;)
  • 44. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri – Dsize ● Paketin payload kısmının boyutunu kontrol etmek için kullanılır. ● Anormal boyuttaki payloadları araştırmak için kullanılabilir. alert tcp $EXTERNAL_NET any -> $HOME_NET [23,2323] (msg:"ET TROJAN Possible Linux.Mirai Login Attempt (1111111)"; flow:to_server,established; content:"1111111|0d 0a|"; nocase; dsize:9; reference:url,krebsonsecurity.com/2016/10/who-makes-the-iot- things-under-attack; classtype:attempted-admin; sid:2023430; rev:2;)
  • 45. Kural Seçenekleri Payload Keywords ● Paketin içerisinin incelenmesini sağlayan kural seçenekleri Payload Detection Options
  • 46. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – http_method ● GET, PUT, HEAD, DELETE, TRACE, OPTIONS, CONNECT, PATCH ● Sadece http metotları üzerinden kontrol sağlamak için alert http any any -> $HOME_NET 8080 (msg:"ET WORM TheMoon.linksys.router 2"; flow:to_server,established; content:"POST"; http_method; content:"/tmUnblock.cgi"; http_uri; reference:url,isc.sans.edu/forums/diary/Linksys+Worm+Captured/17630; reference:url,devttys0.com/2014/02/wrt120n-fprintf-stack-overflow/; classtype:trojan- activity; sid:2018132; rev:4;)
  • 47. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – http_uri ● Http trafiği içerisinde URL üzerinden kontrol sağlamak için alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET WORM Possible Worm Sohanad.Z or Other Infection Request for setting.nql"; flow:established,to_server; content:"/setting.nql"; nocase; http_uri; reference:url,www.threatexpert.com/report.aspx? md5=a70aad8f27957702febfa162556dc5b5; classtype:trojan-activity; sid:2012201; rev:4;)
  • 48. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – uricontent ● http_uri ile aynı işi yapar. ● Uricontent kullanımdan kaldırıldı. Ancak hala desteklenmektedir. ● Yeni bir kural yazılacağı zaman http_uri önerilir. ● http_uri ile uricontent arasındaki fark; alert http $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:"ET WORM Win32.Socks.s HTTP Post Checkin"; flow:established,to_server; content:"POST "; depth:5; uricontent:".php"; content:"|0d 0a 0d 0a|proc=[System Process]|0a|"; reference:url,doc.emergingthreats.net/2008020; classtype:trojan-activity; sid:2008020; rev:4;)
  • 49. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – urilen ● Http trafiği içerisinde URL uzunluğu üzerinden kontrol sağlamak için alert http any any -> any any (msg:"ET TROJAN Generic - Mozilla 4.0 EXE Request"; flow:established,to_server; urilen:6<>15; content:".exe"; http_uri; content:"|3a| Mozilla/4.0|0D 0A|Host|3a|"; http_header; classtype:trojan-activity; sid:2020705; rev:3;)
  • 50. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – http_header ● Http trafiği içerisinde http başlığı üzerinden kontrol sağlamak için alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"ET WEB_SERVER MorXploit Shell Command"; flow:established,to_server; content:"?cmd=ZXhpdA=="; http_uri; fast_pattern; content:"User-Agent|3a 20|Mozilla 5"; http_header; reference:url,seclists.org/fulldisclosure/2014/Nov/78; classtype:bad-unknown; sid:2019951; rev:2;)
  • 51. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – http_cookie ● Http başlığı içerisinde geçmesine rağmen, kendi seçeneği ile kullanılmalıdır. alert http any any -> any any (msg:"ET WEB_SERVER WebShell - GODSpy - Cookie"; flow:established; content:"godid="; http_cookie; classtype:trojan-activity; sid:2017085; rev:2;)
  • 52. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – http_user_agent ● Http başlığı içerisinde geçmesine rağmen, kendi seçeneği ile kullanılmalıdır. alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET WEB_SERVER WPScan User Agent"; flow:established,to_server; content:"WPScan v"; depth:8; http_user_agent; threshold: type limit, count 1, seconds 60, track by_src; reference:url,github.com/wpscanteam/wpscan; classtype:web-application-attack; sid:2020338; rev:3;)
  • 53. Kural Seçenekleri HTTP Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – http_stat_code ● Http durum kodu üzerinden kontrol sağlamak için, alert http $HTTP_SERVERS any -> $EXTERNAL_NET any (msg:"GPL WEB_SERVER 403 Forbidden"; flow:from_server,established; content:"403"; http_stat_code; classtype:attempted-recon; sid:2101201; rev:10;)
  • 54. Kural Seçenekleri Flow Keywords ● Kuralların yalnızca trafik akışının belirli yönlerine uygulanmasına izin verir. – Flow ● to_client ● from_client ● to_server ● from_server ● Established ● Stateless ● only_stream ● no_stream
  • 55. Kural Seçenekleri Flow Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – TCP bağlantısında durum (üçlü el sıkışmadan sonra) alert http any any -> any any (msg:"SURICATA HTTP Request line with leading whitespace"; flow:established,to_server; app-layer- event:http.request_line_leading_whitespace; flowint:http.anomaly.count,+,1; classtype:protocol-command-decode; sid:2221031; rev:1;)
  • 56. Kural Seçenekleri Flow Keywords ● Uygulama katmanında protokole özgü yetenekler sağlayabilen kural seçenekleri – UDP bağlantısında durum alert udp any 53 -> $HOME_NET any (msg:"ET EXPLOIT Possible 2015-7547 Malformed Server response"; flow:from_server; content:"|00 01 00 00 00 00 00 00|"; offset:4; depth:8; isdataat:2049; byte_test:1,&,128,2; byte_test:1,!&,64,2; byte_test:1,! &,32,2; byte_test:1,!&,16,2; byte_test:1,!&,8,2; byte_test:1,&,2,2; byte_test:1,!&,1,3; byte_test:1,!&,2,3; byte_test:1,!&,4,3; byte_test:1,!&,8,3; pcre:"/^[^x00]+x00x00x01/R"; reference:cve,2015-7547; classtype:attempted-user; sid:2022531; rev:1;)
  • 57. Kural Sınıflandırma ● Kurallar belirli bir şekilde kategorilendirilmiştir. ● emerging-web_server.rules – Web sunucularına yapılacak çeşitli saldırıların tespit edilmesini sağlar ● emerging-scan.rules – Çeşitli ağ ve servis tarama araçlarının yaptığı taramaları tespit eden kuralların toplandığı kategori
  • 58. IDS Kural Test Örneği - 1 ● SSH Port ve Servis tarama yaptığımda suricata herhangi bir alarm üretmediğini görüyoruz. – Suricata kuruma özel yapılandırılmadığı sürece yeterli verim alınamayacaktır. – Gerekli testler yapılıp, kurallar yapılandırılmalıdır. – İhtiyaç halinde kuruma özel kurallar geliştirilip, eklenmelidir.
  • 59. IDS Kural Test Örneği - 1 ● Suricata üzerinde gerekli yapılandırmaları gerçekleştiriyoruz. ● Tekrar SSH Port ve Servis tarama yaptığımda suricata alarm ürettiğini görüyoruz.
  • 60. IDS Kural Test Örneği - 2 ● Kural: #alert tcp $EXTERNAL_NET any <> $HOME_NET 0 (msg:"GPL POLICY tcp port 0 traffic"; flow:stateless; classtype:misc-activity; sid:2100524; rev:9;) – Varsayılan olarak kural kapalı gelmektedir. – Kuralı aktif hale getiriyoruz. Aksi takdirde herhangi bir alarm oluşturmayacaktır.
  • 61. IDS Kural Test Örneği - 2 ● Kural: #alert tcp $EXTERNAL_NET any <> $HOME_NET 0 (msg:"GPL POLICY tcp port 0 traffic"; flow:stateless; classtype:misc- activity; sid:2100524; rev:9;)
  • 62. IDS Kural Test Örneği - 3 ● drop.rules:alert ip [204.126.244.0/23,204.128.151.0/24,204.128.180.0/24,204.130.16.0 /20,204.130.167.0/24,204.147.64.0/21,204.155.128.0/20,204.187.15 5.0/24,204.187.156.0/22,204.187.160.0/19,204.187.192.0/19,204.18 7.224.0/20,204.187.240.0/21,204.187.248.0/22,204.187.252.0/23,20 4.187.254.0/24,204.194.64.0/21,204.194.184.0/21,204.225.16.0/20, 204.225.159.0/24] any -> $HOME_NET any (msg:"ET DROP Spamhaus DROP Listed Traffic Inbound group 30"; reference:url,www.spamhaus.org/drop/drop.lasso; threshold: type limit, track by_src, seconds 3600, count 1; classtype:misc-attack; flowbits:set,ET.Evil; flowbits:set,ET.DROPIP; sid:2400029; rev:2602;) – Rules to block Spamhaus DROP listed networks (www.spamhaus.org) – Emerging Threats Spamhaus DROP List rules.
  • 63. IDS Kural Test Örneği - 3 ● drop.rules:alert ip [204.126.244.0/23,204.128.151.0/24,204.128.180.0/24,204.130.16.0/20,204. 130.167.0/24,204.147.64.0/21,204.155.128.0/20,204.187.155.0/24,204.187. 156.0/22,204.187.160.0/19,204.187.192.0/19,204.187.224.0/20,204.187.240 .0/21,204.187.248.0/22,204.187.252.0/23,204.187.254.0/24,204.194.64.0/21 ,204.194.184.0/21,204.225.16.0/20,204.225.159.0/24] any -> $HOME_NET any (msg:"ET DROP – Kullanılan ip adresi bloğu 204.126.244.0/23
  • 64. IDS Kural Test Örneği - 4 ● Kural: alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN Nikto Web App Scan in Progress"; flow:to_server,established; content:"(Nikto"; http_user_agent; threshold: type both, count 5, seconds 60, track by_src; reference:url,www.cirt.net/code/nikto.shtml; reference:url,doc.emergingthreats.net/2002677; classtype:web-application-attack; sid:2002677; rev:13;) – Varsayılan olarak kural açık gelmektedir. – User agent kısmında Nikto görüldüğü zaman, kuralda belirtilen eşik değerlerine ulaştığında alarm oluşacaktır.
  • 65. IDS Kural Test Örneği - 4 ● Kural: alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN Nikto Web App Scan in Progress"; flow:to_server,established; content:"(Nikto"; http_user_agent; threshold: type both, count 5, seconds 60, track by_src; reference:url,www.cirt.net/code/nikto.shtml; reference:url,doc.emergingthreats.net/2002677; classtype:web-application- attack; sid:2002677; rev:13;)
  • 66. IDS Kural Test Örneği - 5 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET WEB_SERVER Possible Attempt to Get SQL Server Version in URI using SELECT VERSION"; flow:established,to_server; content:"SELECT"; nocase; http_uri; content:"VERSION"; nocase; distance:1; http_uri; reference:url,support.microsoft.com/kb/321185; reference:url,doc.emergingthreats.net/2011037; classtype:web-application-attack; sid:2011037; rev:4; – Varsayılan olarak kural açık gelmektedir. – SQL Injection (UNION SELECT VERSION) kullanımı ile saldırı denemesi ve alarm oluşması
  • 67. IDS Kural Test Örneği - 5 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET WEB_SERVER Possible Attempt to Get SQL Server Version in URI using SELECT VERSION"; flow:established,to_server; content:"SELECT"; nocase; http_uri; content:"VERSION"; nocase; distance:1; http_uri; reference:url,support.microsoft.com/kb/321185; reference:url,doc.emergingthreats.net/2011037; classtype:web-application- attack; sid:2011037; rev:4;
  • 68. IDS Kural Test Örneği - 6 ● Kural: alert tcp any any -> any any (msg:"Possible TCP DoS"; flags:S; flow:stateless; threshold: type both, track by_dst, count 70, seconds 10; sid:10001;rev:1;) – local.rules dosyasına belirtilen kuralı yazıyoruz. – Kural belirli eşik değerlerini aştığında olası DoS saldırı örneğini göstermektedir.
  • 69. IDS Kural Test Örneği - 6 ● Kural: alert tcp any any -> any any (msg:"Possible TCP DoS"; flags:S; flow:stateless; threshold: type both, track by_dst, count 70, seconds 10; sid:10001;rev:1;)
  • 70. IDS Kural Test Örneği - 7 ● Kural: alert tcp any any -> any any (msg:"facebook is blocked"; content:"facebook.com"; http_host; nocase; classtype:policy-violation; sid:2;) – local.rules dosyasına belirtilen kuralı yazıyoruz. – Güvenlik cihazı üzerinden engellenen siteye gitmeye çalışan ip adreslerini belirleme
  • 71. IDS Kural Test Örneği - 7 ● Kural: alert tcp any any -> any any (msg:"facebook is blocked"; content:"facebook.com"; http_host; nocase; classtype:policy-violation; sid:2;)
  • 72. IDS Kural Test Örneği - 8 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"GPL WEB_SERVER /etc/passwd"; flow:to_server,established; content:"/etc/passwd"; nocase; classtype:attempted-recon; sid:2101122; rev:8;) – Varsayılan olarak kural kapalı gelmektedir. – Web üzerinden /etc/passwd saldırı denemesini tespit edebilme
  • 73. IDS Kural Test Örneği - 8 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"GPL WEB_SERVER /etc/passwd"; flow:to_server,established; content:"/etc/passwd"; nocase; classtype:attempted-recon; sid:2101122; rev:8;)
  • 74. IDS Kural Test Örneği - 9 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"GPL WEB_SERVER /etc/passwd"; flow:to_server,established; content:"2f %65%74%63%2f%70%61%73%73%77%64"; nocase; classtype:attempted-recon; sid:1; rev:8;) – local.rules dosyasına belirtilen kuralı yazıyoruz. – Web üzerinden /etc/passwd saldırı denemesinin hex encoding yöntemi ile yapılması ve tespit edebilme
  • 75. IDS Kural Test Örneği - 9 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS any (msg:"GPL WEB_SERVER /etc/passwd"; flow:to_server,established; content:"2f%65%74%63%2f%70%61%73%73%77%64"; nocase; classtype:attempted-recon; sid:1; rev:8;)
  • 76. IDS Kural Test Örneği - 10 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET WEB_SERVER Script tag in URI Possible Cross Site Scripting Attempt"; flow:to_server,established; uricontent:"</script>"; nocase; reference:url,ha.ckers.org/xss.html; reference:url,doc.emergingthreats.net/2009714; classtype:web-application-attack; sid:2009714; rev:6;) – Varsayılan olarak kural açık gelmektedir. – Web üzerinden XSS (Cross Site Scripting) kullanımı ile saldırı denemesi ve alarm oluşması
  • 77. IDS Kural Test Örneği - 10 ● Kural: alert http $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET WEB_SERVER Script tag in URI Possible Cross Site Scripting Attempt"; flow:to_server,established; uricontent:"</script>"; nocase; reference:url,ha.ckers.org/xss.html; reference:url,doc.emergingthreats.net/2009714; classtype:web-application- attack; sid:2009714; rev:6;)
  • 78. IP Reputation ● IP Reputation ile belirlenen zararlı ip adreslerine doğru olan ağ trafiği yakalanabilir. ● Böylece bilinen zararlı ip adreslerinden komuta kontrol merkezlerinin (C&C Command and Control) tespit edilmesi sağlanabilir. ● suricata.yaml konfigürasyon dosyasında aşağıdaki şekilde görüldüğü üzere “IP Reputation” ayarları yapılandırılmalıdır.
  • 79. IP Reputation ● /etc/suricata/iprep – Ip reputation ile ilgili bilgilerin tutulduğu default dizin ● /etc/suricata/iprep/categories.txt – Kara listeye alınacak ip adreslerinin sınıflandırıldığı dosya – Dosya formatı bir CSV dosyasıdır. – Bu dosya kategori numarası, kısa adı ve açıklama olmak üzere üç bölümden oluşur. – Kategori numarası 1-60 arasında bir numara olmalıdır. – Kısa ad olarak belirlediğimiz isim, saldırı tespit kuralı oluşturulurken kullanılmaktadır.
  • 80. IP Reputation ● reputation-files: - reputation.list ● Alarm oluşması ve izlenmesi istenen ip adreslerinin yazıldığı default dosya ● Bunun dışında oluşturulmak istenen farklı isimlerde dosya listeleri oluşturulabilir. – Örnek: zararli_ip.list gibi ● Dosya formatı bir CVS dosyasıdır ve üç bölümden oluşur – ip adresi – Kategori, kategoriler dosyasında tanımlanan kategori numarası – Üçüncü bölümde de IP adresinin skorunu belirliyoruz. Bu değer 1-127 arasında olmalıdır.
  • 81. IP Reputation ● categories.txt ve reputation.list dosyalarından gerekli bilgiler girildikten sonra, bu dosyalar için kural yazılmalıdır. ● Bu kurallar local.rules dosyasına yazılabilir. ● Önceki slaytlarda gösterildiği gibi örnek amaçlı zararlı adında bir kategori oluşturulmuş ve reputation.list dosyasına da ip yazılır. ● local.rules dosyasına aşağıda belirtilen kural yazılır: – alert ip any any -> any any (msg:"Zararli ip adresleri"; iprep:any,zararli,=,100; sid:3; rev:1;) – Zararlı olarak belirtilen ip adresine erişilmek istendiğinde aşağıdaki şekilde görüldüğü gibi alarm oluşacaktır.
  • 82. IP Reputation ● Zararlı olarak belirtilen ip adresine erişilmek istendiğinde ● Böylece sadece zararlı ip adreslerine değil, ayrıca istenilen ip adreslerine erişim olup olmadığı takip edilebilir. ● Oluşan alarm
  • 83. IP Reputation ● IP reputation ayarları yapıldıktan sonra, kural oluşturup, alarm oluşmasını sağladık. ● Şimdi kural nasıl oluşturuluyor ona bakalım. ● Örnek kuralımız üzerinden kural oluşturma süreçlerini inceleyelim. – alert ip any any -> any any (msg:"Zararli ip adresleri"; iprep:any,zararli,=,100; sid:3; rev:1;) – Kural iprep parametresi üzerinden şekillenmektedir. – iprep parametresi dört bölümden oluşur. - side to check: <any|src|dst|both> - category: the category short name - operator: <, >, = - reputation score: 1-127
  • 84. IP Reputation ● Örnek kuralımız üzerinden kural oluşturma süreçlerini inceleyelim. – alert ip any any -> any any (msg:"Zararli ip adresleri"; iprep:any,zararli,=,100; sid:3; rev:1;) – <any/src/dst/both>: Oluşacak ağ trafiğinde kaynak-hedef belirtilmektedir. Örnekte any dediğimizden kaynak ya da hedef IP kısmında kara listedeki bir IP adresi görülürse alarm üret – Kategori: Burada istenilen kategori dosyasında belirtilen kategori kısa adın yazılmasıdır. Örnekte zararli olarak belirtiğimiz kategori için kural yazmış oluyoruz. – =,<,>: Belirtilen kategori için skor değeri üzerinden karşılaştırma yapılarak, bu değere uygun olan bir ağ trafiği oluştuğunda alarm üret
  • 85. IP Reputation ● Örnek kuralımız üzerinden kural oluşturma süreçlerini inceleyelim. – Oluşturulan Kategori: ● 1,zararli, zararli ip adresleri – Oluşturulan reputation.list: ● 192.168.0.102,1,100 – Oluşturulan Kural: ● alert ip any any -> any any (msg:"Zararli ip adresleri"; iprep:any,zararli,=,100; sid:3; rev:1;)
  • 86. Sonuç ● Saldırı Tespit Sistemi Alırken Nelere Dikkat Edilmeli – Saldırının tanımı yapılmadan alacağınız IDS güvenlik ürününün size katkısı ölçülemez. – Siber güvenlik ürünlerine yapılan yatırım kadar güvenlik ürününü kullanacak personele veya danışman firmaya yatırım yapılmalıdır. ● Aksi takdirde aldığınız ürünler atıl kalabilir ve/veya yatırımların karşılığı alınamayabilir. – Almak istenen ürün size neler sağlayacak? beklenti nedir? ● PoC yapılmalıdır. – Ucuz olsun mantığı! ● Bir ürünün ortalama %30 ucuz olması karşısında üründen beklenen verimin yeterli seviyede alınamayacağı unutulmamalı
  • 87. Kaynak ● Suricata User Guide – Release 4.0dev – https://media.readthedocs.org/pdf/suricata/latest/suricata.pdf ● BGA Security – Snort intrusion prevention system – https://www.slideshare.net/bgasecurity
  • 88. İletişim Bilgileri Kurtuluş Karasu – kurtuluskarasu@gmail.com