日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Snort日志输出插件详解

發(fā)布時(shí)間:2024/4/14 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Snort日志输出插件详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Snort日志輸出插件詳解

? Snort是一款老×××的開(kāi)源***檢測(cè)工具,本文主要討論他作為日志分析時(shí)的各種插件的應(yīng)用。Snort的日志一般位于:/var/log/snort/目錄下。可以通過(guò)修改配置文件來(lái)設(shè)置Snort的報(bào)警形式?;谖谋镜母袷?、Libpcap格式和數(shù)據(jù)庫(kù)是Snort最重要的三種報(bào)警形式。本文主要對(duì)每種報(bào)警形式及其配置進(jìn)行介紹。


1??? 工作模式及輸出插件


Snort擁有3種工作模式,分別為嗅探器模式、分組日志模式與網(wǎng)絡(luò)***檢測(cè)模式。

1嗅探器模式

Snort使用Libpcap包捕獲庫(kù),即TCPDUMP使用的庫(kù)。在這種模式下,Snort使用網(wǎng)絡(luò)接口的混雜模式讀取并解析共享信道中的網(wǎng)絡(luò)分組。

該模式使用命令如下:

#snort -v

注意:這里的參數(shù)是小寫字母v,而大寫V則是顯示snort版本。以上只顯示TCP/IP網(wǎng)絡(luò)數(shù)據(jù)包頭信息,如果想查看詳細(xì)的應(yīng)用層數(shù)據(jù)信息,則需要輸入以下命令:

#snort –vd

如果希望查看數(shù)據(jù)鏈路層的包頭信息,使用如下信息:

#snort? –vde

還有一個(gè)類似“-d”參數(shù)的,“-X”它會(huì)從數(shù)據(jù)鏈路層開(kāi)始輸出原始數(shù)據(jù)包。

如果想將Snort作為IDS使用,不建議在命令行下使用“-vd”尤其是“-ved”參數(shù),因?yàn)樵敿?xì)模式將數(shù)據(jù)包信息打印到控制臺(tái),這樣嚴(yán)重影響了Snort的性能很容易引起丟包,這樣分析數(shù)據(jù)不準(zhǔn)確。


2?? ?數(shù)據(jù)包記錄模式


如果想將數(shù)據(jù)信息記錄到磁盤上某個(gè)文件,那就需要使用Packet logger模式。

命令如下

#snort –ved –l? ./log


? 這時(shí)Snort會(huì)把數(shù)據(jù)鏈路層、Tcp/IP報(bào)頭及應(yīng)用層信息寫入當(dāng)前目錄log(log目錄已建立)目錄下的snort.log.140493321文件中,而且這是二進(jìn)制文件。你也許會(huì)問(wèn),ASCII格式的日志文件格式非常好識(shí)別,為什么不直接記錄成ASCII格式呢?因?yàn)橄到y(tǒng)本生記錄的格式就是二進(jìn)制的,如果再轉(zhuǎn)換成我們能識(shí)別的ASCII格式無(wú)疑會(huì)加重系統(tǒng)負(fù)荷,所以Snort在做IDS使用時(shí)理應(yīng)采用二進(jìn)制格式記錄,另外還要注意:“-l”參數(shù)是小寫字母l

如果想查看所記錄的日志就得使用“r”參數(shù)。


操作實(shí)例如下:


#snort –dvr snort.log.140493321

還可以提取部分感興趣的數(shù)據(jù),例如只讀取ICMP包,輸入如下命令:

#snort –dvr snort.log.140493321 icmp

只讀取tcp包,輸入如下命令:

#snort –dvr snort.log.140493321 tcp

如果想記錄某個(gè)網(wǎng)段的數(shù)據(jù)呢,操作命令如下:

alienvault:~# snort -vde -l ./log -h 10.3.14.0/24


下面做個(gè)比較復(fù)雜的實(shí)驗(yàn),環(huán)境是OSSIM 3.1? 32 平臺(tái)

首先在控制臺(tái)上啟動(dòng):

#snort –l /var/log/snort/? -c /etc/snort/snort.eth0.conf

當(dāng)結(jié)束命令^c時(shí)顯示。

Alerts數(shù)量就是在日志里看到的記錄數(shù)量,這兩者一致。

在另一個(gè)控制臺(tái)查看日志情況。

#tail –f /var/log/auth.log

這時(shí),我們可以在SIEM控制臺(tái),中看到如圖1所示。

1 SIEM控制臺(tái)


3??? 網(wǎng)絡(luò)***檢測(cè)模式HIDS


HIDS模式是大家需要掌握的重點(diǎn),這種模式集成了嗅探模式和日志模式,并且需要載入規(guī)則庫(kù)才能正常工作。操作方式如下:

#snort –vde –l ./log –h 10.32.14.0/24 –c /etc/snort/snort.eth0.conf

注意,當(dāng)前目錄下有log目錄,如果制定-l ./log 參數(shù)系統(tǒng)會(huì)默認(rèn)將日志存在/var/log/snort/目錄下。大家在做實(shí)驗(yàn)時(shí),要確保當(dāng)前目錄下有./log目錄哦,否則無(wú)法正確執(zhí)行以上指令。

snort.conf文件中包含了指定檢測(cè)規(guī)則的具體路徑。


4?? 輸出插件


輸出插件的作用是將報(bào)警數(shù)據(jù)輸出到顯示器或轉(zhuǎn)儲(chǔ)到文件。所以對(duì)于Snort而言輸出插件就是系統(tǒng)的主要瓶頸,Snort本身能對(duì)封包進(jìn)行快速讀取和分析處理,但是試圖將其顯示輸出,或者存儲(chǔ)到數(shù)據(jù)庫(kù)中時(shí)卻有些力不從心。如何將Snort日志記錄到一個(gè)指定文件呢?我們通過(guò)執(zhí)行命令(假設(shè)/var/log/snort/yourfile文件存在)來(lái)記錄。

#snort –L yourfile

那么,這時(shí)系統(tǒng)自動(dòng)將snort日志保存到/var/log/snort/yourfile文件中。有關(guān)日志輸出的方法還有幾個(gè),我們稍后詳細(xì)講解。后續(xù)文章我會(huì)給大家一個(gè)方法,配置Snort統(tǒng)一格式輸出并且有Snort的標(biāo)準(zhǔn)日志應(yīng)用Barnyard負(fù)責(zé)輸出。這里我們先看看Snort的輸出插件。


1) -A alert-mode

在***檢測(cè)模式中alert-modefast、fullunsocknone四種模式。

1fast

fast是一種快速簡(jiǎn)單的輸出插件,之所以快是因?yàn)?/span>它只記錄timestamp(時(shí)間戳)、signature(特征)、source IPdestinationIP、source port、destination port、TCP flagsProtocol。使用方法如下:

#snort –A fast

注意,上面的命令是不保存的,如果希望保存到文件(當(dāng)不適用-l參數(shù)默認(rèn)保存位置是/var/log/snort/),命令如下:


#snort –A fast –h 10.32.14.0/24 –c /etc/snort/snort.eth0.conf


2full

Full對(duì)每個(gè)產(chǎn)生警報(bào)的IP將其解碼后的包記錄下來(lái)。與fast不同的是,它記錄地更全面。這也是它的預(yù)設(shè)告警模式。


3unsock

這個(gè)插件的作用是建立一個(gè)UNIX域管道并向它發(fā)送警報(bào)。當(dāng)然其它進(jìn)程也可對(duì)該管道進(jìn)行監(jiān)聽(tīng),目的是實(shí)時(shí)接收Snort警報(bào)數(shù)據(jù)。注意一點(diǎn)這個(gè)功能和Windows系統(tǒng)無(wú)法配合使用。

#snort –A unsock


4none

這個(gè)插件作用是關(guān)閉警報(bào)。

大家只需掌握-A參數(shù)后面跟的四個(gè)參數(shù)的含義,了解這四個(gè)參數(shù)只是讓Snort能已不同的方式報(bào)警。


2) tcpdump格式輸出

有時(shí)候需要將Snort日志輸出成tcpdump文件格式的記錄包,因?yàn)檫@樣可以讓多種應(yīng)用程序和工具讀取tcpdump,這時(shí)我們?nèi)缦虏僮?#xff08;以OSSIM 3.1系統(tǒng)為例):

1 編輯snort.conf

#vi /etc/snort/snort.eth0.conf

找到 389啟用output log_tcpdump: tcpdump.log。

2保存退出,并重啟Snort服務(wù)使其配置生效。

3查看tcpdump.log。

alienvault:/var/log/snort# ls -l

-rw------- 1 root? adm?? ??504 Jul 14 22:02 tcpdump.log.1405389707

-rw------- 1 root? adm??? 3410 Jul 14 22:45 tcpdump.log.1405392066


3CSV格式輸出

CSVComma Separated Value是用逗號(hào)分隔值的是文本文件。采用CSV格式的目的主要考慮向其它數(shù)據(jù)庫(kù)或電子表格軟件輸入。CSV格式可以記錄24個(gè)字段如1所示。

1 ?規(guī)則選項(xiàng)關(guān)鍵字含義

序號(hào)

關(guān)鍵字

作用

1

Timestamp

時(shí)間戳

2

Msg

特征碼名稱

3

Proto

協(xié)議

4

Src

源地址

5

Srcport

源端口

6

dst

目標(biāo)地址

7

dstport

目標(biāo)端口

8

ethsrc

MAC

9

ethdst

目標(biāo)MAC

10

ethlen

以太網(wǎng)幀長(zhǎng)度

11

tcpflags

TCP標(biāo)志位

12

tcpseq

TCP序列號(hào)

13

tcpack

TCP ack號(hào)

14

tcplen

TCP長(zhǎng)度

15

tcpwindow

tcp窗口值

16

ttl

ip頭的ttl的值

17

tos

IP頭中TOS字段的值

18

id

ip頭的分片id

19

dgmlen

數(shù)據(jù)報(bào)的總長(zhǎng)度,包括數(shù)據(jù)報(bào)頭和數(shù)據(jù)報(bào)文

20

iplen

IP包長(zhǎng)度

21

icmptype

ICMP類型

22

icmpcode

ICMP代號(hào),缺省為0

23

icmpid

ICMP報(bào)文IP頭的ID,缺省是隨機(jī)的

24

icmpseq

ICMP ECHO順序號(hào)的值

實(shí)現(xiàn)csv格式輸出方法

編輯snort_eth0.conf。

添加:output alert_csv: csv.out 后面缺省有24個(gè)關(guān)鍵字我們也可按上圖的參數(shù)輸入

查看csv輸出

alienvault:/var/log/snort# tail -f csv.out

07/15-00:29:51.254425 ,"GPL SHELLCODE x86 inc ebx NOOP",,,,,,,

07/15-00:29:51.357178 ,"GPL SHELLCODE x86 inc ebx NOOP",,,,,,,

07/15-00:29:54.541833 ,"ET P2P eMule Kademlia Hello Request",,,,,,,

07/15-00:29:54.541846 ,"ET P2P eMule Kademlia Hello Request",,,,,,,

07/15-00:31:55.606599 ,"ET DNS Non-DNS or Non-Compliant DNS traffic on DNS port Opcode 6 or 7 set - Likely Kazy",,,,,,,

以下是24個(gè)參數(shù)全部啟用的效果。默認(rèn)為全部啟用除非指定具體參數(shù)。

snort_eth0.conf加入:

output alert_csv: csv.out

一行即可。

查看SIEM控制臺(tái)輸出。

當(dāng)設(shè)置成功csv輸出后,可以查看OSSIM系統(tǒng)下SIEM控制臺(tái)的日志輸出,如下圖3所示。

3 SIEM控制臺(tái)日志輸出

我們發(fā)現(xiàn)兩種不同警報(bào)方式的結(jié)果都是一行,很顯然OSSIM系統(tǒng)的SIEM控制臺(tái)顯示出的警報(bào)更人性化。


4syslog輸出

Syslog服務(wù)器能從各種服務(wù)和設(shè)備(網(wǎng)絡(luò)設(shè)備,Web服務(wù)器等)收集日志信息。將Snort警報(bào)數(shù)據(jù)寫入syslog服務(wù)器對(duì)于分析網(wǎng)絡(luò)***事件有幫助。它可以與其它工具謝工執(zhí)行實(shí)時(shí)報(bào)警和通知,所以這也是Snort一個(gè)比較重要的插件之一。

最簡(jiǎn)單方法是打開(kāi)snort_eth0.conf384行的output alert_syslog: LOG_AUTH LOG_ALERT這行啟用,并重啟Snort即可生效。我們使用如下命令觀察Snort發(fā)出的警報(bào):


#tail –f /var/log/auth.log


Syslog配置選項(xiàng)

Syslog三個(gè)重要配置選項(xiàng):

l? Facility

l? Priority

l? Options

啟用選項(xiàng)的命令如下:

方法很簡(jiǎn)單,在上面的技術(shù)上加上這三個(gè)參數(shù)即可。

output alert_syslog: LOG_AUTH LOG_ALERT facility? priority options

保存退出并重啟Snort即可。

這時(shí),如果啟用了csv輸出,可以將syslogcsv輸出做個(gè)對(duì)比,如圖4所示(上部分為csv輸出,下部分為auth.log輸出)。

4?輸出結(jié)果比較


我們發(fā)現(xiàn)同樣一個(gè)***事件的報(bào)警,在它們的輸出中除了各式不統(tǒng)一以外,其它都相同。

5)數(shù)據(jù)庫(kù)輸出

? ?數(shù)據(jù)庫(kù)輸出插件可以將日志記錄到關(guān)系型數(shù)據(jù)庫(kù)中,它支持MySQL等。當(dāng)數(shù)據(jù)庫(kù)插件被關(guān)聯(lián)到數(shù)據(jù)庫(kù)后,就可以實(shí)現(xiàn)對(duì)Snort報(bào)警進(jìn)行分類、查詢和按優(yōu)先級(jí)組織排序,甚至利用應(yīng)用程序?qū)?shù)據(jù)庫(kù)中的告警數(shù)據(jù)通過(guò)GUI界面展現(xiàn)給用戶。

? ?在千兆網(wǎng)絡(luò)環(huán)境下需要考慮性能問(wèn)題,數(shù)據(jù)庫(kù)插件有可能影響到Snort性能,插件自身并不是瓶頸,當(dāng)大量數(shù)據(jù)寫入數(shù)據(jù)庫(kù)時(shí),必須等待磁盤I/O相應(yīng),這時(shí)就會(huì)受到影響。如果通過(guò)網(wǎng)絡(luò)將日志存儲(chǔ)到另一臺(tái)主機(jī)的數(shù)據(jù)庫(kù)中那么延遲會(huì)比較大。后面我們會(huì)采用Barnyard+Unified的方式解決這種性能問(wèn)題。

? ?主要思路是讓Snort采用Unified的格式存儲(chǔ),以它的最大速度處理輸出數(shù)據(jù),而不是像傳統(tǒng)的要等到寫盤完成后,再繼續(xù)操作,這樣浪費(fèi)了大量的時(shí)間。Barnyard能將二進(jìn)制數(shù)解析成與它能夠識(shí)別的各種格式,并且是完全獨(dú)立于Snort運(yùn)行。警報(bào)被立刻寫入數(shù)據(jù)庫(kù)并且不影響Snort的抓包能力。所以說(shuō)這種組合適合于高帶寬環(huán)境。

我們還是查看/etc/snort/snort.eth0.conf配置文件,大約392行。

這里有2個(gè)重要的選項(xiàng)alertlog

393行可以選擇獎(jiǎng)警報(bào)數(shù)據(jù)寫入數(shù)據(jù)庫(kù),394行可以同時(shí)將日志數(shù)據(jù)也寫入數(shù)據(jù)庫(kù)。

下面我們看看如何使用數(shù)據(jù)庫(kù)插件:

對(duì)照上面參數(shù)配置如下選項(xiàng):

<db_type>mysql

User=<username>snortdb_username或者為Snort傳感器創(chuàng)建的MySQL用戶名。

Password=<password> snortdb_password或?yàn)?/span>Snort傳感器創(chuàng)建snortdb_usernameMySQL口令

Dbname=<name>snortdb或者自己指定的***數(shù)據(jù)庫(kù)名稱。

Host=<hostname>為本機(jī)環(huán)路地址127.0.0.1


6)輸出unixsock

通過(guò)Alert_unixsock打開(kāi)UNIX套接字,并且把報(bào)警信息發(fā)送到那里。外部的程序/進(jìn)程會(huì)在這個(gè)套接字上偵聽(tīng)并實(shí)時(shí)接收這些報(bào)警數(shù)據(jù)。

例子:

output alert_unixsock

加入到snort.eth0.conf配置文件后,重啟Snort服務(wù)即生效。還可以通過(guò)以下命令手動(dòng)啟動(dòng):

# snort -c /etc/snort/snort.eth0.conf

此時(shí)會(huì)在/var/log/snort/下產(chǎn)生snort_alert文件

為了演示這一功能我們通過(guò)一小段程序(本地進(jìn)程間的通訊),來(lái)看看效果如何。以下Perl程序,其主要功能是將Snort傳送的數(shù)據(jù)報(bào)文的報(bào)警名稱通過(guò)讀取unixsock信息實(shí)現(xiàn)打印到屏幕。

執(zhí)行此Perl程序,結(jié)果如下。

我們看到顯示在屏幕的5條警報(bào)名稱。


7Unified格式輸出

前面介紹了多種輸出插件各異利弊,下面介紹OSSIM系統(tǒng)中常用的unified插件。這種插件的最大特點(diǎn)就是速度快,它能最快的輸出Snort報(bào)警信息和日志信息,它輸出兩類文件:警報(bào)文件和數(shù)據(jù)包日志文件,警報(bào)文件僅記錄摘要信息,內(nèi)容包括源IP、目的IP、協(xié)議、源端口、目的端口、報(bào)警消息ID、日志文件包含完整的包信息,用戶可以自己下載。

設(shè)置方法是啟用以下配置語(yǔ)句:

Output unified2: filename snort_eth0, limit 128

Filename后設(shè)置輸出警報(bào)文件名稱為snort_eth0。

Limit代表輸出文件允許的最大長(zhǎng)度,默認(rèn)值為128MB

以上幾種插件為snort常用方式尤其在日志分析中用的比較多,如果你剛接觸snort可以O(shè)SSIM3的環(huán)境中進(jìn)行練習(xí)。


開(kāi)源IDS系統(tǒng)安裝一點(diǎn)通視頻課程請(qǐng)參考?https://edu.51cto.com/course/7896.html?


總結(jié)

以上是生活随笔為你收集整理的Snort日志输出插件详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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