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. Veri merkezlerinde tüm sistemlerin loglarınınizlenmesi ve olasıanormallikleri tespitedip, müdahale
edilebilmesi içinproaktif birsistemyönetimininkurulmasıgerekmektedir. Böylebirproaktif sistem
kurulumuolarak NIDS(network-basedintrusiondetection ) ve HIDS (host-basedintrusiondetection)
olmaküzere iki farklıyöntembulunmaktadır.Bumakalede OSSEC(HIDS) yöntemi kullanaraklog
izleme (monitorig),dosyabütünlükkontrolü,rootkittespiti özelliklerine değineceğiz.
OSSEC Nedir?
OSSEC,TrendMicro tarafındandesteklenen,tamamenaçıkkaynakkodlu,standaloneçalışabildiği
gibi,agent/masteryapısıile merkezi yönetimde sağlayabilenbirhost-basedsaldırıtespitsistemidir.
Temel olarakloganalizi (loganalysis),dosyabütünlükkontrolü (integritychecking),rootkittespiti
(rootkitdetection),gerçekzamanlıalarmüretme (real-timealerting) ve tespitedilensaldırılara
karşılık aktif cevapverme (active response)özelliği ileanlıkaksiyonlaralmagibi özellikleri
bulunmaktadır.
OSSEC, bir çok platformda(Linux,Unix,Windows,Vmware ..) çalışabilmektedir. Agentless özelliği ile
de router,switchgibi ağ cihazlarınınlogizlenmesisağlanabilmektedir.
OSSEC Özellikleri
Log İzleme(Monitoring):Sistemloglarınıizleyipanalizederve herhangi birproblemtespit
edilirse alarmüretebilir.Örnek; websunucusunaaitloglarabirsızma girişimini işareteden
loglardüşmeye başladığızamanalarmüretilebilir.
Dosya BütünlükKontrolü(File IntegrityChecking): Sistemdeki dosyalarınbelirli periyotlarda
kontrol edilmesini sağlar.Böylce kontrol edilmekistenendosyalarınhash’ini alırve üzerinde
değişiklikyapılan dosyalarıntespitedilip,alarmüretilmesi için herkontrolde birönceki
durumlakarşılaştırarakdosyanındeğiştirilipdeğiştirilmediği tespitedilir.Örnek;sisteme
sızmaya çalışanbirisinintemel özelliklerindenbirisisteme üzerindekibelirli dosyaları
3. değiştirmekyadayeni dosyalareklemektir.Budurumdadosyabütünlükkontrolüile sistem
üzerinde yapılanlartespitedilebilir.
Rootkit Tespiti:Sistemlerüzerindeperiyodikolarakrootkittaramasıyapılabilirve böylece
tarama esnasındaherhangi birrootkit,trojanveyavirüstespitedilirse anındaalarm
üretilebilir. Örnek;Rootkitpskomutununişlevinideğiştirerekkullanıcılarınbazıprocessleri
görmesini engeller.
Active Response:Sistemlerüzerindeherhangibiranormalliktespitedildiğinde anında
aksiyonalınabilir.Örnek;websunucuüzerinde taramayapanbirisininipadresi loglar
üzerindentespitedildiğindeanındabuipnin bloklanmasısağlanabilir.
OSSEC Mimarisi
Server:OSSEC ServeryadaManager olarakadlandırılanbileşenveri merkezinekurulanOSSECHIDS
sistemininmerkezi yönetimyeridir.
Agent: HIDStemelli izlenmesiniistediğimizherbirsistemekurulanbileşendir.Amaçsistemloglarını
toplamakve analizedilmesi içinOSSECserver’a göndermektir.Agentkurulumuiçindüşükyetkili
kullanıcıyeterlidirve agentile ilgilikonfigürasyonunçoğuOSSECservertarafındantutulmaktadır.
Agentless:HIDStemelli izlenmesini istediğimizve agentkuramadığımızsistemleri izlemekiçin
kullanılanbileşendir. Örnek;Güvenlikduvarı,ağanahtarı, yönlendirici gibi ağcihazlarınaagent
kurulamadığıiçinbu özellikkullanılmaktadır.
Syslog: Syslogözelliği olancihazlardansyslogile loglar ossecserver’agönderilerekloglar analiz
edilebilir. Aktif ağcihazlarınınloglarınıalıp,analizetmekiçinideal biryöntemdir.
Yukardaki şekilde temelolarakgörüldüğüüzereloglarıalınmakistenensunuculara agentkurulumu
yapılıp,loglarOSSEC Server’agönderilirve ossecserverüzerinde analizyapılarak,alarmüretilebilirve
4. bu alarmlogları arşivlenebilir.Agentile birlikteaktif ağcihazlarınınloglarınınanalizi içinsyslog da
kullanılır.
OSSEC HIDS Log Analizi
Ossecserver’aanalizişlemi içinbirloggeldiğinde öncelikliolarakdecodingişlemi gerçekleştirilerek
logiçerisindeki ilgili bilgilerçıkartılır.Bu decodingişlemiiki aşamadanmeydanagelmektedir.Birinci
aşama pre-decodingişlemidirve pre-decodingesnasındatarih-saat,hostname,programismi ve log
bilgileri ayrıştırılır.İkinci aşamadadecodingişleminde isesabitolmayanve kurallarlailişkilendirilmek
istenenbilgilerayrıştırılır.Örneğin;ipadresi,portnumarası,kullanıcıadı vb. Log üzerinde ilgili bilgiler
ayrıştırıldıktan sonraosseckonfigürasyondosyasındatanımlanankurallarlaeşleştirmeyapılarak
alarm üretilmesi sağlanır.
OSSEC Sunucu Kurulumu
Ossecserverkurulumunu CentOSLinux release 7.2.1511 (Core) işletimsistemine kuruyorolacağız.
CentOSişletimsistemini minimal kurduğumuziçin,ossecile ilgili gereklipaketleriyüklüyoruz.
[root@ossec~]# yum update
[root@ossec~]# yum groupinstall "Development tools"
Not: Zaman ve tariheş zamanlamasıiçinntpsunucuayarını yapmayıunutmuyoruz.
OSSEC (HIDS) Manager/Agentkurulumunageçişyapmakiçin,OSSEC(HIDS) paketini aşağıdabelirtilen
linktenindiriyoruz.
http://ossec.github.io/downloads.html
5. şu an sonsürüm olarakossec2.8.3 paketini indiriyoruzve kontrol etmekiçinchecksumdosyasınında
indiriyoruz.İndirme işlemindensonraaşağıdaki şekilde görüldüğüüzere hashkontrolü
gerçekleştiriyoruz.
Daha sonra aşağıda belirtildiği gibi “tar”komutunukullanarakçıkartıyoruz.
[root@ossec ~]# tar -zxvf ossec-hids-2.8.3.tar.gz
Çıkartılan dizine geçipkurulumuaşağıdaki şekilde görülüğüüzere başlatıyoruz.
[root@ossec ossec-hids-2.8.3]# ./install.sh
Yukarıdaki şekilde görüldüğüüzere kurulumuhangi dildeyapacağımızsoruyor. Kurulumaİngilizce
olarakdevamediyorum.
7. Yukardaki şekilde görüldüğüüzereöncelikli olarakne türbirkurulumyapmakistediğimizi soruyor.
Ossecserverkurulumu yapacağımıziçinburada“server”yazıp entertıklıyoruz.
İkinci olarakossecserverkurulumununhangi dizine kurulacağınısoruyor. Varsayılandizine kurulsun
diyipilerliyoruz.
Üçüncü olarak uyarıları e-mail olarakalıpalmayacağımızısoruyor şimdilik “n”seçerekdevam
ediyorum. İleride konfigürasyondosyasıüzerinde değişiklikyaparakaktif hale getireceğiz.
Dördüncüolarak dosyabütünlükkontrolünüsoruyor.Aktif etmekistediğimiçin “y”diyerekdevam
ediyorum.
Beşinci olarak Rootkittespiti kontorlünüsoruyor.Aktif etmek istediğimiçin“y”diyerekdevam
ediyorum.
Altıncı olarak Active response kontrolünüsoruyor.Aktif etmek istediğimiçin“y”diyerekdevam
ediyorum.
Yukardaki şekilde görüldüğüüzereRemote olaraksyslogüzerindenlogalmakiçin remote syslog’u
aktif ediyoruz.
Logların analizedileceğidizinlerbelirtilip,entertıkladığımızdapaketkurulumubaşlayacaktır.
8.
9. Yukardaki şekilde görüldüğüüzerekurulumtamamlanmışolup,OSSECservisininçalıştırılması-
durdurulması,konfigürasyondosyasınınyeri ve agentyönergelerininbulunduğubilgi ekranıile
karşılaşacaksınız.
Bu aşamada ossecserverkurulumutamamlanmışolduğunagöre,ossecservisini başlattığımızdaossec
kendi local hostunuizlemeye başlayacaktır.
[root@ossec~]# /etc/init.d/ossecstart
Ossecserverüzerinde çalışanservisleri görüntülemekiçinaşağıdaki komutukullanabilirsiniz.
[root@ossec~]# ps -auwx |grep "ossec" |grep -v "grep"
OSSEC KonfigürasyonDosyası
Osseckonfigürasyondosyası“/var/ossec/etc/ossec.conf”dur.
[root@ossec~]# vi /var/ossec/etc/ossec.conf
Aşağıda şekildegörüldüğügibimail konfigürasyonunuyapabilirsiniz. Mail konfigürasyonundae-
postalarıngönderilmesini istediğinizpostaadresini ve e-postasunucusununipadresini giriyoruz.
Burada e-postasunucusuolarakrelayizni olankendi e-postasunucunuzu kullanabilirsiniz.
10. Konfigürasyondosyasındaherhangi bir değişiklikyapıldığındaossecservisi yenidenbaşlatılmalıdır.
Osseckonfigürasyondosyasındaki temel bölümler
<global>
Bu bölümde e-postaayarlarıve whitelistiptanımlarıyapılmaktadır.
</global>
<rules>
Bu bölümde logizlenmesi esnasındahangi kurallarınaktif olduğuyazılmaktadır.Varayılanolarak
belirli kurallaraktif olarakgelmektedir.Buradayazılankurallar“/var/ossec/rules”dizinialtında
bulunmaktadır.
</rules>
<syscheck>
Bu bölümde dosyabütünlükkontrolüyapılmaktadır.Varsayılanolarak belirlidosyalardaki değişiklikler
belirli sıklıklardakontrol edilirken,belirli dosyalarındakontrol edilmediği belirtilmiştir.
</syscheck>
<rootcheck>
Bu bölümde rootkitkontrolüyapılırkenkullanılanilgili veritabanlarıbelirtilmiştir.
</rootcheck>
<remote>
11. Bu bölümiki türlübulunmaktadır.Bağlantıayarı secure olanagentların kullandığıUDP 1514
portundançalışanbağlantıdır. Bağlantıayarı syslogolansyslogüzerindenlogtoplayıp,analizetmek
içinUDP 514 portundançalışanbağlantıdır. Syslogüzerindelogalınacakağ bilgisinin <allowed-
ips>192.168.46.0/24</allowed-ips> belirtildiğigibi konfigürasyonaeklenmesi gerekmektedir.
</remote>
<alerts>
Bu bölümde analizedilenloglarüzerinden hangi seviyedealarmüretileceği belirleniyor.Ayrıcahangi
seviyedekialarmlarıne-postaolarakgönderilmesi bekleniyor.
</alerts>
<active-response>
Bu bölümde active response özelliğininkullanılacağıkomutlar ve bloklamaişlemininnasıl yapılscağı
tanımlanmaktadır.
</active-response>
<command>
Bu bölümde active response özelliğindekullanılacakkomutlartanımlanmaktadır.
</command>
<localfile>
Bu bölümde izlenmesi istenenlogdosyalarınınyerleri ve formatlarıtanımlanmaktadır.Agentlardada
izleneceklogdosylarınıntanımlamasıbuşekildegirilmektedir.
</localfile>
Daha detaylıkonfigürasyonbilgileri için http://ossec-
docs.readthedocs.org/en/latest/syntax/ossec_config.html adresindeninceleyebilirsiniz.
OSSEC GüvenlikDuvarıAyarı
OSSEC serveragentlarlailetişimde UDP1514 portunukullandığıiçinve syslogüzerindenalınanloglar
için de UDP 514 portukullanıldığıiçinsunucuüzerinde buiki portaizinverilmelidir.
-A INPUT-p udp --dport514 -s 192.168.46.0/24 -jACCEPT
-A INPUT-p udp --dport1514 –s 192.168.46.0/24 -jACCEPT
Yukarıda belirtilen örnekte CentOS6sürümleri için 192.168.46.0/24 ağında UDP 1514 ve 514
portlarınaizinverilmektedir. Aşağıdaki şekildegörüldüğüüzere CentOS7sürümüiçin UDP 1514 ve
514 portlarının güvenlikduvarıkonfigürasyonuyapılmıştır.
13. Yukarıdaki şekilde görüldüğüüzere ossecserverdaki kuruluma benzerşekilde dil’iseçipdevam
ediyoruz.
Hangi tür kurulumyapacağımızısoruyor“agent” yazıp devamediyoruz.
Hangi dizine kurulumyapacağımızısoruyor“/var/ossec”varsayılanolarakbırakıp devamediyoruz.
OSSEC Serveripadresini soruyor ossecserveripadresini giripdevamediyoruz.
Dosyabütünlükkontrolüyapıpyapmayacağımızısoruyor“y” diyip devamediyoruz.
Rootkittespitedipetmeyeceğimizi soruyor“y”diyipdevamediyoruz.
Active reponse özelliğini aktif edipetmeyeceğimizisoruyorşimdilik“n”diyipdevamediyoruz.
14. Bu aşamadansonra varsayılanolarakhangi log dosyalarınıizleyeceğini gösteripentertıkladığımızda
kurulumbaşlayacaktır.
Eğer kurulumhatavermedendevamederse,aşağıdaki şekildegörüldüğügibi birçıktı verecektir.
Agentkurulumunutamamladığımızagöre ossecservertarafındaekleme işlemine geçipkey
oluşturabiliriz.
Ossecserverüzerinde agentlarlailgiliyönetimişlerini “manage_agents”uygulamasıile
yapılmaktadır.Aşağıdabelirtildiğişekildeuygulamakomutunuçalıştırıyoruz.
[root@ossec~]# /var/ossec/bin/manage_agents
Aşağıdaki şekildegörüldüğüüzere uygulamaçalıştığındayapılabilecekyönetimişlerininlistesi ekrana
gelmektedir.Şekildegörüldüğüüzere
“A” yeni agentekleyebiliriz.
“E” eklenmişagentakeyalmak
18. Windows
Windows2008R2 üzerine agentkurulumuyapacağız.Kurulumuyapmakiçin aşağıdaki linktenossec
windowsçalıştırılabilirdosyasınıindiriyoruz.
http://ossec.github.io/downloads.html
windows üzerinde agentexedosyasınıçalıştırdığımızdaaşağıdaki şekillerde görüldüğüüzere next,
nextdiyerekagentkurulumunutamamlıyoruz.
19.
20. Agentkurulumusonrasıossecagentmanagerçalışacaktır. Aşağıdaki şekildegörüldüğüüzere ossec
serveripadresini ve bumakineninanahtarınısoruyor.Anahtarelde etme işlemini birönceki bölümde
anlatıldığıgibi elde edip,ossecserveripadresini ve anahtarıgiripkaydediyoruz.
İlgili bilgileri kaydettiktensonra“Manage”sekmesindenStartOSSECtıkladığımızda agentservisi
çalışacaktır. Agentsağ altköşesindenservisinStartedolduğunugörüyorolmalısınız.
21. Windowsagentkurulumlarıdatamamlandığınagöre agentların durumunu kontrol etmekiçinaşağıda
belirtilenkomutlarıçalıştırıyoruz. Aşağıdaki şekilde görüldüğüüzerewindows2008Ragentımızaktif
durumdadır.
[root@ossec~]# /var/ossec/bin/list_agents –a
[root@ossec~]# /var/ossec/bin/agent_control -lc
Aşağıdaki şekildegörüldüğüüzere local ve windows2008R2 makineninaktif olduğunugörüyoruz.
Not: Agenttarafındaki tümkonfigürasyonlaragentosseckonfigürasyondosyasıüzerinden
yapılmaktadır.Agenttarafındaki konfigürasyondosyasınıincelersenizişletimsistemiüzerindeki hangi
logdosyalarınınanalizedilmesi,dosyabütünlükkontrolüyapılandosyalarınhangileri olduğuve
rootkitkontrolüyapılmasıiçinkullanılanilgili veritabanlarınıgörebilirsiniz.
Alert Logları
Ossecserver/clientkurulumçalışmalarıtemel olaraktamamlanmıştır. Local makine dışında,biradet
centosve bir adetwindowsmakine üzerindenloglaralınıp,analizedilmektedir.Buanalizsonucunda
oluşanalarmlarossecserverüzerinde /var/ossec/logsdizini altındakaydedilmektedir. Buradanlogları
inceleyebilirsiniz.