走近OSSIM傳感器(Sensor)插件

走近OSSIM傳感器(Sensor)插件 正則表達式

 

在上一篇博文介紹完OSSIM架構何組成,接着要介紹它「神祕」的插件,閱讀插件前提示您熟練掌握正則表達式。 apache

Sensor啓用插件列表,管理它們很是簡單: api

wKioL1apg_miWfx8ABGxOLOslUo219.gif

下面看看插件全局配置文件 安全

[plugins] 網絡

apache=/etc/ossim/agent/plugins/apache.cfg 架構

nmap-monitor=/etc/ossim/agent/plugins/nmap-monitor.cfg app

ossec-single-line=/etc/ossim/agent/plugins/ossec-single-line.cfg 運維

ossim-monitor=/etc/ossim/agent/plugins/ossim-monitor.cfg ssh

pam_unix=/etc/ossim/agent/plugins/pam_unix.cfg spa

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插件將預處理數據發往Server,定義以下

[output-server]

enable=True

ip=192.168.91.228

port=40001

send_events=True

 

1. Apache日誌處理插件

下面已Apache插件爲例,看看插件中的正則表達式:

[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網絡日誌分析與流量監控》一書。

 

若是您是經過syslog轉發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插件有啥能耐?

wKiom1api2TiIFseAB4TZ6Cc2Dk429.gif

這就是對Apache日誌的歸一化處理的效果,每類插件對應了一個插件ID,你們在使用SIEM事件分析時要牢記該ID號(看多了就懂了)。

 

2. SSH日誌處理插件

 

Apache日誌比較簡單,下面介紹的SSH日誌就複雜多啦

wKiom1apkRSQ0UjnAAKnSLmEhwM233.jpg

由上面第一條正則處理的歸一化事件以下圖所示。

wKioL1apkkfQ9HTLAAS8k3yTeIE320.jpg

接着咱們看看第二條正則在處理「無效用戶」是如何生成歸一化事件的

wKioL1aplE-hrVOAAARvu7RnnXY513.jpg

接着看一條SSH日誌插件正則表達式

wKioL1aplmKj3eI8AAEQkbrXFBU451.jpg

通過處理後生成對應的歸一化事件,以下圖所示。

wKioL1apls2hweGnAAPY9ce23Cg635.jpg

 

wKioL1apmA_R0jarAAFbe0Oz0jk044.jpg

wKiom1apmSng_t0DAAS84cgmOFY979.jpg

當使用SSH或SFTP鏈接某個host時,會有一系列的檢查以保證你可以鏈接到你想鏈接的機器。其中一項是 「reverse lookup on the IP address」檢查機器名稱和你要鏈接的機器名稱一致。不然,你會獲得這樣一個錯誤信息:」reverse mapping checking getaddrinfo for … POSSIBLE BREAK-IN ATTEMPT!」.這是告訴咱們,儘管咱們在鏈接example.com ,可是實際上該server的IP 地址對應到a.b.c.d.adsl-pool.jx.chinaunicom.com 。但這個發生的時候,就是由於server 上的reverse DNS 沒有設置好。

 

下回有時間再講講Cisco-ASA插件。

 wKioL1apoLXCY7cDAASqIBJvz6Y296.png

 看完這些事例,有人感受到一個問題,歸一化以後的事件內容,比原始日誌富含的信息多了,爲何?若你們想詳細瞭解這種基於插件的日誌採集處理方式,請參考《開源安全運維平臺-OSSIM最佳實踐》一書。

相關文章
相關標籤/搜索