国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動(dòng)安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全 應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 移動(dòng)安全 >

強(qiáng)大的網(wǎng)絡(luò)入侵檢測系統(tǒng)SNORT

時(shí)間:2011-05-01 17:17來源: 點(diǎn)擊:
在網(wǎng)絡(luò)日益普及的今天,網(wǎng)絡(luò)安全變的越來越重要,作為網(wǎng)絡(luò)安全的一個(gè)重要組成部分網(wǎng)絡(luò)入侵檢測系統(tǒng)(Network Intrusion Detection System,NIDS)也越來越顯示出其重要性。NIDS用來監(jiān)視網(wǎng)絡(luò)數(shù)據(jù)流動(dòng)。
TagsSNORT(8)  

  1.簡介

  在網(wǎng)絡(luò)日益普及的今天,網(wǎng)絡(luò)安全變的越來越重要,作為網(wǎng)絡(luò)安全的一個(gè)重要組成部分網(wǎng)絡(luò)入侵檢測系統(tǒng)(Network Intrusion Detection System,NIDS)也越來越顯示出其重要性。NIDS用來監(jiān)視網(wǎng)絡(luò)數(shù)據(jù)流動(dòng)情況,當(dāng)發(fā)生時(shí)能夠提供報(bào)警?,F(xiàn)在已經(jīng)出現(xiàn)了很多商業(yè)的NIDS,但是它們大多比較復(fù)雜,比較難以掌握,而且比較昂貴,比較小的公司無法承受。本文將介紹一個(gè)出色的免費(fèi)NIDS系統(tǒng)---snort,它基于GPL,作者是Martin Roesch。最新版本是1.70版。本文將介紹snort的技術(shù)特點(diǎn)及如何使用snort作為NIDS。

  2.SNORT的特點(diǎn)

  snort是一個(gè)強(qiáng)大的輕量級的網(wǎng)絡(luò)入侵檢測系統(tǒng)。它具有實(shí)時(shí)數(shù)據(jù)流量分析和日志IP網(wǎng)絡(luò)數(shù)據(jù)包的能力,能夠進(jìn)行協(xié)議分析,對內(nèi)容進(jìn)行搜索/匹配。它能夠檢測各種不同的攻擊方式,對攻擊進(jìn)行實(shí)時(shí)報(bào)警。此外,snort具有很好的擴(kuò)展性和可移植性。還有,這個(gè)軟件遵循通用公共許可證GPL,所以只要遵守GPL任何組織和個(gè)人都可以自由使用。

  snort是一個(gè)輕量級的入侵檢測系統(tǒng)

  snort雖然功能強(qiáng)大,但是其代碼極為簡潔、短小,其源代碼壓縮包只有大約110KB。

  snort的可移植性很好

  snort的跨平臺性能極佳,目前已經(jīng)支持Linux,Solaris,BSD,IRIX,-UX,WinY2K等系統(tǒng)。

  snort的功能非常強(qiáng)大

  snort具有實(shí)時(shí)流量分析和日志IP網(wǎng)絡(luò)數(shù)據(jù)包的能力。能夠快速地檢測網(wǎng)絡(luò)攻擊,及時(shí)地發(fā)出報(bào)警。snort的報(bào)警機(jī)制很豐富,例如:syslog、用戶指定的文件、一個(gè)UNIX套接字,還有使用SAMBA協(xié)議向Windows客戶程序發(fā)出WinPopup消息。利用XML插件,snort可以使用SNML(簡單網(wǎng)絡(luò)標(biāo)記語言,simple network markup language)把日志存放到一個(gè)文件或者適時(shí)報(bào)警。

  snort能夠進(jìn)行協(xié)議分析,內(nèi)容的搜索/匹配?,F(xiàn)在snort能夠分析的協(xié)議有TCP、UDP和ICMP。將來,可能提供對、ICRP、GRE、OSPF、RIP、IPX等協(xié)議的支持。它能夠檢測多種方式的攻擊和探測,例如:緩沖區(qū)溢出、秘密端口掃描、CGI攻擊、SMB探測、探測指紋特征的企圖等等。

  snort的日志格式既可以是tcpdump式的二進(jìn)制格式,也可以解碼成ASCII字符形式,更加便于用戶尤其是新手檢查。使用輸出插件,snort可以把日志記入數(shù)據(jù)庫,當(dāng)前支持的數(shù)據(jù)庫包括:Postgresql、MySQL、任何unixODBC數(shù)據(jù)庫,還有Oracle(對Oracle的支持目前處于測試階段)。

  使用TCP流插件(tcpstream),snort可以對TCP包進(jìn)行重組。snort能夠?qū)P包的內(nèi)容進(jìn)行匹配,但是對于TCP攻擊,如果攻擊者使用一個(gè)程序,每次發(fā)送只有一個(gè)字節(jié)的TCP包,完全可以避開snort的模式匹配。而被攻擊的主機(jī)的TCP協(xié)議棧會(huì)重組這些數(shù)據(jù),將其送給在目標(biāo)端口上監(jiān)聽的進(jìn)程,從而使攻擊包逃過snort的監(jiān)視。使用TCP流插件,可以對TCP包進(jìn)行緩沖,然后進(jìn)行匹配,使snort具備了對付上面這種攻擊的能力。

  使用spade(Statistical Packet Anomaly Detection Engine)插件,snort能夠報(bào)告非正常的可疑包,從而對端口掃描進(jìn)行有效的檢測。

  snort還有很強(qiáng)的系統(tǒng)防護(hù)能力。使用FlexResp功能,snort能夠主動(dòng)斷開惡意連接。

  擴(kuò)展性能較好,對于新的攻擊威脅反應(yīng)迅速

  作為一個(gè)輕量級的網(wǎng)絡(luò)入侵檢測系統(tǒng),snort有足夠的擴(kuò)展能力。它使用一種簡單的規(guī)則描述語言。最基本的規(guī)則只是包含四個(gè)個(gè)域:處理動(dòng)作、協(xié)議、方向、注意的端口。例如:

  log tcp any any -> 10.1.1.0/24 79 。

  還有一些功能選項(xiàng)可以組合使用,實(shí)現(xiàn)更為復(fù)雜的功能。將有一篇單獨(dú)的文章討論如何寫snort規(guī)則。用戶可以從http://www.snort.org得到其規(guī)則集。另外,著名的黑客Max Vision在http://www.whitehats.com提供在線的技術(shù)支持。

  snort支持插件,可以使用具有特定功能的報(bào)告、檢測子系統(tǒng)插件對其功能進(jìn)行擴(kuò)展。snort當(dāng)前支持的插件包括:數(shù)據(jù)庫日志輸出插件、碎數(shù)據(jù)包檢測插件、端口掃描檢測插件、HTTP URI normalization插件、XML插件等。

  snort的規(guī)則語言非常簡單,能夠?qū)π碌木W(wǎng)絡(luò)攻擊做出很快的反應(yīng)。發(fā)現(xiàn)新的攻擊后,可以很快根據(jù)Bugtraq郵件列表,找出特征碼,寫出檢測規(guī)則。因?yàn)槠湟?guī)則語言簡單,所以很容易上手,節(jié)省人員的培訓(xùn)費(fèi)用。

  遵循公共通用許可證GPL

  snort遵循GPL,所以任何、個(gè)人、組織都可以免費(fèi)使用它作為自己的NIDS。

  3.安裝

  如何獲得snort

  可以從snort的站點(diǎn)http://www.snort.org獲得其源代碼或者RPM包。使用源代碼安裝snort需要libpcap庫,可以從://ftp.ee.lbl.gov下載,

  安裝snort

  RPM包,可以使用下面的命令進(jìn)行安裝:

  bash#rpm -ihv --nodeps snort-1.7-1.i386.rpm

  源代碼:

  解壓libpcap包:

  bash#uncompress libpcap.tar.Z

  bash#tar xvf libpcap.tar

  編譯libpcap庫:

  bash#./configure

  bash#make

  解壓snort-1.7.0.tar.gz

  bash#tar zxvf snort-1.7.0.tar.gz

  進(jìn)入到其所在目錄,編譯snort:

  bash# ./configure --with-libpcap-includes=/path/to/your/libcap/headers

  bash# make

  bash# make install

  configure腳本還有一些選項(xiàng):

  --enable-smbalerts編譯SMB報(bào)警代碼;

  --enable-flexresp編譯Flexible Response代碼;

  --with-mysql=DIR支持mysql數(shù)據(jù)庫;

  --with-postgresql=DIR支持postsql數(shù)據(jù)庫;

  --with-odbc=DIR支持ODBC數(shù)據(jù)庫;

  --enable-openssl支持。

  可以根據(jù)自己的實(shí)際情況選擇這些選項(xiàng)。

  4.使用

  現(xiàn)在,snort已經(jīng)安裝完成。我們將在這一節(jié)討論如何使用snort。作為一個(gè)網(wǎng)絡(luò)入侵檢測的軟件,snort有三種用途:數(shù)據(jù)包嗅探器(packet sniffer)、數(shù)據(jù)包分析器(packet analyser)以及網(wǎng)絡(luò)入侵檢測系統(tǒng)。讓我們從最簡單的命令開始,輸入一個(gè)簡單的命令列出所有的命令行開關(guān)。

  bash# snort -?

  -*> Snort! <*-

  Version 1.7

  By Martin Roesch ([email protected], www.snort.org)

  USAGE: snort [-options]

  Options:

  -A 設(shè)置報(bào)警模式:

  fast、full、none(只是使用報(bào)警文件)、

  unsock(使用UNIX套接字記入日志,出于測試階段)

  -a 顯示ARP(Address Resolution Protocol,地址解析協(xié)議)包

  -b 日志文件使用tcpdump格式(更快)

  -c 使用規(guī)則文件rules

  -C 只使用字符方式打印負(fù)載信息(不使用hex方式)

  -d 復(fù)制應(yīng)用層

  -D 在后臺運(yùn)行snort(狀態(tài))

  -e 顯示第二層(數(shù)據(jù)鏈路層)包頭信息

  -F Read BPF filters from file

  -g 初始化完成后,使snort的gid為gname

  -h Home網(wǎng)絡(luò)為hn

  -i 在接口if上監(jiān)聽

  -I 把界面名加入到報(bào)警輸出界面。

  -l 設(shè)置目錄ld為日志目錄

  -M

  把SMB消息發(fā)送到文件wrkst列出的工作站中

  (Requires smbclient to be in PATH)

  -n 收到cnt個(gè)包后退出

  -N 關(guān)閉日志功能(警報(bào)功能仍然有效)

  -o 把規(guī)則測試順序修改為:Pass|Alert|Log

  -O 打亂被日志的IP地址

  -p 關(guān)閉混雜嗅探模式

  -P 設(shè)置復(fù)制的包的長度為snaplen(默認(rèn): 1514)

  -q 安靜模式。不輸出banner和狀態(tài)報(bào)告。

  -r 讀取并處理tcpdump文件tf(回放功能)

  -s 把所有警告信息記入syslog

  -S 設(shè)置規(guī)則文件中的n的值等于v的值

  -t

  初始化完成后Chroot到dir目錄

  -u 初始化完成后,把snort的uid設(shè)置為uname

  -v 設(shè)置冗余模式

  -V 顯示版本號

  -X 從鏈路層開始復(fù)制包的數(shù)據(jù)

  -? 顯示幫助信息

  <包過濾選項(xiàng)>基于BPF,可參考TCPDump

  作為嗅探器

  所謂的嗅探器模式就是snort從網(wǎng)絡(luò)上讀出數(shù)據(jù)包然后顯示在你的控制臺上。首先,我們從最基本的用法入手。如果你只要把包頭信息打印在屏幕上,只需要輸入下面的命令:

  ./snort -v

  使用這個(gè)命令將使snort只輸出IP和TCP/UDP/ICMP的包頭信息。如果你要看到應(yīng)用層的數(shù)據(jù),可以使用:

  ./snort -vd

  這條命令使snort在輸出包頭信息的同時(shí)顯示包的數(shù)據(jù)信息。如果你還要顯示數(shù)據(jù)鏈路層的信息,就使用下面的命令:

  ./snort -vde

  注意這些選項(xiàng)開關(guān)還可以分開寫或者任意結(jié)合在一塊。例如:下面的命令就和上面最后的一條命令等價(jià):

  ./snort -d -v -e

------分隔線----------------------------

推薦內(nèi)容