Joy:網(wǎng)絡(luò)流量分析、網(wǎng)絡(luò)取證及安全監(jiān)控工具
Joy是一個捕獲數(shù)據(jù)包、分析網(wǎng)絡(luò)流量數(shù)據(jù)、網(wǎng)絡(luò)研究取證及安全監(jiān)控的工具。
概述
Joy是一個BSD許可的基于libpcap的軟件包,用來從實時網(wǎng)絡(luò)流量或捕獲的數(shù)據(jù)包文件提取數(shù)據(jù)特征,使用類似于IPFIX或者Netflow的流量導(dǎo)向模式,之后在JSON中表現(xiàn)這些數(shù)據(jù)特征。Joy還包括了一個可以應(yīng)用這些文件的分析工具。Joy還能被用來探索大規(guī)模數(shù)據(jù),尤其是跟安全和威脅有關(guān)的數(shù)據(jù)。
JSON是為了使數(shù)據(jù)分析工具的數(shù)據(jù)輸出更簡單。當JSON輸出文件非常長時,JSON文件可以非常小,并且對壓縮的響應(yīng)很好。
Joy可以被配置來獲取intraflow數(shù)據(jù),這些數(shù)據(jù)是在網(wǎng)絡(luò)流量中出現(xiàn)的事件的數(shù)據(jù)和信息,包括:
序列的長度、IP包到達的時間、數(shù)據(jù)包的可配置數(shù)目; 一個劉的數(shù)據(jù)部分中字節(jié)的經(jīng)驗概率分布以及這個值導(dǎo)出的熵; 序列的長度和TLS記錄到達的時間; 其他非加密TLS數(shù)據(jù),比如提供密碼組的列表、被選擇的密碼租、clientKdyExchange字段的長度; 與流相關(guān)的進程名,正在運行的pcap主機上中為流發(fā)起或終止。
Joy是用戶安全研究、取證和小規(guī)模網(wǎng)絡(luò)監(jiān)測來進行漏洞檢測、威脅檢測、非法行為檢測和有害行為檢測。研究人員、管理人員、滲透測試人員和安全運營團隊可以很好的利用這些信息,保護被監(jiān)測的網(wǎng)絡(luò)免受攻擊,在某些漏洞情況下,可以通過提高防御姿態(tài)保證廣泛社區(qū)的利益。作為網(wǎng)絡(luò)監(jiān)測工具,Joy可能被濫用,所以當你不是管理員或者網(wǎng)絡(luò)所有人時,請不要使用Joy。
在正向心理學(xué)中,流是一種狀態(tài),一個人執(zhí)行一個活動,完全沉入近一種積極性十足、深入?yún)⑴c、快樂的感覺。
Joy是alpha/beta軟件,我們希望你使用它并從中受益,但是你要明白,它不適合生產(chǎn)。
信用
這個包是由來自思科高級安全研究小組(ASRG)的David McGrew和Blake Anderson {mcgrew,blaander}@cisco.com 所寫。
快速開始
構(gòu)建
Joy已經(jīng)成功的在Linux(Debian, Ubuntu和CentOS)和Mac OSX上被測試和運行。這兩種系統(tǒng)都使用gcc和GNU make構(gòu)建,但是它應(yīng)該也可以在其他開發(fā)環(huán)境中正常運行。
首先,從github上下載包,并切換到j(luò)oy所在的目錄;
在主目錄中運行 make 來構(gòu)建包:
[joy]$ make
程序被編譯、連接、清除、復(fù)制到合適的主目錄下。它還會執(zhí)行測試腳本和一個單元測試程序。
用來從pcap文件或者實時數(shù)據(jù)捕獲提取的數(shù)據(jù)特征的主程序是pcap2flow,它在src/subdictory下。它build成功后被復(fù)制到j(luò)oy主目錄下。它可以在該路徑下運行或安裝,這樣它會在Linux或Mac OSX上作為守護程序自動運行。
運行和配置
為了了解pacp2flow是如何被配置的,讀取其中一個配置文件(linux.cfg或macosx.cfg)。在脫機模式下處理pcap文件,運行:
[joy]$ ./pcap2flow [ OPTIONS ] filename [ filename2 ... ] e.g. [joy]$ ./pcap2flow bidir=1 output=data.json filename
為了在練級模式下運行數(shù)據(jù)包捕獲,使用相同的命令格式,但是要包括一個interface=命令的options,并且省卻命令行中的文件名。
e.g. [joy]$ sudo ./pcap2flow interface=eth0 bidir=1 output=data.json
它有很多命令行選項,所以我們不在命令行中使用所有選項,你可能想要程序讀取一個配置文件。這樣的兩個分布式文件,linux.cfg和macosx.cfg。如果你想要改變程序的默認值(為了準確的捕捉你感興趣的數(shù)據(jù),你可能會這樣做),之后復(fù)制這份配置文件。
使用不同名稱創(chuàng)建一個本地副本,防止Joy更新時,你的配置文件被破壞。
安裝
要在系統(tǒng)上安裝這個軟件,你需要先build它。運行install-sh腳本(root或者使用sudo)來安裝這個包。
[joy]$ sudo ./install-sh
如果你運行不帶參數(shù)的腳本,那么默認時,配置文件就會被安裝到/etc/目錄。要安裝一個不同的陪皮質(zhì)文件,你要使用-c來安裝腳本:
[joy]$ sudo ./install-sh -c local-config-file.cfg
你還可以配置匿名地址,它包含內(nèi)部子網(wǎng)文件。這些子網(wǎng)的默認文件是internal.net;你可以使用-a來更改配置。同理,你可以更改IP地址的watchfile(使用-w)或者更改用于通過scp上傳文件的SSH私鑰(使用-k)。使用-h來獲得幫助、查看所有安裝說明。
文件
手冊將作為包的一部分被自動建立、安裝。請參閱文件pcap2file.1或者之后被運行的install-sh腳本,通過"man pcap2flow"進入手冊。
測試
運行腳本./pcap2flow_test.sh和src/unit_test來測試程序。這些程序都會指出命令行執(zhí)行成功還是失敗。