王璇文, 張署翔
(海軍參謀部某保障大隊(duì), 北京 100071)
隨著信息技術(shù)的飛速發(fā)展, 越來(lái)越多的信息安全問(wèn)題暴露了出來(lái),有統(tǒng)計(jì)表明,用戶受攻擊的原因,5%是零日攻擊,30%是沒(méi)有打補(bǔ)丁,而高達(dá)65%是由于錯(cuò)誤的配置。 因此, 安全配置是保障計(jì)算機(jī)終端安全性的必要條件,只有正確的配置才是終端安全性保障的最大因素。而隨著我國(guó)國(guó)產(chǎn)操作系統(tǒng)的發(fā)展進(jìn)步, 未來(lái)必將實(shí)現(xiàn)國(guó)產(chǎn)操作系統(tǒng)的規(guī)模應(yīng)用,所以研究、建立一套檢測(cè)框架以實(shí)現(xiàn)對(duì)國(guó)產(chǎn)操作系統(tǒng)的安全配置核查將是我們下一步急需解決的問(wèn)題。
安全內(nèi)容自動(dòng)化協(xié)議(SCAP)是由NIST 建立的規(guī)范的表達(dá)和操作安全數(shù)據(jù)標(biāo)準(zhǔn)化的方法。SCAP 可以列舉產(chǎn)品名稱和漏洞(軟件缺陷和配置問(wèn)題),找出存在的漏洞,并根據(jù)軟件漏洞缺陷的嚴(yán)重程度評(píng)分。 SCAP 的使用使得系統(tǒng)更容易自動(dòng)進(jìn)行安全監(jiān)測(cè)、 漏洞管理和安全政策和合規(guī)性評(píng)價(jià)報(bào)告。 舉個(gè)例子,應(yīng)用SCAP 快速查找已知的漏洞,然后矯正,以防止攻擊者利用。
SCAP1.1 版本共有七個(gè)元素, 包含:XCCDF(Extensible Configuration Checklist Description Format:擴(kuò)展配置檢查列表描述格式)1.14 版本、OVAL(Open Vulnerability and Assessment Language: 開(kāi)放式漏洞與評(píng)估語(yǔ)言)5.8 版本、OCIL(Open Checklist Interactive Language:開(kāi)放式檢查單交互語(yǔ)言)2.0 版本、CCE(Common Configuration Enumeration:通用配置枚舉)5.0 版本、CPE(Common Platform Enumeration:通用平臺(tái)枚舉)2.2 版本、CVE(Common Vulnerabilities and Exposures: 通 用 漏 洞 枚 舉)、CVSS(Common Vulnerability Scoring System:通用漏洞評(píng)分系統(tǒng))2.0 版本。
(1)XCCDF(擴(kuò)展配置檢查列表描述格式),用于操作系統(tǒng) (OS) 和應(yīng)用平臺(tái)結(jié)構(gòu)的將安全配置規(guī)則規(guī)范化的XML(Extensible Markup Language:可擴(kuò)展標(biāo)記語(yǔ)言)。
(2)OVAL(開(kāi)放式漏洞與評(píng)估語(yǔ)言),描述技術(shù)細(xì)節(jié)上如何檢查系統(tǒng)安全,定義有關(guān)的軟件缺陷、配置問(wèn)題和補(bǔ)丁的XML 規(guī)范語(yǔ)言。
(3)OCIL(開(kāi)放式檢查單交互語(yǔ)言),定義用于表達(dá)要呈現(xiàn)給用戶的一組問(wèn)題和解釋對(duì)這些問(wèn)題的回答的相應(yīng)程序的框架的XML 語(yǔ)言。
(4)CCE(通用配置枚舉),軟件安全配置問(wèn)題名稱字典(如:訪問(wèn)控制設(shè)置、密碼策略設(shè)置等安全配置問(wèn)題)。
(5)CPE(通用平臺(tái)枚舉),統(tǒng)一硬件、操作系統(tǒng)和應(yīng)用程序產(chǎn)品命名的規(guī)則。
(6)CVE(通用漏洞枚舉),已知公開(kāi)的與安全相關(guān)軟件的漏洞名稱字典。
(7)CVSS(通用漏洞評(píng)分系統(tǒng)),根據(jù)軟件缺陷特點(diǎn)來(lái)分類,然后基于這些特點(diǎn)根據(jù)重要程度來(lái)進(jìn)行評(píng)分等級(jí)。
OVAL 由MITRE 公司開(kāi)發(fā),是一種用來(lái)定義檢查項(xiàng)、脆弱點(diǎn)等技術(shù)細(xì)節(jié)的一種描述語(yǔ)言。 其使用簡(jiǎn)潔的XML格式清晰地對(duì)與安全相關(guān)的系統(tǒng)檢查點(diǎn)作出描述, 這種描述是機(jī)器可讀的,可以使機(jī)器之間交流漏洞、補(bǔ)丁和安全配置設(shè)置,能夠直接應(yīng)用到自動(dòng)化的安全掃描中,可以用來(lái)評(píng)估一個(gè)系統(tǒng)的狀態(tài)。 在SCAP 下,OVAL 通常用于描述已存在的漏洞和系統(tǒng)安全配置, 同時(shí)OVAL 語(yǔ)言提供了足夠的靈活性, 可以用于分析Windows、Linux 等各種操作系統(tǒng)的系統(tǒng)狀態(tài)、漏洞、配置和補(bǔ)丁等情況,而且還能用于描述測(cè)試報(bào)告。
OVAL 有三種用XML 描述的格式(schema),它們定義了OVAL 語(yǔ)言的框架, 這三種格式分別對(duì)應(yīng)了檢測(cè)的三個(gè)步驟:OVAL 定義文檔的模式 (OVAL Definition Schema)、OVAL 系 統(tǒng) 特 征 文 檔 的 模 式 (OVAL System Characteristics Schema)、OVAL 結(jié) 果 文 檔 的 模 式(OVAL Results Schema), 每個(gè)類別都包含一個(gè)核心模式和一系列組件的模式。
(1)OVAL 定 義 文 檔 的 模 式 (OVAL Definition Schema)。OVAL 定義模式 定義了標(biāo)準(zhǔn)的XML 格式用于描述目標(biāo)系統(tǒng)的一個(gè)特定理想狀態(tài)并且讓其能夠自動(dòng)檢測(cè)系統(tǒng)。
(2)OVAL 系統(tǒng)特征文檔的模式(OVAL Syetem Characteristics Schema)。OVAL 的系統(tǒng)特征模式定義了一個(gè)標(biāo)準(zhǔn)的XML 格式用于表示系統(tǒng)配置信息。 這個(gè)配置信息包括操作系統(tǒng)參數(shù), 安裝的軟件應(yīng)用程序設(shè)置和其它安全相關(guān)的配置值。該模式的目的是提供一個(gè)系統(tǒng)特征的“數(shù)據(jù)庫(kù)”,通過(guò)與OVAL 定義進(jìn)行對(duì)比,可以對(duì)系統(tǒng)的漏洞、配置問(wèn)題和補(bǔ)丁進(jìn)行分析。
(3)OVAL 結(jié)果文檔的模式(OVAL Results Schema)。OVAL 的結(jié)果模式定義了一個(gè)標(biāo)準(zhǔn)的XML 格式用于存儲(chǔ)評(píng)估系統(tǒng)的結(jié)果。 數(shù)據(jù)包含系統(tǒng)當(dāng)前狀態(tài)的配置與一組OVAL 定義的比較結(jié)果。 OVAL 結(jié)果模式允許應(yīng)用程序使用這些數(shù)據(jù), 解讀數(shù)據(jù)并采取必要的行動(dòng)來(lái)解決漏洞和配置問(wèn)題(例如:安裝補(bǔ)丁、改變系統(tǒng)配置設(shè)置、采取外部的預(yù)防措施來(lái)限制訪問(wèn)問(wèn)題的系統(tǒng))。這個(gè)模式還定義了一個(gè)標(biāo)準(zhǔn)的漏洞和錯(cuò)誤配置交換格式, 可以被納入各種工具通用。
由此可見(jiàn),如果要定制自己的合規(guī)檢測(cè)方案,就要編寫(xiě)自己獨(dú)特的OVAL 定義文檔。 OVAL 定義文檔提供了一種機(jī)器可讀的對(duì)系統(tǒng)進(jìn)行安全評(píng)估的操作指南, 它可用來(lái)描述系統(tǒng)的配置信息、分析系統(tǒng)的安全狀態(tài)、報(bào)告評(píng)估結(jié)果。 典型的OVAL 定義文檔由Definition(定義)、Test(測(cè)試)、Object(對(duì)象)、State(狀態(tài))和Variable(變量)等要素構(gòu)成,其文檔結(jié)構(gòu)比較簡(jiǎn)單,主要是將各個(gè)要素以枚舉的方式列出,在此不再做過(guò)多闡釋。
SCAP 文檔內(nèi)容是可以用開(kāi)放式漏洞評(píng)估語(yǔ)言(OVAL)、開(kāi)放式清單交互語(yǔ)言(OCIL)或擴(kuò)展配置檢查列表描述格式(XCCDF)描述的系統(tǒng)測(cè)試。 它為安全操作指令指定了一個(gè)標(biāo)準(zhǔn)的能夠在IT 系統(tǒng)上檢查的語(yǔ)言。 OVAL測(cè)試可以解決安全模式、軟件漏洞、當(dāng)前系統(tǒng)存在的惡意軟件等問(wèn)題。 OCIL 問(wèn)卷可以對(duì)人們提出的各種各樣的問(wèn)題給出一個(gè)應(yīng)答。 但是這些SCAP 文檔都比較復(fù)雜,如果人為地去進(jìn)行編寫(xiě),這個(gè)工作量極大,而且意義不大,還容易產(chǎn)生一些不必要的問(wèn)題。因此本項(xiàng)目引入eSCAPe 軟件對(duì)OVAL 文檔進(jìn)行編輯。
eSCAPe 全稱是Enhanced SCAP Editor(增強(qiáng)版SCAP編輯器),增強(qiáng)版SCAP 編輯器(eSCAPe)軟件,是一個(gè)能夠自主創(chuàng)建安全內(nèi)容自動(dòng)化協(xié)議(SCAP)文檔的軟件,隨著eSCAPe 的引入,大大降低了人們編寫(xiě)SCAP 文檔時(shí)的人為錯(cuò)誤。 如今eSCAPe 已經(jīng)被廣泛應(yīng)用于SCAP 文檔的生成,SCAP 文檔經(jīng)常被用于對(duì)現(xiàn)有的惡意軟件和未打補(bǔ)丁的漏洞進(jìn)行快速的單項(xiàng)安全檢測(cè)。 這方便了人們自定義SCAP 檢測(cè)文檔的內(nèi)容, 提高響應(yīng)緊急的高危安全警報(bào)的能力。
eSCAPe 編輯器包括兩種模式用于創(chuàng)建SCAP 內(nèi)容文檔。 “Wizard-Driven”稱作“導(dǎo)引模式”,導(dǎo)引模式是一個(gè)快速創(chuàng)建惡意檢測(cè)SCAP 內(nèi)容文檔的方式, 導(dǎo)引模式將根據(jù)用戶需要?jiǎng)?chuàng)建出一個(gè)完整的SCAP 內(nèi)容文檔, 但是導(dǎo)引模式所能創(chuàng)建的SCAP 內(nèi)容文檔有限。 另一個(gè)“Standard”被稱為“標(biāo)準(zhǔn)模式”。 標(biāo)準(zhǔn)模式可以通過(guò)使用菜單欄項(xiàng)目, 訪問(wèn)所有功能的編輯器, 能夠根據(jù)用戶對(duì)definition、test、object、state 和variable 的 編 輯 自 動(dòng) 生 成 內(nèi) 容 完整的OVAL 文檔。用戶可以通過(guò)菜單欄切換這兩種模式,如圖1 所示為eSCAPe 編輯器界面。
圖2 展示了 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL 定義文檔的部分內(nèi)容。
圖1 OVAL 定義的源文檔Fig.1 OVAL Definition source document
圖2 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL 定義文檔節(jié)選Fig.2 "Setting the maximum number of password retry attempts to 3" excerpt from OVAL Definition document
開(kāi)源的SCAP 相關(guān)的項(xiàng)目的工具有很多, 其中比較重要的有OpenSCAP、OVALDi 以及eSCAPe 等,這些工具已形成了SCAP 的一套完整的開(kāi)發(fā)和利用體系。 eSCAPe用于SCAP 內(nèi)容文檔的的生成,在前面已經(jīng)介紹。 Open-SCAP、OVALDi、jOVAL 用于執(zhí)行基于SCAP 的掃描。通常OpenSCAP 用于Linux 系 統(tǒng),jOVAL 用 于MAC_OS 系 統(tǒng),OVALDi 用于Windows 系統(tǒng)。 本項(xiàng)目用OpenSCAP 中的oscap 工具對(duì)Red Hat Enterprise Linux 7 操作系統(tǒng)進(jìn)行配置合規(guī)檢查。
oscap 根據(jù)OVAL 定義文檔收集主機(jī)的相關(guān)信息生成OVAL 系統(tǒng)特征文檔, 通過(guò)對(duì)OVAL 系統(tǒng)特征文檔和標(biāo)準(zhǔn)的OVAL 定義文檔進(jìn)行對(duì)比得到檢測(cè)結(jié)果, 如圖3形象表現(xiàn)了完整的OVAL 工作流程。
圖3 OVAL 工作流程Fig.3 OVAL workflow
在OVAL 工作過(guò)程中, 針對(duì)每一條測(cè)試,OVAL 各自元素起到不同的作用。 下面針對(duì)最基本的一個(gè)OVAL 測(cè)試中所有的元素定義、測(cè)試和狀態(tài)進(jìn)行說(shuō)明。 OVAL 定義評(píng)價(jià)是一個(gè)檢測(cè)系統(tǒng)特點(diǎn)的過(guò)程和應(yīng)用一個(gè)或多個(gè)描述這些特點(diǎn)的邏輯語(yǔ)句來(lái)確定OVAL 定義的系統(tǒng)狀態(tài)的總體結(jié)果。每個(gè)OVAL 定義擁有零個(gè)或一個(gè)邏輯標(biāo)準(zhǔn)組件,他們結(jié)合使用邏輯運(yùn)算符“與”和“或”。 評(píng)估一個(gè)OVAL定義的總體結(jié)果是由其評(píng)定標(biāo)準(zhǔn)組件決定的。 OVAL 測(cè)試是一個(gè)標(biāo)準(zhǔn)化的表示系統(tǒng)狀態(tài)的聲明。 OVAL 測(cè)試包含引用一個(gè)指定系統(tǒng)數(shù)據(jù)收集和零個(gè)或多個(gè)指定預(yù)期采集的系統(tǒng)狀態(tài)OVAL 對(duì)象。 OVAL 測(cè)試評(píng)估的過(guò)程是一個(gè)根據(jù)OVAL 項(xiàng)目收集的系統(tǒng)狀態(tài)與零個(gè)或多個(gè)OVAL狀態(tài)相比較的過(guò)程,如圖4。 OVAL 狀態(tài)是表示系統(tǒng)預(yù)計(jì)狀態(tài)的標(biāo)準(zhǔn)化表達(dá)。 在OVAL 狀態(tài)中每個(gè)OVAL 狀態(tài)實(shí)體表達(dá)一塊配置信息的預(yù)期值。 OVAL 狀態(tài)評(píng)估是一個(gè)指定的OVAL 狀態(tài)同系統(tǒng)收集到的有關(guān)項(xiàng)的比較過(guò)程,如圖5 所示。
圖4 OVAL 測(cè)試的工作流程Fig.4 OVAL test workflow
圖5 OVAL 狀態(tài)的工作流程Fig.5 OVAL state workflow
為了便于讀者進(jìn)一步理解和熟悉OVAL 定義文檔執(zhí)行掃描和oscap 的使用過(guò)程,下面本文將以使用oscap 運(yùn)行 “設(shè)置密碼最大重試次數(shù)為3” 的OVAL 定義文檔為例,對(duì)基于SCAP 的Linux 終端配置核查進(jìn)行實(shí)踐。
在桌面打開(kāi)終端,輸入并運(yùn)行以下命令:
~]# oscap oval eval--results password-retry-results.xml /usr/tmp/password-retry-oval.xml
oscap 會(huì)運(yùn)行“password-retry-oval.xml”O(jiān)VAL 定義文檔執(zhí)行SCAP 掃描,終端會(huì)顯示本次掃描的結(jié)果。 生成的OVAL 結(jié)果文檔以“password-retry-results.xml”為名保存在home 主文件夾中。
在終端中輸入并運(yùn)行以下命令:
~]# oscap oval generate report password-retry-results.xml >password-retry-report.html
剛才生成的 “password-retry-results.xml”O(jiān)VAL 結(jié)果文檔會(huì)轉(zhuǎn)換為HTML 格式的掃描報(bào)告, 以 “passwordretry-report.html”為名保存在home 主文件夾中。
圖6 為oscap 運(yùn)行“password-retry-oval.xml”O(jiān)VAL 定義文檔執(zhí)行SCAP 掃描的結(jié)果。 因?yàn)楸緳C(jī)設(shè)置密碼最大重試次數(shù)為3,所以掃描結(jié)果為“true”。
圖7 為生成的 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL結(jié)果文檔節(jié)選。
圖8 為生成的 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL定義文檔掃描報(bào)告。
圖6 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL 定義文檔執(zhí)行掃描結(jié)果Fig.6 "Setting the maximum number of password retry attempts to 3" OVAL Definition document scan results
圖7 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL 結(jié)果文檔節(jié)選Fig.7 "Setting the maximum number of password retry attempts to 3" excerpt from the OVAL Results file
圖8 “設(shè)置密碼最大重試次數(shù)為3”O(jiān)VAL 定義文檔掃描報(bào)告Fig.8 "Setting the maximum number of password retry attempts to 3" OVAL Definition document scan report
本文主要對(duì)SCAP 進(jìn)行了引入, 并能夠運(yùn)用其實(shí)現(xiàn)安全配置核查的自動(dòng)化,在國(guó)內(nèi)Linux 終端配置核查檢測(cè)自動(dòng)化方面實(shí)現(xiàn)了一個(gè)突破。 總之, 希望通過(guò)文章對(duì)SCAP 相關(guān)內(nèi)容和工具的梳理,可以為我國(guó)加快建立類似SCAP 的安全內(nèi)容檢查框架,并實(shí)現(xiàn)對(duì)國(guó)產(chǎn)操作系統(tǒng)安全配置的自動(dòng)化核查的研究提供一定的思路和方向。