漏洞全生命周期管理平臺總體架構如圖1所示。
漏洞生命周期管理平臺包括漏洞驗證、漏洞處置、漏洞復查、漏洞歸檔四個階段。
1.針對系統(tǒng)漏洞,通過加載基于漏洞測試框架編寫的漏洞函數(shù),將oval語言封裝的漏洞情報信息轉(zhuǎn)換為可執(zhí)行的POC腳本,形成漏洞驗證腳本的自動化編輯模式,進而實現(xiàn)自動化的漏洞驗證。
2.針對應用漏洞進行人工驗證。
3.通過IT資產(chǎn)指紋信息的精確分析,實現(xiàn)漏洞情報信息對內(nèi)部IT資產(chǎn)的精準推送,形成漏洞預警。
圖1 漏洞全生命周期管理平臺總體架構圖
通過自動化手段將資產(chǎn)、漏洞、補丁進行三方關聯(lián),并自動調(diào)用已經(jīng)驗證通過補丁進行批量、自動化補丁分發(fā),實現(xiàn)自動加固。
對比分析從漏洞、資產(chǎn)、責任人等維度將每次檢查的系統(tǒng)漏洞和應用漏洞進行比對分析,及時發(fā)現(xiàn)新增漏洞、未加固的漏洞、加固完成后仍存在的漏洞、頑固漏洞等。
針對漏洞處置的效果進行評價,通過漏洞狀態(tài)管理標記各種漏洞信息,做到漏洞處置情況的精確掌握。
1.在線驗證平臺
平臺包括POC編寫的SDK和自動化調(diào)用測試工具。
2.POC腳本管理
POC腳本管理包括:POC腳本的漏洞語言編譯,將漏洞信息轉(zhuǎn)化為自線驗證平臺可識別的通用漏洞語言;腳本的批量執(zhí)行,將不同的腳本在不同的IT資產(chǎn)并行運行。
POC腳本的批量編寫采用函數(shù)自動注入技術,即在POC腳本的預置模板中自動將verify和exploit函數(shù)寫入腳本。
3.自動化調(diào)用測試工具
自動化調(diào)用測試工具采用Pyhton編寫,支持驗證與利用兩種插件模式,管理員可以指定單個目標或從文件導入多個目標,使用單個 POC或POC集合進行漏洞驗證。
4.平臺負載調(diào)度
平臺集成了多種不同類型的POC腳本,在具體使用過程中利用了系列的計算策略對這些異構類型的腳本進行了負載調(diào)度。
圖2 IT資產(chǎn)指紋精確分析示意圖
負載均衡策略采用了輪詢、加權輪詢、加權隨機、按照服務類型優(yōu)先級、當前負荷度等調(diào)度算法。實現(xiàn)對異構的安全檢測POC的負載調(diào)度,首先需要先根據(jù)檢測任務類型找到相適配的檢測POC,然后獲取工具上的任務狀態(tài)信息,再根據(jù)任務信息設定不同的負載策略,將分解的原子級任務指派到適當POC。
1.資產(chǎn)指紋精確分析
精準的資產(chǎn)管理是漏洞管理的基礎,只有精確掌握主機系統(tǒng)部署的各類數(shù)據(jù)庫軟件、中間件軟件、Web語言、開發(fā)框架等信息,掌握主機開放的服務、進程、端口等信息,才能做到快速的漏洞情報預警。資產(chǎn)指紋精確分析的功能架構如圖2所示。
(1)指紋信息采集
指紋信息采集包括系統(tǒng)類資產(chǎn)指紋采集和應用類資產(chǎn)指紋采集。
(2)指紋信息分析
系統(tǒng)類資產(chǎn)指紋信息分析是通過系統(tǒng)層指紋TCP socket技術,對IT資產(chǎn)進行分析識別,分析得出資產(chǎn)的操作系統(tǒng)類型、操作系統(tǒng)版本、WebServer類型、開放的常規(guī)端口/服務等信息。
主機指紋采集檢測工具作為定時任務在Server端后臺執(zhí)行,執(zhí)行結果定時生成為xml格式文件。
程序?qū)χ鳈C資產(chǎn)進行逐一掃描分析,并將分析結果存為xml格式結果文件;對分析的結果進行解析入庫,并完善相對應資產(chǎn)的信息。
應用類資產(chǎn)指紋信息分析是Web指紋采集檢測工具作為定時任務在Server端后臺執(zhí)行,并將結果定時生成為xml、json、html格式文件。
程序?qū)eb站點進行逐一爬行并將爬行的URL及頁面MD5等信息記錄Web指紋分析核心功能對上一步獲取的URL進行逐一分析,分析技術包括:正則、MD5等形式。系統(tǒng)對分析結果進行解析入庫,完善相對應資產(chǎn)的信息。
2.漏洞情報與IT資產(chǎn)的關聯(lián)
圖3 Struts2資產(chǎn)識別過程示意圖
漏洞情報與IT資產(chǎn)的關聯(lián)主要是從漏洞情報中提取出影響的資產(chǎn)信息并與企業(yè)內(nèi)部IT資產(chǎn)指紋進行匹配,從而將漏洞情報推送給內(nèi)部IT資產(chǎn),形成漏洞預警。
3.主要實現(xiàn)技術
采用配置特征關聯(lián)分析方法精確識別資產(chǎn)指紋的技術,其主要面向無法通過讀取配置文件識別資產(chǎn)的類型和版本的資產(chǎn),比如Struts2框架。分析過程如圖3。
首先要掌握Struts2資產(chǎn)配置屬性信息,包含前端控制器 FC、Action、ValueStack容器、Result、Interceptor攔截器、Tags標簽6個核心組件;其次需要提取出Action、ValueStack容器和Tags標簽三個組件特征,并進行關聯(lián),進而分析出Struts2。
補丁信息庫分為兩部分,一部分是通過對從網(wǎng)站采集、人工導入的補丁信息進行預處理后形成的全量補丁信息庫,另一部分是通過補丁信息分析后形成的實際的安全資產(chǎn)自身的補丁信息庫。
全量補丁信息庫的補丁信息主要包括:IT系統(tǒng)名稱、版本、補丁編號、補丁描述、補丁級別、影響平臺。
自身補丁信息庫的補丁信息主要包括:資產(chǎn)名稱、資產(chǎn)ID、IP地址、所屬業(yè)務系統(tǒng)、所屬管理員、版本、補丁編號、補丁描述、補丁級別、影響平臺。
自身補丁信息主要從資產(chǎn)采集現(xiàn)有的補丁信息和補丁信息庫進行對比,將資產(chǎn)信息管理模塊中的資產(chǎn)版本信息與補丁知識庫進行比對,檢查知識庫中的IT系統(tǒng)版本與資產(chǎn)版本是否一致,如果一致,即證明該資產(chǎn)存在知識庫中相關版本的IT系統(tǒng)存在的補丁,即進行告警展現(xiàn)。
該功能收集已經(jīng)驗證通過的各類補丁信息,并建立補丁鏡像服務器,安全評估與檢測平臺按照各類服務器需要的補丁信息,向各類服務器執(zhí)行補丁運行命令,各類服務器自動運行需要執(zhí)行的補丁信息,完成自動化的補丁分發(fā)。
漏洞對比分析從漏洞、資產(chǎn)、責任人等維度將每次檢查的系統(tǒng)漏洞和應用漏洞進行比對分析,及時發(fā)現(xiàn)新增漏洞、未加固的漏洞、加固完成后仍存在的漏洞、頑固漏洞等信息。
漏洞對比分析分為三個維度:以漏洞為維度、以資產(chǎn)為維度和以責任人為維度,具體如圖4所示。
具體的分析流程如下:
圖4 漏洞對比分析示意圖
表1 導入文件中的漏洞和多條記錄中的漏洞對比
1.點擊“導入文件”按鈕,將漏掃文件導入其中并填寫記錄名稱,點擊“創(chuàng)建“,隨即創(chuàng)建一條記錄在對比結果列表中。除了查看創(chuàng)建的記錄外對列表無其他操作權限。
此次導入文件中的漏洞要和多條記錄中的漏洞做對比,其中分4種情況,如表1所示。
2.查看對比結果列表,其中展示的內(nèi)容有:記錄名稱、處理狀態(tài)、導入時間、完成時間、導入人和操作(分派漏洞和查看詳情)。
3.分派漏洞功能指的是安全管理員向維護人員分派新發(fā)現(xiàn)的漏洞,讓維護人員對這些漏洞進行加固處理或者報備。
4.操作列中的查看詳情展示全量漏洞的詳細信息,比如:漏洞名稱、漏洞級別,資產(chǎn)名稱、IP地址、CVE編號和對比狀態(tài)等。
漏洞歸檔針對漏洞處置的效果進行評價,通過漏洞狀態(tài)管理標記各種漏洞信息,做到漏洞處置情況的精確掌握。如圖5所示。
漏洞狀態(tài)管理功能將安全檢查結果與歷史漏洞信息進行對比,確認漏洞當前所處狀態(tài)。
圖5 漏洞狀態(tài)管理示意圖