AIDE使用 原

AIDE简介

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

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

使用AIDE

安装AIDE

[root@A ~]# yum install -y aide            #使用yum安装
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package aide.x86_64 0:0.14-11.el6 will be installed
--> Finished Dependency Resolution
。。。省略后面内容
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

修改配置文件,定义监控目录

配置文件路径:/etc/aide.conf

定义监控/app目录,但不监控/app目录下的f3文件。规则为:权限+所有者+所属组+sha512+修改时间+访问时间+改变时间

[root@A ~]# cp /etc/aide.conf /etc/aide.conf.bak       #对配置文件修改前建议备份
[root@A ~]# vim /etc/aide.conf                 #编辑配置文件
# 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  

# Whether to gzip the output to database
gzip_dbout=yes

# Default.
verbose=5

report_url=file:@@{LOGDIR}/aide.log
report_url=stdout
#report_url=stderr
#NOT IMPLEMENTED report_url=mailto:root@foo.com
#NOT IMPLEMENTED report_url=syslog:LOG_AUTH

# 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       #md5校验
#sha1:   sha1 checksum      # sha1校验
#sha256:        sha256 checksum     #sha256校验
#sha512:        sha512 checksum     #sha512校验
#rmd160: rmd160 checksum        #rmd160校验
#tiger:  tiger checksum     #tiger校验
#rmd160: rmd160 checksum        #rmd160校验
#tiger:  tiger checksum     #tiger校验

#haval:  haval checksum (MHASH only)    # haval校验   
#gost:   gost checksum (MHASH only) # gost校验
#crc32:  crc32 checksum (MHASH only)    # crc32校验
#whirlpool:     whirlpool checksum (MHASH only) 

#R:             p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5
#L:             p+i+n+u+g+acl+selinux+xattrs
#E:             Empty group
#>:             Growing logfile p+u+g+i+n+S+acl+selinux+xattrs

# You can create custom rules like this.
# With MHASH...
# ALLXTRAHASHES = sha1+rmd160+sha256+sha512+whirlpool+tiger+haval+gost+crc32
ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
# Everything but access time (Ie. all changes)
EVERYTHING = R+ALLXTRAHASHES

# Sane, with multiple hashes
# NORMAL = R+rmd160+sha256+whirlpool
NORMAL = R+rmd160+sha256

# For directories, don't bother doing hashes
DIR = p+i+n+u+g+acl+selinux+xattrs

# Access control only
PERMS = p+i+u+g+acl+selinux

# Logfile are special, in that they often change
LOG = >

# Just do md5 and sha256 hashes
LSPP = R+sha256

# Some files get updated automatically, so the inode/ctime/mtime change
# but we want to know when the data inside them changes
DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+md5+sha256+rmd160+tiger

mon = p+u+g+sha512+m+a+c        #   自定义规则监控:权限+所有者+所属组+sha512+修改时间+访问时间+改变时间
/app mon        #定义/app目录使用规则 mon
!/app/f3        #但是/app目录下的f3文件不监控,“!”表示忽略这个文件的检查
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92

初始化数据库

[root@A app]# cp /etc/fstab /app/f1         #先把文件创建好
[root@A app]# echo 123 > f2
[root@A app]# echo www.iav18.cn > f3
[root@A app]# ls
f1  f2  f3
[root@A app]# aide --init 

AIDE, version 0.14

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

生成检查数据库

把当前初始化的数据库作为开始的基础数据库(建议初始数据库存放到安全的地方)

[root@A ~]# cd /var/lib/aide/
[root@A aide]# ls
aide.db.new.gz
[root@A aide]# cp aide.db.new.gz aide.db.gz
[root@A aide]# ls
aide.db.gz  aide.db.new.gz
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

检测

[root@A ~]# aide --check       #检测定义的/app目录是否被改动,没有被改动

AIDE, version 0.14

### All files match AIDE database. Looks okay!
[root@A ~]# cd /app/       #切换到/app目录
[root@A app]# ls            # 列出目录下的内容
f1  f2  f3
[root@A app]# echo > f1     #输入一个换行符到f1文件
[root@A app]# aide --check  #再次检查,发现文件f1的 SHA512、Ctime、Mtime已经被修改
AIDE found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:18:54

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
  Mtime    : 2017-09-13 15:08:30              , 2017-09-13 15:18:51
  Ctime    : 2017-09-13 15:08:30              , 2017-09-13 15:18:51
  SHA512   : ej+ts/Q6q9CANmKXMfdEdCv3Lcl1otID , vmiIOMqGhuXJBom/KrWFzvETfJmbSMcL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

更新数据库

如果是合法的修改,那么也会被检测出有问题。此时就需要更新数据了。

[root@A app]# aide -c /etc/aide.conf --update       #更新数据库
AIDE found differences between database and filesystem!!
Start timestamp: 2017-09-13 15:25:29

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
  Atime    : 2017-09-13 15:10:09              , 2017-09-13 15:18:54
  Mtime    : 2017-09-13 15:08:30              , 2017-09-13 15:18:51
  Ctime    : 2017-09-13 15:08:30              , 2017-09-13 15:18:51
  SHA512   : ej+ts/Q6q9CANmKXMfdEdCv3Lcl1otID , vmiIOMqGhuXJBom/KrWFzvETfJmbSMcL
[root@A app]# cd /var/lib/aide/     #cd到/var/lib/aide/目录
[root@A aide]# ls
aide.db.gz  aide.db.new.gz
[root@A aide]# cp aide.db.new.gz aide.db.gz     #覆盖基准数据库
cp: overwrite `aide.db.gz'? y
[root@A aide]# aide --check         #再次检查数据库就没问题了。

AIDE, version 0.14

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

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Centos7中find命令的用法,以及find+exec,find+xargs

    find . | xargs grep -ri ‘content’ //find . | xargs grep -ril ‘content’ 只显示文件名称 ...

    拓荒者
  • Linux禁止非WHEEL用户使用SU命令 原

            通常情况下,一般用户通过执行“su -”命令、输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置。

    拓荒者
  • Linux虚拟化技术—CentOS7.4下KVM虚拟化一 安装配置及基本操作

    目录 第一部分 实验环境 第二部分 安装图形界面 第三部分 配置KVM虚拟化 第四部分 创建桥接网卡 第五部分 KVM虚拟环境中安装系统 第六部分 ...

    拓荒者
  • 你不知道的Cypress系列(1) --鸡肋的BDD

    Behavioural Driven Development (BDD)是从TDD发展来的(什么,TDD你都不知道?!),它通过自然语言定义系统行为,以功能使用...

    iTesting
  • 从数据竞赛到专业第三方数据平台,科赛是如何高效提升「数据工作者」价值的?

    高新技术人才在数据智能方向上的招募和培养,是互联网企业所面临的最主要的问题之一,而关键人才的招募和培养,有着很高的试错成本。数据人才永远是招聘市场上最稀缺、抢手...

    AI研习社
  • Linux系统下如何查看及修改文件读写权限

    查看文件权限的语句:   在终端输入: ls -l xxx.xxx (xxx.xxx是文件名)   那么就会出现相类似的信息,主要都是这些: -rw-rw-r-...

    猿人谷
  • 数据科学岗位将在未来5年内重新洗牌,你准备好转型了吗?

    导读:计算器的工作曾经由人来做;网站管理员曾经是热门职业;中层管理人员也曾配备过秘书。技术的迭代变革了一批又一批职业,数据科学家也不会例外……

    华章科技
  • 数据科学岗位将在未来5年内重新洗牌,你准备好转型了吗?

    在每种情况下,硬件和软件的进步都需要专业技能,再将它们交到通用人才的手中。在专业人员失业的同时,这些技术的民主化引发了创新、商业和创造就业的浪潮。

    机器之心
  • 翻转二叉树

    本题是经典的二叉树操作的题目,直接从根节点进行递归遍历,并从叶子节点进行翻转,如果当前遍历到root,那么只需要继续交换两棵子树的位置即可完成翻转,首先判断节点...

    WindrunnerMax
  • 性能分析之FlameGraph火焰图的生成

    其实很多类似perf的工具都能生成火焰图,像systemtap/dtrace之类的。

    高楼Zee

扫码关注云+社区

领取腾讯云代金券