AIDE入侵检测

AIDE

当一个入侵者进入了你的系统并且种植了木马,通常会想 办法来隐蔽这个木马(除了木马自身的一些隐蔽特性外, 他会尽量给你检查系统的过程设置障碍),通常入侵者会 修改一些文件,比如管理员通常用ps -aux来查看系统进 程,那么入侵者很可能用自己经过修改的ps程序来替换掉 你系统上的ps程序,以使用ps命令查不到正在运行的木马 程序。如果入侵者发现管理员正在运行crontab作业,也 有可能替换掉crontab程序等等。所以由此可以看出对于 系统文件或是关键文件的检查是很必要的。目前就系统完 整性检查的工具用的比较多的有两款:Tripwire和AIDE ,前者是一款商业软件,后者是一款免费的但功能也很强 大的工具

AIDE

 

AIDE

  • AIDE(Advanced Intrusion Detection Environment)
  • (高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。
  • AIDE能够构造一个指定文件的数据库,它使用conf作为其配 置文件。AIDE数据库能够保存文件的各种属性,包括:权限 (permission)、索引节点序号(inode number)、所属用户(user)、 所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间 (ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还 能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建 立每个文件的校验码或散列号.
  • 这个数据库不应该保存那些经常变动的文件信息,例如:日志文件 、邮件、/proc文件系统、用户起始目录以及临时目录.

 

AIDE

  • 安装

yum install aide

  • 修改配置文件

vim /etc/aide.conf (指定对哪些文件进行检测)

/test/chameleon R

/bin/ps R+a

/usr/bin/crontab R+a

/etc PERMS !/etc/mtab   #“!”表示忽略这个文件的检查

R=p+i+n+u+g+s+m+c+md5 权限+索引节点+链接数+用 户+组+大小+最后一次修改时间+创建时间+md5校验值  NORMAL = R+rmd60+sha256

 

安装aide

[root@localhost ~]# yum install aide

 

安装包信息

[root@localhost ~]# rpm -qi aide

Name        : aide

Version     : 0.15.1

Release     : 13.el7

AIDE (Advanced Intrusion Detection Environment) is a file integrity

checker and intrusion detection program.

一个文件完整性检查和入侵检测程序。

 

[root@localhost ~]#  rpm -ql aide

/etc/aide.conf 配置文件

/etc/logrotate.d/aide

/usr/sbin/aide 程序

/var/log/aide 日志文件路径

 

/var/lib/aide aide数据库的路径(会生成一个文件用于保存系统中文件的各种属性)定期的运行aide程序,去比较当前文件的状态,和存入数据库中的状态是否一致。

 

配置文件

在aide配置文件中定义要关注的文件或目录是什么

 

# Example configuration file for AIDE.

 

@@define DBDIR /var/lib/aide 数据库路径

@@define LOGDIR /var/log/aide 日志路径

 

# The location of the database to be read.

database=file:@@{DBDIR}/aide.db.gz 用这个数据库比较关注文件的状态

 

# The location of the database to be written.

#database_out=sql:host:port:database:login_name:passwd:table

#database_out=file:aide.db.new

database_out=file:@@{DBDIR}/aide.db.new.gz 生成新的数据库

有两个数据库,一个database_out 存的是现在要关心的具体每一个文件的状态属性,收集关心的文件的状态属性。在收集的时候就存放在这个数据库中去。将来比较的时候要把文件名改成aide.db.gz真正比较的时候是使用aide.db.gz文件进行比较的。收集数据库和比较数据库是分开的

 

report_url=file:@@{LOGDIR}/aide.log 日志文件路径

report_url=stdout

 

# These are the default rules.

#

#p:      permissions 权限

#i:      inode: 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 hash值

#sha1:   sha1 checksum

#sha256:        sha256 checksum

#sha512:        sha512 checksum

#rmd160: rmd160 checksum

#tiger:  tiger checksum

 

#haval:  haval checksum (MHASH only)

#gost:   gost checksum (MHASH only)

#crc32:  crc32 checksum (MHASH only)

#whirlpool:     whirlpool checksum (MHASH only)

 

FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256表示关心的各种属性的集合

 

对于/boot文件夹

# Extended content + file type + access.

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

 

/boot/   CONTENT_EX CONTENT_EX表示各种属性的集合

/bin/    CONTENT_EX

/sbin/   CONTENT_EX

/lib/    CONTENT_EX

/lib64/  CONTENT_EX

/opt/    CONTENT

 

!/usr/src/ 排除,不关心的文件夹

 

/root/\..* PERMS 支持正则表达式

 

示例:

CUSTOM = p+u+g+s+sha256+m+acl

/app CUSTOM

!/app/f3

 

使用aide工具生成要监控文件的数据库

[root@localhost ~]# aide –init

 

AIDE, version 0.15.1

 

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

 

创建数据库,根据 写的配置文件,要监控的马哥目录下马偕文件的属性,把数据收集起来,生成数据库文件

 

生成的数据库文件,监控文件的各种属性

[root@localhost ~]# ls /var/lib/aide/

aide.db.new.gz

 

比对文件的属性,需要修改数据库文件名,改成对比数据库

[root@localhost /var/lib/aide]# mv ./aide.db.new.gz ./aide.db.gz

 

进行比对

[root@localhost /var/lib/aide]# aide –check

AIDE, version 0.15.1

### All files match AIDE database. Looks okay!

表示文件没有被修改过

修改要对比的文件重新检测

[root@localhost ~]# echo >> /app/f1

[root@localhost ~]# aide –check

AIDE 0.15.1 found differences between database and filesystem!!

Start timestamp: 2018-01-08 05:01:40

 

Summary:

Total number of files: 4 文件数量

Added files: 0

Removed files: 0

Changed files: 1 变化的文件

 

—————————————————

Changed files:

—————————————————

changed: /app/f1

—————————————————

Detailed information about changes:

—————————————————

 

 

File: /app/f1

Size     : 595                              , 596 文件大小

Mtime    : 2018-01-08 04:31:50              , 2018-01-08 05:01:33 时间

SHA256   : 9HopzA3ByKba0gHU5rhIO5GCu5uzjYYF , gsv7p84621V4spFVvVOANE+Gcno/sd4U hash值

[root@localhost ~]#

所有者的改变

[root@localhost /app]# chown ding f1

[root@localhost /app]# vim f1

[root@localhost /app]# cd

[root@localhost ~]# aide –check

AIDE 0.15.1 found differences between database and filesystem!!

Start timestamp: 2018-01-08 05:03:30

 

Summary:

Total number of files: 4

Added files: 0

Removed files: 0

Changed files: 2

—————————————————

Changed files:

—————————————————

 

changed: /app

changed: /app/f1

 

—————————————————

Detailed information about changes:

—————————————————

Directory: /app

Mtime    : 2018-01-08 04:31:52              , 2018-01-08 05:03:21

File: /app/f1

Uid      : 0                                , 1000

Mtime    : 2018-01-08 04:31:50              , 2018-01-08 05:03:21

[root@localhost ~]#

 

当文件是自己修改的,需要把文件的新属性重新写入到aide的属性数据库文件中去,可以重新创建文件属性的数据库,也可以更新文件属性数据库

[root@localhost ~]# aide –update

AIDE 0.15.1 found differences between database and filesystem!!

Start timestamp: 2018-01-08 05:06:02

 

Summary:

Total number of files: 4

Added files: 0

Removed files: 0

Changed files: 2

—————————————————

Changed files:

—————————————————

changed: /app

changed: /app/f1

 

—————————————————

Detailed information about changes:

—————————————————

Directory: /app

Mtime    : 2018-01-08 04:31:52              , 2018-01-08 05:03:21

File: /app/f1

Uid      : 0                                , 1000

Mtime    : 2018-01-08 04:31:50              , 2018-01-08 05:03:21

[root@localhost ~]#

更新之后生成的文件还是一个属性数据库文件,而不是对比数据库文件,要重新对比的时候还需要改名

[root@localhost ~]# ll /var/lib/aide

total 8

-rw——- 1 root root 342 Jan  8 04:57 aide.db.gz

-rw——- 1 root root 350 Jan  8 05:06 aide.db.new.gz

覆盖之前的比对数据库文件,重新进行文件属性的检查,应该是没有文件发生变化

[root@localhost ~]# cd /var/lib/aide/

[root@localhost /var/lib/aide]# mv ./aide.db.new.gz ./aide.db.gz

mv: overwrite ‘./aide.db.gz’? y

[root@localhost /var/lib/aide]# aide –check

AIDE, version 0.15.1

### All files match AIDE database. Looks okay!

[root@localhost /var/lib/aide]#

AIDE

  • 初始化默认的AIDE的库:

/usr/local/bin/aide –init

  • 生成检查数据库(建议初始数据库存放到安全的地方)

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

  • 检测:

/usr/local/bin/aide –check

  • 更新数据库  aide –update

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90924

(1)
无言胜千言无言胜千言
上一篇 2018-01-08 08:34
下一篇 2018-01-08 13:31

相关推荐

  • 关于生命中出现的那个男人

    绝对真男人     一个人的一生,会遇到很多很多的男人,哦,也会遇到很多很多的女人,但是我们今天就谈谈男人吧.在这芸芸众生中对于我们这些志向于在linux求发展谋生存的人来说,有个男人会是所有linux爱好者的良师益友.这个男人就是man,这个男人是绝对的男人,因为他是在linux这个系统中无所不知的那个男人. &nb…

    Linux干货 2016-10-27
  • yum 仓库

    Yum 仓库     yum源就是一个软件集合地,你只需要搜索并安装你想要的软件,它会帮你解决大部分软件的依赖问题。本地源比如说光盘里面一般会附带一些软件,这个时候就可以把光盘当成本地源来安装软件。网络源比如说aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载下来并安装。   yum 仓库 &n…

    2017-06-24
  • TCP 的那些事儿(下)

    这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的…

    Linux干货 2016-08-15
  • 实战keepalived高可用集群解决方案

    Keepalived定义      Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给…

    2017-05-16
  • TCP三次握手和四次挥手

    TCP三次握手 有两台机器,A是客户端(主动发起请求的人),B是服务器端(被动接受请求的人),客户端A刚开始没有人和他通讯,所以客户端A的状态是CLOSDE(关闭的),服务器端B刚开始的状态也是CLOSDE,但是总有人去访问他,所以服务器端B开启了LISTEN(收听)状态。 (1)假设A机器想链接B机器了,他就会向B机器发送一个建立链接的请求,这个建立链接请…

    2017-08-31
  • 马哥教育网络班22期+第九周课程练习

    1. 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash#declare -a loginuserdeclare -i sum_login=0declare -i sum_nologin=0list=($(cat /et…

    Linux干货 2017-01-03