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

工作项

  1. 将 puppet-aide [1] 添加到 RDO 作为 puppet 包

  2. 创建 AIDE 的 TripleO 服务

  3. 创建功能映射

  4. 创建 CI 作业

  5. 将文档提交到 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

[2] https://forge.puppet.com/lhinds/aide

[3] file:///home/luke/project-files/tripleo-security-hardening/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.0.pdf

[3] file:///home/luke/project-files/tripleo-security-hardening/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.0.pdf