spacer.png, 0 kB
Bilgi için: bilgi at bilgiguvenligi gov tr   

 

spacer.png, 0 kB
spacer.png, 0 kB
Merkezi Tehdit Tespit ve İzleme Sistemleri - 2 Yazdır E-posta
Hasan Hüseyin Özbenli, Hüseyin Can, TÜBİTAK BİLGEM   
17.09.2014

Kurumsal ağlarda son kullanıcılara yönelik tehditlerin etkin bir şekilde izlenmesi ve dolayısıyla tespiti için kullanılan izleme yöntemlerine bir önceki yazıda değinilmişti. Bu bölümde, kullanıcılara yönelik saldırıların izlenmesi için kullanılan aracı-tabanlı (agent-based monitoring), açık kaynak kodlu saldırı tespit sistemi olan OSSEC (Open Source Host-based Intrusion Detection System) aracının bazı yetenekleri üzerinde durulacaktır. Böylece OSSEC'in işleyiş mekanizması üzerinden aracı-tabanlı izleme yöntemlerine genel bir bakış kazandırmak amaçlanmaktadır.

OSSEC HIDS (Host-Based Intrusion Detection System)

OSSEC, farklı işletim sistemlerinde (Linux, MacOS, Solaris, HP-UX, AIX and Windows) çalışmaya elverişli, bilgisayarlara kurulan aracılar yardımıyla uygulamaların uzaktan, merkezi olarak izlenmesini sağlayan yönetim aracıdır. Kurumsal ağlarda izleme ve tehdit algılaması için SIEM (Security Information and Event Management) ve STRM (Security Threat Response Management) çözümleri sıklıkla kullanılmaktadır. Bu çözümlerle beraber OSSEC'de log analizi (log analysis), bütünlük kontrolü (integrity checking), politika izleme (policy monitoring), rootkit tespiti (rootkit detection), gerçek-zamanlı alarm üretme (real-time alerting) ve aktif cevap verme (active response) gibi yetenekler sunmaktadır. Bununla beraber korunan kaynakların PCI-DSS gibi standartlara uygunluk durumu hakkında geri bildirim de verebilmektedir. OSSIM, Splunk gibi SIEM araçlarıyla entegre olabilmesi sayesinde elde edilen sonuçlar görüntülenebilmektedir. Bu yetenekleri uzaktan izlemek için uç bilgisayarlarda kullanılan OSSEC aracıları farklı sistemlere kurulabilir. OSSEC'in kurulumu ve yapılandırılması için Bilgi Güvenliği Kapısında daha önce yazılan makalelere başvurulabilir [OSSEC - Açık Kaynak Kodlu Saldırı Tespit Sistemi ve Kurulumu OSSEC - Açık Kaynak Kodlu Saldırı Tespit Sistemi'nin Yapılandırılması].

Şekildeki işleyiş OSSEC merkezi sunucusu ve aracılarının gerçekleştirdikleri fonksiyonları genel olarak görmek açısından önemlidir. 

 

2-1.png

  Şekil 1. OSSEC merkezi sunucusu ve aracılarının gerçekleştirdikleri fonksiyonların işleyişi

OSSEC aracıları farklı platformlardaki kullanıcı bilgisayarları, Web sunucuları, mail sunucuları, WMware sunucuları veya WAF'lar üzerinde çalışabilmektedir. Ancak farklı formatlarda log üreten bu sunucuların OSSEC için alarm üretmesi için her log formatı ayrı kural (rule) ve çözümleyiciye (decoder) ihtiyaç vardır. Buna göre elde edilen alarmlar ise daha sonra kritiklik seviyesine göre sınıflandırılmaktadır. 

OSSEC HIDS aracının gelişmiş özelliklerine sahip olmasını sağlayan decoder ve rule'lardır. Bu ikisi yapılandırılarak elde edilen loglardan özgün alarm üretilebilmektedir.

Bütün OSSEC kuralları, OSSEC'in kurulu olduğu dizin altında rules/ dizininde saklanmaktadır. Genellikle, ön tanımlı olarak yüklendiği yer olan /var/ossec/rules altındadır. Bu dizin altında her bir kural için ayrı bir XML dosyası bulunur. Örnek olarak Symantec antivirüs kuralları symantec-av_rules.xml şeklinde, SSH protokolü kuralları ise sshd_rules.xml dosyasında tanımlanır. Bunlar gibi OSSEC HIDS ön tanımlı olarak 43 adet kural dosyası barındırmaktadır. Her bir kural dosyasında ilgili uygulama veya cihaz için tanımlanmış çok sayıda kural tanımı vardır. Bu kural setinden bazı örnekler aşağıdaki tabloda verilmiştir: 

Kural Adı  Tanım 
 zeus_rules.xml  Zeus web server rules
 attack_rules.xml  Common attack rules
 firewall_rules.xml  Common firewall rules
 ms_ftpd_rules.xml  Microsoft FTP server rules
 pix_rules.xml  Cisco PIX firewall rules
 ids_rules.xml  Common IDS rules

 Tablo 1. OSSEC kural setinden bazı örnekler

Kurallarla beraber ortak çalışan decoder'lar ise, decoders.xml dosyasında aynı şekilde ön tanımlı olarak /var/ossec/etc/decoders.xml dosya yolunda saklanmaktadır. Decoder'lar ham olay kayıtlarından veri ayıklamak amacıyla tasarlanmıştır. Böylece farklı kaynaklardan alınan olaylar ilişkilendirilmektedir.

OSSEC'de her kurala bir ID verilmiştir. Aynı kategorideki kurallar, belirli bir aralıkta yer alacak şekilde belirlenmiştir. Örneğin,

 Kural ID Aralığı Genel Kategori 
 00000–00999  Reserved for internal OSSEC HIDS rules
 01000–01999  General syslog rules
 02100–02299  Network File System (NFS) rules
 ...  ...
 100000–119999  User-defined rules

Tablo 2. OSSEC aracında ön tanımlı kural ID aralıkları 

Kullanıcı tarafından yazılacak "custom" kurallar 'local rules'  olarak tanımlanır ve /var/ossec/rules/local_rules.xml dizini altındadır. "local rules"  için 100,000-119,999 kural ID aralığı belirlenmiştir. Kullanıcı tarafından belirlenen kurallar dışında OSSEC'in kendi kurallarında değişiklik yapılmamalıdır. Aracın versiyon güncellemesi esnasında OSSEC tarafından belirlenen bütün kurallarda değişiklik yapılabilir ancak kullanıcı tarafından oluşturulan local_rules.xml dosyasında değişiklik yapılmaz. 

OSSEC HIDS Analiz İşlemi

Şekil 2.'de gösterilen akış diyagramı OSSEC'in olayı ele alışını ve işleyiş sürecini göstermektedir. İlk olarak, bir olay gerçekleştiğinde OSSEC decoding işlemini gerçekleştirerek olayın içinden değerli olan bilgiyi çıkartır. Bu işlem pre-decoding ve decoding olarak iki aşamada olur. Pre-decoding işleminde olaydan daha basit ve statik bilgiler çıkartılır. Bunlar tarih, saat, bilgisayar adı, log mesajı gibi bilgilerdir. Decoding işlemindeki amaç ise daha ayrıntılı, statik olmayan bilgiler çıkartarak, daha sonraki aşamada kurallarla bu bilgileri eşleştirerek alarm üretmektir. Bunlara ise IP adresi, kullanıcı adı vb. bilgiler örnek verilebilir.

2-2.png

  Şekil 2. OSSEC’in olay kayıtlarını ele alış ve geri besleme diyagramı

 

Çözümleyiciyi (Decoder) Anlamak

 
Aşağıdaki bir sshd mesajından, pre-decoding ve decoding işleminde çıkartılan verilere örnek verilmiştir.
 
Apr 14 17:32:06 linux_server sshd[1025]: Accepted password for dcid from 192.168.2.180 port 1618 ssh2
 
Mesajın pre-decoding ve decoding işlemlerinden geçirildikten sonra mesajdan çıkarılan anlamlı bilgiler Tablo 3 ve Tablo 4’de gösterilmiştir.
 
Alan  Tanım 
 srcip 192.168.2.180 
 user  dcid

  Tablo 3. Pre-decoding işleminden çıkarılan veriler

 
Alan   Tanım
 hostname  linux_server
 program_name  sshd
 log  Accepted password for dcid from   192.168.2.180 port 1618 ssh2
 time/date  Apr 14 17:32:06

Tablo 4. Decoding işlemi sonucu çıkarılan veriler

 

Decoder Yazmak

Örneğin, mesaj içerisinden Tablo 3’deki srcip ve user bilgilerinin çıkarılması için yazılan decoder aşağıdaki gibidir:

 

<decoder name=“sshd-test”>
 <program_name>sshd</program_name>
 <regex>^Accepted \S+ for (\S+) from (\S+) port </regex>
 <order>user, srcip</order>
</decoder>

Decoder, her zaman decoder-name ile başlar ve </decoder> etiketi ile sonlanır. Decoder içerisinde anlamlı bilgi <regex></regex> etiketi arasında yazılan regex kodu ile çıkartılır.  

Kuralları Anlamak

OSSEC HIDS, belirlenen kurallara göre logları değerlendirerek alarm üretir. Atomik ve birleşik (composite) olmak üzere iki kural çeşidi vardır. Atomik kurallar, herhangi bir korelasyon olmadan sadece bir olaya dayanır. Birleşik kural ise, farklı olayların bir araya gelmesiyle oluşan kurallardır. Aynı IP adresinden 10 kez yanlış parola girilmesi sonrasında kaba-kuvvet saldırısı olduğuna dair alarm üretilmesi buna örnek verilebilir.

Kural Yazmak 

Her bir kural ya da kural grubu <group></group> arasına yazılarak ifade edilir. Grup ismi <group name>, grubun içerdiği kuralları içerir ve bunlar virgülle ayrılmalıdır.  Kurallar <rule></rule> etiketleri arasında tanımlanır ve her kural id ve level olmak üzere en az iki vasfa sahip olmalıdır. id, o imzaya özgü bir tanımlayıcıdır; level ise kurala göre üretilecek alarmın şiddetini belirtir. Alttaki örnekte kural grubu, syslog ve sshd kurallarını içermektedir ve her bir kuralın ayrı id ve level değerleri vardır.

 

<group name=“syslog,sshd,”>
<rule id=“100120” level=“5”>
</rule>
<rule id=“100121” level=“6”>
</rule>
</group>

Her bir grup altında alt gruplar bulunabilir. Kurallar ise <description></description> etiketiyle ifade edilmektedir.

 

<group name=“syslog,sshd,”>
 <rule id=“100120” level=“5”>
<group>authentication_success</group>
<description>SSHD testing authentication success</description>
 </rule>
 <rule id=“100121” level=“6”>
<description>SSHD rule testing 2</description>
 </rule>
</group>
 
Bunlara ek olarak <match></match> etiketiyle log içinde arama yapıp, anahtar sözcüklere göre alarm üretilmektedir. 
 
 <rule id=“100124” level=“5”>
<decoded_as>sshd</decoded_as>
<match>^Failed password</match>
 <description>Failed SSHD password attempt</description>
</rule>
 
Bir sonraki bölümde ise yapılan konfigürasyon değişiklikleri ile OSSEC'in yetenekleri kullanılarak geliştirilen bazı ilave özellikler sunulacaktır.

Kaynaklar 

[1] http://ossec-docs.readthedocs.org/en/latest/ 

[2] http://www.ossec.net/ossec-docs/OSSEC-book-ch4.pdf    


Favori olarak ekle (0) | Görüntüleme sayısı: 3724

Bu yazıya ilk yorumu yazın

Sadece kayıtlı kullanıcılar yorum yazabilir.
Lütfen sisteme giriş yapın veya kayıt olun.

 
spacer.png, 0 kB
spacer.png, 0 kB
Copyright 2017 TÜBİTAK-BİLGEM. Sitenin teknik altyapısında Joomla kullanılmıştır. Yazar ve site referans gösterilmeden alıntı yapılamaz. Görüşleriniz
spacer.png, 0 kB