走近OSSIM传感器(Sensor)插件
走近OSSIM傳感器(Sensor)插件
?
在上一篇博文介紹完OSSIM架構(gòu)何組成,接著要介紹它“神秘”的插件,閱讀插件前提示您熟練掌握正則表達(dá)式。
Sensor啟用插件列表,管理它們非常簡單:
下面看看插件全局配置文件
[plugins]
apache=/etc/ossim/agent/plugins/apache.cfg
nmap-monitor=/etc/ossim/agent/plugins/nmap-monitor.cfg
ossec-single-line=/etc/ossim/agent/plugins/ossec-single-line.cfg
ossim-monitor=/etc/ossim/agent/plugins/ossim-monitor.cfg
pam_unix=/etc/ossim/agent/plugins/pam_unix.cfg
ping-monitor=/etc/ossim/agent/plugins/ping-monitor.cfg
prads_eth0=/etc/ossim/agent/plugins/prads_eth0.cfg
ssh=/etc/ossim/agent/plugins/ssh.cfg
sudo=/etc/ossim/agent/plugins/sudo.cfg
suricata=/etc/ossim/agent/plugins/suricata.cfg
whois-monitor=/etc/ossim/agent/plugins/whois-monitor.cfg
wmi-monitor=/etc/ossim/agent/plugins/wmi-monitor.cfg
Sensor插件將預(yù)處理數(shù)據(jù)發(fā)往Server,定義如下
[output-server]
enable=True
ip=192.168.91.228
port=40001
send_events=True
?
1. Apache日志處理插件
下面已Apache插件為例,看看插件中的正則表達(dá)式:
[0001 - apache-access]?訪問日志
event_type=event
regexp=((?P\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(:(?P\d{1,5}))? )?(?P\S+) (?P\S+) (?P\S+) \[(?P\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2})\s+[+-]\d{4}\] \"(?P[^\"]*)\" (?P\d{3}) ((?P\d+)|-)( \"(?P[^\"]*)\" \"(?P[^\"]*)\")?$
src_ip={resolv($src)}
dst_ip={resolv($dst)}
dst_port={$port}
date={normalize_date($date)}
plugin_sid={$code}
username={$user}
userdata1={$request}
userdata2={$size}
userdata3={$referer_uri}
userdata4={$useragent}
filename={$id}
[0002 - apache-error]?錯誤日志
event_type=event
regexp=\[(?P\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4})\] \[(?P(emerg|alert|crit|error|warn|notice|info|debug))\] (\[client (?P\S+)\] )?(?P.*)
date={normalize_date($date)}
plugin_sid={translate($type)}
src_ip={resolv($src)}
userdata1={$data}
如果您對Apache日志基本格式不太了解請參看《Unix/Linux網(wǎng)絡(luò)日志分析與流量監(jiān)控》一書。
?
如果您是通過syslog轉(zhuǎn)發(fā)apache日志,那么正則該這樣寫:
[0001 - apache-syslog-access]
event_type=event
regexp=^\w{3}\s+\d{1,2} \d\d:\d\d:\d\d (?P\S+) \S+: ((?P\S+)(:(?P\d{1,5}))? )?(?P\S+) (?P\S+) (?P\S+) \[(?P\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2})\s+[+-]\d{4}\] \"(?P.*)\" (?P\d{3}) ((?P\d+)|-)( \"(?P.*)\" \"(?P.*)\")?$
src_ip={resolv($src)}
dst_ip={resolv($dst)}
dst_port={$port}
device={resolv($device)}
date={normalize_date($date)}
plugin_sid={$code}
username={$user}
userdata1={$request}
userdata2={$size}
userdata3={$referer_uri}
userdata4={$useragent}
filename={$id}
?
[0002 - apache-syslog-error]
event_type=event
regexp=^(?P\w{3}\s+\d{1,2} \d\d:\d\d:\d\d) (?P\S+) \S+: \[(?P(emerg|alert|crit|error|warn|notice|info|debug))\] (\[client (?P\S+)\] )?(?P.*)
date={normalize_date($date)}
dst_ip={resolv($device)}
device={resolv($device)}
date={normalize_date($date)}
plugin_sid={translate($type)}
src_ip={resolv($src)}
userdata1={$data}
下面看看Apache插件有啥能耐?
這就是對Apache日志的歸一化處理的效果,每類插件對應(yīng)了一個插件ID,大家在使用SIEM事件分析時要牢記該ID號(看多了就懂了)。
?
2. SSH日志處理插件
?
Apache日志比較簡單,下面介紹的SSH日志就復(fù)雜多啦
由上面第一條正則處理的歸一化事件如下圖所示。
接著我們看看第二條正則在處理“無效用戶”是如何生成歸一化事件的
接著看一條SSH日志插件正則表達(dá)式
經(jīng)過處理后生成對應(yīng)的歸一化事件,如下圖所示。
?
當(dāng)使用SSH或SFTP連接某個host時,會有一系列的檢查以保證你能夠連接到你想連接的機(jī)器。其中一項是 “reverse lookup on the IP address”檢查機(jī)器名稱和你要連接的機(jī)器名稱一致。否則,你會得到這樣一個錯誤信息:”reverse mapping checking getaddrinfo for … POSSIBLE BREAK-IN ATTEMPT!”.這是告訴我們,盡管我們在連接example.com ,但是實際上該server的IP 地址對應(yīng)到a.b.c.d.adsl-pool.jx.chinaunicom.com 。但這個發(fā)生的時候,就是因為server 上的reverse DNS 沒有設(shè)置好。
?
下回有時間再講講Cisco-ASA插件。
?
?看完這些事例,有人感覺到一個問題,歸一化之后的事件內(nèi)容,比原始日志富含的信息多了,為什么?若大家想詳細(xì)了解這種基于插件的日志采集處理方式,請參考《開源安全運維平臺-OSSIM最佳實踐》一書。
?
總結(jié)
以上是生活随笔為你收集整理的走近OSSIM传感器(Sensor)插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。