陸庭輝 郭鳳嬋 吳毅良 劉翠媚
(廣東電網(wǎng)有限責(zé)任公司江門供電局,廣東江門529000)
隨著互聯(lián)網(wǎng)技術(shù)的廣泛應(yīng)用,各類網(wǎng)絡(luò)安全事件層出不窮。對(duì)于企業(yè)來(lái)說(shuō),既要防范來(lái)自外部網(wǎng)絡(luò)的安全威脅,更要解決來(lái)自企業(yè)內(nèi)部網(wǎng)絡(luò)的安全問(wèn)題。為進(jìn)一步強(qiáng)化內(nèi)部計(jì)算機(jī)終端的安全管理,企業(yè)一般都會(huì)參照業(yè)界或企業(yè)內(nèi)部制定的安全基線標(biāo)準(zhǔn),對(duì)計(jì)算機(jī)終端下發(fā)相應(yīng)安全策略,確保計(jì)算機(jī)終端系統(tǒng)配置能滿足最基本的安全保障要求[1]。但在實(shí)際應(yīng)用中,計(jì)算機(jī)終端往往不能100%響應(yīng)下發(fā)的安全策略,導(dǎo)致在計(jì)算機(jī)終端容易產(chǎn)生系統(tǒng)安全配置方面的漏洞,給計(jì)算機(jī)終端帶來(lái)運(yùn)行風(fēng)險(xiǎn)。針對(duì)此情況,目前多采用人工核查、寫腳本核查、部署終端基線核查系統(tǒng)[2]等方式進(jìn)行基線的核查檢測(cè),但存在以下問(wèn)題:
(1)人工核查的方式:工作量大、效率低,由于操作人員個(gè)體的差異,容易導(dǎo)致檢查口徑及方法不一致,并且難以形成結(jié)構(gòu)化的檢測(cè)結(jié)果,以供后續(xù)開(kāi)展相應(yīng)的匯總及數(shù)據(jù)分析工作。
(2)寫腳本核查的方式:工作效率及準(zhǔn)確率較人工核查方式有所提高,但對(duì)檢查人員技術(shù)要求較高,并且檢查內(nèi)容固定,未以統(tǒng)一的數(shù)據(jù)模型對(duì)安全基線檢測(cè)要求進(jìn)行通用化描述,不能方便地根據(jù)基線檢測(cè)需求進(jìn)行定制、擴(kuò)展。
(3)部署終端基線核查系統(tǒng)的方式:現(xiàn)有終端基線核查系統(tǒng)工作效率及準(zhǔn)確率高,能支持基線檢測(cè)項(xiàng)的定制[3],但基線的定制對(duì)使用人員有一定的技術(shù)要求,并且對(duì)于某些特定的檢測(cè)項(xiàng)(例如軟件白名單、軟件黑名單、殺毒軟件病毒庫(kù)版本、UKEY PIN碼等),由于采用自動(dòng)化檢測(cè)方法相對(duì)來(lái)說(shuō)較為復(fù)雜,目前難以支持。
為解決以上問(wèn)題,本文提出并設(shè)計(jì)了一種基于統(tǒng)一基線數(shù)據(jù)模型的計(jì)算機(jī)終端基線檢查工具,使用統(tǒng)一的數(shù)據(jù)模型對(duì)基線檢查項(xiàng)進(jìn)行描述、定義,支持常見(jiàn)檢查項(xiàng)的可視化定制及檢測(cè)結(jié)果的回傳分析,幫助企業(yè)高效、及時(shí)地發(fā)現(xiàn)系統(tǒng)配置問(wèn)題。該計(jì)算機(jī)終端安全基線檢查工具包含四大模塊:基線檢查項(xiàng)描述數(shù)據(jù)模型、基線配置模塊、基線檢測(cè)模塊、報(bào)表及統(tǒng)計(jì)模塊?;€檢查工具工作流程如圖1所示。
基線檢查項(xiàng)描述數(shù)據(jù)模型用于解決對(duì)基線檢查項(xiàng)進(jìn)行統(tǒng)一抽象描述的需求,為后續(xù)的基線配置及基線檢測(cè)模塊提供數(shù)據(jù)模型?;€檢查項(xiàng)描述數(shù)據(jù)模型以XML文件方式保存,采用樹(shù)狀的保存結(jié)構(gòu),用于對(duì)基線檢查項(xiàng)進(jìn)行統(tǒng)一描述。該模型由基線庫(kù)(baselines)、基線(baseline)、基線檢查項(xiàng)(item)、檢查點(diǎn)(checkPoint)四類實(shí)體組成。
圖1 基線檢查工具工作流程圖
(1)基線庫(kù)(baselines)是所有基線的集合,由多個(gè)基線組成。
(2)基線(baseline)是一個(gè)特定類型的基線檢查項(xiàng)的集合,包含基線類型(type)、基線名稱(title)、基線描述(description)等信息以及多個(gè)基線檢查項(xiàng)(item)。其中基線類型包括但不限于高危端口檢測(cè)(DangerousPorts)、黑名單軟件檢測(cè)(BlacklistApps)、白名單軟件檢測(cè)(WhitelistApps)、安全防護(hù)軟件檢測(cè)(DefensiveSoftwares)、多余服務(wù)檢測(cè)(Unnecessary-Services)、關(guān)鍵系統(tǒng)補(bǔ)丁檢測(cè)(Hotfixes)、Windows功能檢測(cè)(WindowsFeatures)、病毒特征庫(kù)及補(bǔ)丁更新檢測(cè)(Update-Time)、賬號(hào)檢測(cè)(UserAccount)、UKEY密碼檢測(cè)(UkeyPin)、自定義注冊(cè)表鍵值檢測(cè)(RegistryValue)等。
(3)基線檢查項(xiàng)(item)屬于特定的某個(gè)基線,包含檢查項(xiàng)ID、檢查模式(mode)、適用系統(tǒng)版本(os)、適用系統(tǒng)位數(shù)(bit)以及檢查點(diǎn)集合(checkPoints)。其中,檢查項(xiàng)ID用于唯一標(biāo)志基線檢查項(xiàng)。檢查模式用于定義在進(jìn)行基線檢查項(xiàng)檢測(cè)時(shí)對(duì)檢查點(diǎn)的檢查方式,包括但不限于:
1)ExcludeAll(排除所有檢查點(diǎn)):在該終端上不能包含所有列舉的檢查點(diǎn)值。例如在高危端口檢測(cè)時(shí),檢查點(diǎn)為445、135、137、139等,則當(dāng)檢查點(diǎn)所列的端口全部不開(kāi)放時(shí),該基線檢查項(xiàng)通過(guò)檢測(cè)。
2)IncludeAll(包含所有檢查點(diǎn)):在該終端上應(yīng)包含所有列舉的檢查點(diǎn)值。例如在檢查安全防護(hù)軟件時(shí),殺毒軟件基線檢查項(xiàng)檢查點(diǎn)為進(jìn)程A和進(jìn)程B,則當(dāng)終端上同時(shí)存在進(jìn)程A和進(jìn)程B時(shí),該基線檢查項(xiàng)通過(guò)檢測(cè)。
3)IncludeOne(包含至少一個(gè)檢查點(diǎn)):在該終端上應(yīng)包含至少一個(gè)所列舉的檢查點(diǎn)值。例如在關(guān)鍵系統(tǒng)補(bǔ)丁檢測(cè)時(shí),補(bǔ)丁A基線檢查項(xiàng)檢查點(diǎn)為補(bǔ)丁編號(hào)a1和補(bǔ)丁編號(hào)a2,則當(dāng)終端上已安裝編號(hào)a1或編號(hào)a2的補(bǔ)丁時(shí),該基線檢查項(xiàng)通過(guò)檢測(cè)。
4)IncludeOnly(僅能包含檢查點(diǎn)):在該終端上應(yīng)只能包含所列舉的檢查點(diǎn)值。例如管理員賬號(hào)基線檢查項(xiàng),檢查點(diǎn)為admin,則當(dāng)終端上僅有admin一個(gè)管理員賬號(hào)時(shí),該基線檢查項(xiàng)通過(guò)。
5)None(結(jié)果需為空):要求在該終端上對(duì)應(yīng)基線檢查項(xiàng)輸出應(yīng)為空。例如在檢測(cè)網(wǎng)絡(luò)共享基線檢查項(xiàng)時(shí),若終端上不存在任何網(wǎng)絡(luò)共享?xiàng)l目,則該基線檢查項(xiàng)通過(guò)。
6)CheckUpdateTime(檢查更新時(shí)間):要求在該終端上特定對(duì)象的更新時(shí)間小于特定值。例如在病毒庫(kù)更新檢測(cè)時(shí),檢查點(diǎn)包含病毒庫(kù)文件路徑及更新天數(shù),當(dāng)該病毒庫(kù)文件更新時(shí)間小于更新天數(shù)時(shí),則該基線檢查項(xiàng)通過(guò)。
7)Operation(檢查點(diǎn)表達(dá)式運(yùn)算):可對(duì)所列舉的檢查點(diǎn),按定義的運(yùn)算表達(dá)式進(jìn)行邏輯運(yùn)算,從而判定基線檢查項(xiàng)是否通過(guò)。該檢查模式是對(duì)以上6種固定模式的補(bǔ)充,支持對(duì)檢查點(diǎn)進(jìn)行與、或、非、包含、大小比較等多種邏輯運(yùn)算方式。
(4)檢查點(diǎn)(checkPoint)是某一基線檢查項(xiàng)在檢測(cè)時(shí)的一系列參考值,根據(jù)基線檢查項(xiàng)的檢查模式及檢查點(diǎn)參考值,決定基線檢查項(xiàng)是否通過(guò)檢測(cè)。
該模塊用于為用戶提供可視化的基線檢查項(xiàng)配置界面,并按基線檢查項(xiàng)描述數(shù)據(jù)模型對(duì)各個(gè)基線的檢查項(xiàng)及檢查點(diǎn)信息進(jìn)行保存,形成基線檢查項(xiàng)目庫(kù)。
用于對(duì)配置的基線檢查項(xiàng)目庫(kù)進(jìn)行解析,按解析后的基線檢查項(xiàng)目自動(dòng)化開(kāi)展基線檢查,生成基線檢查結(jié)果。該模塊包括基線檢查項(xiàng)目庫(kù)解析器、基線項(xiàng)檢測(cè)器、基線結(jié)果生成等組件,按以下步驟開(kāi)始基線檢測(cè):
(1)基線檢查項(xiàng)目庫(kù)解析器加載XML格式的基線檢查項(xiàng)描述數(shù)據(jù)模型(基線庫(kù)),提取基線類型(type)、基線名稱(title)、基線描述(description)、基線檢查項(xiàng)(items)等信息,并進(jìn)一步解析出基線檢查項(xiàng)(item)及其檢查點(diǎn)(checkPoint)等信息,在內(nèi)存中形成基線庫(kù)數(shù)據(jù)結(jié)構(gòu)體,數(shù)據(jù)結(jié)構(gòu)體結(jié)構(gòu)對(duì)應(yīng)XML文件格式的基線檢查項(xiàng)描述數(shù)據(jù)模型。
(2)基線項(xiàng)檢測(cè)器根據(jù)解析出來(lái)的基線庫(kù)數(shù)據(jù)結(jié)構(gòu)體,對(duì)每個(gè)基線中的檢查項(xiàng)進(jìn)行檢測(cè),檢測(cè)結(jié)果根據(jù)上文中所述的檢查模式及檢查點(diǎn)的運(yùn)算關(guān)系確認(rèn)。
(3)基線結(jié)果生成器將基線項(xiàng)檢測(cè)器的檢測(cè)結(jié)果進(jìn)行組裝,形成檢測(cè)結(jié)果數(shù)據(jù)結(jié)構(gòu)體。
用于對(duì)基線檢測(cè)模塊生成的基線檢測(cè)結(jié)果進(jìn)行匯總及分析展示。基線檢測(cè)模塊生成檢測(cè)結(jié)果后,工具以JSON字符串格式將檢測(cè)結(jié)果數(shù)據(jù)結(jié)構(gòu)體發(fā)送至后臺(tái)系統(tǒng)進(jìn)行數(shù)據(jù)匯總及展示。
本文所述的計(jì)算機(jī)終端基線檢查工具統(tǒng)一了終端安全基線的檢查口徑及方法,提高了終端安全基線核查工作的效率及準(zhǔn)確率,并形成了結(jié)構(gòu)化的檢測(cè)結(jié)果,有利于后續(xù)結(jié)果匯總及分析工作的開(kāi)展。該基線檢查工具通過(guò)基線庫(kù)(baselines)、基線(baseline)、基線檢查項(xiàng)(item)、檢查點(diǎn)(checkPoint)等四類實(shí)體,對(duì)基線檢查項(xiàng)目進(jìn)行統(tǒng)一的數(shù)據(jù)模型通用化描述,為后面的基線庫(kù)定制自定義配置、基線自動(dòng)檢測(cè)及結(jié)果生成提供了統(tǒng)一的數(shù)據(jù)模型支撐。基線檢查項(xiàng)配置模塊結(jié)合基線檢查項(xiàng)描述數(shù)據(jù)模型,為用戶提供了方便的檢查項(xiàng)及其檢查點(diǎn)配置的功能,通過(guò)選擇不同的檢查模式靈活支撐高危端口檢測(cè)、黑名單軟件檢測(cè)、白名單軟件檢測(cè)、安全防護(hù)軟件檢測(cè)、多余服務(wù)檢測(cè)、關(guān)鍵系統(tǒng)補(bǔ)丁檢測(cè)、Windows功能檢測(cè)、病毒特征庫(kù)及補(bǔ)丁更新檢測(cè)、賬號(hào)檢測(cè)、UKEY密碼檢測(cè)等類型的基線項(xiàng)定義及檢測(cè),極大地降低了用戶的技術(shù)門檻要求,解決了現(xiàn)有基線核查系統(tǒng)難以支撐某些特定檢查項(xiàng)的問(wèn)題。同時(shí),在以上相對(duì)固定的基線項(xiàng)的基礎(chǔ)上,提供自定義注冊(cè)表鍵值檢測(cè)的功能,配合Operation(檢查點(diǎn)表達(dá)式運(yùn)算)檢查模式,方便將對(duì)基線的檢查轉(zhuǎn)化對(duì)注冊(cè)表鍵值的邏輯運(yùn)算,保證了基線檢查庫(kù)的可定制性及擴(kuò)展性。
隨著互聯(lián)網(wǎng)技術(shù)的深度應(yīng)用,網(wǎng)絡(luò)攻擊愈加頻繁。作為網(wǎng)絡(luò)行為的起點(diǎn),計(jì)算機(jī)終端容易變成網(wǎng)絡(luò)攻擊的源頭[3]。為了及時(shí)發(fā)現(xiàn)計(jì)算機(jī)終端在系統(tǒng)配置方面存在的漏洞,借助成熟、高效的計(jì)算機(jī)終端基線檢查工具定期開(kāi)展安全基線檢測(cè),已成為計(jì)算機(jī)終端安全管控的一個(gè)方向。結(jié)合企業(yè)日常的終端安全基線檢查需求,基于統(tǒng)一的基線數(shù)據(jù)描述模型,實(shí)現(xiàn)基線檢查項(xiàng)可靈活配置的終端安全基線檢查工具,可有效統(tǒng)一終端安全基線的檢查口徑及方法,進(jìn)一步提升計(jì)算機(jī)終端的安全防護(hù)能力。