OpenScap基础应用

本文介绍了OpenSCAP在Windows系统安全配置审计中的使用,包括执行扫描、查看结果和解决误报的过程。OpenSCAP作为自动化安全评估工具,帮助管理员应对设备种类多、配置标准不统一和自动化程度低等问题,但同时也面临兼容性和误报的挑战。文章通过实例展示了如何分析和解决扫描误报,强调了开源工具在实际应用中的复杂性和需要投入的额外工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用背景:

随着信息化建设的深入发展、设备种类不断增加,安全配置管理问题日渐突出。为了维持IT信息系统的安全并方便管理,管理员必须从入网审核、验收、运维等全生命周期各个阶段加强和落实安全要求,同时需要设立满足安全要求的基准点。

企业在实际安全运维过程中,面临着各种安全运营的问题,如

(1)安全运维人员需要面对种类繁多的设备和应用。需管理的设备分布范围广、分属不同的业务系统,如何能快捷、方便的收集和分析这些配置,成为横亘在安全运维人员面前的一个巨大难题。

(2)安全配置标准不统一。目前,由于业界还没有形成统一的配置问题审计的行业标准,因此各厂家提出的标准也是不一而足,而且这些标准也是被频繁地修改,造成维护和定位困难;一般用户很难自己去跟踪和修订标准。标准就包括了CIS、NIST、我国等保、各种行业企业及内部标准。这些标准不仅在支持的设备类型和应用类型上存在差异,就是针对几乎相同的检查点(配置项)而言,做法也不尽相同。上述的差异造成研究、开发、维护安全配置基线是一项工作量巨大的任务。

(3)安全配置相关工作自动化程度低。通常,对于设备或应用的配置审计,一般都是通过人工方式进行,仅在上线前进行一次评估(安全加固),这样做的缺点非常明显,如依赖纯人工的低效率,设备上线后的无法跟踪等。

相关概念:

SCAP:Security Content Automation Protocol,安全内容自动化协议。SCAP由NIST(National Institute of Standards and Technology:美国国家标准与技术研究院)提出,NIST期望利用SCAP解决三个棘手的问题:一是实现高层政策法规到底层实施的落地,二是将信息安全所涉及的各个要素标准化(如统一漏洞的命名及严重性度量),三是将复杂的系统配置核查工作自动化。SCAP是当前美国比较成熟的一套信息安全评估标准体系,其标准化、自动化的思想对信息安全行业产生了深远的影响。

SCAP,里“内容”可以分为两部分,一是元素,二是协议。元素可以理解为一系列现有的公开标准构成,如XCCDF、OVAL、CVE、CCE、CPE、CVSS,而协议是规范了这些元素之间如何进行工作。

OpenSCAP就NIST维护的一系列规范,OpenSCAP主要依据 XCCDF标准的文件,进系统进行安全配置检查或漏洞扫描。OpenSCAP 支持 SCAP 1.3并向下兼容 SCAP 1.2、SCAP 1.1和 SCAP 1.0。导入和处理早期版本的 SCAP 内容不需要特殊处理。

OpenSCAP主要包含以下几个工具:

OpenSCAP 基础工具,即oscap的命令行工具,在命令行下使用OpenScap。

OpenSCAP守护进程,工作在主机上,持续执行SCAP检查,以检查系统的更改。

SCAP工作台,图形界面的SCAP操作工具,支持Windows与Linux,但检查对象只能是Linux,支持远程SSH检查。

SCAPTimony集中存储SCAP检查结果。

下面我们重点介绍使用oscap命令进行扫描。

工具应用:

一、执行扫描

以管理员身份运行命令提示符

进入openscap路径

cd \

cd "Program Files (x86)\OpenSCAP 1.3.0"

查看windows server 2012 r2的扫描信息

扫描文件位于当前桌面上“U_MS_Windows_2012_and_2012_R2_MS_V3R1_STIG_SCAP_1-2_Benchmark.xml”

执行以下命令查看扫描文件包含的具体策略及策略ID

oscap info c:\users\administrator\desktop\U_MS_Windows_2012_and_2012_R2_MS_V3R1_STIG_SCAP_1-2_Benchmark.xml

通过上图可以看到,扫描文件中包含了Mission Critical Classified、Mission Critical Public、Mission Critical Sensitive等等,很多不同的扫描策略,不是的扫描策略其扫描的内容,以及目标的安全性定义都不相同。扫描策略由相应的扫描ID标识,我们在执行扫描时,需要选择一个具体的扫描ID。

执行扫描

使用xccdf_mil.disa.stig_profile_MAC-1_Classified扫描策略ID进行扫描

oscap xccdf eval --profile xccdf_mil.disa.stig_profile_MAC-1_Classified --report 123.html c:\users\administrator\desktop\U_MS_Windows_2012_and_2012_R2_MS_V3R1_STIG_SCAP_1-2_Benchmark.xml

可以看到很多检查成功与检查失败

二、查看具体的扫描结果

上面命令中,我们将扫描结果保存为123.html 位于” C:\Program Files (x86)\OpenSCAP 1.3.0”目录下

双击打开123.html文件

查看检查结果发现有32个配置项通过检查,166项没有通过检查,56项属于其他情况

其中41项属于低安全等级检查项,111项属于中安全等级,14项属于高安全等级。14项高安全等级配置是我们需要重点关注的配置项。

重点查看高等级的检查不通过配置项

如:

Solicited Remote Assistance must not be allowed.

需要关闭请求远程协助

如:

Autoplay must be turned off for non-volume devices.

不允许非卷设备的自动播放

中间还有一些检查项,不再赘述。

下面是一些检查的误报:

如:

Local accounts with blank passwords must be restricted to prevent access from the network.

账户:使用空密码的本地账户只允许控制台登录

此项需设置为已启用,但是组策略中,已经配置为已启用。所以此项为误报。

三、尝试解决误报

分析误报原因。

结合openscap扫描原理,Windows的系统配置以注册表形式体现。重点查看桌面上的扫描文件“c:\users\administrator\desktop\U_MS_Windows_2012_and_2012_R2_MS_V3R1_STIG_SCAP_1-2_Benchmark.xml”,尝试找到检查注册表的脚本位置。

双击打开扫描文件,默认打开方式为IE浏览器。

查找误报项关键字

查找“Local accounts with blank passwords must be restricted to prevent access from the network.”

向下查看,找到check-export ,value-id检查id等字段。找到关键信息为下图蓝色选中部分。

继续继续关键字

查找检查名“oval:mil.disa.fso.windows:var:454000”,发现以下两处结果

第一处,推测是定义了检查的注册表的数据类型datatype

第二处,推测是一个整体“外部”的描述

继续分析, 这两处并不是我们所期望的注册表检查。

尝试查找注册表

想在扫描文件中找到注册表相关的检查,尝试查找注册表的关键字,如“HKLM”或“LOCAL_MACHINE”。

查找HKLM后,发现HKLM多数是位于描述中,而非真正的注册表检查且HKLM只在全文出现五次。如果是检查注册表不会只出现五次。所以HKLM并不是注册表检查项。如下图

继续查找LOCAL_MACHINE,发现大量注册表配置相关,找到注册表关联的关键ID,如图中443400。

推测,注册表的检查与数字ID有关系。

查找检查项的ID

继续分析,查找前面的关键字“oval:mil.disa.fso.windows:var:454000”中的ID454000,会查找到多个454000,但发现和检查注册表相关的是下图

右键Windows图标,运行,输入regedit,打开注册表,定位到上图中的位置

观察发现,注册表中的键名为“LimitBlankPasswordUse”,而检查脚本中的键名为“Limitblankpassworduse”,推测可能是大小写不一致引起了误报。可能是因为openscap是从Linux移植到windows,而Linux系统默认是区分大小写,而Windows不区分大小写。

验证推测

备份扫描文件

用记事本打开XML扫描文件

将XML文件中的检查项,改成注册表一致的“LimitBlankPasswordUse”

保存文件

再次扫描,查看扫描结果,发现高危配置项,已经变为5个。(之前是6个)

至此解决了一个扫描误报。

继续解决其他误报,再遇到问题

解决The Debug programs user right must only be assigned to the Administrators group.误报

查找ID

继续查找检查项“oval:mil.disa.fso.windows:def:4633”

继续查找“oval:mil.disa.fso.windows:tst:463300”

继续查找“oval:mil.disa.fso.windows:obj:463300”,

继续查找“oval:mil.disa.fso.windows:obj:461700”

但不论如何关联查找,都无法找到注册表检查项。

推测结论,Windows操作系统的权限配置,并非直接通过注册表来操作,而是以其他形式存在系统中。所以此处我们找不到检查脚本,无法解决此项误报。(从扫描的文件上,无法确定oscap检查系统权限的原理,可能是通过系统其他接口读取的权限。)

总结:

开源的安全检测工具,有很强大的功能、组件、生态。但是在实际应用过程中,会出现一些兼容性问题,或其他奇怪的问题。这类问题为多数开源软件的通病。企业想要应用开源软件,需要投入人力的研究,优势是可以节省大量的商业软件的购买费用。而使用成熟的商业软件和配套服务,则可以减少软件应用及调试带来的问题。

文章作者黄浩:深信服安全服务认证专家,产业教育中心资深讲师,CISSP认证注册信息系统安全师,中国计算机学会会员;对企业网络安全框架设计、业务逻辑安全与防御体系有深刻认识;擅长DDoS攻击防御、操作系统安全防护、密码学、企业安全架构、取证溯源、应急响应等多个方向的课程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值