网站搜索

如何在 Linux 中使用“AIDE”检查文件和目录的完整性


在我们强化和保护 CentOS 7 的大型指南中,在“内部保护系统”部分下,我们列出了用于内部系统防御病毒、rootkit、恶意软件和检测未经授权的有用安全工具之一活动是AIDE

AIDE高级入侵检测环境)是一个小而强大的免费开源入侵检测工具,它使用预定义的规则来检查类 Unix 操作系统中的文件和目录完整性比如Linux。它是一个独立的静态二进制文件,用于简化客户端/服务器监控配置。

它功能丰富:使用纯文本配置文件和数据库,使其易于使用;支持多种消息摘要算法,例如但不限于md5、sha1、rmd160、tiger;支持常用文件属性;还支持强大的正则表达式来选择性地包含或排除要扫描的文件和目录。

它还可以通过对 Gzip 压缩、Posix ACL、SELinux、XAttrs 和扩展文件系统属性的特殊支持进行编译。

Aide 的工作原理是根据配置文件中定义的正则表达式规则创建数据库(它只是文件系统选定部分的快照)。该数据库初始化后,您可以根据它验证系统文件的完整性。本指南将展示如何在 Linux 中安装和使用 aide。

如何在 Linux 中安装 AIDE

Aide 打包在主流 Linux 发行版的官方存储库中,要安装它,请使用包管理器运行适合您的发行版的命令。

apt install aide 	   [On Debian/Ubuntu]
yum install aide	   [On RHEL/CentOS] 	
dnf install aide	   [On Fedora 22+]
zypper install aide	   [On openSUSE]
emerge aide 	           [On Gentoo]

安装后,主要配置文件是/etc/aide.conf。要查看已安装的版本以及编译时参数,请在终端上运行以下命令:

aide -v
样本输出
Aide 0.14

Compiled with the following options:

WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"

您可以使用您喜欢的编辑器打开配置。

vi /etc/aide.conf

它具有定义数据库位置、报告位置、默认规则以及要包含在数据库中的目录/文件的指令。

了解默认助手规则

例如,使用上述默认规则,您可以在 aide.conf 文件中定义新的自定义规则。

PERMS = p+u+g+acl+selinux+xattrs

PERMS 规则仅用于访问控制,它将根据文件/目录权限、用户、组、访问控制权限、SELinux 上下文和文件属性来检测文件或目录的任何更改。

这只会检查文件内容和文件类型。

CONTENT = sha256+ftype

这是先前规则的扩展版本,它检查扩展内容、文件类型和访问权限。

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

下面的 DATAONLY 规则将帮助检测所有文件/目录内数据的任何更改。

DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256

定义监视文件和目录的规则

定义规则后,您可以指定要监视的文件和目录。考虑到上面的 PERMS 规则,此定义将检查根目录中所有文件的权限。

/root/\..*  PERMS

这将检查 /root 目录中的所有文件是否有任何更改。

/root/   CONTENT_EX

为了帮助您检测 /etc/ 下所有文件/目录内数据的任何更改,请使用此命令。

/etc/   DATAONLY 

使用AIDE检查Linux中的文件和目录完整性

首先根据将使用 --init 标志执行的检查构建数据库。这预计在您的系统连接到网络之前完成。

下面的命令将创建一个数据库,其中包含您在配置文件中选择的所有文件。

aide --init

然后使用此命令将数据库重命名为 /var/lib/aide/aide.db.gz,然后再继续。

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

建议将数据库移动到安全位置(可能位于只读介质或其他计算机上),但请确保更新配置文件以从那里读取数据库。

创建数据库后,您现在可以使用 --check 标志检查文件和目录的完整性。

aide --check

它将读取数据库中的快照并将其与系统磁盘上找到的文件/目录进行比较。如果它发现您可能意想不到的地方发生了变化,它会生成一份报告,您可以随后查看该报告。

由于没有对文件系统进行任何更改,因此您只会得到与上面类似的输出。现在尝试在文件系统中的配置文件中定义的区域中创建一些文件。

vi /etc/script.sh
touch all.txt

然后再次运行检查,这应该报告上面添加的文件。该命令的输出取决于您配置用于检查的文件系统的部分,它可能会导致长时间的超时。

aide --check

您需要定期运行辅助检查,如果对已选择的文件进行任何更改或在配置文件中添加新的文件定义,请始终使用 --update 选项更新数据库:

aide --update

运行数据库更新后,要使用新数据库进行将来的扫描,请始终将其重命名为 /var/lib/aide/aide.db.gz

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

目前为止就这样了!但请注意以下要点:

  • 大多数入侵检测系统(包括 AIDE)的一个特点是它们不会为系统上的大多数安全漏洞提供解决方案。然而,它们通过帮助系统管理员检查系统文件/目录的任何更改来帮助简化入侵响应过程。因此,您应该始终保持警惕并不断更新当前的安全措施。
  • 强烈建议将新创建的数据库、配置文件和 AIDE 二进制文件保存在安全位置,例如只读介质(如果从源安装则可以)。
  • 为了提高安全性,请考虑对配置和/或数据库进行签名。

有关其他信息和配置,请参阅其手册页或查看 AIDE 主页:http://aide.sourceforge.net/