Snort 使用 snort.logs.xxxxxxx 尋找警報檔 DATA

Snort 使用 snort.logs.xxxxxxx 尋找警報檔 DATA

我正在執行一項任務,我的安全團隊要求我在 /var/log/snort 資料夾下提供 pcap 檔。他們從警報檔案中取得了來源 IPADDRESS,並且需要對該來源 IP 位址的 pcap 檔案(即 snort.log.xxxxxxx)進行更多分析。

警報檔案和 snort.log.xxxxx 檔案位於同一資料夾中。如何給他們準確的 snort.log.xxxxx 檔案進行分析?請給予一些命令或任何技術來執行此操作。我對這個領域非常陌生,我正在處理 Linux 機器(Centos 7),其中 snort 正在轉儲日誌。

答案1

就像你說的,預設情況下,Snort 會以兩種方式記錄:

  1. alert檔案 - 包含文字格式的警報元數據
  2. snort.log.##########- 觸發警報的資料包的 PCAP

我執行此操作的方法(僅使用基本的 linux bash 命令)是:

單一警報方法

若要查找警報條目:

搜尋alert文件。您可以使用 IP 位址或警報名稱進行搜尋grep

grep "PATTERN" /var/log/snort/alert

典型的日誌條目行如下圖所示:

01/04-03:28:11.959559  [**] [1:1000001:1] Signature_Name [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.1.1:80 -> 192.168.1.128:39590

尋找對應的PCAP文件:

然後,要確定寫入的是哪個文件,您可以查看長目錄列表中的修改時間 ( ls -l),也可以轉換時間戳(不要忘記添加年份並在日期和時間之間添加空格) ) 使用以下命令轉換為紀元時間:

date "+%s" -d "01/04/2018 03:28:11.959559"

輸出:

1515054491

然後找一個名為snort.log.1515054491.那應該包含 PCAP 資料。

如果您需要一個 IP 位址的多個日誌

這就是大錘的方法。如果他們想要兩個文件中的條目僅與單一 IP 位址相關,我會這樣做:

警報文件條目

Grep 取得 IP 位址,然後將輸出寫入單獨的檔案。

grep "192.168.1.1" /var/log/snort > /tmp/alerts_192.168.1.1.txt

這應該只過濾出現 IP 位址的行,並將其重新導向到您可以提供給安全團隊的新檔案。

投射電容文件

我會謹慎執行此操作,因為 snort 日誌目錄可能非常大,並且迭代一大組文件可能會給系統帶來壓力(特別是如果它是流量非常高的傳感器)。我建議使用文件遮罩來確定您要查找的資料的大致時間範圍。請記住,該時間範圍需要採用紀元格式。

假設團隊希望一切從現在開始回到一小時前(3600 秒)。紀元時間戳記為 1515054491。

1515050891 - Start
1515054491 - End
151505???? - File mask (close enough)

然後,我將建立一個 for 迴圈來迭代所有這些文件,並執行 tcpdump 命令來僅過濾有問題的 IP 位址。

tcpdump -r infile -w outfile "BPF"

選項:

  • -r 用於從檔案讀取(而不是從介面啟動即時捕獲)
  • -w 用於將輸出寫入文件
  • 「BPF」 - Berkley 封包過濾器(在本例中,將使用「主機 192.168.1.1」來指定具有該 IP 的任何封包。)

現在,for 循環:

cd /var/log/snort
for file in snort.log.151505????
do
    tcpdump -r $file -w /tmp/$file "host 192.168.1.1"
done

現在,您應該在該資料夾中擁有所有警報檔案的副本/tmp,但僅包含與該特定 IP 位址相關的資料。如果您已mergecap安裝,我建議​​使用以下命令將所有這些組合到一個 PCAP 檔案中:

mergecap -w /tmp/snort_log_192.168.1.1.pcap /tmp/snort.log.*

您應該知道有兩個文件/tmp

  • /tmp/alerts_192.168.1.1.txt
  • /tmp/snort_log_192.168.1.1.pcap

然後,將這些文件提供給您的安全團隊。

相關內容