李杰
摘 要
信息技術(shù)日新月異的迅猛發(fā)展,使得社會(huì)對(duì)計(jì)算機(jī)及網(wǎng)絡(luò)的依賴越來越強(qiáng),人們對(duì)其的使用也日益頻繁,網(wǎng)絡(luò)中的數(shù)據(jù)越來越龐雜。為保證信息安全的同時(shí)又不降低數(shù)據(jù)的吞吐率,因此,人們對(duì)網(wǎng)絡(luò)安全產(chǎn)品的處理速度、效率和檢測準(zhǔn)確性上的要求越來越高。本文在分析和研究網(wǎng)絡(luò)安全及模型和入侵檢測技術(shù)的基礎(chǔ)上,選取最為常用的輕量級(jí)入侵檢測系統(tǒng)——Snort為具體的研究對(duì)象,通過對(duì)Snort系統(tǒng)規(guī)則的研究和改進(jìn),在保證系統(tǒng)安全性能不降低的前提下,實(shí)現(xiàn)系統(tǒng)入侵檢測能力和效率的提升。
【關(guān)鍵詞】Snort 入侵檢測 規(guī)則
計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展促使網(wǎng)絡(luò)信息成為社會(huì)發(fā)展的重要組成部分,但是由于計(jì)算機(jī)網(wǎng)絡(luò)的組成形式具有多樣性和開放性等特點(diǎn),使得網(wǎng)絡(luò)上傳輸?shù)男畔⑷輼O易受到各種人為攻擊,這就是所謂的入侵,即:潛在的、有預(yù)謀、未經(jīng)授權(quán)訪問信息、操作信息,致使系統(tǒng)不可靠或無法使用的企圖,具體的入侵行為分為外部滲透、內(nèi)部滲透和不法行為三種。
在國內(nèi),絕大多數(shù)計(jì)算機(jī)用戶的防護(hù)技術(shù)還停留在殺毒軟件、加密軟件、防火墻等,被動(dòng)保護(hù)技術(shù),而在現(xiàn)實(shí)中僅僅依賴防火墻等被動(dòng)保護(hù)方法建立起來的網(wǎng)絡(luò)往往是“外緊內(nèi)松”,從外面看似乎非常安全,但內(nèi)部的安全措施卻十分的不足,一旦防火墻被成功滲透,就會(huì)造成無法挽回的損失。入侵檢測系統(tǒng)(Intrusion Detection System, IDS),是一種主動(dòng)防御的工具,就是在入侵攻擊發(fā)生之前,檢測入侵行為,并利用報(bào)警與響應(yīng)系統(tǒng)消除入侵攻擊,這樣,就能在入侵發(fā)生之前,避免入侵事件造成的損失;另一方面,IDS在監(jiān)聽網(wǎng)絡(luò)時(shí)不會(huì)為網(wǎng)絡(luò)的性能帶來額外的負(fù)擔(dān),這樣就使得在保證網(wǎng)絡(luò)的傳輸速率的同時(shí),提高了網(wǎng)絡(luò)的安全性。目前最常用的IDS就是開源的Snort,但是其檢測能力依賴于其檢測規(guī)則的匹配速度和準(zhǔn)確性,如果規(guī)則匹配速度和效率不足,就會(huì)對(duì)系統(tǒng)性能造成影響或者發(fā)現(xiàn)不了入侵行為。針對(duì)Snort存在的問題,本文在對(duì)Snort檢測規(guī)則進(jìn)行解析的基礎(chǔ)上,對(duì)其進(jìn)行優(yōu)化和改進(jìn),以增強(qiáng)Snort的檢測效率。
1 相關(guān)工作
1.1 網(wǎng)絡(luò)安全
通常情況下,網(wǎng)絡(luò)入侵是威脅網(wǎng)絡(luò)安全的最重要一環(huán),針對(duì)日益嚴(yán)重和突出的網(wǎng)絡(luò)安全問題,人們提出了多種網(wǎng)絡(luò)安全模型以應(yīng)對(duì)新的網(wǎng)絡(luò)安全建設(shè)的環(huán)境,指導(dǎo)網(wǎng)絡(luò)安全工作的部署和管理。在眾多網(wǎng)絡(luò)安全模型中,最典型,也最廣泛為人接受和使用的是PPDR模型,PPDR模型是策略(Policy)、防護(hù)(Protection)、檢測(Detection)、響應(yīng)(Response)四個(gè)方面,PPDR四方面之間原關(guān)系如圖1所示。
模型中,安全策略處于核心的地位,其它三個(gè)方面圍繞著策略進(jìn)行;防護(hù)是保證系統(tǒng)安全的第一步,但具有一定的滯后性,只有在對(duì)相應(yīng)的入侵行為進(jìn)行檢測和響應(yīng)之后才能制定出具體的防護(hù)措施;檢測是一種主動(dòng)的防御,也是動(dòng)態(tài)響應(yīng)的依據(jù),其應(yīng)用的主要技術(shù)就是入侵檢測;響應(yīng)是在發(fā)現(xiàn)攻擊企圖或者攻擊行為之后,系統(tǒng)所實(shí)施的具體應(yīng)對(duì)措施。模型是一個(gè)螺旋上升的過程,經(jīng)過一個(gè)PDR循環(huán)后,安全防護(hù)的水平就應(yīng)該上升到一個(gè)新層次,具有更強(qiáng)的安全保障能力。入侵檢測系統(tǒng)則是對(duì)模型的具體的應(yīng)用和實(shí)施的載體,對(duì)模型的使用使得系統(tǒng)的安全性設(shè)計(jì)方面更具系統(tǒng)性和全面性。
1.2 入侵檢測技術(shù)
入侵就是對(duì)目標(biāo)主機(jī)信息的完整性、保密性、可用性、可控性企圖惡意破壞的一種行為,而入侵檢測(Intrusion Detection,ID)即對(duì)入侵行為發(fā)現(xiàn)和響應(yīng)的行為,它從計(jì)算機(jī)網(wǎng)絡(luò)或者計(jì)算機(jī)系統(tǒng)中的關(guān)鍵節(jié)點(diǎn)中收取信息并對(duì)之進(jìn)行分析,從而發(fā)現(xiàn)入侵行為。用于事入侵檢測的軟件與和硬件的組合就是入侵檢測系統(tǒng)。適當(dāng)?shù)腎DS能夠極大的簡化管理人員的安全方面的負(fù)擔(dān),保證網(wǎng)絡(luò)安全的運(yùn)行。
入侵檢測系統(tǒng)的通用結(jié)構(gòu)圖,IDS系統(tǒng)主要包含數(shù)據(jù)提取,數(shù)據(jù)分析和數(shù)據(jù)處理結(jié)果或響應(yīng)三個(gè)主要功能模塊。關(guān)于入侵檢測的技術(shù)模型,最早由Dorothy Denning提出,他提出的模型與具體系統(tǒng)和具體的輸入無關(guān),對(duì)此后的大多數(shù)實(shí)用系統(tǒng)都有很好的借鑒價(jià)值。通用的技術(shù)模型的結(jié)構(gòu),模型包含事件產(chǎn)生器,行為特征模塊和規(guī)則模塊三個(gè)主要功能部件。IDS可分為基于異常的檢測和基于誤用的檢測?;诋惓5娜肭謾z測的方法主要是建立在計(jì)算機(jī)系統(tǒng)中正常行為的模式庫;基于誤用的入侵檢測是建立系統(tǒng)的非正常操作的行為特征庫,通過監(jiān)測用戶或系統(tǒng)的行為,將收集到的數(shù)據(jù)與特征庫里的各種攻擊模式進(jìn)行比對(duì),如果能夠匹配,則判斷有攻擊。
2 Snort系統(tǒng)規(guī)則的解析與改進(jìn)
2.1 Snort系統(tǒng)介紹
Snort是用C語言編寫的,開源的網(wǎng)絡(luò)入侵檢測系統(tǒng),與其他昂貴且大型的商用檢測系統(tǒng)相比,Snort系統(tǒng)具有易安裝,易配置,規(guī)模小,功能強(qiáng),使用靈活等優(yōu)點(diǎn)。圖2描述了Snort的系統(tǒng)結(jié)構(gòu)及其模塊間的相互關(guān)系。
基于Snort的入侵檢測系統(tǒng)主要包含數(shù)據(jù)包解碼器、預(yù)處理器、檢測引擎、日志和報(bào)警系統(tǒng)、輸出模塊等五個(gè)主要部件。其中,數(shù)據(jù)包解碼器用于捕獲網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包并進(jìn)行協(xié)議解析,它為檢測引擎準(zhǔn)備最初的備檢數(shù)據(jù);預(yù)處理器處在包解碼器之后,用于分析網(wǎng)絡(luò)數(shù)據(jù)包,組裝數(shù)據(jù)分片,為下一步的檢測引擎做準(zhǔn)備,以提高Snort檢測的效率和精度;檢測引擎則是Snort系統(tǒng)的核心模塊,檢測引擎依據(jù)之前設(shè)定好的規(guī)則檢查數(shù)據(jù)包,圖3給出了檢測引擎的工作流程;報(bào)警和日志系統(tǒng)用于記錄行為或產(chǎn)生報(bào)警,輸出模塊則用于產(chǎn)生相關(guān)的配置文件或其他輸出結(jié)果。
2.2 Snort系統(tǒng)的規(guī)則的解析
Snort 檢測是基于規(guī)則的,而規(guī)則的定義是基于入侵特征的,所謂特征是數(shù)據(jù)包中數(shù)據(jù)的不同特點(diǎn),它主要被用來檢測攻擊行為。一條規(guī)則可以包含一個(gè)或者多個(gè)類型的入侵特征,因此,一條好的規(guī)則可以探測出多種入侵行為。標(biāo)準(zhǔn)的規(guī)則包含規(guī)則頭和規(guī)則選項(xiàng)兩個(gè)部分,規(guī)則頭又包含:行為、協(xié)議、地址、端口、方向、目的地址和目的端口等信息,例如:alert ip any any ->any any(msg:“IP Packetdetected”;)具體解析如表1所示。endprint
這條規(guī)則的具體含義是:將規(guī)則(msg的內(nèi)容)用在所有的ip包上,如果ip包內(nèi)的數(shù)據(jù)與規(guī)則庫中的條件相匹配,則報(bào)警。
在基于網(wǎng)絡(luò)的入侵檢測模式下,Snort規(guī)則解析的流程過程為:(1)從規(guī)則文件中逐條讀取規(guī)則;(2)解析規(guī)則,并用規(guī)則語法將其表示出來;(3)在內(nèi)存中組織規(guī)則,建立起好的規(guī)則語法樹。
2.3 Snort系統(tǒng)的規(guī)則的改進(jìn)
Snort系統(tǒng)中最核心的部分是規(guī)則檢測模塊,因此,若要實(shí)現(xiàn)Snort系統(tǒng)的整體性能的提升,就必須提高規(guī)則的檢測速度,為此,我們在Snort中使用二維列表遞歸檢索(RTN和 OTN)和函數(shù)指針列表(即“三維列表”)等方法來實(shí)現(xiàn)其規(guī)則匹配的速度提升。
由于Snort系統(tǒng)的開源性,它擁有一個(gè)非常龐大的規(guī)則特征庫,且這個(gè)特征庫在不斷的增長中,因此,匹配過程需要耗費(fèi)很多的時(shí)間和資源,本文針對(duì)每個(gè)數(shù)據(jù)包都要與特征庫進(jìn)行比對(duì)的缺點(diǎn),給出一種優(yōu)化的方法,此方法主要采用分治法的思想,即:將Snort的規(guī)則按照一定的標(biāo)準(zhǔn)進(jìn)行劃分,分成若干相互獨(dú)立的子集,若規(guī)模依然龐大則繼續(xù)劃分,直到劃分到適當(dāng)?shù)某潭?,通過減小了每個(gè)特征庫的規(guī)模大小來減少每個(gè)數(shù)據(jù)包匹配的次數(shù),從面達(dá)到提高效率和速度的目的。優(yōu)化后的規(guī)則特征集必須具備兩個(gè)條件,即:劃分出來的規(guī)則集必須適當(dāng)?shù)拇笮∏倚首罡撸粍澐殖鰜淼囊?guī)則集必須相互獨(dú)立。滿足這兩個(gè)條件,就能保證每個(gè)數(shù)據(jù)包僅需要對(duì)一個(gè)劃分的規(guī)則子集進(jìn)行比對(duì),從而實(shí)現(xiàn)速度和效率的提升。
在規(guī)則集劃分的初始階段,需要根據(jù)不同的需要選擇一個(gè)確定的規(guī)則參數(shù),作為唯一的劃分依據(jù)對(duì)規(guī)則集進(jìn)行劃分,比如端口或者規(guī)則選項(xiàng)等。這樣就能夠?qū)崿F(xiàn)將每個(gè)數(shù)據(jù)包根據(jù)其自身的特性劃分到相應(yīng)的規(guī)則集中,實(shí)現(xiàn)最小的匹配次數(shù)。例如,將協(xié)議作為劃分的依據(jù),將規(guī)則集劃分成TCP/UDP集,ICMP集和IP集,從而可將不同的數(shù)據(jù)包劃歸到相應(yīng)的子集中,進(jìn)行匹配,以減少匹配規(guī)模,規(guī)則特征集改進(jìn)后的整體結(jié)構(gòu)圖如圖6所示。
經(jīng)過規(guī)則特征庫的優(yōu)化處理劃分之后,當(dāng)Snort系統(tǒng)運(yùn)行時(shí),系統(tǒng)自動(dòng)為每個(gè)收到的數(shù)據(jù)包,根據(jù)其自身包頭中的信息屬性將其放置相應(yīng)的規(guī)則子集中,使用經(jīng)過改進(jìn)劃分的規(guī)則集,能夠大范圍的降低數(shù)據(jù)的匹配次數(shù),從而帶來整體檢測處理時(shí)間的減少和Snort系統(tǒng)性能的提升。
3 總結(jié)
傳統(tǒng)的網(wǎng)絡(luò)安防技術(shù),如:加密軟件、殺毒軟件、防火墻等,只能提供被動(dòng)防護(hù),以入侵檢測為代表的安全技術(shù),能夠主動(dòng)的發(fā)現(xiàn)攻擊,提供實(shí)時(shí)而又全面的防護(hù),已經(jīng)成為最為常見的網(wǎng)絡(luò)安全產(chǎn)品之一,本文以Snort系統(tǒng)為具體研究對(duì)象來對(duì)IDS進(jìn)行研究,為應(yīng)對(duì)越來越多的網(wǎng)絡(luò)數(shù)據(jù)的問題,文章對(duì)最為影響Snort系統(tǒng)吞吐率和效率的匹配規(guī)則進(jìn)行解析和改進(jìn),得到了一個(gè)更優(yōu)的規(guī)則模型,以提高Snort系統(tǒng)的檢測速度、效率和準(zhǔn)確度。
作者單位
云南省標(biāo)準(zhǔn)化研究院 云南省昆明市 650228endprint
這條規(guī)則的具體含義是:將規(guī)則(msg的內(nèi)容)用在所有的ip包上,如果ip包內(nèi)的數(shù)據(jù)與規(guī)則庫中的條件相匹配,則報(bào)警。
在基于網(wǎng)絡(luò)的入侵檢測模式下,Snort規(guī)則解析的流程過程為:(1)從規(guī)則文件中逐條讀取規(guī)則;(2)解析規(guī)則,并用規(guī)則語法將其表示出來;(3)在內(nèi)存中組織規(guī)則,建立起好的規(guī)則語法樹。
2.3 Snort系統(tǒng)的規(guī)則的改進(jìn)
Snort系統(tǒng)中最核心的部分是規(guī)則檢測模塊,因此,若要實(shí)現(xiàn)Snort系統(tǒng)的整體性能的提升,就必須提高規(guī)則的檢測速度,為此,我們在Snort中使用二維列表遞歸檢索(RTN和 OTN)和函數(shù)指針列表(即“三維列表”)等方法來實(shí)現(xiàn)其規(guī)則匹配的速度提升。
由于Snort系統(tǒng)的開源性,它擁有一個(gè)非常龐大的規(guī)則特征庫,且這個(gè)特征庫在不斷的增長中,因此,匹配過程需要耗費(fèi)很多的時(shí)間和資源,本文針對(duì)每個(gè)數(shù)據(jù)包都要與特征庫進(jìn)行比對(duì)的缺點(diǎn),給出一種優(yōu)化的方法,此方法主要采用分治法的思想,即:將Snort的規(guī)則按照一定的標(biāo)準(zhǔn)進(jìn)行劃分,分成若干相互獨(dú)立的子集,若規(guī)模依然龐大則繼續(xù)劃分,直到劃分到適當(dāng)?shù)某潭龋ㄟ^減小了每個(gè)特征庫的規(guī)模大小來減少每個(gè)數(shù)據(jù)包匹配的次數(shù),從面達(dá)到提高效率和速度的目的。優(yōu)化后的規(guī)則特征集必須具備兩個(gè)條件,即:劃分出來的規(guī)則集必須適當(dāng)?shù)拇笮∏倚首罡?;劃分出來的?guī)則集必須相互獨(dú)立。滿足這兩個(gè)條件,就能保證每個(gè)數(shù)據(jù)包僅需要對(duì)一個(gè)劃分的規(guī)則子集進(jìn)行比對(duì),從而實(shí)現(xiàn)速度和效率的提升。
在規(guī)則集劃分的初始階段,需要根據(jù)不同的需要選擇一個(gè)確定的規(guī)則參數(shù),作為唯一的劃分依據(jù)對(duì)規(guī)則集進(jìn)行劃分,比如端口或者規(guī)則選項(xiàng)等。這樣就能夠?qū)崿F(xiàn)將每個(gè)數(shù)據(jù)包根據(jù)其自身的特性劃分到相應(yīng)的規(guī)則集中,實(shí)現(xiàn)最小的匹配次數(shù)。例如,將協(xié)議作為劃分的依據(jù),將規(guī)則集劃分成TCP/UDP集,ICMP集和IP集,從而可將不同的數(shù)據(jù)包劃歸到相應(yīng)的子集中,進(jìn)行匹配,以減少匹配規(guī)模,規(guī)則特征集改進(jìn)后的整體結(jié)構(gòu)圖如圖6所示。
經(jīng)過規(guī)則特征庫的優(yōu)化處理劃分之后,當(dāng)Snort系統(tǒng)運(yùn)行時(shí),系統(tǒng)自動(dòng)為每個(gè)收到的數(shù)據(jù)包,根據(jù)其自身包頭中的信息屬性將其放置相應(yīng)的規(guī)則子集中,使用經(jīng)過改進(jìn)劃分的規(guī)則集,能夠大范圍的降低數(shù)據(jù)的匹配次數(shù),從而帶來整體檢測處理時(shí)間的減少和Snort系統(tǒng)性能的提升。
3 總結(jié)
傳統(tǒng)的網(wǎng)絡(luò)安防技術(shù),如:加密軟件、殺毒軟件、防火墻等,只能提供被動(dòng)防護(hù),以入侵檢測為代表的安全技術(shù),能夠主動(dòng)的發(fā)現(xiàn)攻擊,提供實(shí)時(shí)而又全面的防護(hù),已經(jīng)成為最為常見的網(wǎng)絡(luò)安全產(chǎn)品之一,本文以Snort系統(tǒng)為具體研究對(duì)象來對(duì)IDS進(jìn)行研究,為應(yīng)對(duì)越來越多的網(wǎng)絡(luò)數(shù)據(jù)的問題,文章對(duì)最為影響Snort系統(tǒng)吞吐率和效率的匹配規(guī)則進(jìn)行解析和改進(jìn),得到了一個(gè)更優(yōu)的規(guī)則模型,以提高Snort系統(tǒng)的檢測速度、效率和準(zhǔn)確度。
作者單位
云南省標(biāo)準(zhǔn)化研究院 云南省昆明市 650228endprint
這條規(guī)則的具體含義是:將規(guī)則(msg的內(nèi)容)用在所有的ip包上,如果ip包內(nèi)的數(shù)據(jù)與規(guī)則庫中的條件相匹配,則報(bào)警。
在基于網(wǎng)絡(luò)的入侵檢測模式下,Snort規(guī)則解析的流程過程為:(1)從規(guī)則文件中逐條讀取規(guī)則;(2)解析規(guī)則,并用規(guī)則語法將其表示出來;(3)在內(nèi)存中組織規(guī)則,建立起好的規(guī)則語法樹。
2.3 Snort系統(tǒng)的規(guī)則的改進(jìn)
Snort系統(tǒng)中最核心的部分是規(guī)則檢測模塊,因此,若要實(shí)現(xiàn)Snort系統(tǒng)的整體性能的提升,就必須提高規(guī)則的檢測速度,為此,我們在Snort中使用二維列表遞歸檢索(RTN和 OTN)和函數(shù)指針列表(即“三維列表”)等方法來實(shí)現(xiàn)其規(guī)則匹配的速度提升。
由于Snort系統(tǒng)的開源性,它擁有一個(gè)非常龐大的規(guī)則特征庫,且這個(gè)特征庫在不斷的增長中,因此,匹配過程需要耗費(fèi)很多的時(shí)間和資源,本文針對(duì)每個(gè)數(shù)據(jù)包都要與特征庫進(jìn)行比對(duì)的缺點(diǎn),給出一種優(yōu)化的方法,此方法主要采用分治法的思想,即:將Snort的規(guī)則按照一定的標(biāo)準(zhǔn)進(jìn)行劃分,分成若干相互獨(dú)立的子集,若規(guī)模依然龐大則繼續(xù)劃分,直到劃分到適當(dāng)?shù)某潭?,通過減小了每個(gè)特征庫的規(guī)模大小來減少每個(gè)數(shù)據(jù)包匹配的次數(shù),從面達(dá)到提高效率和速度的目的。優(yōu)化后的規(guī)則特征集必須具備兩個(gè)條件,即:劃分出來的規(guī)則集必須適當(dāng)?shù)拇笮∏倚首罡?;劃分出來的?guī)則集必須相互獨(dú)立。滿足這兩個(gè)條件,就能保證每個(gè)數(shù)據(jù)包僅需要對(duì)一個(gè)劃分的規(guī)則子集進(jìn)行比對(duì),從而實(shí)現(xiàn)速度和效率的提升。
在規(guī)則集劃分的初始階段,需要根據(jù)不同的需要選擇一個(gè)確定的規(guī)則參數(shù),作為唯一的劃分依據(jù)對(duì)規(guī)則集進(jìn)行劃分,比如端口或者規(guī)則選項(xiàng)等。這樣就能夠?qū)崿F(xiàn)將每個(gè)數(shù)據(jù)包根據(jù)其自身的特性劃分到相應(yīng)的規(guī)則集中,實(shí)現(xiàn)最小的匹配次數(shù)。例如,將協(xié)議作為劃分的依據(jù),將規(guī)則集劃分成TCP/UDP集,ICMP集和IP集,從而可將不同的數(shù)據(jù)包劃歸到相應(yīng)的子集中,進(jìn)行匹配,以減少匹配規(guī)模,規(guī)則特征集改進(jìn)后的整體結(jié)構(gòu)圖如圖6所示。
經(jīng)過規(guī)則特征庫的優(yōu)化處理劃分之后,當(dāng)Snort系統(tǒng)運(yùn)行時(shí),系統(tǒng)自動(dòng)為每個(gè)收到的數(shù)據(jù)包,根據(jù)其自身包頭中的信息屬性將其放置相應(yīng)的規(guī)則子集中,使用經(jīng)過改進(jìn)劃分的規(guī)則集,能夠大范圍的降低數(shù)據(jù)的匹配次數(shù),從而帶來整體檢測處理時(shí)間的減少和Snort系統(tǒng)性能的提升。
3 總結(jié)
傳統(tǒng)的網(wǎng)絡(luò)安防技術(shù),如:加密軟件、殺毒軟件、防火墻等,只能提供被動(dòng)防護(hù),以入侵檢測為代表的安全技術(shù),能夠主動(dòng)的發(fā)現(xiàn)攻擊,提供實(shí)時(shí)而又全面的防護(hù),已經(jīng)成為最為常見的網(wǎng)絡(luò)安全產(chǎn)品之一,本文以Snort系統(tǒng)為具體研究對(duì)象來對(duì)IDS進(jìn)行研究,為應(yīng)對(duì)越來越多的網(wǎng)絡(luò)數(shù)據(jù)的問題,文章對(duì)最為影響Snort系統(tǒng)吞吐率和效率的匹配規(guī)則進(jìn)行解析和改進(jìn),得到了一個(gè)更優(yōu)的規(guī)則模型,以提高Snort系統(tǒng)的檢測速度、效率和準(zhǔn)確度。
作者單位
云南省標(biāo)準(zhǔn)化研究院 云南省昆明市 650228endprint