AIDE - 入侵检测数据库¶
https://blueprints.launchpad.net/tripleo/+spec/tripleo-aide-database
AIDE(高级入侵检测环境)是一个文件和目录完整性验证系统。它计算对象属性的校验和,然后将这些校验和存储到数据库中。操作员可以定期检查已定义对象的当前状态,并验证任何属性是否已更改(从而表明可能存在恶意/未经授权的篡改)。
问题描述¶
诸如 DISA STIG [1] / CIS [3] 之类的安全框架要求在所有 Linux 系统上安装和配置 AIDE。
为了使 OpenStack 操作员能够符合上述安全要求,他们需要一种自动化安装 AIDE 和初始化 AIDE 完整性数据库的方法。他们还需要一种执行定期完整性验证运行的手段。
提议的变更¶
概述¶
引入一个 puppet 模块来管理 AIDE 服务,并确保安装了 AIDE 应用程序,创建规则条目和 CRON 作业,以允许定期检查 AIDE 数据库,或者允许通过 Sensu 检查进行监控,作为 OpTools 的一部分。
创建一个 tripleo-heat-template 服务,以允许填充 hiera 数据,供管理 AIDE 的 puppet 模块使用。
建议的 puppet 模块是 lhinds-aide [2],因为该模块将接受在 hiera 数据中声明的规则,初始化数据库并启用 CRON 条目。其他 puppet AIDE 模块缺少 hiera 功能或其他功能(例如 CRON 填充)。
在 tripleo-heat-templates 中,将创建一个可组合的服务,以将规则哈希馈送到 AIDE puppet 模块,如下所示
- AIDERules
description: AIDE 配置规则映射 type: json default: {}
操作员可以然后加载一个环境文件,并提供规则信息作为哈希
- parameter_defaults
- AIDERules
- ‘监控 /etc 的更改’
content: ‘/etc p+sha256’ order : 1
- ‘监控 /boot 的更改’
content: ‘/boot p+u+g+a’ order : 2
Ops 工具集成¶
为了允许主动监控 AIDE 事件,可以创建一个 sensu 检查来执行基于间隔的 AIDE 监控文件验证(使用 AIDERules 设置)与上次初始化的数据库进行对比。
Sensu 激活的 AIDE 验证检查的结果将馈送到 sensu 服务器进行告警和存档。
Sensu 客户端(所有 overcloud 节点)将通过 puppet-sensu 模块配置为使用独立/被动检查,该模块已经安装在 overcloud 镜像上。
如果操作员选择不使用 OpTools,则他们仍然可以通过 CRON 条目使用传统方法配置 AIDE。
替代方案¶
使用 puppet 模块和 TripleO 服务相结合是填充 AIDE 规则和管理 AIDE 服务的最务实的方法。
安全影响¶
AIDE 是一个完整性检查应用程序,因此需要操作员确保 AIDE 的数据库受到保护,免受篡改。如果攻击者获得对数据库的访问权限,他们可能会尝试通过删除文件完整性哈希记录来隐藏恶意活动。
默认位置是 /var/lib/aide/$database,puppet-aide 使用权限设置为 0600 和所有权设置为 root root。
AIDE 本身不会对任何 OpenStack 项目产生安全影响,并且不会与任何 OpenStack 服务进行交互。
其他最终用户影响¶
服务交互将通过 heat 模板和 TripleO UI 发生(如果存在功能映射)。
性能影响¶
无性能影响
其他部署者影响¶
该服务将通过环境文件利用。因此,如果部署者没有使用 openstack overcloud deploy -e 标志引用环境模板,则不会产生任何影响。
开发人员影响¶
对其他 OpenStack 开发人员无影响。
实现¶
负责人¶
- 主要负责人
lhinds
工作项¶
将 puppet-aide [1] 添加到 RDO 作为 puppet 包
创建 AIDE 的 TripleO 服务
创建功能映射
创建 CI 作业
将文档提交到 tripleo-docs。
依赖项¶
依赖于 lhinds-aide Puppet 模块。
测试¶
将在 TripleO CI 中进行测试,方法是将该服务和环境模板添加到 TripleO CI 场景中。
文档影响¶
将制作文档补丁,以解释如何使用该服务。
参考资料¶
原始 Launchpad issue: https://bugs.launchpad.net/tripleo/+bug/1665031
[1] https://www.stigviewer.com/stig/red_hat_enterprise_linux_6/2016-07-22/finding/V-38489