Linux操作系统入侵检测AIDE
Linux操作系统本身是无法保证文件存储过程中完整性的,想要保证文件的存储完整性可以借助工具实现。
AIDE(Adevanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,主要用途是检查文本的完整性。我们可以通过配置AIDE的配置文件aide.conf选择我们想要加密目录,并且选择我们想加密的策略。
Linux还有一个工具是:tripwire,但是这个工具操作起来更复杂一点,所以可以使用简单有效的AIDE。
下面用CentOS 7实验一波:
首先安装aide,yum install -y aide
下面康康他的配置文件啥样,cat /etc/aide.conf
挺多的都是默认审计的文件夹,就省略了。。。
第一个为数据库路径,就是等下生成的HASH数据生成的路径
第二个是日志文件路径
这个是开启压缩
这块是AIDE能够保存文件的内容
#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 //SELinux
#xattrs: Extended file attributes //扩展文件属性
然后AIDE可以使用以下算法对文件进行HASH,并且将HASH值载入到一个基准数据库,通过对比当前文件的HASH与数据库中存储的HASH就可以得到文件是否被修改过。
#md5: md5 checksum
#sha1: sha1 checksum
#sha256: sha256 checksum
#sha512: sha512 checksum
#rmd160: rmd160 checksum
#tiger: tiger checksum
可以配置自己需要的的规则,首先定义一个变量,赋值给他相应的属性
写入需要的目录 加上规则变量
路径前面加一个!表示忽视这个路径
下面实验一下AIDE
在根目录创建一个文件夹,里面创建两个.txt文件
将文件夹路径添加到AIDE配置文件
使用aide --init,初始化数据库,(这块等的时间比较长)
进入数据库文件路径可以看到最新生成的HASH文件
将初始化的数据库文件当作基准数据库(这个名字不是随便起的,谁叫aide.db.gz谁就是基准数据库,没有这个文件后面会报错)
进入刚刚的测试文件夹,修改1.txt,删除2.txt
现在使用AIDE检查系统文件,看看有什么效果
估计等个大约三四分钟,就可以看到结果了,一共检测了114954个文件,新增0,删除1,修改1,删除了2.txt,修改了1.txt,然后后面是SHS256加密的HASH对比。
说明这个工具确实有效果,如果此时是管理员自己修改的那么可以使用aide --update更新数据库,然后修改新生成的数据库文件,将最新的数据库最为基准文件。
然后我看他这个还有邮件功能,我用自己邮箱试了一下,真的可以??太强了!!!
(后面两个修改是我自己改的)
然后可以写一个bash脚本,添加到定时任务让它每天自己执行,并将报告发送到我的邮箱。应该是可以实现的,今天就不演示了
下面是AIDE常用的参数
--init //初始化一个数据库
--check //检查与基准库是否不同
--update //更新库
--version,-v //显示版本号
--help //显示帮助信息