虹科分享 | 網(wǎng)絡(luò)流量監(jiān)控 | 構(gòu)建大型捕獲文件(Ⅰ)——Wireshark過(guò)濾器和其他Allegr

數(shù)據(jù)包分析是一個(gè)復(fù)雜的話題。如果在沒有設(shè)置參數(shù)的情況下啟動(dòng)Wireshark,就會(huì)開始實(shí)時(shí)捕獲或打開一個(gè)預(yù)先錄制的pcap文件。在很短的時(shí)間內(nèi),可能有成千上萬(wàn)的數(shù)據(jù)包等待分析。有一種危險(xiǎn),就是被大量的數(shù)據(jù)困住了。
然而,如果用戶想深入分析數(shù)據(jù)包,沒有一個(gè)其他產(chǎn)品可以替代Wireshark。但是,有一些方法可以使這項(xiàng)任務(wù)變得更加容易。
本文解釋了應(yīng)對(duì)挑戰(zhàn)和減少數(shù)據(jù)包分析工作的策略--無(wú)論是為了排除故障還是為了評(píng)估網(wǎng)絡(luò)質(zhì)量。
第一部分也就是本篇討論的是解釋如何使用Wireshark工具進(jìn)行結(jié)構(gòu)化搜索的技術(shù)。這里涵蓋了過(guò)濾器、顏色標(biāo)記和協(xié)議層次的技術(shù)。
第二部分將會(huì)在下一期為大家進(jìn)行介紹,我們?cè)撊绾问褂?Allegro 網(wǎng)絡(luò)萬(wàn)用表來(lái)加快 pcap 分析器的工作。
旗艦級(jí)的Wireshark
開源程序Wireshark是一個(gè)非常好用的pcap分析器。該項(xiàng)目從前身 "Ethereal "中脫穎而出,自2006年以來(lái)一直存在,自其發(fā)布以來(lái)已將所有商業(yè)對(duì)比產(chǎn)品擠出市場(chǎng)。Wireshark是一個(gè)面向數(shù)據(jù)包的分析器,用于準(zhǔn)確定位問(wèn)題,并以圖形顯示數(shù)據(jù)日志。
大多數(shù)繁忙的網(wǎng)絡(luò)會(huì)有許多水平的網(wǎng)絡(luò)連接,需要準(zhǔn)確的數(shù)據(jù)包分析。例如,只訪問(wèn)一個(gè)網(wǎng)站就會(huì)產(chǎn)生與許多其他主機(jī)的連接。
過(guò)濾器的使用
由于需要處理的數(shù)據(jù)量巨大,Pcap 文件的分析可能是一個(gè)挑戰(zhàn)??梢允褂眠^(guò)濾器來(lái)有選擇地隱藏不感興趣的連接。我們的目標(biāo)是最終獲得一組相對(duì)容易管理的數(shù)據(jù)包,作為詳細(xì)分析的起點(diǎn)。
除了應(yīng)用BPF語(yǔ)法等外部工具和技術(shù)來(lái)過(guò)濾流量外,Wireshark還有一些板載手段來(lái)減少大量的信息,以便更接近相關(guān)信息。Wireshark區(qū)分了兩種類型的過(guò)濾器。捕獲過(guò)濾器定義哪些數(shù)據(jù)包被記錄下來(lái);顯示過(guò)濾器定義了哪些捕獲的數(shù)據(jù)包被包括在當(dāng)前的分析中。但是,這兩種過(guò)濾器使用不同的語(yǔ)法。
在Wireshark中的簡(jiǎn)單顯示過(guò)濾器
在Wireshark中最常用的使內(nèi)容更精簡(jiǎn)得技術(shù)是使用顯示過(guò)濾器。
顯示過(guò)濾器最簡(jiǎn)單的用途是將流量減少到單一的應(yīng)用程序、特定的協(xié)議或數(shù)據(jù)字段的確切規(guī)格。要做到這一點(diǎn),你可以使用菜單(分析->顯示過(guò)濾器)來(lái)選擇,例如,HTTP協(xié)議,這將限制視圖到所有的HTTP條目,或者直接在過(guò)濾器工具欄上插入所需的過(guò)濾器值。如果你想只看到所有的SIP連接,你只需在輸入框中輸入'sip',然后用'Enter'確認(rèn)即可。

在Wireshark中通過(guò)顯示過(guò)濾器進(jìn)行特定的協(xié)議過(guò)濾
過(guò)濾器正在使用中,可以在過(guò)濾器工具欄的輸入欄中看到(用綠色突出顯示)。右下方的狀態(tài)欄也顯示過(guò)濾器已被設(shè)置,或者當(dāng)時(shí)確實(shí)只顯示了一定比例的數(shù)據(jù)包。

在直接輸入顯示過(guò)濾器時(shí),Wireshark提供了一個(gè)自動(dòng)完成功能,因此在輸入過(guò)濾器時(shí),所有具有相同字母序列的可用過(guò)濾器都會(huì)被建議。
比較運(yùn)算符
除了使用簡(jiǎn)單的過(guò)濾器,條件也可以被鏈接。Wireshark的過(guò)濾器語(yǔ)法提供了括號(hào)、邏輯運(yùn)算符,如'and' 'or',以及比較運(yùn)算符,如= =或! =。
例如,如果你想顯示 "從IP地址10.17.2.5到80端口的任何TCP流量",翻譯成Wireshark的過(guò)濾語(yǔ)法是ip.src = = 10.17.2.5 and tcp.dstport = = 80。
在這個(gè)例子中,條件是用 'and' 連接的。條件1規(guī)定,數(shù)據(jù)包的源IP地址必須是10.17.2.5,條件2規(guī)定,協(xié)議必須是TCP,目的端口必須是80。
任何數(shù)量的條件都可以連接起來(lái),以進(jìn)一步限制顯示的流量的選擇。
來(lái)自Wireshark的表達(dá)式生成器
作為一個(gè)熟練的Wireshark用戶,表達(dá)式可以從內(nèi)存中自由應(yīng)用。最初,使用Wireshark的表達(dá)式生成器對(duì)話框?qū)⒈磉_(dá)式添加到顯示過(guò)濾器中是非常容易的。
當(dāng)右擊過(guò)濾器工具欄中的術(shù)語(yǔ) "表達(dá)式 "時(shí),這個(gè)對(duì)話框會(huì)打開。在這里,可以選擇和鏈接預(yù)定義的運(yùn)算符。為了檢查所選的過(guò)濾器是否正確,過(guò)濾器工具欄變成綠色。如果過(guò)濾器是無(wú)效的,則該區(qū)域會(huì)以紅色顯示。

在Wireshark中調(diào)用表達(dá)式生成器
如果需要的話,可以保存Wireshark的過(guò)濾器。
捕獲過(guò)濾器
除了上述減少顯示數(shù)據(jù)包的顯示過(guò)濾器外,還可以在流量記錄開始的那一刻應(yīng)用過(guò)濾器;這些被稱為捕獲過(guò)濾器,確保網(wǎng)絡(luò)數(shù)據(jù)被限制在所需的選擇范圍內(nèi)。
Wireshark捕獲過(guò)濾器使用與tcpdump、libpcap過(guò)濾器相同的語(yǔ)法。就是說(shuō),用字節(jié)偏移、十六進(jìn)制值和與真值相關(guān)的掩碼的語(yǔ)法來(lái)過(guò)濾數(shù)據(jù)。捕獲過(guò)濾器的應(yīng)用并不簡(jiǎn)單,因?yàn)樗鼈儽蕊@示過(guò)濾器更隱蔽。
Wireshark手冊(cè)中包含了更多關(guān)于集成在Wireshark中的過(guò)濾器的信息。
在這篇文章中,只討論了Wireshark作為機(jī)載工具所提供的最重要的過(guò)濾器。應(yīng)用比最簡(jiǎn)單的顯示過(guò)濾器更深?yuàn)W的過(guò)濾器,需要對(duì)Wireshark的過(guò)濾器語(yǔ)法有深入的了解,以便持續(xù)使用過(guò)濾器來(lái)解決自己的研究問(wèn)題。
使用Wireshark進(jìn)行顏色標(biāo)記
除了過(guò)濾功能外,Wireshark還有一個(gè)可定制的顏色編碼系統(tǒng)。例如,默認(rèn)情況下,所有UDP數(shù)據(jù)包都標(biāo)為藍(lán)色,標(biāo)準(zhǔn)TCP傳輸為紫色,HTTP為綠色。這些顏色編碼有助于管理員一目了然地識(shí)別數(shù)據(jù)包的類型。用戶定義的顏色規(guī)則可以分配給自己的配置文件并保存,完成系統(tǒng)。文本和背景顏色都可以自定義。

單個(gè)數(shù)據(jù)流可以通過(guò)自動(dòng)顏色編碼輕松追蹤。然而,為了一目了然地看到哪些連接是活動(dòng)的,或者單個(gè)數(shù)據(jù)包屬于哪些連接,而不是通過(guò)IP地址/端口號(hào)來(lái)確定,你可以通過(guò)顏色代碼來(lái)調(diào)節(jié)。要啟用這一點(diǎn),在右鍵單擊數(shù)據(jù)包后,你可以在上下文菜單中點(diǎn)擊 "彩色連接",并選擇連接類型(以太網(wǎng)、IPv4、IPv6、TCP、UDP等)。
根據(jù)傳輸協(xié)議為連接著色,同一IP對(duì)之間的單個(gè)通信流可以被區(qū)分出來(lái)。這比只看IP地址能夠進(jìn)行更細(xì)化的分析。在多個(gè)主機(jī)同時(shí)進(jìn)行通信的情況下,或者在同一主機(jī)之間有多個(gè)通信連接需要區(qū)分的情況下,對(duì)單個(gè)連接進(jìn)行顏色編碼特別有用。如果你想仔細(xì)觀察任何潛在的可疑流量,顏色編碼也是一種可行的記錄方式。顏色編碼為大型 pcap 數(shù)據(jù)文件的初始定位提供了一種易于使用的技術(shù)。
使用協(xié)議層次
這里要介紹的第三種技術(shù)是使用協(xié)議分層,以便在大型 pcap 文件中更好地定位。與顏色編碼相比,這需要高級(jí)的 Wireshark 知識(shí)。協(xié)議層次的使用提供了有用的線索,例如,在追蹤可疑的應(yīng)用程序或協(xié)議時(shí)。
要顯示記錄文件中使用的日志,必須選擇菜單項(xiàng) "統(tǒng)計(jì)->日志層次結(jié)構(gòu)"。層次結(jié)構(gòu)提供了一個(gè)樹狀的日志視圖,包括每個(gè)日志的統(tǒng)計(jì)值。它被稱為層次結(jié)構(gòu),因?yàn)閿?shù)據(jù)是根據(jù)通信層排列的,因?yàn)榇蠖鄶?shù)數(shù)據(jù)包包含多個(gè)封裝的協(xié)議。因此,一個(gè)HTTP數(shù)據(jù)包被列在一個(gè)TCP數(shù)據(jù)包下,兩者都在IP數(shù)據(jù)包下,等等。

按協(xié)議層次的Wireshark視圖
除了協(xié)議信息外,管理員還可以查看該協(xié)議在總流量中的份額有多高,數(shù)據(jù)包的確切數(shù)量或某一協(xié)議的帶寬。如果在數(shù)據(jù)條目中發(fā)現(xiàn)意外的高值,應(yīng)該更仔細(xì)地檢查這個(gè)流量。為此,用鼠標(biāo)右鍵標(biāo)記該條目,以便進(jìn)一步分析。一個(gè)上下文菜單打開,可以直接過(guò)濾或著色數(shù)據(jù)包。由于列表的分層結(jié)構(gòu),不可能對(duì)日志進(jìn)行排序或重新排序。
然而,可以采用演繹策略,直接從日志層次視圖中過(guò)濾掉不感興趣的日志。可以從過(guò)濾后的結(jié)果中保存一個(gè)單獨(dú)的捕獲文件。
總的來(lái)說(shuō),協(xié)議分層技術(shù)是一種可擴(kuò)展的方式,可以獲得一個(gè) pcap 文件的整體視圖。協(xié)議層次結(jié)構(gòu)通常是進(jìn)一步分析的起點(diǎn),因?yàn)樵谶@里可以看到意外流量或錯(cuò)誤的跡象,比如意外的協(xié)議或單個(gè)協(xié)議的意外數(shù)據(jù)比例。引起注意的往往不是某個(gè)協(xié)議的存在,而是其相對(duì)比例。
下一期我們將告訴大家,如何使用Allegro網(wǎng)絡(luò)萬(wàn)用表作為預(yù)過(guò)濾器來(lái)過(guò)濾和構(gòu)建大型捕獲文件。