文/王珩 諸葛建偉
對于主機(jī)安全,我們通常關(guān)注的主要有兩個方面:一是主機(jī)上安裝的操作系統(tǒng)、應(yīng)用軟件所存在的安全漏洞;二是主機(jī)操作系統(tǒng)、應(yīng)用軟件的配置缺陷。配置缺陷指的是操作系統(tǒng)或應(yīng)用軟件不安全的配置,如Windows系統(tǒng)未啟用登錄口令策略便是典型的配置缺陷。以往我們對安全漏洞的關(guān)注比較集中,實(shí)際上,配置缺陷的危害不比漏洞小。
對于信息系統(tǒng)的管理運(yùn)維人員,維護(hù)主機(jī)安全是一項很大的挑戰(zhàn):成百上千的Windows操作系統(tǒng)、應(yīng)用軟件要進(jìn)行檢查和配置;每天都有新的安全漏洞公布出來,很難針對這些新的威脅做出快速的反應(yīng)。特別是對主機(jī)進(jìn)行配置檢查時沒有很好用的工具,找到工具也無法按照自己的需求自定義檢查規(guī)則,對成百上千臺計算機(jī)進(jìn)行檢查更不是簡單的事。
本文將向大家介紹SCAP,它能夠幫助管理人員很好的解決上述這些問題。本期將向大家介紹什么是SCAP,如何利用SCAP執(zhí)行安全檢查,下一期將更加深入地介紹SCAP的技術(shù)細(xì)節(jié),以及如何根據(jù)需要開發(fā)自定義的SCAP安全檢查項目。
圖1 SCAP Element關(guān)系示意圖
SCAP(Security Content Automation Protocol:安全內(nèi)容自動化協(xié)議)由NIST(National Institute of Standards and Technology:美國國家標(biāo)準(zhǔn)與技術(shù)研究院)提出,NIST期望利用SCAP解決三個棘手的問題:一是實(shí)現(xiàn)高層政策法規(guī)(如FISMA,ISO27000系列)等到底層實(shí)施的落地,二是將信息安全所涉及的各個要素標(biāo)準(zhǔn)化(如統(tǒng)一漏洞的命名及嚴(yán)重性度量),三是將復(fù)雜的系統(tǒng)配置核查工作自動化。SCAP是當(dāng)前美國比較成熟的一套信息安全評估標(biāo)準(zhǔn)體系,其標(biāo)準(zhǔn)化、自動化的思想對信息安全行業(yè)產(chǎn)生了深遠(yuǎn)的影響。
NIST將SCAP分為兩個方面進(jìn)行解釋:Protocol(協(xié)議)與Content(內(nèi)容)。Protocol是指SCAP由一系列現(xiàn)有的公開標(biāo)準(zhǔn)構(gòu)成,這些公開標(biāo)準(zhǔn)被稱為SCAP Element(SCAP元素)。Protocol規(guī)范了這些Element之間如何協(xié)同工作,Content指按照Protocol的約定,利用Element描述生成的應(yīng)用于實(shí)際檢查工作的數(shù)據(jù)。例如,F(xiàn)DCC(Federal Desktop Core Configuration:聯(lián)邦桌面核心配置)、USGCB(United States Government Configuration Baseline:美國政府配置基線)等官方的檢查單數(shù)據(jù)格式均為SCAP Content。
SCAP Element(SCAP元素)
SCAP版本1.0包含以下六個SCAP元素:XCCDF、OVAL、CVE、CCE、CPE、CVSS。這些標(biāo)準(zhǔn)在SCAP產(chǎn)生之前都已經(jīng)存在,并在各自的領(lǐng)域發(fā)揮著重要作用。其中一些標(biāo)準(zhǔn)我們可能之前有所了解,如CVE、CVSS。當(dāng)SCAP將它們整合后,其整體標(biāo)準(zhǔn)化的優(yōu)勢變得十分明顯。SCAP為安全工具實(shí)現(xiàn)標(biāo)準(zhǔn)化提供了解決方案:標(biāo)準(zhǔn)的輸入數(shù)據(jù)格式、標(biāo)準(zhǔn)的處理方法和標(biāo)準(zhǔn)的輸出數(shù)據(jù)格式,這非常有利于安全工具之間實(shí)現(xiàn)數(shù)據(jù)交換。
SCAP Element可以分為以下三種類型:語言類,用來描述評估內(nèi)容和評估方法的標(biāo)準(zhǔn),包括了XCCDF和OVAL(1.2版SCAP添加了OCIL);枚舉類,描述對評估對象或配置項命名格式,并提供遵循這些命名的庫,包括了CVE、CCE、CPE;度量類,提供了對評估結(jié)果進(jìn)行量化評分的度量方法,對應(yīng)的元素是CVSS(1.2版SCAP添加了CCSS)。SCAP各個元素之間的關(guān)系如圖1所示。
XCCDF與OVAL
XCCDF是由NSA(National Security Agency:美國國家安全局)與NIST共同開發(fā),是一種用來定義安全檢查單、安全基線、以及其他類似文檔的一種描述語言。XCCDF使用標(biāo)準(zhǔn)的XML語言格式按照一定的格式(Schema)對其內(nèi)容進(jìn)行描述。在SCAP中,XCCDF完成兩件工作:一是描述自動化的配置檢查單(Checkilist),二是描述安全配置指南和安全掃描報告。一個XCCDF文檔包含一個或多個Profile,每個Profile可以理解為一個檢查單。
使用XCCDF無疑有許多好處,通過標(biāo)準(zhǔn)化能夠讓工具間的數(shù)據(jù)交換變得更加容易,能夠很方便地根據(jù)目標(biāo)系統(tǒng)的不同情況對檢查項進(jìn)行裁剪,而且無論是檢查單還是檢查結(jié)果能夠很容易地轉(zhuǎn)換成機(jī)器或人工能夠讀取的格式。
OVAL由MITRE公司開發(fā),是一種用來定義檢查項、脆弱點(diǎn)等技術(shù)細(xì)節(jié)的一種描述語言。OVAL同樣使用標(biāo)準(zhǔn)的XML格式來組織其內(nèi)容。OVAL語言提供了足夠的靈活性,可以用于分析Windows、Linux等各種操作系統(tǒng)的系統(tǒng)狀態(tài)、漏洞、配置、補(bǔ)丁等情況,而且還能用于描述測試報告。OVAL使用簡潔的XML格式清晰地對與安全相關(guān)的系統(tǒng)檢查點(diǎn)作出描述,并且這種描述是機(jī)器可讀的,能夠直接應(yīng)用到自動化的安全掃描中。OVAL的本質(zhì)是Open(公開),這就意味著任何人都可以為OVAL的發(fā)展作出自己的貢獻(xiàn),共享知識和經(jīng)驗(yàn),避免重復(fù)勞動。
XCCDF設(shè)計的目標(biāo)是能夠支持與多種基礎(chǔ)配置檢查技術(shù)交互。其中推薦的、默認(rèn)的檢查技術(shù)是MITRE公司的OVAL。在實(shí)際的SCAP應(yīng)用中,XCCDF和OVAL往往是成對出現(xiàn),如圖1所示,XCCDF定義檢查單,而OVAL定義每個檢查項的具體實(shí)施細(xì)節(jié)。
其他SCAP元素
CVE(Common Vulnerabilities and Exposures:通用漏洞及披露)是包含了公眾已知的信息安全漏洞的信息和披露的集合。CCE(Common Configuration Enumeration:通用配置枚舉)是用于描述計算機(jī)及設(shè)備配置的標(biāo)準(zhǔn)化語言。CPE(Common Platform Enumeration:通用平臺枚舉)是一種對應(yīng)用程序、操作系統(tǒng)以及硬件設(shè)備進(jìn)行描述和標(biāo)識的標(biāo)準(zhǔn)化方案。CVSS(Common Vulnerability Scoring System:通用漏洞評分系統(tǒng))是一個行業(yè)公開標(biāo)準(zhǔn),其被設(shè)計用來評測漏洞的嚴(yán)重程度,并幫助確定其緊急度和重要度。在SCAP版本1.2中,引入了另外兩個新標(biāo)準(zhǔn):OCIL(Open Checklist Interactive Language:開放檢查單交互語言)和CCSS(Common Configuration Scoring System:通用配置評分系統(tǒng))。OCIL能夠用來處理安全檢查中需要人工交互反饋才能完成的檢查項,CCSS作用與CVSS類似,不過CCSS關(guān)注的是系統(tǒng)配置缺陷的嚴(yán)重程度。
SCAP Content(SCAP內(nèi)容)
SCAP Content指的是遵照SCAP Protocol標(biāo)準(zhǔn)設(shè)計制作的用于自動化評估的數(shù)據(jù),其實(shí)體是一個或多個XML文件。一般來說正式發(fā)布的SCAP Content至少包含兩個XML文件,一個是XCCDF,另一個是OVAL,這些文件能夠直接輸入到各類安全工具中執(zhí)行實(shí)際的系統(tǒng)掃描。Content中也可以包含描述其他SCAP Element的XML文件。按照SCAP Protocol標(biāo)準(zhǔn)組織的多個XML文件也被稱為SCAP Data Stream(SCAP數(shù)據(jù)流)。
當(dāng)前,無論是廠商、官方還是開源社區(qū)均提供了大量的SCAP Content。由于SCAP的開放性,這些資源為我們進(jìn)行系統(tǒng)管理提供了很有價值的參考和極大的便利。
廠商提供的SCAP Content
Redhat在與SCAP整合方面做出了很多的努力,Redhat公司會定期發(fā)布針對其企業(yè)版本的Linux(RHEL)進(jìn)行補(bǔ)丁及配置檢查的OVAL文件,這些文件能夠在http://www.redhat.com/security/data/oval下載。Fedora是基于Redhat Linux的一個免費(fèi)的桌面發(fā)行版,它同樣繼承了Redhat在與SCAP整合方面的優(yōu)勢,大部分用于RHEL的SCAP內(nèi)容能夠很好地使用在Fedora系統(tǒng)上。Microsoft在其Security Compliance Manager(安全合規(guī)性管理器)中提供了大量用于檢測Microsoft產(chǎn)品安全性的SCAP Content。
NVD及其他官方提供的SCAP Content
由NIST主導(dǎo)的NCP(National Checklist Program:美國國家檢查單項目)現(xiàn)已積累了大量的用于系統(tǒng)安全性檢查的SCAP Content,這些內(nèi)容可以從NCP的官方網(wǎng)站http://web.nvd.nist.gov/view/ncp/repository處得到。NVD(National Vulnerability Database:美國國家漏洞庫)中所有的漏洞均使用SCAP標(biāo)準(zhǔn)中的OVAL、CVE與CCE描述,可以從其官方網(wǎng)站http://nvd.nist.gov獲取這些資源。此外,NIST還提供了FDCC、USGCB等項目的SCAP內(nèi)容。
NIST建立了信息安全類產(chǎn)品的SCAP兼容性認(rèn)證機(jī)制。安全配置管理、漏洞測試和其他安全審計工具的開發(fā)商,如果希望把其產(chǎn)品售往美國政府市場,需要遵照相關(guān)要求對其產(chǎn)品進(jìn)行認(rèn)證。當(dāng)前美國各大安全廠商在其企業(yè)級系統(tǒng)安全管理工具中均集成了對于SCAP的支持,如Symantec的SRAS(Symantec Risk Automation Suite)以及eEye的Retina等。因此,使用商業(yè)化的工具能夠很方便地配合SCAP進(jìn)行系統(tǒng)配置管理。
在開源領(lǐng)域亦有很多與SCAP相關(guān)的項目,其中比較重要的有OpenSCAP、OVALDi以及eSCAPe等,這些項目形成了對SCAP的一套完整的開發(fā)和利用體系,eSCAPe用于SCAP Content的生成,而OpenSCAP、OVALDi用于執(zhí)行基于SCAP的掃描。下面結(jié)合一些實(shí)例,著重對這些免費(fèi)的SCAP開源工具進(jìn)行介紹。
OpenSCAP
OpenSCAP由Redhat主導(dǎo)開發(fā),是一個整合了SCAP中各標(biāo)準(zhǔn)的開源框架,其為SCAP的使用者提供了一套簡單易用的接口。OpenSCAP實(shí)現(xiàn)了對SCAP數(shù)據(jù)格式的解析以及執(zhí)行檢查操作所使用的系統(tǒng)信息探針,它能夠讓SCAP的采納者專注于業(yè)務(wù)實(shí)現(xiàn),而不是處理一些繁瑣的底層技術(shù)。目前OpenSCAP最新版本完全支持SCAP 1.0規(guī)范中的全部標(biāo)準(zhǔn)。
Fedora下安裝OpenSCAP非常簡單,只需要輸入如下命令:
#yum install openscap openscap-utils openscap-content
其他的Linux發(fā)行版需要從源碼編譯安裝OpenSCAP,下面以Ubuntu為例進(jìn)行介紹:
#安裝支持庫
$sudo apt-get update
$sudo apt-get install gcc swig pkg-config xml2 libxml2-dev xsltproc libxslt-dev libgcrypt11-dev libpcre3-dev python-dev
$cd ~
#從OpenSCAP官方網(wǎng)站下載最新源代碼
$wget https://fedorahosted.org/releases/o/p/openscap/openscap-0.8.2.tar.gz
$tar -zxvf openscap-0.8.2.tar.gz#編譯并安裝
$cd ~/openscap-0.8.2
$./configure && make
$sudo make install
$sudo ldconfig
安裝成功后,我們便能夠使用OpenSCAP項目中自帶的oscap工具對系統(tǒng)進(jìn)行安全掃描。oscap調(diào)用OpenSCAP庫對SCAP內(nèi)容文件進(jìn)行解析,自動進(jìn)行系統(tǒng)安全掃描。oscap還具有文檔格式轉(zhuǎn)換的功能,可以利用它將XCCDF文檔轉(zhuǎn)換成為易讀的HTML格式,這在生成系統(tǒng)配置指南文件或掃描報告時非常有用。下面對其主要的使用方法進(jìn)行簡要的說明:
#將scap-xccdf.xml轉(zhuǎn)成易讀的guild.html
$oscap xccdf generate guide scap-xccdf.xml > guide.html#將scap-xccdf.xml中的Desktop profile中的內(nèi)容轉(zhuǎn)為html$oscap xccdf generate guide --profile Desktop scap-xccdf.xml > guide.html
#將掃描完成后生成的xccdf-results.xml結(jié)果文件轉(zhuǎn)為易讀的report.html
$oscap xccdf generate report xccdf-results.xml > report.html
#對scap-xccdf.xml文檔進(jìn)行語法驗(yàn)證
$oscap xccdf validate-xml scap-xccdf.xml
#使用scap-xccdf.xml中的Desktop Profile對當(dāng)前系統(tǒng)進(jìn)行掃描,并將結(jié)果輸出到xccdf-results.xml中
$oscap xccdf eval --profile Desktop --results xccdf-results.xml scap-xccdf.xml
#對scap-oval.xml中的所有檢測項進(jìn)行掃描,并將結(jié)果輸出到oval-results.xml中
$oscap oval eval --results oval-results.xml scap-oval.xml#對scap-oval.xml中的某個檢查項進(jìn)行掃描
$oscap oval eval --id oval:rhel:def:1000 --results ovalresults.xml scap-oval.xml
圖2 oscap掃描結(jié)果
圖3 SCAP-Workbech Scanner主界面
圖4 SCAP-Workbench Scanner的XCCDF裁剪功能
oscap掃描完成后生成的HTML格式的報告如圖2所示。結(jié)果中包含了對系統(tǒng)整體安全性的評分、每個檢測項的掃描結(jié)果以及每個掃描項的詳細(xì)技術(shù)說明和參考,這些信息對于安全管理人員非常具有參考價值。
SCAP-Workbench
基于OpenSCAP框架有很多優(yōu)秀的SCAP應(yīng)用,SCAP-Workbench就是其中之一。SCAP-Workbench在OpenSCAP框架上實(shí)現(xiàn)了簡單易用的圖形界面,具有配置檢查、檢查單剪裁、SCAP內(nèi)容編輯和報表生成等非常實(shí)用的功能。SCAP-Workbench使用起來非常方便,非常適合普通的桌面版Linux用戶。SCAP-Workbench使用Python語言開發(fā),安裝很簡單,F(xiàn)edora用戶可以直接使用yum命令安裝,其他Linux發(fā)行版可在其網(wǎng)站(https://fedorahosted.org/scap-workbench/)上下載最新的源碼,解壓后運(yùn)行make install命令即可。需要注意的是在安裝使用SCAP-Workbench之前需要先安裝OpenSCAP,而且你的Linux系統(tǒng)需要支持圖形界面。
在Fedora下以root身份輸入yum install scap-workbench即可完成安裝。在Ubuntu下請按照如下步驟安裝:
$wget https://fedorahosted.org/released/scapworkbench/scap-workbench-0.5.3.tar.bz2
$tar -jxvf scap-workbench-0.5.3.tar.bz2
$cd scap-workbench-0.5.3
$sudo make install
SCAP-Workbench分為Scanner和Editor兩個部分,Scanner用于執(zhí)行系統(tǒng)安全性掃描,Editor用于編輯XCCDF文件。
SCAP-Workbench Scanner
為了完成本例中的掃描操作,讀者可以可以在http://usgcb.nist.gov/usgcb/rhel/download_rhel5.html下載適用于Redhat Enterprise Linux 5以及Fedora的USCGB SCAP Content。解壓后,該Content包含以下5個文件:
usgcb-rhel5desktop-cpe-dictionary.xml
#描述RHEL平臺的CPE定義
usgcb-rhel5desktop-cpe-oval.xml
#描述OVAL中使用CPE定義
usgcb-rhel5desktop-oval.xml
#描述RHEL Desktop配置合規(guī)性的OVAL文檔usgcb-rhel5desktop-xccdf.xml
#XCCDF格式的檢查單
在命令行中輸入scap-workbench啟動Scanner,如果你使用的是桌面版Linux,亦可在桌面的“應(yīng)用程序”菜單的“系統(tǒng)工具”中找到這個程序。下面我們啟動Scanner程序,并點(diǎn)擊Load載入usgcb-rhel5desktop-xccdf.xml文件后,界面如圖3所示。
Tailoring(裁剪)可以對XCCDF中所定義的檢查單進(jìn)行剪裁和調(diào)整,Scan(掃描)功能可以執(zhí)行掃描、導(dǎo)出報表等一系列操作。圖4演示了如何根據(jù)實(shí)際需求使用SCAP-Workbench對現(xiàn)有的SCAP Content中的檢查項進(jìn)行裁剪,只需要點(diǎn)擊檢查項前方的復(fù)選框,即可禁用或啟用一個檢查項。XCCDF文件中會預(yù)定義一個或多個檢查單輪廓(Profile),應(yīng)當(dāng)先在(No Profile)處選擇相應(yīng)的Profile,然后再執(zhí)行裁剪操作。
裁剪完畢后,可以點(diǎn)擊Scan選項卡,點(diǎn)擊Scan按鈕后開始掃描,掃描的結(jié)果會在界面上直觀地顯示出來,掃描完成后可以將結(jié)果導(dǎo)出為報告文件。
SCAP-Workbench Editor
Editor是一個簡單易用的XCCDF編輯器,使用它可以很方便地編輯或生成XCCDF Benchmark文件。在命令行中輸入scap-workbencheditor啟動Editor,載入一個XCCDF文檔后界面如圖5所示。
在Benchmark頁可以對XCCDF文檔的基本屬性進(jìn)行修改,如版本號、語言等。Profiles頁可以編輯或增加Profile,在Items頁可以對檢查項進(jìn)行編輯,如圖6所示。編輯Item需要對XCCDF文檔格式細(xì)節(jié)的了解,關(guān)于XCCDF文檔的細(xì)節(jié)將在下期詳細(xì)向讀者介紹。
OVALDi
OVALDi由Mitre公司(OVAL語言的始創(chuàng)者)提供,因此它在OVAL標(biāo)準(zhǔn)的兼容性方面具有先天的優(yōu)勢。OVALDi根據(jù)OVAL Definition(OVAL定義)收集主機(jī)的相關(guān)信息生成OVAL SC(OVAL System Characteristics:OVAL系統(tǒng)概要)文件,通過對OVAL SC文件和標(biāo)準(zhǔn)的OVAL Definition進(jìn)行對比得到檢測結(jié)果。OVALDi是跨平臺的,能夠較好的支持各種操作系統(tǒng),而且它能夠緊跟OVAL技術(shù)的發(fā)展,但它無法解析SCAP中除OVAL以外的其他元素。
由于大部分Linux發(fā)行版的軟件源中均內(nèi)置了OVALDi工具,因此OVALDi在Linux下的的安裝非常簡單。Ubuntu下輸入sudo apt-get install ovaldi,F(xiàn)edora下輸入yum install ovaldi即可完成安裝。Windows用戶可直接從http://sourceforge.net/projects/ovaldi/下載最新版的Windows安裝包(如ovaldi-5.10.1.2-setup.exe),安裝后即可使用它來執(zhí)行OVAL掃描。下面演示如何使用OVALDi對Windows主機(jī)執(zhí)行USGCB檢查。
為了完成本節(jié)的示例,請讀者首先從USGCB的官方網(wǎng)站http://usgcb.nist.gov上下載最新的SCAP Content,USGCB的Content有Windows 7和Windows XP等多個版本,請注意選擇和你本機(jī)操作系統(tǒng)匹配的版本,本例中我們使用Windows 7版本。下載解壓后,得到如下文件:
USGCB-Windows-7-cpe-dictionary.xml#Windows7的CPE定義
USGCB-Windows-7-cpe-oval.xml
#OVAL中使用的CPE定義
USGCB-Windows-7-oval.xml
#描述Windows7配置合規(guī)性的OVAL文檔USGCB-Windows-7-patches.xml
#描述Windows7補(bǔ)丁(漏洞)的OVAL文檔USGCB-Windows-7-xccdf.xml
#描述檢查單的XCCDF文檔
打開Windows的命令提示符窗口,進(jìn)入OVALDi的安裝目錄,執(zhí)行ovaldi-mo USGCB-Windows-7-oval.xml即可開始對Windows的進(jìn)行配置合規(guī)性掃描。注意Windows 7最好以管理員身份打開命令提示符窗口,否則一些特定的檢查項可能因?yàn)槿鄙贆?quán)限無法執(zhí)行。掃描完成后,默認(rèn)會生成兩個報告文件,一個名為results.xml,可用于和其他工具之間進(jìn)行數(shù)據(jù)交換;另一份為results.html格式,可供管理人員閱讀使用。掃描報告如圖7所示,其中包含了詳細(xì)的系統(tǒng)信息、OVAL文檔的信息和每一個檢查項的掃描結(jié)果。
OVAL掃描報告中掃描結(jié)果有以下幾種狀態(tài),分別是True:如果是執(zhí)行漏洞掃描,表示漏洞存在,如果執(zhí)行配置合規(guī)掃描,則表示該項檢查合規(guī);False:如果執(zhí)行漏洞掃描,表示漏洞不存在,如果執(zhí)行配置合規(guī)掃描,表示檢查不合規(guī);Error:檢查過程中出錯;Unkown:未得到期望的結(jié)果。
上面例子我們使用了ovaldi-m-o參數(shù),-m指定不對OVAL文檔進(jìn)行MD5校驗(yàn),-o指定輸入的OVAL文檔的文件名。此外,OVALDi還有以下常用的參數(shù):
-h:顯示使用幫助
-v
-e
-f
-i
-r
-z:計算當(dāng)前oval文檔的MD5值
圖5 SCAP-Workbench Editor主界面
圖6 使用SCAP-Workbench Editor編輯XCCDF檢查項
本文介紹了什么是SCAP、SCAP的組成元素、SCAP元素之間的關(guān)系、SCAP相關(guān)的開源工具,以及如何利用SCAP和開源工具對系統(tǒng)進(jìn)行配置合規(guī)性掃描??梢钥吹绞褂肧CAP能夠非常方便地對系統(tǒng)配置合規(guī)性進(jìn)行自動化評估。本文中我們使用了USCGB的SCAP Content作為例子,如果想要更靈活地利用SCAP為自己的信息系統(tǒng)服務(wù),那么我們需要進(jìn)一步了解SCAP的具體技術(shù)細(xì)節(jié),開發(fā)適用于自己的系統(tǒng)的SCAP Content,這些內(nèi)容我們將在下一期向讀者呈現(xiàn)。