日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

开源流量分析工具-Zeek的安装和使用

發(fā)布時間:2024/8/26 综合教程 45 生活家
生活随笔 收集整理的這篇文章主要介紹了 开源流量分析工具-Zeek的安装和使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Zeek是一個開源的、被動網(wǎng)絡(luò)流量分析軟件。它主要被用作安全監(jiān)測設(shè)備來檢查鏈路上的所有流量中是否有惡意活動的痕跡。但更普遍地,Zeek支持大量安全領(lǐng)域外的流量分析任務(wù),包括性能測量和幫助排查問題。

zeek架構(gòu)

Zeek是一個被動的開源網(wǎng)絡(luò)流量分析器。許多運營商將Zeek用作網(wǎng)絡(luò)安全監(jiān)視器(NSM),以支持對可疑或惡意活動的調(diào)查。Zeek還支持安全領(lǐng)域以外的各種流量分析任務(wù),包括性能評估和故障排除。

新用戶從Zeek獲得的第一個好處是描述網(wǎng)絡(luò)活動的大量日志。這些日志不僅包括網(wǎng)絡(luò)上看到的每個連接的全面記錄,還包括應(yīng)用程序?qū)佑涗?。這些包括所有HTTP會話及其請求的URI,密鑰標(biāo)頭,MIME類型和服務(wù)器響應(yīng),帶回復(fù)的DNS請求,SSL證書,SMTP會話的關(guān)鍵內(nèi)容,以及更多。默認情況下,Zeek將所有這些信息寫入結(jié)構(gòu)良好的制表符分隔或JSON日志文件中,這些文件適合使用外部軟件進行后處理。用戶還可以選擇讓外部數(shù)據(jù)庫或SIEM產(chǎn)品使用,存儲,處理和顯示數(shù)據(jù)以進行查詢。

除了日志外,Zeek還具有用于一系列分析和檢測任務(wù)的內(nèi)置功能,包括:

1.從HTTP會話中提取文件
2.通過與外部注冊表進行接口來檢測惡意軟件
3.報告網(wǎng)絡(luò)上可見的易受攻擊的軟件版本
4.識別流行的網(wǎng)絡(luò)應(yīng)用程序
5.檢測SSH暴力破解
6.驗證SSL證書鏈

在很高的層次上,Zeek在體系結(jié)構(gòu)上分為兩個主要組件。它的事件引擎(或核心)將傳入的數(shù)據(jù)包流減少為一系列更高級別的事件。這些事件以與策略無關(guān)的方式反映了網(wǎng)絡(luò)活動,即,它們描述了已看到的內(nèi)容,而不是原因或意義是否重大。

例如,線路上的每個HTTP請求都變成一個相應(yīng)的 http_request事件,該事件帶有所涉及的IP地址和端口,所請求的URI以及所使用的HTTP版本。但是,該事件未傳達任何進一步的解釋,例如該URI是否對應(yīng)于已知的惡意軟件站點。

事件引擎組件包括多個子組件,特別是包括以下內(nèi)容的包處理管道:輸入源,包分析,會話分析和文件分析。輸入源從網(wǎng)絡(luò)接口攝取傳入的網(wǎng)絡(luò)流量。數(shù)據(jù)包分析處理較低級別的協(xié)議,從鏈路層一直開始。會話分析處理應(yīng)用程序?qū)訁f(xié)議,例如HTTP,F(xiàn)TP等。文件分析剖析了通過會話傳輸?shù)奈募膬?nèi)容。事件引擎提供了一個插件架構(gòu),可以從Zeek核心代碼庫的外部添加其中的任何一個,從而可以根據(jù)需要擴展Zeek的功能。

與事件相關(guān)的語義是由Zeek的第二個主要組件腳本解釋器派生的,該腳本解釋器執(zhí)行一組用Zeek的自定義腳本語言編寫的事件處理程序。這些腳本可以表示站點的安全策略,例如,當(dāng)監(jiān)視器檢測到不同類型的活動時要采取的操作。

更一般而言,腳本可以從輸入流量中得出任何所需的屬性和統(tǒng)計信息。實際上,Zeek的所有默認輸出都來自發(fā)行版中包含的腳本。Zeek的語言帶有廣泛的特定于域的類型和支持功能。至關(guān)重要的是,Zeek的語言允許腳本隨時間保持狀態(tài),從而使腳本能夠跟蹤并關(guān)聯(lián)跨連接和主機邊界觀察到的內(nèi)容的演變。Zeek腳本可以生成實時警報,還可以根據(jù)需要執(zhí)行任意外部程序。人們可能會使用此功能來觸發(fā)對攻擊的主動響應(yīng)。

安裝依賴

1.Libpcap (http://www.tcpdump.org)
2.OpenSSL libraries (https://www.openssl.org)
3.BIND8 library
4.Libz
5.Bash (for ZeekControl)
6.Python 3.5 or greater (https://www.python.org/)

單機安裝

本例安裝環(huán)境:debian10.0.5
硬件配置:4C 8G 120G硬盤
root@Zeek:~# apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python3 python3-dev swig zlib1g-dev

root@Zeek:~# apt-get install gnupg curl
root@Zeek:~# apt install -y automake make g++ bison flex libelf-dev libssl-dev bc
root@Zeek:~#apt-get install python3-git python3-semantic-version
root@Zeek:~#git clone --recursive https://github.com/zeek/zeek
root@Zeek:~# cd zeek
root@Zeek:~#./configure
root@Zeek:~#make
root@Zeek:~#make install
增加zeek環(huán)境變量
[root@Zeek ~]# vim /etc/profile
在末尾增加
export PATH=/opt/zeek/bin:$PATH
[root@Zeek ~]# source /etc/profile
初始化
[root@Zeek ~]# zeekctl
[ZeekControl] > install

[ZeekControl] > start

使用教程
zeek默認的日志存放目錄為/opt/zeek/logs,當(dāng)前的日志默認存放為current路徑
默認產(chǎn)生的日志如下:
[root@Zeek current]# tree
├── capture_loss.log
├── conn.log
├── dhcp.log
├── dns.log
├── dpd.log
├── files.log
├── http.log
├── notice.log
├── ntp.log
├── software.log
├── ssh.log
├── ssl.log
├── stats.log
├── stderr.log
├── stdout.log
├── weird.log
└── x509.log

conn.log連接日志
dhcp.logDHCP日志
dns.logDNS日志
files.log文件日志
http.logHTTP日志
ssl.logSSL日志

zeek既可以通過網(wǎng)絡(luò)流的形式分析報文,也可以通過上傳原始報文PCAP格式文件的形式進行分析
zeek的可以靈活的通過zeek腳本對網(wǎng)絡(luò)中的異常行為或者特定的網(wǎng)絡(luò)流量進行分析

1)通過zeek讀取PCAP格式的原始報文進行行為分析
本例編寫腳本,分析PCPA報文中的文件內(nèi)容,zeek腳本內(nèi)容如下:

event connection_state_remove(c: connection)
    {
    print "connection_state_remove";
    print c$uid;
    print c$id;
    for ( s in c$service )
        print s;
    }

event file_state_remove(f: fa_file)
    {
    print "file_state_remove";
    print f$id;
    for ( cid in f$conns )
        {
        print f$conns[cid]$uid;
        print cid;
        }
    print f$source;
    }

執(zhí)行PCPA文件分析,如下:
[root@Zeek ~]# zeek -r http.pcap file_analysis_01.zeek

在不指定日志目錄的情況下會在該目錄下生成響應(yīng)的日志,如下圖:

Zeek腳本的編寫

zeeek是單線程而不是多線程,大規(guī)模使用需要考慮集群化部署。
事件引擎(或者core):把進入的數(shù)據(jù)包流簡化為一系列高級的事件,這些事件以策略無關(guān)的形式反映了網(wǎng)絡(luò)活動。
事件處理程序:使用zeek腳本語言編寫,這些腳本能夠表達安全策略,更普遍地,他們能夠?qū)斎肓髁康玫饺魏蜗胍膶傩院徒y(tǒng)計數(shù)據(jù)。

zeek事件驅(qū)動腳本

zeek腳本事件(script events):當(dāng)開發(fā)一個zeek腳本時,腳本的功能被包裝在各自的事件中。
例如:
event zeek_init()
{
/*code*/
}
event zeek_done()
{
/*code*/
}

zeek_init event:當(dāng)zeek第一次初始化時候就被激活
zeek_done event:在zeek關(guān)閉之前被激活
tcp_packet event:處理包含tcp_header的數(shù)據(jù)包時激活
udp_request event:在處理包含UDP請求頭的數(shù)據(jù)時激活
udp_reply event:在處理包含UDP應(yīng)答頭的數(shù)據(jù)包時激活

zeek模塊工作區(qū)(module workspace):使用module關(guān)鍵字來為腳本分配一個namespace,那么就可以通過包含分配的module開訪問來自其他腳本的代碼,使用export關(guān)鍵字,用于導(dǎo)出在module工作區(qū)的block塊中輸入的代碼

module zeekscript;
export {
/**/
/**/
}
使用模塊來導(dǎo)出到嗎可以在其他腳本之上構(gòu)建更高級的腳本。

zeek日志流(log stream)在開發(fā)zeek腳本時,所有經(jīng)過處理的輸出將被發(fā)送到特定的日至流。這些日志流會包含響應(yīng)的日志文件格式輸出。

event connection_established(){
log::create_stream(LOG,format,path);
log::write(Logsream,data)
}

connection_established event:當(dāng)主機連接到接收器(receiver)時激活
Log::create_stream:創(chuàng)建具有名稱、格式輸出結(jié)構(gòu)和路徑的新日志流
Log::write:將包含的數(shù)據(jù)寫入指定的日志流

使用腳本對日志分析(analysis)

使用zeek的事件驅(qū)動腳本語言,我們可以創(chuàng)建特定的基于事件的過濾器,以便在數(shù)據(jù)包中捕獲和分析期間的應(yīng)用。

nl命令用來展示zeek腳本
檢測http代理的zeek腳本 http_proxy.zeek

module HTTP;

export {

    global success_status_codes: set[count] = {
        200,
        201,
        202,
        203,
        204,
        205,
        206,
        207,
        208,
        226,
        304
    };
}

event http_reply(c: connection, version: string, code: count, reason: string)
    {
    if ( /^[hH][tT][tT][pP]:/ in c$http$uri &&
         c$http$status_code in HTTP::success_status_codes )
        print fmt("A local server is acting as an open proxy: %s", c$id$resp_h);
    }

總結(jié)

以上是生活随笔為你收集整理的开源流量分析工具-Zeek的安装和使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。