开发者
资源
openEuler AIDE 文件完整性检测
openEuler AIDE 文件完整性检测
发表于01/02
1290

为满足等级保护、合规审计及入侵检测需求,系统需具备对关键文件和目录的完整性监控能力。AIDE(Advanced Intrusion Detection Environment)是一款开源的文件完整性校验工具,通过计算并比对文件的哈希值、权限、属主、inode 等属性变化,识别未经授权的篡改行为。openEuler 24.03 LTS 官方仓库提供 AIDE 软件包,并支持与 systemd 定时器集成,实现周期性自动检测。本文说明如何在 openEuler 24.03 LTS 上部署 AIDE,初始化基准数据库,配置监控路径与校验规则,并设置定期检查任务。


一、环境前提

  • 操作系统:openEuler 24.03 LTS
  • 监控目标:系统二进制文件、配置文件、关键日志目录等
  • 校验算法:SHA-256(默认),可配置为 SHA-512 或结合 HMAC
  • 权限要求:需 root 权限进行初始化与策略更新
  • 存储要求:基准数据库应存储于只读介质或安全隔离位置(本文以本地安全目录为例)

二、安装 AIDE

sudo dnf install -y aide

安装后,主配置文件位于 /etc/aide.conf,默认包含示例规则与路径定义。


三、配置监控策略

  1. 备份原始配置:
sudo cp /etc/aide.conf /etc/aide.conf.orig
  1. 编辑 /etc/aide.conf,定义校验规则与监控路径。

规则定义示例:

# 定义校验规则组
All = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha512
Bin = p+i+n+u+g+s+m+c+sha512
Conf = p+i+n+u+g+m+c+acl+selinux+sha512
Logs = p+i+n+u+g+m+acl+selinux

字段含义:

  • p:权限
  • i:inode
  • n:链接数
  • u/g:用户/组
  • s:大小
  • m:mtime
  • c:ctime
  • acl:访问控制列表
  • selinux:SELinux 上下文
  • xattrs:扩展属性
  • sha512:SHA-512 哈希值

监控路径配置示例:

# 系统二进制
/bin            Bin
/sbin           Bin
/usr/bin        Bin
/usr/sbin       Bin

# 配置文件
/etc            Conf    !/etc/mtab
/etc/passwd     Conf
/etc/shadow     Conf

# 引导文件
/boot           All

# 排除临时或高频变更目录
!/tmp
!/var/tmp
!/var/log/journal

使用 ! 前缀排除特定子路径,避免因正常日志写入触发误报。

  1. (可选)将基准数据库存放在独立安全目录:
@@define DBDIR /var/lib/aide
@@define REPORTDIR /var/log/aide

确保目录存在且权限受限:

sudo mkdir -p /var/lib/aide /var/log/aide
sudo chmod 700 /var/lib/aide /var/log/aide

四、初始化基准数据库

首次运行需生成初始完整性数据库:

sudo aide --init

该命令生成 /var/lib/aide/aide.db.new.gz(若使用默认路径)。将其重命名为正式数据库:

sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

此步骤应在系统完成安全加固、所有合法软件安装完毕后执行,以确保基线纯净。


五、执行手动完整性检查

后续可通过以下命令比对当前系统状态与基准:

sudo aide --check

输出将列出所有属性发生变化的文件,包括:

  • 新增文件(不在原数据库中)
  • 删除文件(原数据库中有但当前缺失)
  • 属性或内容变更的文件

检查结果同时写入标准输出与日志文件(若配置了 REPORTDIR)。


六、配置定期自动检查

openEuler 提供 systemd 定时器实现周期性任务。

  1. 启用内置定时器(若存在):
sudo systemctl enable --now aidecheck.timer
  1. 若未提供,可手动创建:

创建服务单元 /etc/systemd/system/aide-check.service:

[Unit]
Description=AIDE Integrity Check
ConditionFileExists=/var/lib/aide/aide.db.gz

[Service]
Type=oneshot
ExecStart=/usr/sbin/aide --check

创建定时器单元 /etc/systemd/system/aide-check.timer:

[Unit]
Description=Daily AIDE Integrity Check
Requires=aide-check.service

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

启用定时器:

sudo systemctl daemon-reload
sudo systemctl enable --now aide-check.timer

七、安全加固建议

  • 数据库保护:将 aide.db.gz 复制至只读文件系统、USB 安全令牌或离线存储,运行时使用副本;
  • 配置文件签名:结合 IMA 或 GPG 对 aide.conf 和数据库进行签名验证;
  • 日志集中收集:将 AIDE 报告日志转发至 SIEM 平台(如 ELK、Splunk);
  • 变更管理联动:在系统变更(如软件升级)前暂停 AIDE 检查,变更后重新初始化数据库。

八、注意事项

  • AIDE 不提供实时监控,仅支持周期性快照比对;
  • 高频写入目录(如 /var/log)应谨慎纳入监控范围,或仅监控元数据(排除内容哈希);
  • 在容器化环境中,AIDE 应在宿主机或专用安全容器中运行,而非业务容器内;
  • 更新系统(如 dnf update)后,若涉及监控路径中的文件,需重新生成基准数据库,否则将产生大量合法变更告警。
收藏举报
Level 1
0
帖子
0
粉丝
0
获赞