Skip to content

Latest commit

 

History

History
443 lines (361 loc) · 13.1 KB

使用AIDE进行侵入检查.org

File metadata and controls

443 lines (361 loc) · 13.1 KB

使用AIDE进行侵入检查

AIDE是什么

AIDE(Advanced Intrusion Detection Environment) 通过校验文件和目录的完整性来检测系统是否被入侵。

它有如下特性:

  • 支持多种指纹算法: md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool等
  • 支持检查各种属性: 文件类型, Inode, Uid, Gid, 权限, 链接名, 文件大小, Mtime, Ctime, Atime等.
  • 支持 SELinux, XAttrs, Posix ACL 以及扩展文件系统属性.
  • 支持通过正则表达式匹配要校验或者不要校验的文件和目录
  • 支持邮件通知

安装AIDE

sudo pacman -S aide --noconfirm

通过 --version 选项可以查看AIDE的版本、启用的特性以及配置文件路径

aide --version 2>&1

从中可以看到,我这里的AIDE版本为 0.16.2 配置文件为 /etc/aide.conf

配置文件简要说明

其实 /etc/aide.conf 中的语法挺好猜的,下面是安装好AIDE后的默认配置:

cat /etc/aide.conf

基本上你可以看到下面几类语法:

#开头的语句
很明显是注释
@@define 常量 值
定义常量
@@{常量}
引用常量的值
参数=值
设置参数值,这些参数都是AIDE预设参数,有特殊的意义
规则 = 值
定义检查规则,AIDE默认定义了一些基础规则,可以通过+号把规则累加起来
文件或目录路径 规则
设置指定文件或目录要做哪些检查
!文件或目录路径
!开头的路径表示剔除这些文件和目录,而且支持通配符

因此,假如我想把 /usr/bin 纳入检查,但是因为我经常会安装/删除应用,所以其中的文件可能会有新增和删除,那么我们可以这么设置:

  1. 定义一个新的检查规则
    EASYDIR = DIR+ANF+ARF
        
  2. 增加一个检查项
    /usr/bin EASYDIR
        

生成指纹库

sudo aide --init

注意到生成的数据库路径为 /var/lib/aide/aide.db.new.gz,跟配置文件中 database_out 的参数一致

# The location of the database to be written.
database_out=file:@@{DBDIR}/aide.db.new.gz

不过配置文件中配置使用的指纹数据库是

# The location of the database to be read.
database=file:@@{DBDIR}/aide.db.gz

所以我们还需要重命名一下这个新生成的指纹数据库

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

指纹检查

现在我们来试试在 /usr/bin 目录中增加一个文件 a

sudo touch /usr/bin/a

来检查一下

sudo aide --check

你会发现,并没有提示异常,这是因为我们允许对 /usr/bin 目录增加或删除文件。

现在我们来试试在 /bin 目录中增加一个文件 a

sudo touch /bin/b

再来检查一下

sudo aide --check

更新指纹库

过了一段时间我们对系统进行操作后需要重新更新指纹库:

sudo aide --update

更新的指纹库还是 /var/lib/aide/aide.db.new.gz,所以我们还需要再重新移动一次:

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