引入SCAP標(biāo)準(zhǔn)提高系統(tǒng)配置安全
隨著計(jì)算機(jī)通信技術(shù)的飛速發(fā)展,由系統(tǒng)配置而導(dǎo)致的安全問題越來越多,安全內(nèi)容自動(dòng)化協(xié)議(SCAP)為系統(tǒng)配置的標(biāo)準(zhǔn)化以及對(duì)系統(tǒng)配置的脆弱性評(píng)估提供了一種統(tǒng)一的方法。越來越多的廠商、組織與社團(tuán)已加入到SCAP的研究與發(fā)展中,也推動(dòng)SCAP成為真正意義的全球標(biāo)準(zhǔn)。
2010年11月7日至16日,IETF79研討會(huì)在北京召開,全球范圍內(nèi)數(shù)以千計(jì)的科研工作者參加了這次盛會(huì),其中一個(gè)很重要的議題就是討論將安全內(nèi)容自動(dòng)化協(xié)議(SCAP: Security Content Automation Protocol)引入IETF標(biāo)準(zhǔn)化,使之成為真正意義上的全球標(biāo)準(zhǔn)。
1.SCAP的產(chǎn)生背景
由于計(jì)算機(jī)通信技術(shù)的飛速發(fā)展,美國聯(lián)邦政府強(qiáng)烈的意識(shí)到由于計(jì)算機(jī)系統(tǒng)配置問題而暴漏出越來越多的安全漏洞,為此,2007年美國聯(lián)邦預(yù)算管理辦公室(OMB:Office of Management and Budget)提出要求所有的政府部門開始試行聯(lián)邦桌面核心配置計(jì)劃(FDCC:Federal Desktop Core Configuration)。2008年則開始強(qiáng)制執(zhí)行。FDCC最初是由美國國家標(biāo)準(zhǔn)與技術(shù)研究所聯(lián)合OMB、DHS(Department of Homeland Security)、NSA(National Security Agency)以及Microsoft共同開發(fā),用于美國空軍Windows XP的公共安全配置,2008年6月發(fā)布第一個(gè)版本FDCC1.0,在本文發(fā)稿前最新的版本為2009年8月發(fā)布的1.2版本。
FDCC定義了針對(duì)Windows XP 與Vista操作系統(tǒng)的公共配置準(zhǔn)則。為了檢測FDCC的合規(guī)性,NIST開發(fā)了安全內(nèi)容自動(dòng)化協(xié)議SCAP,以標(biāo)準(zhǔn)化的方式表達(dá)與使用安全數(shù)據(jù),以及進(jìn)行安全問題評(píng)估。最初主要針對(duì)于Windows操作系統(tǒng)開發(fā)檢查列表(checklist),后來逐步擴(kuò)展到UNIX系統(tǒng),web瀏覽器,反病毒軟件以及防火墻等。
SCAP提供了一種自動(dòng)、標(biāo)準(zhǔn)化的方法來維護(hù)企業(yè)系統(tǒng)的安全,如實(shí)現(xiàn)安全配置基線,驗(yàn)證當(dāng)前的補(bǔ)丁程序,進(jìn)行系統(tǒng)安全配置設(shè)置的持續(xù)性監(jiān)測,檢查系統(tǒng)的折衷標(biāo)記(sign of compromise),以及能在任意設(shè)定時(shí)刻給出系統(tǒng)的安全狀態(tài)。SCAP的提出主要源于如下幾個(gè)方面的原因:
◆大量的以及多樣的系統(tǒng)需要保護(hù)。
大多數(shù)組織有需要保護(hù)的一些系統(tǒng),針對(duì)每個(gè)系統(tǒng)有眾多的應(yīng)用需要保護(hù)。一般一個(gè)企業(yè)內(nèi)部裝有多種操作系統(tǒng)及上千種的應(yīng)用軟件,每個(gè)系統(tǒng)或應(yīng)用都有自己的補(bǔ)丁機(jī)制及安全配置管理。相同的軟件在不同主機(jī)上的保護(hù)機(jī)制也可能會(huì)有些許的不同。一個(gè)單獨(dú)的主機(jī)針對(duì)它的操作系統(tǒng)與應(yīng)用也會(huì)有上千種安全配置設(shè)置。所有這些因素使得決定每個(gè)系統(tǒng)上需要什么樣的安全變化,快速、正確、一致地實(shí)現(xiàn)這些變化,以及驗(yàn)證安全配置更為復(fù)雜。
◆快速響應(yīng)新的威脅。
一些組織經(jīng)常需要重新配置軟件或安裝補(bǔ)丁以消除新發(fā)現(xiàn)地或成為攻擊者目標(biāo)的脆弱性。在2009年,有多達(dá)5,700個(gè)軟件缺陷被加入到美國國家脆弱性數(shù)據(jù)庫(NVD:National Vulnerability Database)。
◆缺乏互操作性。
大多數(shù)系統(tǒng)安全工具采用私有格式、命名法、測量方法與內(nèi)容,如補(bǔ)丁管理與脆弱性管理軟件。例如,如果脆弱性掃描器沒有采用標(biāo)準(zhǔn)化的弱點(diǎn)命名法,安全管理人員將不清楚多個(gè)掃描器的掃描結(jié)果報(bào)告是否指向相同的脆弱性。這種互操作性的缺乏將導(dǎo)致安全評(píng)估的不一致性,延遲制作決定以及做出及時(shí)的修正。
2.SCAP協(xié)議框架
SCAP包含兩個(gè)主要元素。首先,它是一個(gè)協(xié)議,一組標(biāo)準(zhǔn)化格式與術(shù)語的開放規(guī)范,通過它軟件安全產(chǎn)品可以互通軟件缺陷與安全配置信息,每一個(gè)規(guī)范也被稱作一個(gè)SCAP組件;其次,SCAP包括軟件缺陷與安全配置標(biāo)準(zhǔn)化的參考數(shù)據(jù),也被稱作SCAP內(nèi)容。
下表列出了目前的SCAP 1.0 協(xié)議組件,這些組件按類型分為:列舉(Enumerations)組,為安全與產(chǎn)品相關(guān)的信息定義了標(biāo)準(zhǔn)表述符與目錄;脆弱性測量與評(píng)分(Vulnerability Measurement and Scoring)組,用于測量脆弱性特征以及根據(jù)這些特征給予評(píng)分;表述與檢查語言(Expression and Checking Languages)組,運(yùn)用XML Schema說明檢查列表,產(chǎn)生檢查列表報(bào)告,以及說明用于檢查列表的低級(jí)測試過程。#p#
Table 1 SCAP 1.0 協(xié)議組件
| 
             SCAP 組件 
             | 
            
             描述 
             | 
            
             維護(hù)組織 
             | 
        
| 
             列舉 
             | 
        ||
| 
             通用配置列舉(CCE:Common Configuration Enumeration) 
             | 
            
             定義了與安全相關(guān)的系統(tǒng)配置項(xiàng)的標(biāo)準(zhǔn)標(biāo)識(shí)符與目錄 
             | 
            
             MITRE Corporation 
             | 
        
| 
             通用平臺(tái)列舉(CPE:Common Platform Enumeration ) 
             | 
            
             定義了平臺(tái)及版本大多標(biāo)準(zhǔn)名稱與目錄 
             | 
            
             MITRE Corporation 
             | 
        
| 
             通用脆弱性與漏洞列舉(CVE:Common Vulnerabilities and 
            Exposures ) 
             | 
            
             定義了與軟件缺陷相關(guān)的標(biāo)準(zhǔn)標(biāo)識(shí)符與目錄 
             | 
            
             MITRE Corporation 
             | 
        
| 
             脆弱性測量與評(píng)分 
             | 
        ||
| 
             通用脆弱性評(píng)分系統(tǒng)(CVSS:Common Vulnerability Scoring System ) 
             | 
            
             定義了脆弱性對(duì)系統(tǒng)影響的評(píng)分 
             | 
            
             Forum of Incident Response and Security Teams (FIRST) 
             | 
        
| 
             表述與檢查語言 
             | 
        ||
| 
             擴(kuò)展配置檢查列表描述格式(XCCDF:Extensible Configuration Checklist Description Format ) 
             | 
            
             定義了檢查列表與檢查報(bào)告的XML描述格式 
             | 
            
             National Security Agency (NSA) and NIST 
             | 
        
| 
             開放脆弱性評(píng)估描述語言(OVAL:Open Vulnerability and Assessment Language ) 
             | 
            
             定義了用于檢查列表的低級(jí)測試過程 
             | 
            
             MITRE Corporation 
             | 
        
關(guān)于SCAP content,存在多個(gè)資源,例如,NVD擁有CPE與CVE標(biāo)識(shí)項(xiàng),MITRE公司擁有OVAL數(shù)據(jù)庫,并且維護(hù)CCE標(biāo)識(shí)項(xiàng)的列表。每一個(gè)SCAP組件提供唯一的功能,可以被獨(dú)立地運(yùn)用,但是聯(lián)合的運(yùn)用能帶來更大的好處,例如,用XCCDF格式依據(jù)CPE表達(dá)CCE的能力形成了用于SCAP表達(dá)檢查列表的基本元素,換句話說,SCAP表達(dá)的檢查列表用一種標(biāo)準(zhǔn)化的語言(XCCDF)來表達(dá)所討論的平臺(tái)是什么(CPE),訪問什么安全設(shè)置(CCE)。運(yùn)用SCAP表達(dá)檢查列表可以很容易的幫助組織實(shí)現(xiàn)對(duì)系統(tǒng)的安全控制,進(jìn)行安全監(jiān)測,自動(dòng)化高級(jí)安全需求的合規(guī)性報(bào)告。
總之檢查列表用SCCDF來描述評(píng)估什么,用OVAL在目標(biāo)系統(tǒng)做相應(yīng)的測試,用CPE標(biāo)識(shí)檢查列表是有效的以及運(yùn)行測試的平臺(tái),用CCE標(biāo)識(shí)在檢查列表中被訪問或被評(píng)估的安全配置設(shè)置,用CVE參考已知的脆弱性,CVSS用于分級(jí)這些脆弱性。
2.1.XCCDF
XCCDF基本數(shù)據(jù)模型由以下四個(gè)主要的對(duì)象數(shù)據(jù)類型組成:
◆基準(zhǔn)(Benchmark)??梢院唵卫斫鉃闄z查列表,一個(gè)XCCDF只能擁有一個(gè)基準(zhǔn)對(duì)象,它相當(dāng)于一個(gè)容器,包含條目及其它的對(duì)象。
◆條目(Item)。條目是一個(gè)基準(zhǔn)對(duì)象中的命名要素,每一條目有一個(gè)唯一的參考ID。條目包含以下三種類型:
a).組(Group)。這種類型條目可以包含其它條目,即一個(gè)組可以包含其它的組以及規(guī)則與值。一個(gè)組可以被選擇,也可以不被選擇。
b).規(guī)則(Rule)。這種類型條目定義具體的檢查規(guī)則,可以擁有檢查參考與評(píng)分權(quán)重。一個(gè)規(guī)則可以被選擇,也可以不配選擇。
c).值(Value)。這種類型條目是一命名的數(shù)據(jù)值,可以理解為允許用戶為每種規(guī)則預(yù)定義的可選值。
◆輪廓(Profile)。輪廓定義了對(duì)規(guī)則、組與值對(duì)象的共性收集。
◆測試結(jié)果(TestResult)。測試結(jié)果對(duì)象記錄單獨(dú)的設(shè)備或系統(tǒng)的合規(guī)性測試結(jié)果。#p#
下圖顯示了這幾種數(shù)據(jù)對(duì)象類型的關(guān)系。
XCCDF的目的是提供一種統(tǒng)一的方式描述安全檢查列表與檢查列表的評(píng)估結(jié)果。XCCDF文檔由一個(gè)或多個(gè)XCCDF規(guī)則組成。每一個(gè)XCCDF規(guī)則是系統(tǒng)中一個(gè)技術(shù)檢查點(diǎn)的高級(jí)定義。一個(gè)規(guī)則沒有直接說明怎樣做一個(gè)檢查,而是間接的通過OVAL的定義文件來說明相應(yīng)的檢查方法。
2.2.OVAL
OVAL用于表達(dá)標(biāo)準(zhǔn)化的、機(jī)器可讀的規(guī)則,這些規(guī)則能用于評(píng)估系統(tǒng)的狀態(tài)。在SCAP框架下,OVAL通常用于決定存在的缺陷與不安全配置。一套用于檢查安全問題的指令(例如:一不正確的最小口令長度設(shè)置)被稱作一個(gè)OVAL定義(Definition),包含一個(gè)或多個(gè)OVAL定義的文件稱為一個(gè)OVAL定義文件。
有四種類型的OVAL定義:
◆脆弱性定義:定義了針對(duì)特定的脆弱性的出現(xiàn),在計(jì)算機(jī)上必須存在的條件。
◆補(bǔ)丁定義:定義條件以決定是否一個(gè)特定的補(bǔ)丁適合一個(gè)系統(tǒng)。
◆詳細(xì)清單定義:定義條件以決定是否軟件的特定部分被安裝在系統(tǒng)上。
◆合規(guī)性定義:定義條件以決定是否計(jì)算機(jī)已符合特定的策略或配置描述。
OVAL語言借助XML語法描述,包含三種核心的Schema,即OVAL定義Schema,對(duì)以上四種類型的OVAL定義進(jìn)行描述;OVAL系統(tǒng)特征Schema,根據(jù)系統(tǒng)的實(shí)際特征進(jìn)行相應(yīng)的編碼描述;OVAL結(jié)果Schema,是對(duì)分析結(jié)果的詳細(xì)編碼描述。#p#
下圖說明了怎樣運(yùn)用OVAL三種核心Schema描述與分析一個(gè)實(shí)際系統(tǒng)脆弱性過程。
2.3.CPE,CVE與CCE
這部分描述來了SCAP1.0中的三個(gè)列舉規(guī)范:CPE 2.2,CCE 5與CVE。SCAP列舉基本上都包含一個(gè)ID,一個(gè)相關(guān)的描述或定義,與一個(gè)支持的參考列表。下面對(duì)每一個(gè)規(guī)范以及它們之間的相互依賴關(guān)系給予說明。
CPE 2.2是對(duì)操作系統(tǒng)、硬件與軟件的標(biāo)準(zhǔn)命名規(guī)范,它使得不同的組織可以共享相同的名字,以及針對(duì)特定平臺(tái)獲得相同的解決方案。一個(gè)單獨(dú)的CPE命名語法如下:
cpe:/{part}:{vendor}:{product}:{version}:{update}:{edition}:{language}
例如,"cpe:/o:redhat:enterprise_linux:2.1::es "是指RedHat企業(yè)服務(wù)器版2.1,"o"指示這個(gè)CPE描述一個(gè)操作系統(tǒng),在這個(gè)例子中,"edition"域是空白,表示這個(gè)CPE應(yīng)用于RedHat企業(yè)版服務(wù)器2.1的所有版本。CPE在SCAP中應(yīng)用有以下幾種方式:
◆XCCDF: 在一個(gè)XCCDF檢查列表中,CPE名字能用于標(biāo)識(shí)一個(gè)XCCDF對(duì)象(benchmark,profile,group或rule)應(yīng)用的硬件或軟件平臺(tái)。
◆CCE:CCE通過關(guān)聯(lián)CPE用以說明配置缺陷發(fā)生的平臺(tái)。
◆CVE:CVE被關(guān)聯(lián)到CPE描述的一個(gè)或多個(gè)平臺(tái)。這種映射關(guān)系被保存在NVD中。#p#
CCE 5用于標(biāo)準(zhǔn)化安全配置問題與條目。每一種安全相關(guān)的配置問題被分配一個(gè)唯一的ID以便于快速、精確地發(fā)現(xiàn)多個(gè)信息源與工具之間配置數(shù)據(jù)的相互關(guān)系。MITRE公司維護(hù)與出版CCE列表,每個(gè) CCE條目包括5種屬性:一個(gè)唯一的ID,一個(gè)配置問題的描述,CCE的邏輯參數(shù),相關(guān)的技術(shù)機(jī)制,與附加信息源的參考。下面是一個(gè)用于Windows XP中CCE條目的例子。
CCE ID: CCE-3108-8
Definition: The correct service permissions for the Telnet service should be assigned.
Parameters: (1) set of accounts (2) list of permissions
Technical Mechanisms: (1) set via Security Templates (2) defined by Group Policy
References: Listed at http://cce.mitre.org/lists/cce_list.html
在一個(gè)XCCDF檢查列表中,CCE用于說明哪些安全配置設(shè)置應(yīng)被檢查,OVAL運(yùn)用CCE條目也是同樣的目的。
CVE用于標(biāo)準(zhǔn)化公共已知的軟件缺陷。這種通用的命名機(jī)制允許多個(gè)組織間共享數(shù)據(jù),有效地集成服務(wù)于工具。例如,一個(gè)糾錯(cuò)工具可以運(yùn)用幾個(gè)掃描器與檢測傳感器的CVE信息來制定一種集成的風(fēng)險(xiǎn)消除解決方案。CVE的好處表現(xiàn)在:
◆公共已知軟件缺陷的全面的列表
◆一個(gè)全球唯一的名字來標(biāo)識(shí)每一個(gè)脆弱性
◆討論脆弱性特性與風(fēng)險(xiǎn)的基礎(chǔ)
◆是用戶集成脆弱性信息到不同工具與服務(wù)的方式
每個(gè)CVE條目由一個(gè)唯一名字,一個(gè)簡短描述與參考組成。下面是一CVE條目的例子。
CVE ID: .CVE-2000-0001
Description: RealMedia server allows remote attackers to cause a denial of service via a long ramgen request.
References: BUGTRAQ: 19991222 RealMedia Server 5.0 Crasher (rmscrash.c)
BID: 888. URL:http://www.securityfocus.com/bid/888
2.4.CVSS
CVSS2.0提供了一種可重復(fù)的方法以評(píng)估和表達(dá)軟件缺陷的風(fēng)險(xiǎn)。運(yùn)用這種共享的評(píng)分模型可以很容易的比較脆弱性的嚴(yán)重程度。CVSS提供了以下三種尺度用以權(quán)重脆弱性的評(píng)分:
◆基本因素,脆弱性的內(nèi)在因素決定的基本分?jǐn)?shù)。
◆時(shí)間因素,捕捉隨時(shí)間而改變的外部因素,考慮時(shí)間因素來調(diào)整基本分?jǐn)?shù)。
◆環(huán)境因素,它標(biāo)識(shí)了一個(gè)組織操作環(huán)境的上下文中這種脆弱性的嚴(yán)重程度。
CVSS可以幫助組織理解多種脆弱性的相對(duì)重要性,從而使他們能有效地評(píng)估、優(yōu)化與消除脆弱性。因?yàn)槊恐軙?huì)公開發(fā)布數(shù)百個(gè)脆弱性問題,因此找到一種容易的方法標(biāo)識(shí)哪些脆弱性會(huì)對(duì)系統(tǒng)帶來重要的影響是非常重要的。NVD分析專家為所有的CVE條目計(jì)算與發(fā)布CVSS基本評(píng)分,但是每個(gè)組織將根據(jù)他們特定的時(shí)間因素與環(huán)境因素來裁剪基本評(píng)分以得到實(shí)際的脆弱性評(píng)分。#p#
3.標(biāo)準(zhǔn)的評(píng)估認(rèn)證
NIST已經(jīng)建立了SCAP產(chǎn)品認(rèn)證體系與SCAP實(shí)驗(yàn)室委任體系,這些體系一起確保SCAP產(chǎn)品的測試與驗(yàn)證過程。SCAP測評(píng)實(shí)驗(yàn)室需要經(jīng)過美國國家實(shí)驗(yàn)室自愿認(rèn)可計(jì)劃(NVLAP)的授權(quán)。實(shí)驗(yàn)室一經(jīng)授權(quán),實(shí)驗(yàn)室就可以根據(jù)NISTIR (National Institute of Standards and Technology Interagency Report) 7511中的DTR (Derived Test Requirements)的描述進(jìn)行SCAP產(chǎn)品測試。產(chǎn)品經(jīng)測試后,測評(píng)實(shí)驗(yàn)室將發(fā)布測試報(bào)告(包括特定產(chǎn)品的需求列表,被需要的開發(fā)商文檔,由實(shí)驗(yàn)室做的詳細(xì)的測試總結(jié))給SCAP產(chǎn)品認(rèn)證體系,產(chǎn)品認(rèn)證體系專家將審閱測試報(bào)告,然后發(fā)布產(chǎn)品認(rèn)證。
一個(gè)產(chǎn)品可以被認(rèn)證符合六個(gè)SCAP組件規(guī)范的一個(gè)或多個(gè),或單獨(dú)的符合一個(gè)特定的SCAP能力。所謂SCAP能力不是指產(chǎn)品類型 ,而是產(chǎn)品運(yùn)用SCAP的方式,如認(rèn)證的脆弱性掃描器、認(rèn)證的配置掃描器、入侵檢測與預(yù)防、漏洞修補(bǔ)、錯(cuò)誤配置修補(bǔ)、設(shè)備管理、脆弱性數(shù)據(jù)庫等等。隨著SCAP被應(yīng)用到更多類型的安全工具,SCAP能力列表將隨著時(shí)間而不斷發(fā)展。SCAP認(rèn)證體系保證一個(gè)產(chǎn)品符合一套SCAP能力與/或一個(gè)或多個(gè)SCAP組件規(guī)范。
如果沒有重新認(rèn)證的話,SCAP產(chǎn)品的認(rèn)證有效期僅為一年,這保證SCAP產(chǎn)品始終與SCAP技術(shù)發(fā)展同步,持續(xù)的結(jié)合SCAP的參考數(shù)據(jù)為基礎(chǔ),使用最新的與改進(jìn)的方法對(duì)產(chǎn)品進(jìn)行重新測試。
4.SCAP展望
截至此文章發(fā)稿前,已有30個(gè)廠商獲得了掃描與審計(jì)產(chǎn)品的SCAP認(rèn)證,正式通過SCAP認(rèn)證的廠商可以參考鏈接:http://nvd.nist.gov/scapproducts.cfm。我們不難發(fā)現(xiàn)越來越多的廠商,組織與社團(tuán)加入到SCAP的研究與發(fā)展中,它已經(jīng)成為業(yè)界事實(shí)上的標(biāo)準(zhǔn),目前正式發(fā)布的版本為SCAP 1.0(包括XCCDF 1.1.4,OVAL 5.3與5.4,CPE 2.2,CCE 5,CVE與CVSS 2.0),SCAP1.1目前處于修訂中,并且SCAP已經(jīng)正式提交IETF討論組,相信不久的將來即會(huì)成為正式的全球標(biāo)準(zhǔn)。
參考文獻(xiàn)
[1] SCAP Homepage. http://scap.nist.gov
[2] The Extensible Configuration Checklist Description Format (XCCDF) Version 1.1.4. https://datatracker.ietf.org/doc/draft-waltermire-scap-xccdf/
[3] Naming Conventions for Vulnerabilities and Configurations. https://datatracker.ietf.org/doc/draft-landfield-scap-naming/
[4] Open Vulnerability and Assessment Language (OVAL). http://oval.mitre.org/
[5] Common Configuration Enumeration (CCE). http://cce.mitre.org/
[6] Common Platform Enumeration (CPE). http://cpe.mitre.org/
[7] Common Vulnerabilities and Exposures (CVE). http://cve.mitre.org/
[8] Common Vulnerability Scoring System (CVSS). http://www.first.org/cvss/
[9] National Voluntary Laboratory Accreditation Program (NVLAP). http://ts.nist.gov/standards/accreditation/index.cfm
[10] SCAP Validated Tools. http://nvd.nist.gov/scapproducts.cfm
[11] National Checklist Program. http://checklists.nist.gov
[12] National Vulnerability Database. http://nvd.nist.gov
作者介紹
張力(1973 -),男,西安電子科技大學(xué)碩士,高級(jí)咨詢顧問,主要從事FIPS 與CC方面的研究、咨詢與測評(píng)工作。
【本文為51CTO.com特稿、atsec和作者技術(shù)共享類文章,旨在共同探討信息安全業(yè)界的相關(guān)話題。轉(zhuǎn)載請(qǐng)注明出處以及atsec和作者名稱?!?/p>

















 
 
 
 
 
 
 