网络安全学习笔记工具篇 ——使用OpenSCAP 命令行进行基线扫描与修复

Posted 土豆Hero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络安全学习笔记工具篇 ——使用OpenSCAP 命令行进行基线扫描与修复相关的知识,希望对你有一定的参考价值。

一、前言

在​​《OpenSCAP简介》​​及​​《使用OpenSCAP Workbench进行基线扫描与修复》​​两篇中分别对OpenSCAP相关的术语、策略及使用图形化的工具OpenSCAP Workbench进行扫描、修复及基线裁剪的内容进行了相关介绍说明。在本篇中将介绍如何使用OpenSCAP命令行工具OpenSCAP Base及OpenSCAP Daemon进行基线扫描与修复。

二、测试环境说明

安装OpenSCAP的服务器:CentOS Linux release 7.5.1804 (Core)桌面版

其他机器:CentOS Linux release 7.5.1804 (Core)

三、使用OpenSCAP Base进行扫描与修复

(一)、工具安装

1、安装扫描工具

# yum install -y openscap-scanner

2、安装SCAP content

# yum install -y scap-security-guide

3、查看安装的相关文件

# rpm -ql openscap-scanner

# rpm -ql scap-security-guide

注意观察所有的SCAP content都存放在/usr/share/xml/scap/ssg/content目录

4、导入CentOS相关的content或者策略到/usr/share/xml/scap/ssg/content目录网络安全学习笔记工具篇(五)

5、导入修复的脚本到/usr/share/scap-security-guide/目录

这里我只将SHELL脚本拷贝过去备用。

网络安全学习笔记工具篇(五)

网络安全学习笔记工具篇(五)

(二)、相关的命令介绍

1、查看oscap版本信息及支持的content规格说明

[root@localhost ~]# oscap -V

OpenSCAP command line tool (oscap) 1.2.17

Copyright 2009--2017 Red Hat Inc., Durham, North Carolina.


==== Supported specifications ====

XCCDF Version: 1.2

OVAL Version: 5.11.1

CPE Version: 2.3

CVSS Version: 2.0

CVE Version: 2.0

Asset Identification Version: 1.1

Asset Reporting Format Version: 1.1

CVRF Version: 1.1

……

2、查看帮助信息

# oscap -h 命令执行结果如下:

网络安全学习笔记工具篇(五)

可以在oscap后面加上Commands然后再进一步查看相应的帮助信息,如下:

网络安全学习笔记工具篇(五)

3、查看SCAP content的内容

网络安全学习笔记工具篇(五)

在这里有如下几个内容需要关注注意,在后续操作中可能要用到:

1)、Document type:文件类型,该文件类型为Source Data Stream,从文件名后缀为-ds.xml即可看出。

2)、Stream:流的名称。

3)、Checklists:列举了流中可用的检查清单,通过列举的清单的Ref-Id进行区分。

4)、Porfiles:检查清单中包括的Porfile,可以在命令行中进行引用,通过Id进行区分。

5)、注意中间的提示信息:WARNING,由于该流中有依赖外部的资源,因此提示使用—fetch-remote-resources参数下载。

(三)、基线扫描及修复

1、使用数据流ssg-centos7-ds.xml中的profile xccdf_org.ssgproject.content_profile_standard进行扫描,并且以ARF文件格式及html格式保存,命令如下:

[root@localhost ~]# oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results-arf centos7_results.xml --report centos7_results.html /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml

可以看到oscap逐项进行测试,每一项均显示执行结果,执行如下:

网络安全学习笔记工具篇(五)

找到当前目录下生成的centos7_results.xml文件,在浏览器中打开:

网络安全学习笔记工具篇(五)

2、扫描后生成修复脚本,再手工执行修复脚本

1)、执行命令,使用—results参数生成XCCDF的结果文件

# oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --results centos7_results.xml --fetch-remote-resources /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml

生成的文件为centos7_results.xml。

2)、获取结果文件中的results ID

#oscap info centos7_results.xml

获取到的Results ID为:

xccdf_org.open-scap_testresult_xccdf_org.ssgproject.content_profile_standard

网络安全学习笔记工具篇(五)

3)、基于扫描结果生成修复脚本

[root@localhost ~]# oscap xccdf generate fix --fix-type bash --output my-remediation-script.sh --result-id xccdf_org.open-scap_testresult_xccdf_org.ssgproject.content_profile_standard centos7_results.xml

生成的脚本名称为my-remediation-script.sh

网络安全学习笔记工具篇(五)

4)、执行修复脚本

./my-remediation-script.sh

3、在扫描过程中自动修复

使用参数—remediate在扫描过程中进行修复

#oscap-ssh root@192.168.2.14 22 xccdf eval --remediate --profile xccdf_org.ssgproject.content_profile_standard --results-arf results.xml --report report.html /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml

截图如下:

网络安全学习笔记工具篇(五)

4、使用oscap-ssh进行远程扫描

进行远程扫描时,需要提前在被扫描的机器上安装openscap-scanner.

#oscap-ssh root@192.168.2.14 22 xccdf eval --profile xccdf_org.ssgproject.content_profile_standard --report report.html /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml

根据提示信息输入被扫描主机的password,截图如下:

网络安全学习笔记工具篇(五)

提示:这里也可以配置免密登录,然后就不用手工输入password了。

5、使用OSCAP Daemon持续扫描

关于OSCAP Daemon在第一篇简介中有简要的说明,这里再稍加补充,OSCAP Daemon由两部组成,一部分是运行在后台的Daemon程序,另外一部分是使命行工具oscapd-cli,工具去调用Daemon,通常会比原始的oscap命令简单,oscapd-cli命令真正调用的是NIST认证的oscap工具。Oscapd-cli工作可以在​​https://github.com/OpenSCAP/openscap-daemon​​进行下载。

1)、下载oscapd-cli工具openscap-daemon-master.zip,并且解压。

2)、安装服务

进入到openscap-daemon-master目录,找到setup.p文件

网络安全学习笔记工具篇(五)

python setup.py install

注意观察在安装过程中将一系列的文件拷贝到了对应的目录,其中Daemon程序如下:

copying org.oscapd.conf -> /etc/dbus-1/system.d

copying oscapd.service -> /usr/lib/systemd/system

3)、Daemon服务管理

# systemctl status oscapd //查看服务的状态

# systemctl start oscapd //启动服务

# systemctl stop oscapd //关闭服务

4)、使用交互式命令创建扫描任务

使用oscapd-cli task-create –i创建任务,过程如下图所示:

网络安全学习笔记工具篇(五)

然后根据提示使用oscapd-cli task 6 enable命令启动该任务。

几点说明:

Title: 设置本次扫描的名称,可以自行设置

Target (empty for localhost): 设置扫描的目标,默认为本地服务器,也可以对远程服务器进行扫描,目标的书写方式为ssh://root@192.168.2.6,此时需要确保本地机器可以免密登录目标服务器,这一点尤为重要,我这里演示是使用的root账户。

5)、运行结果:

使用oscapd-cli task 命令查看结果

网络安全学习笔记工具篇(五)

6)、相关命令

oscapd-cli eval //进入交互模式

oscapd-cli task 3 enable //使能前一步创建的扫描服务

oscapd-cli result 3 //查看扫描结果

oscapd-cli task 3 guide > guide.html //获取html格式的结果

oscapd-cli task 2 //展示任务简要信息及调度情况

四、总结

        本篇作为OpenSCAP工具使用系列的最后一篇,主要介绍了使用命令行工具进行本地主机的扫描及修复、主机远程扫描入修复,使用OpenSCAP Daemon工具进行持续扫描。在第一篇《OpenSCAP简介》中主要对相关的术语及工具进行了简要的介绍说明,在第二篇《使用OpenSCAP workbench进行基线扫描与修复》中介绍了图形化工具的使用,个人认为使用图形化的工具已经可以满足日常的工作需要了,如果是大量的服务器需要进行批量的基线扫描,可能还需要使用脚本配合命令行进行扫描,前面测试远程扫描可以采用免密登录,所以使用脚本进行批量扫描应该也是一个比较简单的工作,这里就没有再进一步研究了。

由于在互联网上可以找到的资料较少,主要是笔者查看官网说明,然后摸索进行实际测试完成几篇说明,其中难免存在遗漏错误之外,敬请指正。


以上是关于网络安全学习笔记工具篇 ——使用OpenSCAP 命令行进行基线扫描与修复的主要内容,如果未能解决你的问题,请参考以下文章

计算机基础篇学习笔记2

[Angularjs-学习笔记]工具篇

pytorch学习笔记:卷积神经网络CNN(基础篇)

iOS开发笔记 - 工具篇

测试面试题集锦| 测试工具篇(附答案)

GO1.6语言学习笔记3-工具篇(SublimeText 3+GoSublime组合)