刁振軍,張琦,曹子建
(西安工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,陜西西安710021)
互聯(lián)網(wǎng)技術(shù)得到越來(lái)越好的發(fā)展環(huán)境,從國(guó)家到地方,所有與社會(huì)息息相關(guān)的一切慢慢都靠互聯(lián)網(wǎng)進(jìn)行連接,所有的一切看起來(lái)都變得高效而且有序。互聯(lián)網(wǎng)也經(jīng)歷了信息互聯(lián)網(wǎng)到工業(yè)互聯(lián)網(wǎng)的慢慢轉(zhuǎn)型,我們身邊的一切變得智能也變得方便,微信、支付寶、共享單車(chē)等,都是互聯(lián)網(wǎng)的產(chǎn)物我們身處其中,享受著互聯(lián)網(wǎng)帶給我們的高效和便利。同時(shí),我們又像在這個(gè)互聯(lián)世界里裸奔,我們?nèi)缃竦囊磺卸寂c信息打交道,而我們幾乎所有的信息都暴露于互聯(lián)網(wǎng)之上,無(wú)論是快遞外賣(mài),還是網(wǎng)銀報(bào)名等等,信息不但存在故意泄露的問(wèn)題,更為嚴(yán)重的是非法的信息收集,也就是常說(shuō)的網(wǎng)絡(luò)入侵[1]。
入侵的目的更多是為了個(gè)人數(shù)據(jù),企業(yè)數(shù)據(jù),甚至國(guó)家機(jī)密,高風(fēng)險(xiǎn)往往伴隨著高收益,抱著這些想法,越來(lái)越多不法分子鋌而走險(xiǎn),開(kāi)始將黑手伸向了這樣的互聯(lián)網(wǎng)世界,所以在網(wǎng)絡(luò)威脅愈加嚴(yán)重的今天我們需要重視網(wǎng)絡(luò)安全問(wèn)題,需要有效的防護(hù)措施來(lái)應(yīng)對(duì)這種威脅,保護(hù)我們每一個(gè)公民的信息數(shù)據(jù)乃至生命財(cái)產(chǎn)的安全[2]。
在過(guò)去的十幾年間,入侵檢測(cè)作為網(wǎng)絡(luò)安全的主要技術(shù),受到了研究者的廣泛關(guān)注,主要的方法有:遺傳算法[3]、淺層神經(jīng)網(wǎng)絡(luò)[4]、支持向量機(jī)[8-10]、群智能算法[7]、極限學(xué)習(xí)機(jī)[12]、信息熵[14]、獨(dú)立成分分析[13]、主成分分析[15]、深度神經(jīng)網(wǎng)絡(luò)[5-6]以及新的特征提取[16]等方法。雖然檢測(cè)方法日益增多,但提出主動(dòng)入侵防御思想的方法還不多見(jiàn),本文在使用開(kāi)源Snort技術(shù)搭建入侵檢測(cè)平臺(tái)的基礎(chǔ)上,對(duì)入侵檢測(cè)的規(guī)則集進(jìn)行管理和分析,采用代理技術(shù)構(gòu)建安全的網(wǎng)絡(luò)入侵防御系統(tǒng)。
入侵檢測(cè)(Intrusion Detection,ID)是入侵防御系統(tǒng)的關(guān)鍵環(huán)節(jié),主要由以下3種方式實(shí)現(xiàn):模式匹配、統(tǒng)計(jì)分析和完整性分析。模式匹配是對(duì)捕獲到的數(shù)據(jù)和已發(fā)現(xiàn)的入侵系統(tǒng)誤用模式數(shù)據(jù)庫(kù)進(jìn)行相對(duì)比,去發(fā)現(xiàn)是否存在違背安全策略的動(dòng)作。統(tǒng)計(jì)分析方法為先給信息描述對(duì)象創(chuàng)建一個(gè)統(tǒng)計(jì)描述,統(tǒng)計(jì)正常使用的一些屬性,如果測(cè)量值超過(guò)了正常偏差,可以判定有異常行為產(chǎn)生。完整性分析則更關(guān)注對(duì)象是否被修改,主要包括目錄、內(nèi)容及屬性,在發(fā)現(xiàn)被修改,感染病毒的應(yīng)用程序有很好的效果。
入侵防御系統(tǒng)(Intrusion Prevention System,IPS)通過(guò)監(jiān)視網(wǎng)絡(luò)資源的傳輸行為,可以對(duì)一些異?;蚓哂泄粜缘男袨檫M(jìn)行實(shí)時(shí)響應(yīng)。主要特點(diǎn)如下:1)嵌入式運(yùn)行。IPS以嵌入模式運(yùn)行,實(shí)時(shí)阻攔有問(wèn)題數(shù)據(jù)包,對(duì)該數(shù)據(jù)流的剩余流量進(jìn)行過(guò)濾。2)深入分析和控制。IPS深入應(yīng)用層對(duì)流量進(jìn)行抓取和分析,可以精確控制每一條鏈接的流量是否放行還是過(guò)濾。3)入侵特征庫(kù)。入侵特征庫(kù)是IPS的靈魂所在,通過(guò)一條條規(guī)則來(lái)約定流量的正常與否,特征庫(kù)必須時(shí)常更新,涵蓋最新的惡意行為特征。4)高效處理能力。IPS必須具有特別高效的處理數(shù)據(jù)能力,盡可能減少對(duì)用戶(hù)正常的流量使用產(chǎn)生影響。
為了增強(qiáng)入侵檢測(cè)技術(shù)的主動(dòng)防范能力,代理技術(shù)通常被利用作為主動(dòng)防御的插件,代理相當(dāng)于運(yùn)行與后臺(tái)的一個(gè)守護(hù)進(jìn)程,一旦Snort檢測(cè)到入侵行為后,代理就被觸發(fā),通知防御設(shè)備進(jìn)行相應(yīng)的攔截以及相應(yīng)的處理。比較常用的是Guardian和Snortsam代理。本文采用Snort和Guardian代理技術(shù)融合的方式設(shè)計(jì)和開(kāi)發(fā)入侵防御系統(tǒng)。
系統(tǒng)總體設(shè)計(jì)需要滿(mǎn)足入侵檢測(cè)與防御的需要,既要安全可靠,又要具有一定的先進(jìn)性。在架構(gòu)設(shè)計(jì)和功能模塊的劃分上,應(yīng)充分的分析和整合項(xiàng)目的總體需求和預(yù)期的目標(biāo),盡量遵循高內(nèi)聚、低耦合的設(shè)計(jì)原則,既要保證各個(gè)模塊的獨(dú)立性,也要保證模塊間聯(lián)系的簡(jiǎn)單性和易擴(kuò)展性。
入侵檢測(cè)模塊從最基本的功能上講,至少要包括檢測(cè)功能和顯示功能。入侵檢測(cè)使用Snort+Base結(jié)合實(shí)現(xiàn):Snort利用libpcap從網(wǎng)絡(luò)層抓取數(shù)據(jù)包,數(shù)據(jù)包經(jīng)過(guò)Snort解碼引擎解析到鏈路層協(xié)議的結(jié)構(gòu)體中,對(duì)應(yīng)用層協(xié)議進(jìn)行解碼操作。然后,數(shù)據(jù)包會(huì)被送至預(yù)處理器中進(jìn)行檢查和操作。在檢測(cè)引擎處理之前預(yù)處理器會(huì)檢查數(shù)據(jù)包是否會(huì)有什么行為產(chǎn)生。最后,數(shù)據(jù)包被送到Snort檢測(cè)引擎。檢測(cè)引擎則會(huì)通過(guò)規(guī)則鏈中的特征對(duì)應(yīng)用層數(shù)據(jù)內(nèi)容進(jìn)行規(guī)則匹配。Snort通過(guò)檢測(cè)引擎、預(yù)處理器和解碼引擎輸出報(bào)警。網(wǎng)絡(luò)入侵檢測(cè)原理如圖1所示。
圖1 網(wǎng)絡(luò)入侵檢測(cè)原理圖
入侵防御模塊是最終要實(shí)現(xiàn)的目的模塊,體現(xiàn)整個(gè)系統(tǒng)的最終價(jià)值,實(shí)現(xiàn)功能為對(duì)惡意流量的應(yīng)對(duì)措施,采取的方法為IP屏蔽定向阻止訪問(wèn),過(guò)濾惡意訪問(wèn)流量,具體設(shè)計(jì)思想為處理Snort日志,提取報(bào)警流量的源IP地址,并通過(guò)調(diào)用iptables添加進(jìn)防火墻的DROP策略,使用防火墻阻斷掉此源IP地址的連接,設(shè)定屏蔽時(shí)間為86 400秒,達(dá)到對(duì)入侵行為的防御目的。網(wǎng)絡(luò)入侵防御的原理如圖2所示。
圖2 網(wǎng)絡(luò)入侵防御原理圖
Snort捕獲數(shù)據(jù)包主要通過(guò)數(shù)據(jù)包捕獲函數(shù)庫(kù)libpcap,將網(wǎng)卡設(shè)置為混雜模式可以監(jiān)聽(tīng)通過(guò)網(wǎng)絡(luò)的所有流量,libpcap工作在數(shù)據(jù)鏈路層,Snort通過(guò)調(diào)用libpcap函數(shù)庫(kù)可以直接從網(wǎng)卡上獲取數(shù)據(jù)流量,對(duì)于被捕獲的數(shù)據(jù)流量包,調(diào)用解碼引擎對(duì)數(shù)據(jù)鏈路層的原始數(shù)據(jù)開(kāi)始解碼,將解析后的數(shù)據(jù)包存儲(chǔ)到內(nèi)存指針指向的數(shù)據(jù)結(jié)構(gòu)。
Snort通過(guò)預(yù)處理器實(shí)現(xiàn)規(guī)則匹配的高效性,影響匹配效率的主要問(wèn)題,簡(jiǎn)單規(guī)則的匹配,攻擊模式常見(jiàn)會(huì)產(chǎn)生較高的誤報(bào)率,模式復(fù)雜又會(huì)產(chǎn)生漏報(bào),根本原因還是在于特征語(yǔ)言表達(dá)能力是有限的,還有對(duì)協(xié)議的解析不夠Snort含有多個(gè)預(yù)處理器,主要功能是用來(lái)進(jìn)行包重組、協(xié)議解析和異常檢測(cè)。
Snort規(guī)則是具有有特定語(yǔ)法的代碼程序,以文本的形式書(shū)寫(xiě),然后保存在一種特殊的.rule格式文件中,Snort檢測(cè)引擎啟動(dòng)時(shí),所有的Snort規(guī)則會(huì)根據(jù)規(guī)則頭和規(guī)則選項(xiàng)生成一種三維鏈表方便以最大的檢索速率進(jìn)行特征匹配。
網(wǎng)絡(luò)數(shù)據(jù)流量通過(guò)抓包引擎捕獲然后提交給分析引擎,如果數(shù)據(jù)流量匹配到了規(guī)則集中的特征那么就會(huì)觸發(fā)報(bào)警,并生成相應(yīng)的日志文件,緊接著會(huì)被提交給相應(yīng)的輸出插件進(jìn)行處理。輸出插件會(huì)在數(shù)據(jù)包捕獲,預(yù)處理器處理,檢測(cè)引擎全部處理完之后進(jìn)行輸出處置,也就是Snort的全部工作流程。如圖3所示。
圖3 Snort工作流程
值得注意的是,本文采用Base對(duì)Snort進(jìn)行管理。Base是一個(gè)基本安全分析引擎,它可以被用來(lái)處理檢測(cè)到的安全事件數(shù)據(jù),使用Base連接MySQL數(shù)據(jù)庫(kù)可以將入侵信息直觀的表現(xiàn)在Web應(yīng)用程序中,方便管理員及時(shí)了解到入侵信息。
基于上述分析,入侵防御功能主要由以下7個(gè)步驟組成。
1)在虛擬機(jī)里搭建服務(wù)器模擬所在校園內(nèi)網(wǎng)的服務(wù)器,從主機(jī)向虛擬機(jī)發(fā)送請(qǐng)求。
2)模擬入侵者對(duì)服務(wù)器進(jìn)行出于信息搜集目的的惡意掃描。
3)同時(shí)啟動(dòng)Wireshark對(duì)掃描過(guò)程進(jìn)行抓報(bào)分析。
4)分析數(shù)據(jù)流量的報(bào)文內(nèi)容,再Nmap進(jìn)行掃描的時(shí)候會(huì)發(fā)送UDP探測(cè)包,內(nèi)容為300個(gè)字節(jié)的字符C,以此為特征書(shū)寫(xiě)可匹配的Snort規(guī)則,添加進(jìn)入侵防御系統(tǒng)的Snort規(guī)則庫(kù)中。
5)使用命令開(kāi)啟入侵檢測(cè),執(zhí)行入侵防御功能。
6)再次使用Nmap對(duì)校園服務(wù)器進(jìn)行端口掃描測(cè)試,惡意行為被檢測(cè)到發(fā)出報(bào)警信息。入侵者IP地址被加入iptables的DROP策略。
7)入侵者訪問(wèn)被阻止,切斷網(wǎng)絡(luò)連接,防止進(jìn)一步的惡意行為。
本部分采用Snort和iptables結(jié)合的方式對(duì)入侵防御功能模擬。首先修改Snort配置文件,配置輸出插件為output alert_fast:alert,以alert_fast的格式輸出Snort日志,接著讀取日志信息,Guardian處理Snort日志,提取報(bào)警流量的源IP地址,并通過(guò)調(diào)用iptables添加進(jìn)防火墻的DROP策略,使用防火墻阻斷掉此源IP地址的連接,設(shè)定屏蔽時(shí)間為86 400秒,達(dá)到對(duì)入侵行為的防御目的。
1)添加一條Snort測(cè)試規(guī)則,內(nèi)容為全匹配。如圖4所示。
圖4 添加Snort規(guī)則
2)獲取服務(wù)器的網(wǎng)卡信息。如圖5所示。
3)開(kāi)啟 Apache、PHP、MySQL、iptables、入侵防御系統(tǒng)服務(wù)。如圖6所示。
4)Snort檢測(cè)到的匹配了規(guī)則的訪問(wèn)服務(wù)器信息。如圖7所示。
圖5 獲取服務(wù)器網(wǎng)卡信息
圖6 開(kāi)啟入侵防御相關(guān)服務(wù)
圖7 Snort檢測(cè)到匹配信息
5)模擬入侵者訪問(wèn)源被添加進(jìn)Iptables的DROP策略中。如圖8所示。
圖8 iptables的DROP策略
6)入侵者IP被屏蔽,不能正常連接服務(wù)器,實(shí)現(xiàn)入侵防御的功能。如圖9所示。
圖9 入侵者不能訪問(wèn)服務(wù)器
通過(guò)上述模擬測(cè)試,系統(tǒng)可以完成入侵檢測(cè)及入侵防御的主要功能。但是在效率上還不夠完善,還需細(xì)化和改進(jìn)。后續(xù)需要改進(jìn)的問(wèn)題有:1)檢測(cè)功能只對(duì)已知威脅有用;2)研究更有效的模式匹配算法的實(shí)現(xiàn);3)在防御時(shí),若能從應(yīng)用層進(jìn)行防御,效果更好,并能減小誤報(bào)。
文中針對(duì)日益復(fù)雜的網(wǎng)絡(luò)入侵威脅[17-18],在對(duì)非法入侵和異常流量進(jìn)行研究的基礎(chǔ)上,提出了對(duì)異常流量檢測(cè)并防御的一些方法。文中重點(diǎn)討論了兩個(gè)問(wèn)題:第一,入侵檢測(cè)的實(shí)現(xiàn)。討論了流量的抓取和分析關(guān)鍵因素并給出了本系統(tǒng)的解決方案。使用Snort規(guī)則鏈,提高對(duì)惡意流量的匹配速度。第二,入侵防御的實(shí)現(xiàn)。在入侵檢測(cè)的基礎(chǔ)上,給出了具體的防御措施,實(shí)驗(yàn)結(jié)果證明了防御方法的可行性。實(shí)驗(yàn)證明,使用本文中的思想可以完成對(duì)網(wǎng)絡(luò)環(huán)境提供一定的保護(hù)措施。此外,在系統(tǒng)設(shè)計(jì)過(guò)程中,通過(guò)學(xué)習(xí)防御手段。了解了網(wǎng)絡(luò)入侵手段的豐富多樣性。Snort規(guī)則集提供遇到的惡意流量規(guī)則,提高了對(duì)異常流量的精確匹配。
[1]李威,楊忠明.入侵檢測(cè)系統(tǒng)的研究綜述[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2016,34(5):657-662.
[2]徐鑫.入侵防御系統(tǒng)攻擊特征庫(kù)的建立方法研究[D].成都:電子科技大學(xué),2011.
[3]朱紅萍,鞏青歌,雷戰(zhàn)波.基于遺傳算法的入侵檢測(cè)特征選擇[J].計(jì)算機(jī)應(yīng)用研究,2012,29(4):1417-1419.
[4]楊雅輝,黃海珍,沈晴霓,等.基于增量式GHSOM神經(jīng)網(wǎng)絡(luò)模型的入侵檢測(cè)研究[J].計(jì)算機(jī)學(xué)報(bào),2014(5):1216-1224.
[5]高妮,高嶺,賀毅岳,等.基于深度信念網(wǎng)絡(luò)的入侵檢測(cè)模型[J].東南大學(xué)學(xué)報(bào)(英文版),2015(3):339-346.
[6]王聲柱,李永忠.基于深度學(xué)習(xí)和半監(jiān)督學(xué)習(xí)的入侵檢測(cè)算法[J].信息技術(shù),2017(1):101-104.
[7]肖立中,劉云翔,陳麗瓊.基于改進(jìn)粒子群的加速K均值算法在入侵檢測(cè)中的研究[J].系統(tǒng)仿真學(xué)報(bào),2014,26(8):1652-1657.
[8]譚愛(ài)平,陳浩,吳伯橋.基于SVM的網(wǎng)絡(luò)入侵檢測(cè)集成學(xué)習(xí)算法[J].計(jì)算機(jī)科學(xué),2014,41(2):197-200.
[9]武小年,彭小金,楊宇洋,等.入侵檢測(cè)中基于SVM的兩級(jí)特征選擇方法[J].通信學(xué)報(bào),2015,36(4):19-26.
[10]劉銘,黃凡玲,傅彥銘,等.改進(jìn)的人工蜂群優(yōu)化支持向量機(jī)算法在入侵檢測(cè)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2017(1):230-235.
[11]江頡,王卓芳,陳鐵明,等.自適應(yīng)AP聚類(lèi)算法及其在入侵檢測(cè)中的應(yīng)用[J].通信學(xué)報(bào),2015,36(11):118-126.
[12]康松林,劉樂(lè),劉楚楚,等.多層極限學(xué)習(xí)機(jī)在入侵檢測(cè)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2015,35(9):2513-2518.
[13]杜曄,張亞丹,黎妹紅,等.基于改進(jìn)FastICA算法的入侵檢測(cè)樣本數(shù)據(jù)優(yōu)化方法[J].通信學(xué)報(bào),2016,37(1):42-48.
[14]魏琴芳,成勇,胡向東.基于信息熵的無(wú)線傳感網(wǎng)入侵檢測(cè)遺傳算法[J].重慶郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2016(1):107-112.
[15]劉珊珊,謝曉堯,徐洋,等.基于PCA的PSO-BP入侵檢測(cè)研究[J].計(jì)算機(jī)應(yīng)用研究,2016,33(9):2795-2798.
[16]吳麗云,李生林,甘旭升,等.基于PLS特征提取的網(wǎng)絡(luò)異常入侵檢測(cè)CVM模型[J].控制與決策,2017,32(4):755-758.
[17]許學(xué)添.基于模糊約束的網(wǎng)絡(luò)入侵檢測(cè)方法[J].西安工程大學(xué)學(xué)報(bào),2016,30(5):627-632.
[18]張耀元,郭淑明,汪小雨.基于入侵檢測(cè)技術(shù)的MANET安全研究[J].電子科技,2016,30(5):627-632.