AOps漏洞管理模块使用手册
参照AOps部署指南部署AOps前后端服务后,即可使用AOps漏洞管理模块。
AOps智能运维工具的漏洞管理模块主要集成了漏洞扫描、CVE修复(冷补丁/热补丁)、热补丁回退等核心功能,其中漏洞扫描只支持openEuler已修复并发布的安全公告。系统可以对发布的安全公告实行定时下载同步,可设置定时任务执行漏洞扫描,保证系统平稳运行的同时,运维人员可通过AOps工具实现对漏洞的修复和回退。
执行CVE修复过程中,会调用dnf hotpatch插件实现冷补丁/热补丁的热修复(除内核和个别软件需要重启)。
对已修复的CVE可以查看修复的版本和所涉及的软件包,同时支持补丁回退(热补丁)至修复前的状态。
下文以页面的维度进行AOps漏洞管理模块功能的介绍。
1. 工作台
管理员登录后直接切入数据看板界面,在右侧页面主窗口右上角内看到CVE整体数量的分布统计。
2. 资产管理
资产管理界面用于对集群中服务器的纳管(添加、编辑和删除),支持单台主机和批量主机的添加操作。
当前资产管理模块分为一下两个界面:
- 主机管理
- 主机组管理
2.1 主机管理界面
支持如下操作:
- 单台主机的添加
- 主机的批量删除
- 批量添加主机
- 支持使用所属主机组、管理节点的主机过滤,同时可满足对主机名称的排序
(1) 单台主机添加
支持如下操作:
- 添加主机组管理(同主机组管理中的添加功能)
- 使用密码模式添加主机(需提供账号和密码)
- 使用密钥模式添加主机(需提供可登录的密钥,注意此处的密钥为私钥)
注意:当前管理节点和监控节点意义相同,默认为管理节点
(2) 批量添加主机
支持如下操作:
- 在线下载批量导入主机模板
- 在线上传解析批量导入数据
- 支持单个主机的数据调整
- 查看主机添加的结果
2.2 主机组管理
支持如下操作:
- 添加主机组
- 对主机组名称排序、主机数量排序
- 删除主机组(主机组内包含主机时,无法直接删除主机组)
- 查看组内的所有主机列表
(1) 添加主机组
支持如下操作:
- 主机组的描述及名称定义
3. 漏洞管理
漏洞管理界面用于对目标主机存在的CVE进行监控与修复,现阶段漏洞管理只针对openEuler社区已修复的CVE,对于已发现但未修复的CVE管理作为预留扩展功能,后续逐步完善。
当前漏洞管理模块分为以下三个界面:
- 主机列表界面
- CVEs界面
- 任务列表界面
3.1 主机列表界面
支持如下操作:
- 查看主机基本信息与其CVE个数(可根据主机组、Repo名称进行筛选,可根据CVE个数、上次扫描时间进行排序,根据主机名称进行主机检索)
- 查看主机上次执行CVE扫描的时间
- 当前已保存的Repo源
- 添加Repo源
- 删除Repo源
- 对主机进行漏洞扫描
- 点击主机名可跳转到主机详情界面
- 主机列表数据导出(仅限当前分页数据)
(1) 主机详情信息界面
支持如下操作:
- 查看主机基本信息与CVE个数
- 进行漏洞扫描
- 生成CVE修复任务(切换至“未修复”时,才可支持CVE修复任务创建),可支持CVE粒度的任务创建,同时也可具体到特定的rpm包修复
- 生成回滚任务(切换至“已修复”时,才可支持生成回滚任务),回滚时只支持热补丁的回退
- 查看当前主机CVE列表信息(可根据严重性与状态进行筛选,可根据CVE发布时间与CVSS分数进行排序,可根据CVE ID进行检索)
- 点击CVE ID可跳转CVE详情界面
- CVE标签修改
- 主机CVE信息导出
(2) 漏洞扫描
扫描目标主机存在的CVE,主机列表不勾选的情况下,默认扫描全部主机。
(3) 添加Repo源
点击CVE REPO下的“+”处,随后在弹出界面中,输入Repo源名称与Repo具体内容,点击右下角“确定”按钮便可完成添加Repo的操作。
支持如下功能:
- 编辑Repo内容
- 下载Repo模板
- 上传本地Repo文件
(4) 上传Repo文件
在新建REPO源页面,点击“选择文件”后,选择本地已经编辑好的Repo文件便可将文件内容读入。
(5) 查看Repo源
选中一个CVE REPO,点击CVE REPO名称后,在稍后弹出的窗口中可看到目标Repo的具体内容。
(6) 删除Repo源
选中一个CVE REPO,点击“删除”后,会跳出一个确认窗口,点击“删除”按钮即可完成Repo删除动作。
(7) 设置Repo任务
当前CVE扫描与修复都是依赖于aops-update源实现,通过本功能可以为目标主机设置Repo。设置的目标Repo源中需包含aops-update源信息。
支持如下功能:
- 编辑任务信息
- 创建任务
- 创建并执行任务
3.2 CVEs界面
此界面下可看到当前所有主机存在的CVE信息,单个CVE支持点击展开查看可修复的rpm包列表及每个rpm包支持的修复方式以及影响的主机个数。
支持如下操作:
- 查看所有CVE信息(CVE严重性进行筛选、CVE ID、发布时间、CVSS分数、主机数量进行排序,可根据CVE ID进行检索)
- 上传安全公告(对版本有影响与对版本无影响的CVE数据)
- 下载安全公告
- 切换至“未修复”按钮,右侧按钮为“生成修复任务”,支持生成CVE修复任务
- 切换至“已修复”按钮,右侧按钮为“生成回滚任务”,支持生成回滚任务
- 查看单个CVE中受影响的rpm包
- 受影响rpm包影响的主机数及主机列表
(1) CVE详情信息
支持如下操作:
- 查看CVE基本信息
- 查看关联CVE数量
- 查看用户对该CVE的状态标记
- 查看受此CVE影响的主机列表以及单个主机上受此CVE影响的rpm包列表
- 可点击主机名称跳转至主机详情界面
- 选择“未修复”按钮,右侧按钮为“生成修复任务,支持生成CVE修复任务
- 选择“已修复”按钮,右侧按钮为“生成回滚任务”,支持生成回滚任务
(2) 生成CVE修复任务
支持如下操作:
- 编辑任务信息
- 创建任务
- 创建并执行任务
(3) 生成回滚任务
支持如下操作:
- 编辑任务信息
- 创建任务
- 创建并执行任务
(4) 上传安全公告
下载安全公告
点击年份进入安全公告列表
点击安全公告名称进入安全公告详情
注:1.当前需要开发脚本主动下载或者手动复制安全公告内容保存;
2.社区提供了一个订阅的方式:https://mailweb.openeuler.org/postorius/lists/sa-announce.openeuler.org/,目前还不支持推送的能力,预计2023年6月30上线。
CVE扫描结果的呈现依赖于数据库中已存储的CVE信息,对于目标主机存在但是未录入数据库的CVE数据,仅做日志记录。
而CVE信息的录入依赖此接口实现。
修改状态点击确认后,对应CVE的标签将会变更为对应字段。
3.3 任务列表界面
支持如下操作:
- 查看任务列表(可根据任务类型筛选,可根据任务生成时间、任务需执行主机数量进行排序,可根据任务名称进行检索)
- 执行任务
- 删除任务
- 点击任务名称跳转至任务详情界面
(1) 任务详情界面
支持如下操作:
- 查看任务基本信息
- 查看任务执行进度
- 查看修复的CVE中包含要修复的rpm包
- 查看主机任务执行结果
- 点击“查看报告”跳转至任务执行报告
- 执行此任务
(2) 执行任务
任务的执行可通过下列三种方式触发。
- 在任务创建时,点击创建并执行按钮(CVE修复任务、回滚任务、Repo设置任务都支持该操作)。
在任务列表界面,点击某条任务信息后面的执行按钮。
在任务详情界面,点击执行按钮。
(3) 删除任务
(4) 查看报告
可在此处查看每个任务执行的具体情况,如执行结果、执行失败的原因等。
4.定时任务配置
定时任务主要包含3种类型任务,定时任务配置文件位于 /etc/aops/apollo_crontab.ini,内容如下:
[cve_scan]
# timed task name
id = cve scan
# value between 0-6, for example, 0 means Monday, 0-6means everyday.
day_of_week = 0-6
# value between 0-23, for example, 2 means 2:00 in a day.
hour = 2
# value is true or false, for example, true means with service start.
auto_start = true
[download_sa]
id = download sa
day_of_week = 0-6
hour = 3
auto_start = true
cvrf_url = https://repo.openeuler.org/security/data/cvrf
[correct_data]
id = correct data
day_of_week = 0-6
hour = 4
auto_start = true
service_timeout_threshold_min = 15
4.1 定时巡检,执行漏洞扫描
定时扫描cve任务的参数
id
定时任务的名称,不能与其他定时任务名称重复,不建议修改。
day_of_week
定时任务在一周中的第几天启动,取值范围0-6,0-6表示每天,0表示周一,以此类推。
hour
任务启动的时间,取值范围0-23,与24小时制时间格式一致。
auto_start
任务是否跟随服务启动,true表示同时启动,false表示不同时启动。
其他
如果要精确到分钟,秒,需要添加minute(取值范围0-59)和second(取值范围0-59)。
示例
minute = 0 second = 0
修改配置文件示例
打开配置文件
vim /etc/aops/apollo_crontab.ini
修改定时任务执行时机
[cve_scan]
id = cve scan
day_of_week = 5
hour = 2
auto_start = true
4.2 定时下载安全公告
相同字段含义和使用与[cve_scan]一样。
cvrf_url
获取安全公告详细信息的基础url,暂不支持修改。
4.3 定时校正异常数据
相同字段含义和使用与[cve_scan]一样。
service_timeout_threshold_min
判断异常数据的阈值,取值为正整数,建议最小值为15。
修改配置文件示例
打开配置文件
vim /etc/aops/apollo_crontab.ini
设置异常数据阈值
service_timeout_threshold_min = 15
FAQ
- 当某个CVE修复完成需要再次扫描才会刷新CVE列表信息。
- 执行CVE扫描与CVE修复前需在目标主机设置repo id为aops-update的Repo源。
- 当任务执行结果或者某个主机操作事件的返回结果为unknown时,请排查aops-zeus、aops-ceres服务是否正常运行以及相关配置文件是否正确配置。
- Linux系统Kernel类的漏洞修复完成后需要手动重启,否则CVE扫描仍可能会扫描到该漏洞。