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