[摘 要]校園網是學校與學生以及校外信息的一個共享平臺,校園網的信息安全非常重要,作為網絡安全的一個重要組成部分,網絡入侵檢測系統也越來越顯示出其重要性。Snort就是網絡入侵檢測系統中的一員。
[關鍵詞]Snort;入侵檢測;網絡安全
[中圖分類號]TP393.18 [文獻標識碼]A [文章編號]1005-6432(2010)14-0151-01
1 寬帶高速網絡的實時入侵檢測技術
大量高速網絡技術如ATM、千兆以太網、G比特光纖網等在近年陸續出現,在這樣的背景下,各種寬帶接入方式層出不窮。其中,很多已經得到了廣泛的應用,如何實現高速網絡下的實時入侵檢測已經成為一個現實的問題。目前,國外市場已經推出了幾種基于千兆以太網環境的入侵檢測產品,但是其性能指標還遠未成熟。
入侵檢測需要考慮兩個方面的問題。首先,入侵檢測系統的軟件結構和算法需要重新設計,以適應高速網絡的新環境,重點是提高運行速度和效率。開發與設計相適應的專用硬件結構,加上配合設計的專用軟件是解決這方面問題的一個途徑。其次,隨著高速網絡技術的不斷進步和成熟,新的高速網絡協議的設計也成為未來的一個發展趨勢,如對TCP/IP協議的重新設計等。所以,現有的入侵檢測系統如何適應和利用未來新的網絡協議結構是一個全新的問題。
Snort是一個以開放源代碼(Open Source)形式發行的網絡入侵檢測系統,由Martin Roesch編寫,并由遍布世界各地的眾多程序員共同維護和升級,Snort是一個基于Winpcap的數據包嗅探器,并可作為一個輕量級的網絡入侵檢測系統。所謂“輕量級”是指在檢測時盡可能低地影響網絡的正常操作。它的工作原理是:在共享的網絡上檢測原始的網絡傳輸數據,通過分析截獲的數據包來檢測是否發生網絡入侵。它采用基于規則的工作方式,對數據包內容進行規則匹配來檢測多種不同的入侵行為和探測活動,例如緩存溢出、隱蔽端口掃描、CGI(Common Gateway Interface)攻擊、SMB(Server Message Block)探測等。Snort具備實時警報功能,可以發送警報消息到系統日志文件、SMB消息或者是指定的報警文件中。系統采用命令行開關選項的形式進行配置。系統檢測引擎采用了一種簡單的規則語言進行編程,用于描述對每一個數據包所進行的測試和對應的可能響應動作。
2 Snort的系統結構
Snort系統由三個子系統構成:協議解析器、檢測引擎和日志/警報子系統。
2.1 協議解析器
解析引擎的全部工作都是圍繞著網絡協議棧中的各層協議定義展開的,包括了數據鏈路層協議和TCP/IP等層協議的定義。解析引擎中的每個子例程使用事先定義好的數據結構,從原始網絡流量數據中解析出協議信息。這些子例程按照網絡協議棧自下而上的順序調用,從數據鏈路層到傳輸層,直到應用層協議結束。在協議解析的過程中,強調執行的速度,所完成的主要功能是形成協議處理鏈表。解析出IP地址、端口號和數據包負載(其中包含了與攻擊相關的內容)等信息,以便檢測引擎執行下一步的分析工作。Snort提供對多種底層協議的支持,如Ethernet、SLIP(Serial Line IP,串行線路IP)、PPP(Point to Point Protocol,點到點協議)等。
2.2 檢測引擎(規則解析)
Snort系統將其檢測規則組織成一個二維的鏈表結構,主要分為兩個部分:鏈表頭(Chain Headers)和鏈表選項(Chain Option)。在鏈表頭中包含的是多個規則中的共有屬性,而不同的檢測屬性選項則包含在不同的鏈表選項中。例如,如果在一個規則文件中指定了45條檢測CGI探測活動的規則,而它們都具有相同的源/目的IP地址以及端口號。為了加快檢測的速度,這些共同的屬性就會壓縮到一個單獨的鏈表頭中,而每一個不同的檢測屬性將在與表頭相鏈接的各個鏈表選項結構中保存。
2.3 日志/警報子系統
日志/警報子系統在運行時使用命令行開關選項進行選擇。目前,可用3種日志模式和5種警報模式。日志模式可以設定為3種:關閉、以可讀格式記錄數據包和以二進制格式記錄數據包。以可讀格式記錄數據包的模式有利于快速分析,而以二進制格式記錄數據包的模式能夠提高系統運行性能。為了獲得更高的性能,可以關閉日志功能,只保留警報功能。
[作者簡介]高晨光(1975—),男,牡丹江醫學院衛生經濟管理學院,講師,研究生,研究方向:計算機科學與技術、軟件工程等。