楊 陽,趙洪宋,岳雨儉,杜 源
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
隨著計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用范圍的不斷擴(kuò)大,網(wǎng)絡(luò)中的不安定因素也越來越凸顯,尤其是網(wǎng)絡(luò)安全問題,已越來越受到人們的重視。計(jì)算機(jī)網(wǎng)絡(luò)從出現(xiàn)到現(xiàn)在,發(fā)展成果是令人矚目的,與之相伴的,網(wǎng)絡(luò)中的攻擊手段也層出不窮,越來越呈現(xiàn)多樣化[1]。所以,單純的防火墻的預(yù)防性安全策略對(duì)抵御網(wǎng)絡(luò)之中的威脅與入侵已愈發(fā)無力,不能滿足人們對(duì)網(wǎng)絡(luò)安全防護(hù)的需求,因此,入侵檢測系統(tǒng)(Intrusion Detection System,IDS[2])就應(yīng)運(yùn)而生了[3-4]。目前,入侵檢測系統(tǒng)按檢測數(shù)據(jù)的來源分類主要有基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(Network-based IDS,NIDS)和基于主機(jī)的入侵檢測系統(tǒng)(Host-based IDS,HIDS)。而入侵檢測的方法主要有異常入侵檢測(Anomaly Detection)和誤用入侵檢測(Misuse Detection)兩種[5-6]。
現(xiàn)有的網(wǎng)絡(luò)入侵檢測系統(tǒng)就檢測方法來看主要分為以下3類。
(1)模式匹配檢測法[7-8]。此種模式下,系統(tǒng)的攻擊特征數(shù)據(jù)庫中存儲(chǔ)有已知攻擊的特征規(guī)則。當(dāng)采集到數(shù)據(jù)包時(shí),系統(tǒng)將數(shù)據(jù)庫中的各個(gè)規(guī)則讀出,并依次用規(guī)則中包含的特征串與目標(biāo)數(shù)據(jù)包一一進(jìn)行匹配,當(dāng)所有特征串都匹配成功,即該數(shù)據(jù)包中包含這一規(guī)則中所有的特征串時(shí),認(rèn)為該數(shù)據(jù)包包含這個(gè)規(guī)則描述的攻擊行為,觸發(fā)對(duì)應(yīng)的入侵事件。
(2)簡單協(xié)議分析(Simple Protocol Analysis,SPA)檢測法[9]中包含一個(gè)協(xié)議棧模擬分析器,在對(duì)數(shù)據(jù)包進(jìn)行檢測之前先對(duì)其進(jìn)行協(xié)議分析,然后采用檢測規(guī)則對(duì)分析后的單個(gè)數(shù)據(jù)包中的協(xié)議首部和負(fù)載數(shù)據(jù)部分進(jìn)行檢測。其檢測規(guī)則根據(jù)協(xié)議標(biāo)準(zhǔn)和已知的攻擊特征構(gòu)造,存儲(chǔ)于系統(tǒng)內(nèi)部或數(shù)據(jù)庫中。簡單協(xié)議分析具體區(qū)域的檢測方法與前面提到的模式匹配模型中的類似,但是其大大減小了檢測區(qū)域,從而提高了檢測效率。
(3)復(fù)雜協(xié)議分析檢測法。其實(shí)現(xiàn)方式與簡單協(xié)議分析檢測法很類似,但與之不同的是,復(fù)雜協(xié)議分析檢測在系統(tǒng)中為不同的協(xié)議增加了不同的數(shù)據(jù)結(jié)構(gòu),用以存儲(chǔ)之前若干個(gè)數(shù)據(jù)包的分析信息,從而解決簡單協(xié)議分析不能實(shí)現(xiàn)多數(shù)據(jù)包綜合檢測的問題。
然而目前基于協(xié)議分析的網(wǎng)絡(luò)入侵檢測系統(tǒng)普遍存在以下缺點(diǎn)(以著名的網(wǎng)絡(luò)入侵檢測系統(tǒng)Snort[10]為例):
(1)模式匹配規(guī)則表示不友好,在沒有特定知識(shí)背景的情況下很難看懂,加大了其與普通用戶之間的距離,減小了入侵檢測系統(tǒng)的受眾面。
(2)模式匹配規(guī)則內(nèi)部各個(gè)子規(guī)則中的邏輯關(guān)系單一,只能是“與”關(guān)系,削弱了檢測能力。
(3)由于原因(1),用戶難以自定義規(guī)則。
(4)簡單協(xié)議檢測方法對(duì)含有狀態(tài)的協(xié)議(如TCP)的某些入侵類型難以實(shí)現(xiàn)。
(5)某些復(fù)雜的入侵行為無法用簡單的規(guī)則描述。
(6)檢測所有數(shù)據(jù)包帶來的性能開銷。
綜合以上問題,在文獻(xiàn)[11]的基礎(chǔ)上,本文提出了一種改進(jìn)的NIDS系統(tǒng)設(shè)計(jì)。
文獻(xiàn)[11]主要介紹了“下一代網(wǎng)絡(luò)入侵檢測系統(tǒng)的研究和實(shí)現(xiàn)”,該系統(tǒng)模型分為3個(gè)模塊:Bottom Module、Middle Module和 Top Module。其中:Bottom Module實(shí)現(xiàn)信息的采集功能,Middle Module實(shí)現(xiàn)數(shù)據(jù)包的協(xié)議分析和檢測,Top Module實(shí)現(xiàn)響應(yīng)和數(shù)據(jù)存儲(chǔ)的功能。
Middle Module是該系統(tǒng)的核心,文獻(xiàn)[11]中只是簡述了數(shù)據(jù)包的分析流程,并未詳述其檢測流程。而且在檢測時(shí)采用的是單一的Pattern Matching方式,也就是模式匹配法,對(duì)許多包含狀態(tài)的攻擊方式無法檢測。
總之,該系統(tǒng)有很大的拓展和改進(jìn)空間。
該系統(tǒng)主要由信息采集模塊、信息處理模塊和響應(yīng)模塊組成,各個(gè)模塊的功能介紹如下。
(1)信息采集模塊。
實(shí)現(xiàn)從數(shù)據(jù)鏈路層或*.Cap文件中得到數(shù)據(jù)包并存入“處理數(shù)據(jù)包緩存”中,功能主要依靠SharpP-cap[12]提供的函數(shù)接口來實(shí)現(xiàn)。
(2)信息處理模塊。
此模塊中包含2個(gè)子模塊:協(xié)議分析模塊和數(shù)據(jù)包檢測模塊。
①協(xié)議分析模塊。
完成對(duì)數(shù)據(jù)包的協(xié)議棧模擬分析工作,獲取相關(guān)的協(xié)議屬性值以供檢測模塊使用。
②數(shù)據(jù)包檢測模塊。
使用內(nèi)部規(guī)則和外部規(guī)則對(duì)分析后的數(shù)據(jù)進(jìn)行入侵檢測,包含模式匹配檢測、簡單協(xié)議分析檢測和復(fù)雜協(xié)議分析檢測。一旦檢測到入侵,則生成對(duì)應(yīng)的入侵事件并存入緩存,供響應(yīng)模塊使用。
(3)響應(yīng)模塊。
對(duì)檢測出的入侵事件做出響應(yīng),比如告警、彈窗、重置TCP鏈接等。
由于信息采集模塊和響應(yīng)模塊與傳統(tǒng)NIDS中的功能相近,本文中就不再復(fù)述,而是將重點(diǎn)放在信息處理模塊中。
信息處理模塊(如圖1所示)由2個(gè)部分組成:協(xié)議分析模塊和檢測模塊。
圖1 信息處理模塊
當(dāng)采集到數(shù)據(jù)包時(shí),先經(jīng)過協(xié)議分析模塊的分析處理,提取出相關(guān)協(xié)議的屬性值并存入緩存,然后由專門的類負(fù)責(zé)將數(shù)據(jù)包信息在緩存中的位置轉(zhuǎn)發(fā)給檢測模塊,從而使得模塊解耦,之間相互獨(dú)立,方便并行處理的引入,同時(shí)也方便了測試。另一方面,此處協(xié)議分析模塊由于耦合性低,在后期可以通過增加支持協(xié)議的數(shù)目來增加系統(tǒng)的檢測能力,可拓展性好。如在文獻(xiàn)[13]中提到的關(guān)于在IPv6環(huán)境下的檢測,直接新增IPv6的分析文件到系統(tǒng)中即可實(shí)現(xiàn)(目前實(shí)現(xiàn)的系統(tǒng)中已支持IPv6的分析與檢測)。
圖2 檢測模塊
檢測模塊(如圖2所示)中主要包含兩個(gè)部分:內(nèi)部規(guī)則檢測和外部規(guī)則檢測。當(dāng)檢測模塊收到分發(fā)來的數(shù)據(jù)包時(shí),查看內(nèi)部規(guī)則是否啟用,若是,則先用內(nèi)部規(guī)則進(jìn)行檢測,若否,則直接使用外部規(guī)則進(jìn)行檢測。若是檢測出了滿足規(guī)則的入侵事件,則生成對(duì)應(yīng)的入侵事件類,存入對(duì)應(yīng)緩存由響應(yīng)模塊處理。
內(nèi)部規(guī)則是預(yù)先定義在系統(tǒng)源代碼中的規(guī)則,用以實(shí)現(xiàn)對(duì)某些復(fù)雜攻擊的檢測,比如Ping of Death、TCP Sync Flood等。其工作流程見圖3。
圖3 內(nèi)部規(guī)則工作流程
由圖3中可以看到,針對(duì)不同的協(xié)議由不同的規(guī)則類負(fù)責(zé),每個(gè)類中包含一種或多種攻擊的檢測函數(shù)。這樣方便對(duì)不同的協(xié)議,不同的攻擊方式采用不同的方法去檢測。比如對(duì)IPv4的Checksum的檢測直接按照相關(guān)定義,計(jì)算出Checksum的應(yīng)有值與實(shí)際值相比較即可。而在對(duì)TCP Sync Flood的檢測中,則可以運(yùn)用狀態(tài)協(xié)議分析的檢測手法[9],根據(jù)TCP的狀態(tài)轉(zhuǎn)移分析[14],通過檢測一段時(shí)間內(nèi)處于SYN_RCVD狀態(tài)的鏈接數(shù)目達(dá)到檢測的目的,十分高效。
外部規(guī)則是存儲(chǔ)于數(shù)據(jù)庫中的規(guī)則,它的設(shè)計(jì)將簡單協(xié)議分析檢測與模式匹配檢測融合到一起,其格式見表1。
表1 外部規(guī)則格式
表1中各列含義如下:
(1)RuleName:規(guī)則名稱。
(2)Protocols:規(guī)則涉及的協(xié)議。
(3)Message:規(guī)則觸發(fā)時(shí)系統(tǒng)給出的提示信息。
(4)Action:響應(yīng)編號(hào),為32-bit值,各位對(duì)應(yīng)不同含義。響應(yīng)操作由響應(yīng)模塊處理。
(5)ConditionString:規(guī)則的條件串,用來描述入侵事件的特征。
(6)PatternRecognitionOptimization:是否優(yōu)化。主要針對(duì)多模式匹配規(guī)則。
通過表1不難發(fā)現(xiàn),這種外部規(guī)則的設(shè)計(jì)具有以下特點(diǎn):
(1)形式簡單,方便理解。這種設(shè)計(jì)使得用戶在增加、刪除、修改外部規(guī)則時(shí)得心應(yīng)手,同時(shí),對(duì)有自定義規(guī)則需求的用戶來說也提供了方便。
(2)在ConditionString中除了可以使用“=”之外還可以使用“>”,“<”和“@”。其中“@”符號(hào)表示包含的意義,這樣,就將模式匹配方法融入了進(jìn)來。另外,使用“>”和“<”這兩個(gè)符號(hào)時(shí)會(huì)優(yōu)先將兩個(gè)值轉(zhuǎn)換成長整形進(jìn)行比較,若轉(zhuǎn)換失敗則改用字符串比較方法進(jìn)行比較。
(3)在ConditionString中引入了邏輯關(guān)系“|”、“&”,同時(shí)“(”和“)”也可以使用,增強(qiáng)了外部規(guī)則的檢測能力。
(4)類似“Ipv4.SourceAddress=Ipv4.Destination-Address”這種表達(dá)式也是支持的,如果是特殊值,則需加上雙引號(hào)。這種判斷的引入為檢測一些特殊的入侵威脅提供了方便。
外部規(guī)則檢測的流程如圖4所示。
圖4 外部規(guī)則工作流程
本文的實(shí)驗(yàn)環(huán)境如下:
(1)網(wǎng)絡(luò)環(huán)境:由5臺(tái)計(jì)算機(jī)組成的最大負(fù)載為10 Mb/s的局域網(wǎng)。
(2)檢測端硬件環(huán)境。個(gè)人計(jì)算機(jī),CPU:Intel(R)Core(TM)i5-3210M 2.5 GHz,內(nèi)存:2 GB RAM。
(3)檢測端軟件環(huán)境:Microsoft Visual Studio 2010。
為驗(yàn)證系統(tǒng)設(shè)計(jì)的可行性,進(jìn)行了4次模擬攻擊檢測,每次模擬5種不同的攻擊方法,分別為TCP Sync Flood,簡稱Sync Flood(內(nèi)部規(guī)則);Ping of Death(內(nèi)部規(guī)則);錯(cuò)誤的IP版本號(hào)(外部規(guī)則);IP源地址等于目的地址(外部規(guī)則);ARP欺騙(外部規(guī)則)。各次攻擊的頻率分別為5幀/秒、50幀/秒、500幀/秒、5000幀/秒,實(shí)驗(yàn)結(jié)果如表2所示。
表2 模擬攻擊檢測數(shù)據(jù)
由表2數(shù)據(jù)可以看出,該系統(tǒng)對(duì)于外部規(guī)則描述的入侵的檢測有效率近乎100%,而對(duì)于包含狀態(tài)的,由內(nèi)部規(guī)則實(shí)現(xiàn)檢測的入侵,此處為Sync Flood和Ping of Death,在單位時(shí)間內(nèi)處于SYN_RCVD狀態(tài)的TCP鏈接數(shù)目和ICMP Echo Request數(shù)據(jù)包的數(shù)目超過設(shè)定值時(shí),系統(tǒng)都給出了正確的響應(yīng)。
而對(duì)于Sync Flood的檢測,在攻擊頻次較低時(shí),由于時(shí)間較長,檢測期間局域網(wǎng)內(nèi)產(chǎn)生了其他的TCP Sync噪音,導(dǎo)致檢測到的TCP Sync Flood攻擊次數(shù)多于實(shí)際攻擊次數(shù),使得有效率高于100%,產(chǎn)生誤報(bào)。隨著攻擊頻次的提高,時(shí)間的縮短,TCP Sync Flood的檢測逐漸達(dá)到正常值。
本文提出的改進(jìn)的NIDS設(shè)計(jì),將模式匹配檢測方法、簡單協(xié)議分析檢測方法和復(fù)雜協(xié)議檢測方法融合到了一起,充分利用了協(xié)議相關(guān)信息來檢測異常與攻擊,提高了檢測的準(zhǔn)確性和效率。同時(shí),隨著設(shè)計(jì)中外部規(guī)則的不斷豐富,對(duì)已知攻擊的檢測能力將不斷提高;而隨著內(nèi)部規(guī)則的不斷豐富,將引入各種新的檢測手法來檢測復(fù)雜的攻擊如變體攻擊、拒絕服務(wù)攻擊等。最后,該新設(shè)計(jì)下的NIDS的成功運(yùn)行也表明了這種新系統(tǒng)設(shè)計(jì)的可行性和高效性。
[1]Anderson J P.Computer Security Threat Monitoring and Surveillance[DB/OL].http://csrc.nist.gov/publications/history/ande80.pdf,1980-02-26.
[2]Lee W,Stolfo S J,Mok K W.A data mining framework for building intrusion detection models[C]//Proceedings of the 1999 IEEE Symposium on Security and Privacy.1999:120-132.
[3]Proctor P E.Practical Intrusion Detection Handbook[M].Prentice Hall,2001.
[4]張博,李偉華,史興鍵,等.IPv6環(huán)境下的入侵檢測系統(tǒng)模型設(shè)計(jì)[J].西北工業(yè)大學(xué)學(xué)報(bào),2005,23(1):79-83.
[5]Julia Allen,Alan Christie,William Fithen,et al.State of the Practice of Intrusion Detection Technologies[R].Carnegie Mellon University,2000.
[6]Kumar S.Classification and Detection of Computer Intrusions[D].Purdue University,1995.
[7]蔣建春,馬恒太,任黨恩,等.網(wǎng)絡(luò)安全入侵檢測:研究綜述[J].軟件學(xué)報(bào),2000,11(11):1460-1466.
[8]宋志鵬.基于協(xié)議分析的網(wǎng)絡(luò)入侵檢測系統(tǒng)的研究與設(shè)計(jì)[D].濟(jì)南:山東師范大學(xué),2007.
[9]景蕊,劉利軍,懷進(jìn)鵬.基于協(xié)議分析的網(wǎng)絡(luò)入侵檢測技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(36):128-133.
[10]Brian Caswell.Snort[EB/OL].http://www.snort.org,2013-09-19.
[11]Yao Guoxiang,Guan Quanlong,Lin Liangchao,et al.Research and implementation of next generation network intrusion detection system based on protocol analysis[C]//Proceedings of the 2008 International Colloquium on Computing,Communication,Control,and Management.2008,2:353-357.
[12]Tamir Gal,Chris Morgan.SharpPcap:A Packet Capture Framework for .NET[EB/OL].http://www.codeproject.com/Articles/12458/SharpPcap-A-Packet-Capture-Framework-for-NET,2011-09-14.
[13]Shen Zihao,Wang Hui.Research on IPv6 intrusion detection system based on state protocol analysis[C]//Proceedings of the 2nd International Conference on Communication Systems,Networks and Applications.2010,1:90-93.
[14]Shan Zheng,Chen Peng,Xu Ying,et al.A network state based intrusion detection model[C]//Proceedings of the 2011 International Conference on Computer Networks and Mobile Computing.2001:481-486.
[15]Abbes T,Bouhoula A,Rusinowitch M.Protocol analysis in intrusion detection using decision tree[C]//Proceedings of the 2004 International Conference on Information Technology:Coding and Computing.2004,1:404-408.
[16]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第5版)[M].北京:電子工業(yè)出版社,2008.