肖勇才,楊 浩
(國網(wǎng)江西省電力科學(xué)研究院,江西南昌 330096)
近年來,隨著該企業(yè)信息化應(yīng)用的不斷深化,隨之而來的信息安全問題也日趨嚴(yán)重,而主機(jī)、終端、應(yīng)用系統(tǒng)的漏洞則成為信息安全問題中較突出的一環(huán)。
但傳統(tǒng)的依靠便攜式設(shè)備,采用隨機(jī)抽檢的方式,很難做到漏洞檢測掃描的全覆蓋,其及時(shí)性也難以得到保證[1,2]。為此,研究并設(shè)計(jì)一種基于WEB方式的網(wǎng)絡(luò)漏洞掃描系統(tǒng),才是解決問題的最佳途徑。
Web漏洞檢測系統(tǒng)是一種主動式檢測,其執(zhí)行過程一般分為三步:信息收集、攻擊掃描和檢測報(bào)告生成[3,4],主要組成部分包括客戶端、服務(wù)端和數(shù)據(jù)庫。所以,系統(tǒng)的設(shè)計(jì)也就從這3個(gè)部分展開。
客戶端采用B/S結(jié)構(gòu),為增加系統(tǒng)的安全性,采用https方式實(shí)現(xiàn)。為了給用戶提供更友好的用戶界面,在設(shè)計(jì)時(shí)重點(diǎn)采用以下設(shè)計(jì)。
1)采用參數(shù)提示式的用戶輸入接口。用戶僅需輸入待檢測的目標(biāo)系統(tǒng)的IP以及相應(yīng)的端口,而其它的一些選項(xiàng)都可以以參數(shù)的方式附于用戶輸入IP或目標(biāo)網(wǎng)絡(luò)或主機(jī)的后面。
2)參數(shù)輸入方式多樣化。除提供手工方式輸入外,支持文件導(dǎo)入的輸入方式。
3)結(jié)果報(bào)表格式多元化。為方便用戶閱讀結(jié)果報(bào)表,設(shè)計(jì)報(bào)表可支持Word、ExcelL或Pdf文檔等多種格式。
4)修補(bǔ)建議與漏洞一一關(guān)聯(lián)。為方便用戶及時(shí)修補(bǔ)漏洞,在后臺將漏洞與修補(bǔ)庫一一關(guān)聯(lián),將修補(bǔ)建議集成至結(jié)果報(bào)表中,為用戶提供一目了然的修補(bǔ)建議服務(wù)。
服務(wù)端主要由主控模塊構(gòu)成,它也是整個(gè)系統(tǒng)的核心,負(fù)責(zé)接受客戶端提交定制掃描請求,根據(jù)控制策略來調(diào)度各個(gè)模塊,查找相關(guān)特征數(shù)據(jù)庫,同時(shí)使用插件庫給出建議,完成掃描并給出結(jié)果數(shù)據(jù),按定制格式要求寫入結(jié)果報(bào)表中。端口掃描模塊和爬行模塊是主控模塊的核心。
1.2.1 端口掃描模塊
端口掃描的的常用方式是ping包,但ping包的泛濫會增加企業(yè)網(wǎng)絡(luò)的額外負(fù)擔(dān),因此在端口掃描模塊設(shè)計(jì)時(shí),本文采用完全連接掃描和半連接掃描相結(jié)合的方式實(shí)現(xiàn)。
完全連接掃描首先建立套接字(socket(NET,STREAM,0)),默認(rèn)使用TCP/IP協(xié)議,再通過connect(net,(structs addr))向目標(biāo)主機(jī)發(fā)送連接請求,如果有返回,則說明端口打開,繼而啟動掃描檢測。
半連接掃描是通過解析TCP/IP報(bào)文來實(shí)現(xiàn),具體流程如圖1所示。
圖1 半連接掃描流程
設(shè)計(jì)時(shí),采用兩種掃描方式結(jié)合既可避免ping包方式過多的增加企業(yè)網(wǎng)絡(luò)的額外負(fù)擔(dān),也可最大限度的避免掃描無法全覆蓋的問題。
圖2 爬行模塊數(shù)據(jù)提取流程
1.2.2 爬行模塊
爬行模塊是實(shí)現(xiàn)設(shè)備漏洞檢測的核心,它可以直接使用Libwhisker程序庫中的函數(shù),通過函數(shù)調(diào)用得到。通過爬行模塊抽取設(shè)備的被掃描數(shù)據(jù),第一步執(zhí)行的是響應(yīng)分析,該階段先將響應(yīng)中的非關(guān)鍵的內(nèi)容剝離掉,對響應(yīng)中的關(guān)鍵部分進(jìn)行分析,提取包括命令、鏈接、文件名、表單中的輸入域、隱藏域、選擇域等各種數(shù)據(jù)。分析完成之后將得到的協(xié)議數(shù)據(jù)保存到協(xié)議數(shù)據(jù)庫中的具體協(xié)議數(shù)據(jù)表中。如圖2所示是爬行模塊提取協(xié)議數(shù)據(jù)的流程圖。
爬行模塊的兩個(gè)主要任務(wù)是爬行和分析,通過爬行獲取數(shù)據(jù),調(diào)用漏洞特征庫進(jìn)行對比分析,這兩個(gè)過程是相互交織在一起的,一邊爬行一邊分析,完成掃描檢測,最終生成結(jié)果數(shù)據(jù)。
當(dāng)服務(wù)器端對客戶端提交的漏洞情況進(jìn)行處理時(shí),數(shù)據(jù)庫端的信息為整個(gè)判斷和處理提供有力的依據(jù),同時(shí)在基于歷史的前提下,給出一個(gè)最好的漏洞解決方案。本系統(tǒng)的數(shù)據(jù)庫端共包含漏洞庫、插件庫及修補(bǔ)庫。
漏洞庫主要用于存放漏洞檢測模塊所需的系統(tǒng)相關(guān)信息及漏洞描述信息,用于系統(tǒng)信息的提取及漏洞的檢測,表1是漏洞基本信息表的設(shè)計(jì)框架。
表1 漏洞基本信息表的設(shè)計(jì)框架
插件庫用于存放漏洞驗(yàn)證模塊所需的插件相關(guān)信息,其中插件基本信息表是最主要的內(nèi)容,它提供了例如緩沖區(qū)溢出攻擊、拒絕服務(wù)攻擊等常見攻擊手法的相關(guān)信息,表2是插件基本信息表設(shè)計(jì)框架。
修補(bǔ)庫用于存放與漏洞修補(bǔ)方案相關(guān)信息,提供各種修補(bǔ)方案,表3是修補(bǔ)方案基本信息表設(shè)計(jì)框架。
表2 插件基本信息表設(shè)計(jì)框架
表3 修補(bǔ)方案基本信息表設(shè)計(jì)框架
本文依據(jù)設(shè)計(jì)模型試制了原型機(jī)一臺,利用此原型機(jī)對企業(yè)內(nèi)部運(yùn)行Windows7操作系統(tǒng)的一臺主機(jī)進(jìn)行測試,如圖3,結(jié)果發(fā)現(xiàn)漏洞數(shù)4個(gè),警告數(shù)量0個(gè),提示數(shù)量0個(gè)。其中包括一個(gè)低危漏洞和三個(gè)信息漏洞。
圖3 漏洞掃描結(jié)果
針對掃描結(jié)果中的漏洞,系統(tǒng)也一一給出了詳細(xì)描述和修補(bǔ)建議,這里只給出低危漏洞的結(jié)果。
詳細(xì)描述:匿名IPC$連接是Windows系統(tǒng)的默認(rèn)設(shè)置。檢測出可以與系統(tǒng)建立匿名IPC$連接,攻擊者就可以通過匿名IPC$連接獲取很多的系統(tǒng)信息。
修補(bǔ)建議:如果不需要匿名IPC$連接,請將匿名IPC$連接刪除。要刪除匿名IPC$連接,可以按照下面的步驟進(jìn)行:
在cmd控制臺窗口下輸入:netshare IPC$/DELETE
或者進(jìn)入“管理工具”→“本地安全策略”→“本地策略”→“安全選項(xiàng)“→左鍵雙擊”對匿名連接的額外限制”,選擇“沒有顯式匿名權(quán)限就無法訪問”。
通過測試,可以看出本系統(tǒng)在主機(jī)進(jìn)行端口掃描、操作系統(tǒng)概略、漏洞檢測都能夠正常工作,并能給出相應(yīng)的解決方案,基本實(shí)現(xiàn)設(shè)計(jì)目標(biāo),證明本系統(tǒng)的可行性。
本文基于解決企業(yè)信息安全漏洞掃描工作中的突出問題,研究了漏洞掃描技術(shù),設(shè)計(jì)了一個(gè)基于WEB的網(wǎng)絡(luò)漏洞掃描系統(tǒng),并依據(jù)框架研制了原型機(jī),通過實(shí)驗(yàn)證明了可行性,該系統(tǒng)特別適合于在擁有很多分支機(jī)構(gòu)的大型企業(yè)使用。但限于時(shí)間、環(huán)境、以及對網(wǎng)絡(luò)安全認(rèn)識不深刻等原因,該原型系統(tǒng)還存在需要進(jìn)一步改進(jìn)的地方,如何通過優(yōu)化算法來提高掃描的效率和準(zhǔn)確性,如何完善插件技術(shù)來滿足更多的漏洞掃描需求等方面將是后續(xù)研究的重點(diǎn)內(nèi)容。
[1]馬捷,陳莘萌,向廣利.基于Agent的網(wǎng)絡(luò)漏洞掃描系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2006,23(10):98-100.
[2]陳鐵明,蔡家相,蔣融融,馮憲澄.基于插件的安全漏洞掃描系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(2):194-196.
[3]CNCERT/CC[EB/OL].2011[2011-02-01].http://www.eert.org.en/
[4]Open Web Application Security Project[EB/OL].2011[2011-06-13].http://www.owasp.org/
[5]劉波,劉惠,胡華平,黃遵國.計(jì)算機(jī)漏洞庫系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)與應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2005,26(7):25-27.
[6]Huang,Yao-Wen.A testing framework for Web application security assessment[J].Computer Network,Web Traffic,2005,48(5):739-761.