肖勇才,楊 浩
(國網江西省電力科學研究院,江西南昌 330096)
近年來,隨著該企業信息化應用的不斷深化,隨之而來的信息安全問題也日趨嚴重,而主機、終端、應用系統的漏洞則成為信息安全問題中較突出的一環。
但傳統的依靠便攜式設備,采用隨機抽檢的方式,很難做到漏洞檢測掃描的全覆蓋,其及時性也難以得到保證[1,2]。為此,研究并設計一種基于WEB方式的網絡漏洞掃描系統,才是解決問題的最佳途徑。
Web漏洞檢測系統是一種主動式檢測,其執行過程一般分為三步:信息收集、攻擊掃描和檢測報告生成[3,4],主要組成部分包括客戶端、服務端和數據庫。所以,系統的設計也就從這3個部分展開。
客戶端采用B/S結構,為增加系統的安全性,采用https方式實現。為了給用戶提供更友好的用戶界面,在設計時重點采用以下設計。
1)采用參數提示式的用戶輸入接口。用戶僅需輸入待檢測的目標系統的IP以及相應的端口,而其它的一些選項都可以以參數的方式附于用戶輸入IP或目標網絡或主機的后面。
2)參數輸入方式多樣化。除提供手工方式輸入外,支持文件導入的輸入方式。
3)結果報表格式多元化。為方便用戶閱讀結果報表,設計報表可支持Word、ExcelL或Pdf文檔等多種格式。
4)修補建議與漏洞一一關聯。為方便用戶及時修補漏洞,在后臺將漏洞與修補庫一一關聯,將修補建議集成至結果報表中,為用戶提供一目了然的修補建議服務。
服務端主要由主控模塊構成,它也是整個系統的核心,負責接受客戶端提交定制掃描請求,根據控制策略來調度各個模塊,查找相關特征數據庫,同時使用插件庫給出建議,完成掃描并給出結果數據,按定制格式要求寫入結果報表中。端口掃描模塊和爬行模塊是主控模塊的核心。
1.2.1 端口掃描模塊
端口掃描的的常用方式是ping包,但ping包的泛濫會增加企業網絡的額外負擔,因此在端口掃描模塊設計時,本文采用完全連接掃描和半連接掃描相結合的方式實現。
完全連接掃描首先建立套接字(socket(NET,STREAM,0)),默認使用TCP/IP協議,再通過connect(net,(structs addr))向目標主機發送連接請求,如果有返回,則說明端口打開,繼而啟動掃描檢測。
半連接掃描是通過解析TCP/IP報文來實現,具體流程如圖1所示。

圖1 半連接掃描流程
設計時,采用兩種掃描方式結合既可避免ping包方式過多的增加企業網絡的額外負擔,也可最大限度的避免掃描無法全覆蓋的問題。

圖2 爬行模塊數據提取流程
1.2.2 爬行模塊
爬行模塊是實現設備漏洞檢測的核心,它可以直接使用Libwhisker程序庫中的函數,通過函數調用得到。通過爬行模塊抽取設備的被掃描數據,第一步執行的是響應分析,該階段先將響應中的非關鍵的內容剝離掉,對響應中的關鍵部分進行分析,提取包括命令、鏈接、文件名、表單中的輸入域、隱藏域、選擇域等各種數據。分析完成之后將得到的協議數據保存到協議數據庫中的具體協議數據表中。如圖2所示是爬行模塊提取協議數據的流程圖。
爬行模塊的兩個主要任務是爬行和分析,通過爬行獲取數據,調用漏洞特征庫進行對比分析,這兩個過程是相互交織在一起的,一邊爬行一邊分析,完成掃描檢測,最終生成結果數據。
當服務器端對客戶端提交的漏洞情況進行處理時,數據庫端的信息為整個判斷和處理提供有力的依據,同時在基于歷史的前提下,給出一個最好的漏洞解決方案。本系統的數據庫端共包含漏洞庫、插件庫及修補庫。
漏洞庫主要用于存放漏洞檢測模塊所需的系統相關信息及漏洞描述信息,用于系統信息的提取及漏洞的檢測,表1是漏洞基本信息表的設計框架。

表1 漏洞基本信息表的設計框架
插件庫用于存放漏洞驗證模塊所需的插件相關信息,其中插件基本信息表是最主要的內容,它提供了例如緩沖區溢出攻擊、拒絕服務攻擊等常見攻擊手法的相關信息,表2是插件基本信息表設計框架。
修補庫用于存放與漏洞修補方案相關信息,提供各種修補方案,表3是修補方案基本信息表設計框架。

表2 插件基本信息表設計框架

表3 修補方案基本信息表設計框架
本文依據設計模型試制了原型機一臺,利用此原型機對企業內部運行Windows7操作系統的一臺主機進行測試,如圖3,結果發現漏洞數4個,警告數量0個,提示數量0個。其中包括一個低危漏洞和三個信息漏洞。

圖3 漏洞掃描結果
針對掃描結果中的漏洞,系統也一一給出了詳細描述和修補建議,這里只給出低危漏洞的結果。
詳細描述:匿名IPC$連接是Windows系統的默認設置。檢測出可以與系統建立匿名IPC$連接,攻擊者就可以通過匿名IPC$連接獲取很多的系統信息。
修補建議:如果不需要匿名IPC$連接,請將匿名IPC$連接刪除。要刪除匿名IPC$連接,可以按照下面的步驟進行:
在cmd控制臺窗口下輸入:netshare IPC$/DELETE
或者進入“管理工具”→“本地安全策略”→“本地策略”→“安全選項“→左鍵雙擊”對匿名連接的額外限制”,選擇“沒有顯式匿名權限就無法訪問”。
通過測試,可以看出本系統在主機進行端口掃描、操作系統概略、漏洞檢測都能夠正常工作,并能給出相應的解決方案,基本實現設計目標,證明本系統的可行性。
本文基于解決企業信息安全漏洞掃描工作中的突出問題,研究了漏洞掃描技術,設計了一個基于WEB的網絡漏洞掃描系統,并依據框架研制了原型機,通過實驗證明了可行性,該系統特別適合于在擁有很多分支機構的大型企業使用。但限于時間、環境、以及對網絡安全認識不深刻等原因,該原型系統還存在需要進一步改進的地方,如何通過優化算法來提高掃描的效率和準確性,如何完善插件技術來滿足更多的漏洞掃描需求等方面將是后續研究的重點內容。
[1]馬捷,陳莘萌,向廣利.基于Agent的網絡漏洞掃描系統的設計與實現[J].計算機應用研究,2006,23(10):98-100.
[2]陳鐵明,蔡家相,蔣融融,馮憲澄.基于插件的安全漏洞掃描系統設計[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].計算機工程與科學,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.