介绍
AIDE(Adevanced Intrusion Detection Environment)高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.
这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.
所有安装的包都会在rpm数据库生成对应的记录,可以使用rpm -V 来进行查询和比对,在记录发生变化时会出现相应的提示信息。aide和rpm数据库的区别就是aide能监控所有的文件,以及更全面的文件属性,rpm数据库之限定于rpm安装的包。
[root@c6 ~]#rpm -V bash
[root@c6 ~]#
配置
程序文件 /usr/sbin/aide
配置文件 /etc/aide.conf
数据库文件 /var/lib/aide
日志文件 /var/log/aide
数据库读取时用到的文件aide.db.gz,用于校验文件
数据库被写入时生成的文件 aide.db.new.gz,在使用时需要修改为aide.db.gz,便于校验数据时的读取
属性
# These are the default rules.
#
#p: permissions -------------------------- # 权限
#i: inode: ------------------------------- # 节点编号
#n: number of links ---------------------- # 连接数
#u: user --------------------------------- # 所有者
#g: group -------------------------------- # 所属组
#s: size --------------------------------- # 大小
#b: block count -------------------------- # 块数量
#m: mtime -------------------------------- # 修改时间
#a: atime -------------------------------- # 访问时间
#c: ctime -------------------------------- # 改变时间
#S: check for growing size
#acl: Access Control Lists ---------- #访问控制列表
#selinux SELinux security context ------ # 安全上下文
#xattrs: Extended file attributes ------ # 扩展文件属性
#md5: md5 checksum ------------------------- # 哈希值
#sha1: sha1 checksum
#sha256: sha256 checksum
#sha512: sha512 checksum
#rmd160: rmd160 checksum
#tiger: tiger checksum
设置监控
Commands:
-i, --init Initialize the database -------------------------------- # 初始化数据库
-C, --check Check the database ------------------------------------- # 检查数据库
-u, --update Check and update the database non-interactively -------- # 更新数据库
以监控/app文件夹为例,设置一条监控的属性信息mon,直接在/app后调用,/app/f3不需要监控,用叹号!指定
[root@c7 ~]#ll /app/
total 16
-rw-r--r--. 1 root root 6 Sep 13 14:32 f1
-rw-r--r--. 1 root root 9 Sep 13 14:33 f2
-rw-r--r--. 1 root root 8 Sep 13 14:33 f3
-rw-r--r--. 1 root root 13 Sep 13 14:33 f4
mon = p+u+g+sha512+m+a+c
# Next decide what directories/files you want in the database. Aide
# uses a first match system. Put file specific instructions before generic
# matches. e.g. Put file matches before directories.
/app mon
!/app/f3
创建数据库,生成 /var/lib/aide/aide.db.new.gz文件
[root@c7 app]#aide --i
AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
因为没有aide.db.gz文件,此时还不能对文件进行监控
[root@c7 ~]#aide -C
Couldn't open file /var/lib/aide/aide.db.gz for reading
进入文件夹改名,再次查询
[root@c7 ~]#cd /var/lib/aide/
[root@c7 aide]#mv aide.db.new.gz aide.db.gz
[root@c7 aide]#ll
total 8
-rw-------. 1 root root 483 Sep 13 15:44 aide.db.gz
再次检查/app下文件,因为是第一次监控文件,在创建数据库时对文件进行了读取,文件的访问时间atiem变更为数据库读取的时间。因为跳过了f3文件,再次不做显示。由此就实施了对文件的监控。
[root@c7 aide]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:45:44
Summary:
Total number of files: 5
Added files: 0
Removed files: 0
Changed files: 3
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /app/f1
changed: /app/f2
changed: /app/f4
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
File: /app/f1
Atime : 2017-09-13 14:32:52 , 2017-09-13 15:39:08
File: /app/f2
Atime : 2017-09-13 14:33:00 , 2017-09-13 15:39:08
File: /app/f4
Atime : 2017-09-13 14:33:18 , 2017-09-13 15:39:08
修改所有者,查看文件的属性变化
修改f1文件的所有者为用户feng,用aide -C检查,会发现f1文件的所有者的ID从0变更为1000,文件的ctime显示了更改的时间
[root@c7 app]#chown feng f1
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:51:07
Summary:
Total number of files: 5
Added files: 0
Removed files: 0
Changed files: 3
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /app/f1
changed: /app/f2
changed: /app/f4
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
File: /app/f1
Uid : 0 , 1000
Atime : 2017-09-13 14:32:52 , 2017-09-13 15:39:08
Ctime : 2017-09-13 14:33:53 , 2017-09-13 15:50:59
File: /app/f2
Atime : 2017-09-13 14:33:00 , 2017-09-13 15:39:08
File: /app/f4
Atime : 2017-09-13 14:33:18 , 2017-09-13 15:39:08
修改文件内容,查看文件的属性变化
修改f2文件的内容,用aide -C检查,此时文件的mtime和ctime,以及哈希值都发生了改变,说明数据已经变化了
[root@c7 app]#echo sfsfs >> f2
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:57:18
Summary:
Total number of files: 5
Added files: 0
Removed files: 0
Changed files: 3
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /app/f1
changed: /app/f2
changed: /app/f4
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
File: /app/f1
Uid : 0 , 1000
Atime : 2017-09-13 14:32:52 , 2017-09-13 15:51:07
Ctime : 2017-09-13 14:33:53 , 2017-09-13 15:50:59
File: /app/f2
Atime : 2017-09-13 14:33:00 , 2017-09-13 15:39:08
Mtime : 2017-09-13 14:33:00 , 2017-09-13 15:57:16
Ctime : 2017-09-13 14:33:53 , 2017-09-13 15:57:16
SHA512 : f55IMty3iZr+1thEbZQVtAM3grorDOUP , JL56faPPxSMwRTiCqcT8l4Kml9OS7r9m
File: /app/f4
Atime : 2017-09-13 14:33:18 , 2017-09-13 15:39:08
更新数据库
在数据变更之后,如果实在正常的情况下,需要保存下来以后使用,可以使用aide -u进行更新数据库,在数据库更新之后,会重新生成 /var/lib/aide/aide.db.new.gz文件,因为数据库读取的文件是aide.db.gz,所以在更新数据库之后,我们要删除原aide.db.gz文件,把aide.db.new.gz重命名为aide.db.gz,再次检查文件的变化,会发现之前的改动在aide监控下已经变成了正常
[root@c7 app]#ls /var/lib/aide/
aide.db.gz aide.db.new.gz
[root@c7 app]#cd /var/lib/aide/
[root@c7 aide]#rm -f aide.db.gz
[root@c7 aide]#mv aide.db.new.gz aide.db.gz
[root@c7 aide]#aide -C
AIDE, version 0.15.1
### All files match AIDE database. Looks okay!
修改文件权限并改回,查看属性的变化
f4文件的权限是644,把f4文件的权限修改为600,用aide -C检查是会提示文件的权限的变化和ctime的改变。当文件的权限再次更改为644时,文件的atime和ctime都发生了改变,没有提示权限上的错误
[root@c7 app]#chmod 600 f4
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 16:12:49
Summary:
Total number of files: 5
Added files: 0
Removed files: 0
Changed files: 1
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /app/f4
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
File: /app/f4
Perm : -rw-r--r-- , -rw-------
Ctime : 2017-09-13 14:33:53 , 2017-09-13 16:12:36
---------------------------------------------------------------------------------------
[root@c7 app]#chmod 644 f4
[root@c7 app]#aide -C
AIDE 0.15.1 found differences between database and filesystem!!
Start timestamp: 2017-09-13 16:13:00
Summary:
Total number of files: 5
Added files: 0
Removed files: 0
Changed files: 1
---------------------------------------------------
Changed files:
---------------------------------------------------
changed: /app/f4
---------------------------------------------------
Detailed information about changes:
---------------------------------------------------
File: /app/f4
Atime : 2017-09-13 15:39:08 , 2017-09-13 16:12:49
Ctime : 2017-09-13 14:33:53 , 2017-09-13 16:12:58
aide是一个很好的监控文件,可以用它监控一些重要的文件,比如不会经常变动的二进制文件,被入侵时串改文件,可以及时发现并解决问题,避免不必要的损失