刁振軍,張琦,曹子建
(西安工業(yè)大學(xué)計算機科學(xué)與工程學(xué)院,陜西西安710021)
互聯(lián)網(wǎng)技術(shù)得到越來越好的發(fā)展環(huán)境,從國家到地方,所有與社會息息相關(guān)的一切慢慢都靠互聯(lián)網(wǎng)進行連接,所有的一切看起來都變得高效而且有序。互聯(lián)網(wǎng)也經(jīng)歷了信息互聯(lián)網(wǎng)到工業(yè)互聯(lián)網(wǎng)的慢慢轉(zhuǎn)型,我們身邊的一切變得智能也變得方便,微信、支付寶、共享單車等,都是互聯(lián)網(wǎng)的產(chǎn)物我們身處其中,享受著互聯(lián)網(wǎng)帶給我們的高效和便利。同時,我們又像在這個互聯(lián)世界里裸奔,我們?nèi)缃竦囊磺卸寂c信息打交道,而我們幾乎所有的信息都暴露于互聯(lián)網(wǎng)之上,無論是快遞外賣,還是網(wǎng)銀報名等等,信息不但存在故意泄露的問題,更為嚴重的是非法的信息收集,也就是常說的網(wǎng)絡(luò)入侵[1]。
入侵的目的更多是為了個人數(shù)據(jù),企業(yè)數(shù)據(jù),甚至國家機密,高風(fēng)險往往伴隨著高收益,抱著這些想法,越來越多不法分子鋌而走險,開始將黑手伸向了這樣的互聯(lián)網(wǎng)世界,所以在網(wǎng)絡(luò)威脅愈加嚴重的今天我們需要重視網(wǎng)絡(luò)安全問題,需要有效的防護措施來應(yīng)對這種威脅,保護我們每一個公民的信息數(shù)據(jù)乃至生命財產(chǎn)的安全[2]。
在過去的十幾年間,入侵檢測作為網(wǎng)絡(luò)安全的主要技術(shù),受到了研究者的廣泛關(guān)注,主要的方法有:遺傳算法[3]、淺層神經(jīng)網(wǎng)絡(luò)[4]、支持向量機[8-10]、群智能算法[7]、極限學(xué)習(xí)機[12]、信息熵[14]、獨立成分分析[13]、主成分分析[15]、深度神經(jīng)網(wǎng)絡(luò)[5-6]以及新的特征提取[16]等方法。雖然檢測方法日益增多,但提出主動入侵防御思想的方法還不多見,本文在使用開源Snort技術(shù)搭建入侵檢測平臺的基礎(chǔ)上,對入侵檢測的規(guī)則集進行管理和分析,采用代理技術(shù)構(gòu)建安全的網(wǎng)絡(luò)入侵防御系統(tǒng)。
入侵檢測(Intrusion Detection,ID)是入侵防御系統(tǒng)的關(guān)鍵環(huán)節(jié),主要由以下3種方式實現(xiàn):模式匹配、統(tǒng)計分析和完整性分析。模式匹配是對捕獲到的數(shù)據(jù)和已發(fā)現(xiàn)的入侵系統(tǒng)誤用模式數(shù)據(jù)庫進行相對比,去發(fā)現(xiàn)是否存在違背安全策略的動作。統(tǒng)計分析方法為先給信息描述對象創(chuàng)建一個統(tǒng)計描述,統(tǒng)計正常使用的一些屬性,如果測量值超過了正常偏差,可以判定有異常行為產(chǎn)生。完整性分析則更關(guān)注對象是否被修改,主要包括目錄、內(nèi)容及屬性,在發(fā)現(xiàn)被修改,感染病毒的應(yīng)用程序有很好的效果。
入侵防御系統(tǒng)(Intrusion Prevention System,IPS)通過監(jiān)視網(wǎng)絡(luò)資源的傳輸行為,可以對一些異常或具有攻擊性的行為進行實時響應(yīng)。主要特點如下:1)嵌入式運行。IPS以嵌入模式運行,實時阻攔有問題數(shù)據(jù)包,對該數(shù)據(jù)流的剩余流量進行過濾。2)深入分析和控制。IPS深入應(yīng)用層對流量進行抓取和分析,可以精確控制每一條鏈接的流量是否放行還是過濾。3)入侵特征庫。入侵特征庫是IPS的靈魂所在,通過一條條規(guī)則來約定流量的正常與否,特征庫必須時常更新,涵蓋最新的惡意行為特征。4)高效處理能力。IPS必須具有特別高效的處理數(shù)據(jù)能力,盡可能減少對用戶正常的流量使用產(chǎn)生影響。
為了增強入侵檢測技術(shù)的主動防范能力,代理技術(shù)通常被利用作為主動防御的插件,代理相當于運行與后臺的一個守護進程,一旦Snort檢測到入侵行為后,代理就被觸發(fā),通知防御設(shè)備進行相應(yīng)的攔截以及相應(yīng)的處理。比較常用的是Guardian和Snortsam代理。本文采用Snort和Guardian代理技術(shù)融合的方式設(shè)計和開發(fā)入侵防御系統(tǒng)。
系統(tǒng)總體設(shè)計需要滿足入侵檢測與防御的需要,既要安全可靠,又要具有一定的先進性。在架構(gòu)設(shè)計和功能模塊的劃分上,應(yīng)充分的分析和整合項目的總體需求和預(yù)期的目標,盡量遵循高內(nèi)聚、低耦合的設(shè)計原則,既要保證各個模塊的獨立性,也要保證模塊間聯(lián)系的簡單性和易擴展性。
入侵檢測模塊從最基本的功能上講,至少要包括檢測功能和顯示功能。入侵檢測使用Snort+Base結(jié)合實現(xiàn):Snort利用libpcap從網(wǎng)絡(luò)層抓取數(shù)據(jù)包,數(shù)據(jù)包經(jīng)過Snort解碼引擎解析到鏈路層協(xié)議的結(jié)構(gòu)體中,對應(yīng)用層協(xié)議進行解碼操作。然后,數(shù)據(jù)包會被送至預(yù)處理器中進行檢查和操作。在檢測引擎處理之前預(yù)處理器會檢查數(shù)據(jù)包是否會有什么行為產(chǎn)生。最后,數(shù)據(jù)包被送到Snort檢測引擎。檢測引擎則會通過規(guī)則鏈中的特征對應(yīng)用層數(shù)據(jù)內(nèi)容進行規(guī)則匹配。Snort通過檢測引擎、預(yù)處理器和解碼引擎輸出報警。網(wǎng)絡(luò)入侵檢測原理如圖1所示。

圖1 網(wǎng)絡(luò)入侵檢測原理圖
入侵防御模塊是最終要實現(xiàn)的目的模塊,體現(xiàn)整個系統(tǒng)的最終價值,實現(xiàn)功能為對惡意流量的應(yīng)對措施,采取的方法為IP屏蔽定向阻止訪問,過濾惡意訪問流量,具體設(shè)計思想為處理Snort日志,提取報警流量的源IP地址,并通過調(diào)用iptables添加進防火墻的DROP策略,使用防火墻阻斷掉此源IP地址的連接,設(shè)定屏蔽時間為86 400秒,達到對入侵行為的防御目的。網(wǎng)絡(luò)入侵防御的原理如圖2所示。

圖2 網(wǎng)絡(luò)入侵防御原理圖
Snort捕獲數(shù)據(jù)包主要通過數(shù)據(jù)包捕獲函數(shù)庫libpcap,將網(wǎng)卡設(shè)置為混雜模式可以監(jiān)聽通過網(wǎng)絡(luò)的所有流量,libpcap工作在數(shù)據(jù)鏈路層,Snort通過調(diào)用libpcap函數(shù)庫可以直接從網(wǎng)卡上獲取數(shù)據(jù)流量,對于被捕獲的數(shù)據(jù)流量包,調(diào)用解碼引擎對數(shù)據(jù)鏈路層的原始數(shù)據(jù)開始解碼,將解析后的數(shù)據(jù)包存儲到內(nèi)存指針指向的數(shù)據(jù)結(jié)構(gòu)。
Snort通過預(yù)處理器實現(xiàn)規(guī)則匹配的高效性,影響匹配效率的主要問題,簡單規(guī)則的匹配,攻擊模式常見會產(chǎn)生較高的誤報率,模式復(fù)雜又會產(chǎn)生漏報,根本原因還是在于特征語言表達能力是有限的,還有對協(xié)議的解析不夠Snort含有多個預(yù)處理器,主要功能是用來進行包重組、協(xié)議解析和異常檢測。
Snort規(guī)則是具有有特定語法的代碼程序,以文本的形式書寫,然后保存在一種特殊的.rule格式文件中,Snort檢測引擎啟動時,所有的Snort規(guī)則會根據(jù)規(guī)則頭和規(guī)則選項生成一種三維鏈表方便以最大的檢索速率進行特征匹配。
網(wǎng)絡(luò)數(shù)據(jù)流量通過抓包引擎捕獲然后提交給分析引擎,如果數(shù)據(jù)流量匹配到了規(guī)則集中的特征那么就會觸發(fā)報警,并生成相應(yīng)的日志文件,緊接著會被提交給相應(yīng)的輸出插件進行處理。輸出插件會在數(shù)據(jù)包捕獲,預(yù)處理器處理,檢測引擎全部處理完之后進行輸出處置,也就是Snort的全部工作流程。如圖3所示。

圖3 Snort工作流程
值得注意的是,本文采用Base對Snort進行管理。Base是一個基本安全分析引擎,它可以被用來處理檢測到的安全事件數(shù)據(jù),使用Base連接MySQL數(shù)據(jù)庫可以將入侵信息直觀的表現(xiàn)在Web應(yīng)用程序中,方便管理員及時了解到入侵信息。
基于上述分析,入侵防御功能主要由以下7個步驟組成。
1)在虛擬機里搭建服務(wù)器模擬所在校園內(nèi)網(wǎng)的服務(wù)器,從主機向虛擬機發(fā)送請求。
2)模擬入侵者對服務(wù)器進行出于信息搜集目的的惡意掃描。
3)同時啟動Wireshark對掃描過程進行抓報分析。
4)分析數(shù)據(jù)流量的報文內(nèi)容,再Nmap進行掃描的時候會發(fā)送UDP探測包,內(nèi)容為300個字節(jié)的字符C,以此為特征書寫可匹配的Snort規(guī)則,添加進入侵防御系統(tǒng)的Snort規(guī)則庫中。
5)使用命令開啟入侵檢測,執(zhí)行入侵防御功能。
6)再次使用Nmap對校園服務(wù)器進行端口掃描測試,惡意行為被檢測到發(fā)出報警信息。入侵者IP地址被加入iptables的DROP策略。
7)入侵者訪問被阻止,切斷網(wǎng)絡(luò)連接,防止進一步的惡意行為。
本部分采用Snort和iptables結(jié)合的方式對入侵防御功能模擬。首先修改Snort配置文件,配置輸出插件為output alert_fast:alert,以alert_fast的格式輸出Snort日志,接著讀取日志信息,Guardian處理Snort日志,提取報警流量的源IP地址,并通過調(diào)用iptables添加進防火墻的DROP策略,使用防火墻阻斷掉此源IP地址的連接,設(shè)定屏蔽時間為86 400秒,達到對入侵行為的防御目的。
1)添加一條Snort測試規(guī)則,內(nèi)容為全匹配。如圖4所示。

圖4 添加Snort規(guī)則
2)獲取服務(wù)器的網(wǎng)卡信息。如圖5所示。
3)開啟 Apache、PHP、MySQL、iptables、入侵防御系統(tǒng)服務(wù)。如圖6所示。
4)Snort檢測到的匹配了規(guī)則的訪問服務(wù)器信息。如圖7所示。

圖5 獲取服務(wù)器網(wǎng)卡信息

圖6 開啟入侵防御相關(guān)服務(wù)

圖7 Snort檢測到匹配信息
5)模擬入侵者訪問源被添加進Iptables的DROP策略中。如圖8所示。

圖8 iptables的DROP策略
6)入侵者IP被屏蔽,不能正常連接服務(wù)器,實現(xiàn)入侵防御的功能。如圖9所示。

圖9 入侵者不能訪問服務(wù)器
通過上述模擬測試,系統(tǒng)可以完成入侵檢測及入侵防御的主要功能。但是在效率上還不夠完善,還需細化和改進。后續(xù)需要改進的問題有:1)檢測功能只對已知威脅有用;2)研究更有效的模式匹配算法的實現(xiàn);3)在防御時,若能從應(yīng)用層進行防御,效果更好,并能減小誤報。
文中針對日益復(fù)雜的網(wǎng)絡(luò)入侵威脅[17-18],在對非法入侵和異常流量進行研究的基礎(chǔ)上,提出了對異常流量檢測并防御的一些方法。文中重點討論了兩個問題:第一,入侵檢測的實現(xiàn)。討論了流量的抓取和分析關(guān)鍵因素并給出了本系統(tǒng)的解決方案。使用Snort規(guī)則鏈,提高對惡意流量的匹配速度。第二,入侵防御的實現(xiàn)。在入侵檢測的基礎(chǔ)上,給出了具體的防御措施,實驗結(jié)果證明了防御方法的可行性。實驗證明,使用本文中的思想可以完成對網(wǎng)絡(luò)環(huán)境提供一定的保護措施。此外,在系統(tǒng)設(shè)計過程中,通過學(xué)習(xí)防御手段。了解了網(wǎng)絡(luò)入侵手段的豐富多樣性。Snort規(guī)則集提供遇到的惡意流量規(guī)則,提高了對異常流量的精確匹配。
[1]李威,楊忠明.入侵檢測系統(tǒng)的研究綜述[J].吉林大學(xué)學(xué)報:信息科學(xué)版,2016,34(5):657-662.
[2]徐鑫.入侵防御系統(tǒng)攻擊特征庫的建立方法研究[D].成都:電子科技大學(xué),2011.
[3]朱紅萍,鞏青歌,雷戰(zhàn)波.基于遺傳算法的入侵檢測特征選擇[J].計算機應(yīng)用研究,2012,29(4):1417-1419.
[4]楊雅輝,黃海珍,沈晴霓,等.基于增量式GHSOM神經(jīng)網(wǎng)絡(luò)模型的入侵檢測研究[J].計算機學(xué)報,2014(5):1216-1224.
[5]高妮,高嶺,賀毅岳,等.基于深度信念網(wǎng)絡(luò)的入侵檢測模型[J].東南大學(xué)學(xué)報(英文版),2015(3):339-346.
[6]王聲柱,李永忠.基于深度學(xué)習(xí)和半監(jiān)督學(xué)習(xí)的入侵檢測算法[J].信息技術(shù),2017(1):101-104.
[7]肖立中,劉云翔,陳麗瓊.基于改進粒子群的加速K均值算法在入侵檢測中的研究[J].系統(tǒng)仿真學(xué)報,2014,26(8):1652-1657.
[8]譚愛平,陳浩,吳伯橋.基于SVM的網(wǎng)絡(luò)入侵檢測集成學(xué)習(xí)算法[J].計算機科學(xué),2014,41(2):197-200.
[9]武小年,彭小金,楊宇洋,等.入侵檢測中基于SVM的兩級特征選擇方法[J].通信學(xué)報,2015,36(4):19-26.
[10]劉銘,黃凡玲,傅彥銘,等.改進的人工蜂群優(yōu)化支持向量機算法在入侵檢測中的應(yīng)用[J].計算機應(yīng)用與軟件,2017(1):230-235.
[11]江頡,王卓芳,陳鐵明,等.自適應(yīng)AP聚類算法及其在入侵檢測中的應(yīng)用[J].通信學(xué)報,2015,36(11):118-126.
[12]康松林,劉樂,劉楚楚,等.多層極限學(xué)習(xí)機在入侵檢測中的應(yīng)用[J].計算機應(yīng)用,2015,35(9):2513-2518.
[13]杜曄,張亞丹,黎妹紅,等.基于改進FastICA算法的入侵檢測樣本數(shù)據(jù)優(yōu)化方法[J].通信學(xué)報,2016,37(1):42-48.
[14]魏琴芳,成勇,胡向東.基于信息熵的無線傳感網(wǎng)入侵檢測遺傳算法[J].重慶郵電大學(xué)學(xué)報:自然科學(xué)版,2016(1):107-112.
[15]劉珊珊,謝曉堯,徐洋,等.基于PCA的PSO-BP入侵檢測研究[J].計算機應(yīng)用研究,2016,33(9):2795-2798.
[16]吳麗云,李生林,甘旭升,等.基于PLS特征提取的網(wǎng)絡(luò)異常入侵檢測CVM模型[J].控制與決策,2017,32(4):755-758.
[17]許學(xué)添.基于模糊約束的網(wǎng)絡(luò)入侵檢測方法[J].西安工程大學(xué)學(xué)報,2016,30(5):627-632.
[18]張耀元,郭淑明,汪小雨.基于入侵檢測技術(shù)的MANET安全研究[J].電子科技,2016,30(5):627-632.