一、前言
在前一篇“OpenSCAP简介”中对OpenSCAP相关的概念、术语、工具等进行了相关的介绍说明,相关的概念都附上了参考链接。在本文中将介绍安装Scap-Workbench、如何使用SCAP Workbench图形界面进行安全基线扫描、修复以及使用该工具如何对已有的安全基线进行裁剪以适应自身企业的需要。
二、测试环境说明
安装OpenSCAP的服务器:CentOSLinux release 7.5.1804 (Core) 桌面版
其他机器:CentOS Linuxrelease 7.5.1804 (Core)
三、使用图形界面进行扫描
(一)、安装scap-workbench
1、在扫描服务器上安装scap-workbench工具:
# yum install -y scap-workbench
2、查看安装的相关依赖文件包
可以看到在安装scap-workbench 的时候,同时安装了实现OpenSCAP Base功能的openscap-scanner.x86_64及SSG策略的scap-security-guide.noarch等相关的重要包。
3、相关文件查看
查看scap-workbench相关的文件:
rpm -ql scap-workbench
/usr/bin/scap-workbench // 启动脚本所在位置
/usr/libexec/scap-workbench-oscap.sh
/usr/libexec/scap-workbench-pkexec-oscap.sh
/usr/libexec/scap-workbench-rpm-extract.sh
……
查看scap-security-guide相关的文件:
[root@localhost ~]# rpm -qlscap-security-guide
/usr/share/xml/scap/ssg/content/ //SSG策略存放的目录
查看一下SSG策略存放目录中有哪些类型的策略,主要包括firefox、jre、rhel6、rhel7、rhel8几种类型的策略,如下:
可以看到这里面是没有CentOS系统策略的,因此下一步是要将CENTOS的策略放到该目录下,否则在workbench界面上无法选择CentOS系统。
4、策略导入
将下载到的CentOS策略拷贝到/usr/share/xml/scap/ssg/content下面即可,下载地址见前一篇文章《网络安全学习笔记工具篇(三)——OpenSCAP简介》。
(二)、使用scap-workbench进行基线扫描
1、启动scap-workbench:
执行启动命令:
[root@localhost ~]# /usr/bin/scap-workbench
22:02:31 | info | SCAP Workbench 1.1.6, compiled with Qt4.8.7, using OpenSCAP 1.2.17
在弹出的框中选择要扫描的系统,我选择CentOS7,如下:
点击“load content”进到配置界面,如下:
说明:
Checklist:格式为stream/checklist-ref-id,选择使用哪一个包中的什么标准文件进行扫描,这里我选择是scap_org_open_scap_datastream_from_xccdf_ssg-rhel7-xccdf-1.2.xml包中的scap_org.open-scap_cref_ssg-rhel7-xccdf-1.2.xml文件。
Customization:选择用户定制化的Profile文件。
Profile:可用的Profiles列表,一个Checklists中通常包括多个Profile列表。
Target:扫描的目的服务器。
Rules:展示当前扫描使用的规则,点击规则后可以看到详细信息。
Dry run:选择好策略后,勾选此选项将生成相应的命令行,可以将命令行复制到SHELL下面运行即可。
Fetch remote resources:当扫描使用的策略中有参考外部的资源时,可以通过该选项设置自动下载并且使用该外部资源。
Remediate:扫描过程中尝试进行修复。
2、对本机进行扫描及手工修复
选择好checklist、Profile、Target后,点击SCAN即可开始扫描,扫描结果如下:
说明:
Clear:清除本次扫描的结果,重新开始新的扫描。
Save Results: 扫描结果导出保存,支持XCCDResult file 、ARF、HTML Report三种格式。
Generate remediation role:生成修复脚本,支持bash、ansible、puppet三种类型的脚本。
Show Report:直接在浏览器中展示扫描结果。
点击Show Report可以在浏览器中打开查看:
可以看到基线满足程度,在Rule Overview可以根据漏洞严重程度、ISO27001-2013等规则进行排序,可以选择查看状态为pass、fail、notapplicable等状态的规则。点击某条规则可以看到规则的详细信息,包括规则的ID、严重级别、描述、失败原因、修复脚本等,如下:
3、对本机进行修复
点击“Generate remediation role”生成bash脚本remediation.sh:
脚本如下:
[root@localhost ~]# ./remediation.sh
Remediating rule 1/35: 'xccdf_org.ssgproject.content_rule_no_empty_passwords'
Remediating rule 2/35:'xccdf_org.ssgproject.content_rule_partition_for_var_log_audit'
……
可以看到脚本执行的结果,对不满足的规则进行了修复。再次扫描可以检查修复的情况,对于仍然未修复的,可以单独进行评估,根据规则指导进行手工再次修复。
下图展示的是修复后再次扫描的结果,可以看到通过率从45%提高到了95.83%。
(三)、对远程主机进行扫描同时自动修复
1、在远程主机上安装openscap-scanner扫描器
yum install –y openscap-scanner
2、设置远程主机
User and host设置为被扫描的主机192.168.2.13,Port为22,勾选Remediate选项,点击SCAN。
3、根据提示输入远程主机的密码
4、查看扫描相关的情况
扫描过程中系统会对可以修复的自动进行修复,状态为“fixed”,参见下图
(四)、策略裁剪
默认策略中存在大量的规则,有的时候我们并不需要对所有的这些规则进行检查,这时候我们就可以对原有的策略进行裁剪,并且将裁剪后的规则进行保存,后续使用新的策略进行基线扫描。
1、选择合适的Profile作为模板
选择合适的Profile后,点击右边的“Customize”,弹出提示框:
这里需要给新的Profile设置一个名字,该名字需要遵循一定的规则,并且默认以customized结尾,我在后面增加了一个“passcheck”表明这是用来检查密码的。如果使用命令行工具需要用到该名字。
2、在弹出的策略定制框中选择适用的策略
在这里可以注意观察,里面包括大量的规则,但是这些规则并不全部是选中的,我们可以先全部取消,然后再选择合适的规则,并且可以在右边修改规则的值。
3、规则保存
修改完成后点击“OK”,回到策略配置界面,现在可以选择SCAN测试规则是否符合需求,如下:
或者可以点击“File”菜单下的“Save Customization Only”对定制的策略进行保存。
新的策略名字为:ssg-CentOS7-ds-tailoring.xml,如下:
命令行下查看该策略的信息:
[root@localhost ~]# oscap info ssg-CentOS7-ds-tailoring.xml
Document type: XCCDF Tailoring
Imported: 2021-09-07T21:53:11
Benchmark Hint:/usr/share/xml/scap/ssg/content/ssg-CentOS7-ds.xml
Profiles:
Title:Standard System Security Profile for Red Hat Enterprise Linux 7 [CUSTOMIZED]
Id:xccdf_org.ssgproject.content_profile_standard_customized_passcheck
[root@localhost ~]#
4、使用裁剪过的策略进行扫描
扫描结果如下:
四、总结
本文描述了如何使用oscap-workbench图形化界面对CentOS系统进行基线扫描,对扫描的结果如何进行修复,以及如何对基线进行裁剪以适应自身企业的应用。使用oscap-workbench工具适合对单台的主机进行扫描,并且容易掌握学习,对于初学者而言难点在于怎么去找到合适的基线以及如何对基线进行裁剪。本文中使用的CentOS基线,默认的SSG中没有看到有相关的策略,需要通过其他的途径获取,在前文中有简要的说明可以参考。