設備系統漏洞是導致系統風險、網絡攻擊等安全事件頻繁發生的重要原因,目前企業IT系統主要以傳統的漏洞檢查工具對系統漏洞進行檢查,而傳統的漏洞檢查工具采用遠程方式發現漏洞,在發現的準確性、及時性和安全性上有較大隱患,而且錯報、誤報和影響業務正常運行的現象普遍存在,本文采用智能漏洞分析算法核查設備全量漏洞,實現了漏洞檢測從“掃描”到“檢查”質的飛躍,在漏洞發現的準確性、發現速度的及時性上都有巨大提升。
本文研究的全量漏洞核查方法架構流程如圖1所示,采用類搜索引擎的分布式網絡爬蟲技術,獲取包括權威漏洞發布網站、原廠安全公告和專業安全公司等來源的海量漏洞信息。建立能夠對漏洞進行精準智能分析的、可靈活拓展的漏洞智能分析引擎,并在每個漏洞基本信息的基礎上補充自動化分析信息。通過大規模分布式并行采集引擎,自動化批量采集現網資產信息。由系統漏洞智能分析引擎對采集到的各類信息進行統一處理分析,綜合分析漏洞存在情況。最后,對漏洞分布情況進行多維度、全方位的展現。
相比于傳統漏洞核查工具外圍探測方式進行掃描的方式,本文方法具備準確性高、不影響網絡環境、對被查設備無影響、檢查范圍廣泛、檢查效率高等諸多優勢。

圖1 整體架構流程圖

圖2 漏洞庫架構
漏洞庫架構如圖2所示。
采用類搜索引擎的分布式網絡爬蟲技術分布式定期并發爬取NVD、CNNVD、CNVD等權威漏洞庫和SecurityFocus等專業安全廠家發布的漏洞信息,對于NVD的漏洞信息可通過解析各漏洞文檔對應的XML來自動獲取,NVD漏洞庫提供XML格式的漏洞庫下載,各漏洞格式以及漏洞信息都已標準化。對于CNVD發布的漏洞信息,需要通過網絡爬蟲獲取漏洞網頁,然后對漏洞網頁進行解析,生成對應的漏洞信息。
在程序自動獲取漏洞的過程,在下載漏洞信息之前需要判斷漏洞庫中是否已經包含了該條漏洞,判斷的依據就是和漏洞庫中的CVE字段進行比較。如果發現漏洞庫中已經包含了該CVE名稱的漏洞信息,則認為是重復條目而不進行下載。采集工作業務流程如圖3所示。
漏洞信息分析處理過程將采集的各類漏洞信息進行整理、優化、補全,最終形成經過歸納的、高質量的、精簡的安全漏洞信息,并存入安全漏洞信息數據庫。
將爬取到的描述信息以CVE編號為唯一標志進行合并,形成 NVD、CNNVD、CNVD、SecurityFocus等網站描述漏洞信息的合集。

圖3 漏洞信息采集業務流程
對于使用非機讀方式輸出的漏洞信息,對其進行中文自然語言處理,解析其中的關鍵因素。
刪除合并后的漏洞描述信息中相同的字段。
篩選漏洞描述信息,選擇其中重要的字段,作為漏洞描述信息。漏洞描述信息包括:漏洞名稱、ULTRA編號(新增定義的漏洞編號)、CVE編號、發布日期、更新日期、嚴重級別、漏洞類型、威脅類型、漏洞描述、解決方案、參考連接、漏洞檢查方法(新增)等。
漏洞檢查方法定義流程:
1.查閱官方網站安全公告;
2.定義變量;
3.定義函數;
4.建立檢查公式。
新建漏洞核查任務,選擇需要進行漏洞核查的設備,并發連接登錄設備,采集設備信息。如文件內容、進程、服務、軟件、端口、補丁等信息。
建立漏洞核查任務,選擇被檢查設備,確定漏洞核查任務的檢查范圍,并獲取被檢查設備登錄信息(設備類型、IP地址、帳號名、密碼)等。
使用步驟S201獲取到的設備登錄信息,多臺采集服務器采用分布式的方式并發建立到被檢查設備的網絡連接,登錄被檢查設備。支持多種連接協議,包括Telnet/SSH和RDP等。
登錄設備成功后需要判斷設備類型,進而執行信息采集腳本。
采集腳本按照設備類型分別編寫,根據核查任務中所選擇的設備的類型,自動匹配執行腳本。采集腳本分為七類:版本、文件、進程、服務、軟件、端口、補丁等。
采集服務器將采集結果返回到漏洞解析服務器。根據采集服務器采集到的字段信息,調用RMI(遠程接口調用)方法,把分析結果保存到數據庫,發送消息給采集服務器,告知采集完畢。
采集服務器完成數據采集任務后,斷開與被檢查設備的網絡連接。
匯總建立的漏洞庫和采集的設備信息,根據采集到的產品信息對漏洞逐條匹配,最終得到設備包含的漏洞列表全集。
1.解析腳本回顯,獲取關鍵字段。
2.獲取漏洞檢查方法。
3.核查漏洞。將解析結果作為函數變量,由檢查方法處理,得到漏洞核查結果。
4.返回核查結果。檢查方法執行結果為是否存在編號漏洞的布爾值。將執行結果返回,存入數據庫,生成結果報表,展現核查結果。

圖4 漏洞歸并圖解
因全量漏洞發現的漏洞數量很多,部分Linux和Solaris設備發現的漏洞數量達數百甚至上千,漏洞確認的工作量較大。為應對這種情況,系統增加了漏洞活躍性判斷和按原廠公告歸并的功能,將不活躍的漏洞歸類為潛在漏洞,如圖4所示。
根據漏洞基本信息,并從業務系統、設備類型、產品類型等多個角度,多層次的展現檢查結果,用戶可以了解不同業務系統的漏洞分布情況、不同設備類型和產品類型的漏洞數量。
某電信運營商企業省公司抽取23個業務系統共261臺設備進行漏洞檢查,發現高危漏洞1647個,中危漏洞4673個,低危漏洞1270個,潛在漏洞18204個。與同類產品對比發現漏洞發現數量普遍達到7倍以上,檢查效率提高2倍以上,目前本文方案已開始在某電信運營商集團及各省公司推廣使用。
本文方案通過對漏洞的信息采集,建立一套完整的漏洞信息數據庫,再充分利用網絡通路和設備帳號信息,直接登錄設備進行檢查,彌補了現有的漏洞核查方法檢查結果不準確,誤報、漏報率高的缺點,可以全面準確的獲取所有設備類型的漏洞信息,完全不影響業務系統正常運行,不會造成網絡阻塞,更不會占用大量硬件資源而導致系統拒絕服務。掃描效率高,經過和其他常見漏洞工具對比,發現的漏洞數量提高約7倍,掃描效率提高約2倍,適合于高頻次的漏洞核查,節省大量用于檢查的人力和管理成本,避免檢查過程中人為因素造成的不準確和標準不統一問題,保證核查結果的準確性和客觀性。