葉長青 常李艷
摘要:近年來,各種網絡攻擊層出不窮,網絡安全成為重要問題。入侵檢測技術是一種準確性高、誤報率低安全保護技術,也是網絡安全研究中的一個重要課題。該文研究和比較了一些入侵檢測系統(tǒng)的原理,嘗試了將模式匹配、協(xié)議分析、數據挖掘等這幾種入侵檢測方法進行結合,提高了準確性,減少了漏報率和誤報率。該文接著研究了基于網絡的入侵檢測系統(tǒng)Snort,學習研究其規(guī)則,且在Windows下搭建了檢測平臺加以測試。
關鍵詞: 入侵檢測;Snort;網絡安全
中圖分類號:TP393? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)35-0081-02
開放科學(資源服務)標識碼(OSID):
1 網絡安全的主要威脅
網絡威脅主要是利用操作系統(tǒng)、應用軟件自身存在的問題或配置以及管理等過程中的安全漏洞,穿透或繞過安全措施,達到非法訪問乃至控制系統(tǒng)的目的。當前,網絡和計算機系統(tǒng)所面臨的主要安全威脅包括病毒、木馬、拒絕服務攻擊、緩沖區(qū)溢出攻擊、掃描、嗅探、IP欺騙、口令破解。
2 入侵檢測技術
入侵主要是指對計算機系統(tǒng)資源的非授權操作,入侵者為了自己的目的會對系統(tǒng)進行破壞或盜竊信息,引起系統(tǒng)無法正常工作甚至崩潰、泄露重要數據等嚴重后果。從入侵的渠道看,入侵者可以分為外部入侵和內部入侵兩種類型。
入侵檢測技術是一種事后方案,它對用戶即時產生的對于系統(tǒng)使用的請求進行實時監(jiān)控,通過采集用戶的行為和狀態(tài)特征,通過已經定義的一系列規(guī)則來相匹配,符合規(guī)則的判定為非法行為。
入侵檢測的過程一般分為信息的收集、分析以及行為處理。入侵檢測方法是入侵檢測領域中起到承前啟后作用的關鍵環(huán)節(jié),分為異常檢測和誤用檢測。異常檢測是指把用戶的行為和正常用戶行為進行對比,以確定當前用戶的行為是否合法;誤用檢測是指首先建立已知攻擊的簽名,然后檢測實時用戶的行為是否符合這些攻擊簽名,來判斷是否有非法行為。
3 Snort入侵檢測系統(tǒng)介紹
3.1 Snort基本結構簡介
Snort是一個開源的網絡入侵檢測系統(tǒng),其由幾大軟件模塊組成,包括預處理和檢測插件、報警輸出插件等。Snort可以提供本研究所需的Protocol分析、內容查找和匹配功能,可以用其來檢測各種攻擊。Snort的基本工作原理可以用如圖1來表示。
3.2 Snort規(guī)則
3.2.1 規(guī)則的組成
一條Snort規(guī)則由規(guī)則頭部與規(guī)則體組成。規(guī)則頭用來表示哪些動作和行為,以及數據包匹配的一些條件。規(guī)則體(規(guī)則選項)則是真正的特征,并分配了該報警響應優(yōu)先權。規(guī)則選項通常包含一個報警消息以及包的哪個部分被用來產生該消息。
3.2.2 規(guī)則頭
Snort規(guī)則頭分動作、協(xié)議以及地址端口三個信息,如圖2所示。
動作表示探測到符合規(guī)則描述的行為和特征時,將采取的應對行為。Snort有5個預定義的動作,另外可以進行自定義。5種Snort預置的規(guī)則分別是:
Pass:告訴Snort不檢查該包,加快Snort的操作速度;Log:把該包的信息記錄到日志;Alert:產生警告信息;Activate:產生警報然后激活其他規(guī)則進行進一步的檢測;Dynamic:被其他用activate動作的規(guī)則調用,正常情況下,不用來檢測一個包。
協(xié)議是指Snort可以應用的網絡層協(xié)議。Snort可以探測一下的協(xié)議:IP、ICMP、TCP、UDP,它們幾乎囊括了TCP/IP的任何層的協(xié)議。
3.2.3 規(guī)則體
Snort規(guī)則體不是必須的內容,它們的作用是在必要時給探測引擎提供進一步豐富的i西南西。規(guī)則選項組成了Snort入侵檢測引擎的核心,既易用又強大、靈活。當各個選項值都滿足時才會進行動作。一個選項采用Key-Value的寫法,各個Key-Value之間用冒號分隔。
Snort中一共大概有42個規(guī)則選項關鍵字,大致可以分為7大類:1)規(guī)則content選項;2)IP選項集合;3)TCP選項集合;4)ICMP選項集合;5)Snort響應選項集合;6)Meta選項關鍵字;7)其他。
4 基于Snort網絡入侵檢測系統(tǒng)實驗
4.1 所需的軟件
Snort_2.8.3.1:開源的基于網絡的入侵檢測系統(tǒng);Winpcap_4.12:Windows下的網絡驅動程序;AppServ-win32-2.5.10.exe:一款集成了phpMyAdmin2.10.3+ +Apache2.2 + MySql5.0.51b+PHP5的實用包;Jpgraph_2.2.3:PHP下的圖形庫;ACID_0.9.6b23.tar.gz:用戶使用網頁管理控制臺界面來進行Snort系統(tǒng)的使用。
4.2 Snort的安裝和配置
1)AppServ-win32-2.5.10.exe的安裝與配置,并在apache服務器中安裝好PHP模塊。
2)在MySQL中建立Snort運行所必需的Snort庫和Snort_archive庫。
3)Winpcap的安裝和Snort的安裝,并在mysql中進行相應的數據庫配置。
4)進行Snort的一些配置,具體編輯\Snort\etc\snort.conf 文件。
5)安裝adodb、jpgraph和ACID,并修改數據庫中的相應配置項的值。
安裝完成后,重啟apache和mysql服務器即可。
5 入侵檢測測試
5.1 實現(xiàn)快速嗅探
在命令行輸入命令snort -dev -l c:\snort\log,則將在屏幕上顯示IP/UDP/ICMP等網絡數據包信息、應用層信息、數據鏈路層信息,同時將它們記錄到LOG文件中。如圖3所示,在LOG文件夾下產生了日志文件snort.log,其中記錄了所有的二進制網絡數據。
5.2 Snort作為NIDS,實現(xiàn)報警
輸入命令snort -s -l c:\snort\log -c c:\snort\etc\snort.conf 以NIDS方式啟動Snort,并將報日志警報記錄到syslog文件中。默認情況下,Snort以ASCII格式記錄日志,使用full報警機制,-s使日志報警記錄到syslog文件中,-c用來指定snort.conf位置,-l設置日志輸出目錄。運行Snort的同時,打開ACID,即可實現(xiàn)實時監(jiān)控,部分效果如圖4。
6 小結
入侵檢測通過監(jiān)控系統(tǒng)的狀態(tài)、行為以及系統(tǒng)的使用情況來檢測系統(tǒng)用戶的越權使用以及系統(tǒng)外部的入侵者。本論文首先介紹了入侵檢測的概述并深入研究了幾種入侵檢測方法;然后學習研究了Snort的規(guī)則、特征、使用等,并在Windows下搭建了實驗平臺;最后利用Snort實現(xiàn)入侵方法的融合,達到了減少誤報率、漏報率的效果。
參考文獻:
[1] 鮮永菊.入侵檢測[M].西安:西安電子科技大學出版社,2009.
[2] 楊義先,鈕心忻.入侵檢測理論與技術[M].北京:高等教育出版社,2006.
[3] 羅守山.入侵檢測[M].北京:北京郵電大學出版社, 2003.
[4] 潘振業(yè).基于模式匹配和Protocol分析的入侵檢測系統(tǒng)設計[D].西安:西安電子科技大學,2005.
[5] 陳偉,周繼軍,許德武,等. Snort輕量級入侵檢測系統(tǒng)全攻略[D].北京:北京郵電大學,2009.
[6] 謝希仁.計算機網絡[M].北京:電子工業(yè)出版社,2013.
[7] 肖遙.網站入侵與腳本攻防修煉[M].北京:電子工業(yè)出版社,2008.
【通聯(lián)編輯:代影】