BGA eğitmenleri tarafından hazırlanan Beyaz Şapkalı Hacker (CEH) Laboratuvar Kitabıdır. Dokümanı https://www.bgasecurity.com/makale/beyaz-sapkali-hacker-ceh-lab-kitabi/ adresimiz üzerinden indirebilirsiniz.
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriPRISMA CSI
Bu sunum, Prisma tarafından verilen “Uygulamalı Beyaz Şapkalı Hacker Eğitimi v1” de anlatılan bir üniteye aittir.
PRISMA CSI • Cyber Security and Intelligence www.prismacsi.com
Bu doküman, alıntı vererek kullanılabilir ya da paylaşılabilir ancak değiştirilemez ve ticari amaçla kullanılamaz. Detaylı bilgiye https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode.tr bağlantısından erişebilirsiniz.
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİMSparta Bilişim
Siber Güvenlik Eğitimi, kurumunuza özel veya genele açık olarak düzenlenebilen bir Sparta Bilişim hizmetidir.
Yöneticiler, IT (Bilgi Teknolojileri) personeli, güvenlik uzmanları ya da kuruluş çalışanlarının tümü için tercih edilebilecek farklı kapsam, süre ve fayda sunan 22 farklı eğitim başlığımız bulunmaktadır.
Bu dokümanda Sparta Bilişim olarak vermekte olduğumuz siber güvenlik eğitimlerinin genel amacı ve eğitim içerikleri yer almaktadır.
SPARTA BİLİŞİM siber güvenlik konusunda ihtiyaç duyduğunuz profesyonel hizmetleri sunmak amacıyla 2013 yılından beri sizinle. Bugüne kadar 300’ün üzerinde kuruluşa sızma testi yaptık, olay müdahalesi gerçekleştirdik, danışmanlık yaptık. 4 kıtada, toplamda yüzlerce kişiye eğitimler verdik. İşbirliği yaptığımız kuruluşların mevcut bilgi teknolojileri ve bilgi güvenliği ekiplerinin bir uzantısı gibi çalışmaya özen gösterdik. Ve güvenliğinizi koruyabilmek için her zaman sizden biri olduk…
BGA eğitmenleri tarafından hazırlanan Beyaz Şapkalı Hacker (CEH) Laboratuvar Kitabıdır. Dokümanı https://www.bgasecurity.com/makale/beyaz-sapkali-hacker-ceh-lab-kitabi/ adresimiz üzerinden indirebilirsiniz.
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriPRISMA CSI
Bu sunum, Prisma tarafından verilen “Uygulamalı Beyaz Şapkalı Hacker Eğitimi v1” de anlatılan bir üniteye aittir.
PRISMA CSI • Cyber Security and Intelligence www.prismacsi.com
Bu doküman, alıntı vererek kullanılabilir ya da paylaşılabilir ancak değiştirilemez ve ticari amaçla kullanılamaz. Detaylı bilgiye https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode.tr bağlantısından erişebilirsiniz.
Siber Güvenlik Eğitimleri | SPARTA BİLİŞİMSparta Bilişim
Siber Güvenlik Eğitimi, kurumunuza özel veya genele açık olarak düzenlenebilen bir Sparta Bilişim hizmetidir.
Yöneticiler, IT (Bilgi Teknolojileri) personeli, güvenlik uzmanları ya da kuruluş çalışanlarının tümü için tercih edilebilecek farklı kapsam, süre ve fayda sunan 22 farklı eğitim başlığımız bulunmaktadır.
Bu dokümanda Sparta Bilişim olarak vermekte olduğumuz siber güvenlik eğitimlerinin genel amacı ve eğitim içerikleri yer almaktadır.
SPARTA BİLİŞİM siber güvenlik konusunda ihtiyaç duyduğunuz profesyonel hizmetleri sunmak amacıyla 2013 yılından beri sizinle. Bugüne kadar 300’ün üzerinde kuruluşa sızma testi yaptık, olay müdahalesi gerçekleştirdik, danışmanlık yaptık. 4 kıtada, toplamda yüzlerce kişiye eğitimler verdik. İşbirliği yaptığımız kuruluşların mevcut bilgi teknolojileri ve bilgi güvenliği ekiplerinin bir uzantısı gibi çalışmaya özen gösterdik. Ve güvenliğinizi koruyabilmek için her zaman sizden biri olduk…
OSI Referans Modeli ve Katmanları - Alican UzunhanMesut Güneş
OSI (Open System Interconnection) Referans Modeli ilk kez 1978 yılında ortaya çıkmış olup 1984 yılında Uluslararası Standartlar Örgütü (ISO) tarafından yeni düzenlemeyle geliştirilmiştir. Modelin amacı, temel olarak ağ üzerindeki iki bilgisayarın iletişiminin nasıl olacağını belirtir.
12.04.2012 Tarihinde Çorlu Namık Kemal Üniversitesi ev sahipliğinde, Gökmen Güreşçi tarafından düzenlenen İnternet Haftası etkinliklerinde LabSec Community olarak yerimizi aldık.
Similar to Suricata ile siber tehdit avcılığı (20)
Pardus Kurulumu
PARDUS, Debian GNU/Linux [1] temelli açık kaynak kodlu bir işletim sistemidir. İnternet üzerinden ücretsiz olarak indirilebilmekte ve kolay kurulabilmektedir. Kişisel veya kurumsal kullanımlar için Pardus’un rekabet edebilir ve sürdürülebilir bir işletim sistemi haline getirilmesi için TÜBİTAK ULAKBİM bünyesinde geliştirme ve idame çalışmaları devam ettirilmektedir.
OSSEC (HIDS)
Veri merkezlerinde tüm sistemlerin loglarının izlenmesi ve olası anormallikleri tespit edip, müdahale edilebilmesi için proaktif bir sistem yönetiminin kurulması gerekmektedir. Böyle bir proaktif sistem kurulumu olarak NIDS (network-based intrusion detection ) ve HIDS (host-based intrusion detection) olmak üzere iki farklı yöntem bulunmaktadır. Bu makalede OSSEC (HIDS) yöntemi kullanarak log izleme (monitorig), dosya bütünlük kontrolü, rootkit tespiti özelliklerine değineceğiz.
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.
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.
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;)
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