SCAP相关开源工具介绍

Posted by admin at Mon 1st April 2013 2.40AM  • 

本文节选于《利用SCAP有效进行主机安全管理》(王珩 诸葛建伟),原文发表于《中国教育网络》
链接:http://www.edu.cn/an_quan_ji_shu_1641/20130131/t20130131_900001_3.shtml

  NIST建立了信息安全类产品的SCAP兼容性认证机制。安全配置管理、漏洞测试和其他安全审计工具的开发商,如果希望把其产品售往美国政府市场,需要遵照相关要求对其产品进行认证。当前美国各大安全厂商在其企业级系统安全管理工具中均集成了对于SCAP的支持,如Symantec的SRAS(Symantec Risk Automation Suite)以及eEye的Retina等。因此,使用商业化的工具能够很方便地配合SCAP进行系统配置管理。
  在开源领域亦有很多与SCAP 相关的项目,其中比较重要的有OpenSCAP、OVALDi以及eSCAPe等,这些项目形成了对SCAP的一套完整的开发和利用体系,eSCAPe用于SCAPContent的生成,而OpenSCAP、OVALDi用于执行基于SCAP的扫描。下面结合一些实例,着重对这些免费的SCAP开源工具进行介绍。

  •   OpenSCAP

  OpenSCAP由Redhat主导开发,是一个整合了SCAP中各标准的开源框架,其为SCAP的使用者提供了一套简单易用的接口。OpenSCAP实现了对SCAP数据格式的解析以及执行检查操作所使用的系统信息探针,它能够让SCAP的采纳者专注于业务实现,而不是处理一些繁琐的底层技术。目前OpenSCAP最新版本完全支持SCAP 1.0规范中的全部标准。
  Fedora下安装OpenSCAP非常简单,只需要输入如下命令:
  #yum install openscap openscap-utils openscap-content
  其他的Linux发行版需要从源码编译安装OpenSCAP,下面以Ubuntu为例进行介绍:
  #安装支持库
  $sudo apt-get upda te
  $sudo apt-get install gcc swig pkg-config xml2 libxml2-
  dev xsltproc libxslt-dev libgcrypt11-dev libpcre3-dev
  python-dev
  $cd ~
  #从OpenSCAP官方网站下载最新源代码
  $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工具对系统进行安全扫描。oscap调用OpenSCAP库对SCAP内容文件进行解析,自动进行系统安全扫描。oscap还具有文档格式转换的功能,可以利用它将XCCDF文档转换成为易读的HTML格式,这在生成系统配置指南文件或扫描报告时非常有用。下面对其主要的使用方法进行简要的说明:

  #将scap-xccdf.xml转成易读的guild.html
  $oscap xccdf generate guide scap-xccdf.xml > guide.html
  #将scap-xccdf.xml中的Desktop profile中的内容转为html
  $oscap xccdf generate guide --profile Desktop scap-xccdf.
  xml > guide.html
  #将扫描完成后生成的xccdf-results.xml结果文件转为易读的report.html
  $oscap xccdf generate report xccdf-results.xml > report.html
  #对scap-xccdf.xml文档进行语法验证
  $oscap xccdf validate-xml scap-xccdf.xml
  #使用scap-xccdf.xml中的Desktop Profile对当前系统进行扫描,并将结果输出到xccdf-results.xml中
  $oscap xccdf eval --profile Desktop --results xccdf-results.
  xml scap-xccdf.xml
  #对scap-oval.xml中的所有检测项进行扫描,并将结果输出到oval-results.xml中
  $oscap oval eval --results oval-results.xml scap-oval.xml
  #对scap-oval.xml中的某个检查项进行扫描
  $oscap oval eval --id oval:rhel:def:1000 --results ovalresults.
  xml scap-oval.xml
  oscap扫描完成后生成的HTML格式的报告如图2所示。结果中包含了对系统整体安全性的评分、每个检测项的扫描结果以及每个扫描项的详细技术说明和参考,这些信息对于安全管理人员非常具有参考价值。

 

  •        SCAP-Workbench

  基于OpenSCAP框架有很多优秀的SCAP应用,SCAP-Workbench就是其中之一。SCAP-Wor kb en ch 在OpenSCAP框架上实现了简单易用的图形界面,具有配置检查、检查单剪裁、SCAP内容编辑和报表生成等非常实用的功能。SCAP-Workbench使用起来非常方便,非常适合普通的桌面版Linux用户。SCAP-Workbench使用Python语言开发,安装很简单,Fedora用户可以直接使用yum命令安装,其他Linux发行版可在其网站(h t t p s : / /fedorahosted.org/scap-workbench/)上下载最新的源码,解压后运行makeinstall命令即可。需要注意的是在安装使用SCAP-Workbench之前需要先安装OpenSCAP,而且你的Linux系统需要支持图形界面。
  在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用于执行系统安全性扫描,Editor用于编辑XCCDF文件。
  SCAP-Workbench Scanner
  为了完成本例中的扫描操作,读者可以可以在http://usgcb.nist.gov/usgcb/rhel/download_rhel5.html下载适用于Redhat Enterprise Linux 5 以及Fedora的USCGB SCAPContent。解压后,该Content包含以下5个文件:
  usgcb-rhel5desktop-cpe-dictionary.xml
  #描述RHEL平台的CPE定义
  usgcb-rhel5desktop-cpe-oval.xml
  #描述OVAL中使用CPE定义
  usgcb-rhel5desktop-oval.xml
  #描述RHEL Desktop配置合规性的OVAL文档
  usgcb-rhel5desktop-xccdf.xml
  #XCCDF格式的检查单
  在命令行中输入scap-workbench 启动Scanner,如果你使用的是桌面版Linux,亦可在桌面的“应用程序”菜单的“系统工具”中找到这个程序。下面我们启动Scanner程序,并点击Load载入usgcb-rhel5desktop-xccdf.xml文件后,界面如图3所示。

       Tailoring(裁剪)可以对XCCDF中所定义的检查单进行剪裁和调整,Scan(扫描)功能可以执行扫描、导出报表等一系列操作。图4演示了如何根据实际需求使用SCAP-Workbench对现有的SCAP Content中的检查项进行裁剪,只需要点击检查项前方的复选框,即可禁用或启用一个检查项。XCCDF文件中会预定义一个或多个检查单轮廓(Profile),应当先在(No Profile)处选择相应的Profile,然后再执行裁剪操作。


  裁剪完毕后,可以点击Scan选项卡,点击Scan按钮后开始扫描,扫描的结果会在界面上直观地显示出来,扫描完成后可以将结果导出为报告文件。
  SCAP-Workbench Editor
  Editor是一个简单易用的XCCDF编辑器,使用它可以很方便地编辑或生成XCCDF Benchmark文件。在命令行中输入scap-workbencheditor启动Editor,载入一个XCCDF文档后界面如图5所示。


  在Benchmark页可以对XCCDF文档的基本属性进行修改,如版本号、语言等。Profiles页可以编辑或增加Profile,在Items页可以对检查项进行编辑,如图6所示。编辑Item需要对XCCDF文档格式细节的了解,关于XCCDF文档的细节将在下期详细向读者介绍。

  •        OVALDi

  OVALDi由Mitre公司(OVAL语言的始创者)提供,因此它在OVAL标准的兼容性方面具有先天的优势。OVALDi根据OVAL Definition(OVAL定义)收集主机的相关信息生成OVALSC(OVAL System Characteristics:OVAL系统概要)文件,通过对OVAL SC文件和标准的OVAL Definition进行对比得到检测结果。OVALDi是跨平台的,能够较好的支持各种操作系统,而且它能够紧跟OVAL技术的发展,但它无法解析SCAP中除OVAL以外的其他元素。
  由于大部分Linux发行版的软件源中均内置了OVALDi工具,因此OVALDi在Linux下的的安装非常简单。Ubuntu下输入sudo apt-get install ovaldi,Fedora下输入yum install ovaldi即可完成安装。Windows用户可直接从http://sourceforge.net/projects/ovaldi/下载最新版的Windows安装包(如ovaldi-5.10.1.2-setup.exe),安装后即可使用它来执行OVAL扫描。下面演示如何使用OVALDi对Windows主机执行USGCB检查。
  为了完成本节的示例,请读者首先从USGCB的官方网站http://usgcb.nist.gov上下载最新的SCAP Content,USGCB的Content有Windows 7和Windows XP等多个版本,请注意选择和你本机操作系统匹配的版本,本例中我们使用Windows 7版本。下载解压后,得到如下文件:
  USGCB-Windows-7-cpe-dictionary.xml
  #Windows7的CPE定义
  USGCB-Windows-7-cpe-oval.xml
  #OVAL中使用的CPE定义
  USGCB-Windows-7-oval.xml
  #描述Windows7配置合规性的OVAL文档
  USGCB-Windows-7-patches.xml
  #描述Windows7补丁(漏洞)的OVAL文档
  USGCB-Windows-7-xccdf.xml
  #描述检查单的XCCDF文档
  打开Windows的命令提示符窗口,进入OVALDi的安装目录,执行ovaldi-moUSGCB-Windows-7-oval.xml即可开始对Windows的进行配置合规性扫描。注意Windows 7最好以管理员身份打开命令提示符窗口,否则一些特定的检查项可能因为缺少权限无法执行。扫描完成后,默认会生成两个报告文件,一个名为results.xml,可用于和其他工具之间进行数据交换;另一份为results.html格式,可供管理人员阅读使用。扫描报告如图7所示,其中包含了详细的系统信息、OVAL文档的信息和每一个检查项的扫描结果。

?

       OVAL扫描报告中扫描结果有以下几种状态,分别是True:如果是执行漏洞扫描,表示漏洞存在,如果执行配置合规扫描,则表示该项检查合规;False:如果执行漏洞扫描,表示漏洞不存在,如果执行配置合规扫描,表示检查不合规;Error:检查过程中出错;Unkown:未得到期望的结果。
  上面例子我们使用了ovaldi-m-o参数,-m指定不对OVAL文档进行MD5校验,-o 指定输入的OVAL文档的文件名。此外,OVALDi还有以下常用的参数:
  -h:显示使用帮助
  -v :使用外部变量文件处指出该文件路径
  -e :仅对指定Definition执行扫描,如oval:com.
  example:def:123
  -f :对指定的多个Definition进行扫描
  -i :对指定的OVAL SC文件进行评估
  -r :将扫描结果保存为指定的XML文件,默认为
  results.xml
  -z:计算当前oval文档的MD5值
  本文介绍了SCAP相关的开源工具,以及如何利用SCAP和开源工具对系统进行配置合规性扫描。可以看到使用SCAP能够非常方便地对系统配置合规性进行自动化评估。如果想要更灵活地利用SCAP为自己的信息系统服务,那么需要进一步了解SCAP的具体技术细节,开发适用于自己的系统的SCAP Content。

 

  •        jOVALDi

  jOVAL是一个Java的OVAL开源框架,它实现了诸如OVAL文档解析、执行扫描等常用的功能。jOVALDi是在jOVAL框架的基础上按照OVALDi设计模式使用纯Java语言编写的跨平台OVAL解释器和扫描器。与OVALDi不同的是,它使用插件的模式设计探测器,只需选择远程扫描插件便能够支持远程扫描。由于其命令行完全兼容OVALDi,因此在很多场合下可以替代OVALDi。
      jOVALDi与OVALDi的主要区别在于jOVALDi支持远程扫描和Cisco IOS设备离线扫描,而OVALDi对各种OVAL测试类型的支持更为全面。

    jOVALDi的地址: https://github.com/joval/jOVAL

标签: SCAP

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站