OSSIM下數據包過濾技巧數據庫
本文須要OSSIM WebUI操做基礎以及Wireshark網絡抓包經驗。下面講述的內容需在分佈式OSSIM系統中完成。安全
收集到的大量網絡數據須要對其進行必定的處理,也就是過濾,這種過濾主要分爲如下4種:網絡
l 基於主機(IP)的流量過濾,若是須要監控的信息中包含某個IP,那麼就能夠採用這種基於主機的過濾方式。運維
l 基於端口的流量過濾,若是須要的信息中包含特色端口(源端口和目的端口)那麼就能夠用這種方式。tcp
l 基於協議+端口的流量過濾。分佈式
l 基於主機+端口的流量過濾。ide
你們先了解如下幾操做方法:(注意原來在wireshark下的一些過濾規則在此處不能夠,下面總結了一些有效方法)工具
①tcp dst port 22做用:顯示目的TCP端口爲22的數據包。性能
②ip src host 192.168.150.10做用:顯示來源IP地址爲192.168.150.10的數據包。
③host 192.168.150.10做用:顯示目的或來源IP地址爲192.168.150.10的數據包。
④src port range 3000~5500 顯示來源爲UDP或TCP,而且端口號在3000至5500範圍內的數據包。
⑤not icmp顯示除了ICMP之外的全部數據包(ICMP一般被Ping工具使用)。
⑥src host 10.7.2.12 and not dst net 10.200.0.0/16 。顯示源IP地址爲10.7.2.12,但目的地不是10.200.0.0/16的數據包。
用Wireshark打開一些Pcap數據包後,每條消息的全部field 會被解析出來並會按照協議層次摺疊起來。第一層顯示的是Frame XXX,這一級別沒有對應某層具體的協議,而是對本條消息的一個歸納性總結,描述了一些有用的歸納性信息,好比從裏面咱們能夠看到本條消息各類協議的層次關係,展開其它協議層以後對應的是該協議的各個域,若是須要使用過濾時可使用以上介紹的幾種方法,程序截獲數據包分析如圖1所示。若是點擊Graphs按鈕能夠獲取到更多有關協議和流量的信息。
圖1 分析數據包
· 注意:若是OSSIM系統的Sensor出現問題那麼這一功能將沒法使用,下面看個例子,若是Sensor和Server通信故障將影響到Ntop、Openvas以及抓包功能的使用。
圖2 Sensor失效
這時在操做界面的左邊方框中沒有找到可用Sensor,這時抓包功能沒法使用。
二、 Wireshark過濾匹配表達式實例
2.1 過濾基礎
首先說幾個最經常使用的關鍵字,「eq」和「= =」等同,可使用「and」表示而且,「or」表示或者。「!" 和 "not」則表示取反。對IP地址的過濾其中有幾種狀況:
(1)對源地址爲192.168.11.121的包的過濾,即抓取源地址知足要求的包。
表達式爲:ip.src = = 192.168.11.121
照此方法咱們能夠填寫到過濾的表單中而後點擊「Apply」按鈕便可過濾出結果。
若是輸入地址沒有找到則顯示」no data with this filter」:
(2)對目的地址爲192.168.0.1的包的過濾,即抓取目的地址知足要求的包。
表達式爲:ip.dst = = 192.168.0.1
(3)抓取知足源或者目的地址的IP地址是192.168.0.1的封包。
表達式爲: ip.src = = 192.168.0.1 or ip.dst = = 192.168.0.1
(1)僅僅須要捕獲某種協議的數據包,表達式很簡單僅僅須要把協議的名字輸入便可。
表達式爲:http
那麼在進行數據包過濾是在Filter:中輸入http便可。如圖3所示。
圖3 過濾Http協議
(2)排除某種協議的數據包
表達式爲:!tcp
排除IP協議:
2.3 對端口的過濾
(1)捕獲某一端口的數據包。
表達式爲:tcp.port == 80
圖4 端口過濾
(2)捕獲多端口的數據包,可使用and來鏈接,下面是捕獲高位端口(大於1024)的表達式。
表達式爲:udp.port>= 2048
2.4對包長度的過濾
一組數據包查看它們的大小,會發現不少問題,在正常狀況下,一個以太網的最大幀長爲1518字節,去除以太網、IP以及TCP頭,還剩1460字節可供應用層協議的頭或者數據使用。那麼咱們根據這個原則就能經過捕獲數據包分析長度瞭解其分佈而後對故障進行合理的分析和猜想。不過在OSSIM系統中這一功能交給Ntop來完成,下面咱們看看如何經過一些表達式多包進行過濾。
(1)針對長度的過慮(這裏的長度指定的是數據段的長度)。
表達式爲:udp.length< 86
圖5 長度過濾
咱們知道以太網頭是14字節(包括了4字節的CRC校驗),IP頭最小20字節,沒有數據以及選項的TCP數據包也是20字節,這也就是說TCP用於控制的數據包,例如ACK、RST以及FIN的大小大約是54字節。查看那些長度小於64字節的數據包。
過濾器表達式以下:
frame.len<=64
圖6 長度過濾
一樣方法可使用以下表達式:
frame.number<=10 表明過濾出幀數小於10的全部包
fram.number= =10 表明過濾出幀數爲10的包
經過以上的最基本的功能的學習,若是隨意發揮,能夠靈活應用,就基本上算是入門了。咱們還能夠根據IP地址+端口進行過濾,好比在Filter:後面輸入:「ip.addr==192.168.11.1&& udp.port==53」效果如圖7所示。
圖7 根據IP+端口過濾
將以上方法通過組合應用就可發揮出強大的過濾效果。Wireshark除了GUI工具外還有對應的命令行工具─tshark。在遠程環境下至關實用。下面就簡單的說說經常使用的一些功能。tshark日常遠程登陸時抓包很好用,並且能夠直接解析,但老是不很記得如何打印出本來16進制的數據。抓包命令以下:
#tshark - w test.pcap -i eth0 - q
l -w 將抓包的數據寫入文件filename中。
l -i指定要抓包的接口名稱。
l -q 安靜,在遠程時最有用,不然會抓到SSH的報文。
l -r 指定要讀取的包文件。
l -x 將16進制原始包數據打印出來。
l -V 將包儘量的解析(這個有時在包數量不少的狀況下能夠不使用,這樣它會給出一個很簡潔的報文解釋)。
圖8 tshark抓包
2.5 操做舉例:
以每秒間隔,統計 IP 地址 192.168.120.78 的封包、字節數量。輸入如下命令。
tshark -z io,stat,1,ip.addr==192.168.120.78
圖9 tshark抓包
實際上經過對網絡數據包的分析能夠找到很多網絡***時的奧祕,由於素有的網絡***行爲必定是經過數據包傳送,而每種不一樣的***方式在網絡上都會產生某種行爲特徵,好比說,當Syn Flooding***時,網絡上馬上會產生大量帶有SYN標誌位的數據包,經過抓包就能發現,再如Code red蠕蟲在感染IIS 時,在網上也會出現發送給Web服務器80端口的數據包,並且其中包含「GET /’.*‘.ida?’*‘XX’*‘%u’{4}‘%u780’*‘=’.{7}‘HTTP /1.0\r\n’」特徵的字符串特徵信息。最爲網絡安全人員,咱們要善於利用Web界面的Wireshark來分析網絡的***行爲,有的***產生小包(< 64 Bytes),而有的***則會產生巨人幀,咱們經過不斷總結***行爲將行爲特徵記錄到數據庫,這樣就能不斷沉澱不斷積累而造成一個大的適合企業自身的病毒查詢知識庫。
3. 遠程故障處理應用案例
對於本地機房維護時如遇到網絡病毒爆發或者通信故障,管理員會經過上面抓包方式來分析故障,但若是是異地機房除了一樣的問題,你須要在遠程深度分析網絡數據包的狀況,該怎麼辦?你可能須要臨時聯繫對方運維人員開始配置端口鏡像,並部署抓包設備,而這種低效的響應方式每每耽誤了分析故障的最佳時機。
下面咱們看看經過分佈式OSSIM部署的解決方法,公司總部C部署了一臺高性能OSSIM服務器,在異地分公司A機房和B機房部署了Sensor,它們經過×××和Ossim Server鏈接。異地機房的Sensor分別連入交換機的SPAN口,當工做須要時,可以實時抓取網絡數據。
圖10 OSSIM Server/Sensor部署示意
當A機房內服務器出現故障,須要總部運維人員支持時,他們能夠鏈接到OSSIM的Web UI界面, 經過Traffic capture並選擇對應的Sensor,而後開始抓包,並進行後續分析,這樣部署大大提升了遠程機房之間數據包分析的效率,上面第一節和第二節介紹的過濾數據包的技巧就在此時發揮做用。