AIDE      --(文件系統)高級***檢測

1、aide的概述

AIDE(Adevanced Intrusion Detection Environment,高級***檢測環境)是個***檢測工具,主要用途是檢查文本的完整性。 

AIDE能夠構造一個指定文檔的數據庫,他使用aide.conf作爲其配置文檔。AIDE數據庫能夠保存文檔的各種屬性,包括:權限(permission)、索引節點序號(inode number)、所屬用戶(user)、所屬用戶組(group)、文檔大小、最後修改時間(mtime)、創建時間(ctime)、最後訪問時間(atime)、增加的大小連同連接數。AIDE還能夠使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每個文檔的校驗碼或散列號。


常見的***檢測軟件:

1、tripwire --操作比較複雜

2、aide --用以代替tripwire的一款新產品


文件系統***檢測的原理:

1、當系統處於健康狀態時,把系統所有的文件做各種指紋的檢驗,得出一個檢驗基準數據庫。

2、不是所有的文件都需要保存指紋,臨時文件(/var/log | /tmp | /var/tmp | /proc | /sys | /dev/shm...)

3、需要檢驗文件是否被更改,只需要把基準數據對應指紋值做對比,就可以得知哪些文件被更改過。

4、每天把檢驗的結果以郵件或者其它方式發送管理員。



2、aide部署

1.從結帽官方獲取最新的src rpm包

# wget ftp://ftp.redhat.com/redhat/linux/enterprise/5Server/en/os/SRPMS/aide-0.13.1-6.el5.src.rpm

# rpm -ivh aide-0.13.1-6.el5.src.rpm

# rpmbuild -bb /usr/src/redhat/SPEC/aide.spec

# rpm -ivh /usr/src/redhat/RPMS/i386/aide-0.13.1-6.el5.src.rpm



3、aide的初級使用

1)新建一個目錄,裏邊放一些測試文件

# mkdir /aide_test_check

# cp /etc/hosts* /aide_test_check

# grep -v ^# /etc/aide.conf |grep -v ^$ > /etc/aide2.conf

# mv /etc/aide2.conf /etc/aide.conf

mv: overwrite `/etc/aide.conf'? y



2)定義配置文件,及被臨控的目錄

# cp /etc/aide.conf /etc/aide.conf.bak

# vim /etc/aide.conf

@@define DBDIR /var/lib/aide --基準數據庫目錄

@@define LOGDIR /var/log/aide

database=file:@@{DBDIR}/aide.db.gz --基準數據庫文件

database_out=file:@@{DBDIR}/aide.db.new.gz --更新數據庫文件

gzip_dbout=yes

verbose=5

report_url=file:@@{LOGDIR}/aide.log

report_url=stdout

R=p+i+n+u+g+s+m+c+acl+xattrs+md5

L=p+i+n+u+g+acl+xattrs

>=p+u+g+i+n+S+acl+xattrs

ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger

EVERYTHING = R+ALLXTRAHASHES

NORMAL = R+rmd160+sha256

DIR = p+i+n+u+g+acl+xattrs

PERMS = p+i+u+g+acl

LOG = >

LSPP = R+sha256

DATAONLY =  p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger


/aide_check_test        NORMAL

    

3)初始化數據庫:

# /usr/sbin/aide -c /etc/aide.conf --init


AIDE, version 0.13.1


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


4)把初始化的數據庫當做基準數據庫

# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz


5)測試AIDE能否發現文件更改

# cp /etc/passwd /aide_test_check/

# rm -rf /aide_test_check/hosts

# echo hello > /aide_test_check/hosts.allow

# /usr/sbin/aide  -c /etc/aide.conf --check

# /usr/sbin/aide  -c /etc/aide.conf --check

AIDE found differences between database and filesystem!!

Start timestamp: 2012-07-10 15:03:17


Summary:

  Total number of files:        6

  Added files:                  1

  Removed files:                1

  Changed files:                2



---------------------------------------------------

Added files:

---------------------------------------------------


added: /aide_test_check/passwd


---------------------------------------------------

Removed files:

---------------------------------------------------


removed: /aide_test_check/hosts


---------------------------------------------------

Changed files:

---------------------------------------------------


changed: /aide_test_check

changed: /aide_test_check/hosts.allow


--------------------------------------------------

Detailed information about changes:

---------------------------------------------------



Directory: /aide_test_check

  Mtime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40

  Ctime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40


File: /aide_test_check/hosts.allow

  Size     : 161                              , 166

  Mtime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40

  Ctime    : 2012-07-10 14:43:18              , 2012-07-10 14:54:40

  Inode    : 1678982                          , 1678985

  MD5      : Jf16ip7EeUlg7xmKYPZtIg==         , fbZt8P2s5dOjQHh3Wer2UQ==

  RMD160   : sZxwc595gS7oA92r3vt/0bf6IvE=     , XIEY/gh5Xl+ucwrwLkbk8DFr0Mo=

  SHA256   : 2xfzPtX0u7LS231etvkgOCGqrDK0ViKj , M5Gh2f/I2GwR4fF6eNhF+5LM3gob226S



6)如果上面的更改合法的操作,需要更新基準數據庫:

# /usr/sbin/aide  -c /etc/aide.conf --update

# cd /var/lib/aide

# cp aide.db.new.gz aide.db.gz 

cp: overwrite `aide.db.gz'? y



7)把報告發往郵箱:

# /usr/sbin/aide  -c /etc/aide.conf --check |mail -s "test aide" root@localhost





4、使用aide監控系統中的文件


1)修改配置文件,讓aide監控系統中的所有文件

# mv /etc/aide.conf.bak /etc/aide.conf --清空前面操作

# rm -rf /var/lib/aide/aide.db.*



# vim /etc/aide.conf

@@define DBDIR /var/lib/aide

@@define LOGDIR /var/log/aide

database=file:@@{DBDIR}/aide.db.gz --基準數據庫

database_out=file:@@{DBDIR}/aide.db.new.gz --每次update時會產生更新

gzip_dbout=yes

verbose=20

report_url=file:@@{LOGDIR}/aide.log

report_url=stdout

R = p+i+n+u+g+s+m+c+acl+xattrs+md5

L = p+i+n+u+g+acl+xattrs

> = p+u+g+i+n+S+acl+xattrs

ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger

EVERYTHING = R+ALLXTRAHASHES

NORMAL = R+rmd160+sha256

DIR = p+i+n+u+g+acl+xattrs

PERMS = p+i+u+g+acl

LOG = >

LSPP = R+sha256

DATAONLY =  p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger

/boot   NORMAL

/bin    NORMAL

/sbin   NORMAL

/lib    NORMAL

/opt    NORMAL

/usr    NORMAL

/root   NORMAL

!/usr/src

!/usr/tmp

/etc    PERMS

!/etc/mtab

!/etc/.*~

/etc/exports  NORMAL

/etc/fstab    NORMAL

/etc/passwd   NORMAL

/etc/group    NORMAL

/etc/gshadow  NORMAL

/etc/shadow   NORMAL

/etc/security/opasswd   NORMAL

/etc/hosts.allow   NORMAL

/etc/hosts.deny    NORMAL

/etc/sudoers NORMAL

/etc/skel NORMAL

/etc/logrotate.d NORMAL

/etc/resolv.conf DATAONLY

/etc/nscd.conf NORMAL

/etc/securetty NORMAL

/etc/profile NORMAL

/etc/bashrc NORMAL

/etc/bash_completion.d/ NORMAL

/etc/login.defs NORMAL

/etc/zprofile NORMAL

/etc/zshrc NORMAL

/etc/zlogin NORMAL

/etc/zlogout NORMAL

/etc/profile.d/ NORMAL

/etc/X11/ NORMAL

/etc/yum.conf NORMAL

/etc/yumex.conf NORMAL

/etc/yumex.profiles.conf NORMAL

/etc/yum/ NORMAL

/etc/yum.repos.d/ NORMAL

/var/log   LOG

/var/run/utmp LOG

!/var/log/sa

!/var/log/aide.log

/etc/audit/ LSPP

/etc/libaudit.conf LSPP

/usr/sbin/stunnel LSPP

/var/spool/at LSPP

/etc/at.allow LSPP

/etc/at.deny LSPP

/etc/cron.allow LSPP

/etc/cron.deny LSPP

/etc/cron.d/ LSPP

/etc/cron.daily/ LSPP

/etc/cron.hourly/ LSPP

/etc/cron.monthly/ LSPP

/etc/cron.weekly/ LSPP

/etc/crontab LSPP

/var/spool/cron/root LSPP

/etc/login.defs LSPP

/etc/securetty LSPP

/var/log/faillog LSPP

/var/log/lastlog LSPP

/etc/hosts LSPP

/etc/sysconfig LSPP

/etc/inittab LSPP

/etc/grub/ LSPP

/etc/rc.d LSPP

/etc/ld.so.conf LSPP

/etc/localtime LSPP

/etc/sysctl.conf LSPP

/etc/modprobe.conf LSPP

/etc/pam.d LSPP

/etc/security LSPP

/etc/aliases LSPP

/etc/postfix LSPP

/etc/ssh/sshd_config LSPP

/etc/ssh/ssh_config LSPP

/etc/stunnel LSPP

/etc/vsftpd.ftpusers LSPP

/etc/vsftpd LSPP

/etc/issue LSPP

/etc/issue.net LSPP

/etc/cups LSPP

!/var/log/and-httpd

/root/.* PERMS


2)初始化aide,並生成基準數據庫文件

# aide -c /etc/aide.conf --init --根據當前系統中文件數據的多少,所需要的時間不等,當前我這個系統花了20分鐘左右


# ls /var/lib/aide/ --基準數據庫的存放位置,在上面的配置文件中也有定義

aide.db.new.gz   這是一個很重要的文件,一般可以把它放在光盤或者加密分區中保存


# cd /var/lib/aide --把基準數據庫拷貝一份給當前系統的AIDE使用

# cp aide.db.new.gz aide.db.gz



3)使用AIDE檢測系統中的文件是否被修改:

aide --check --檢測被監控的文件是否發生變化,結果在屏幕輸出

aide --check| mail -s "aide check about `hostname`,data:`date`" root@localhost

--檢測被監控的文件是否發生變化,把結果發給管理員,可以結合crontab完成



4)更基準數據庫:

注意:

1)更新的前提的系統中文件的改變是合法合理,不是非法篡改的則要更新基準數據庫

2)更新完後要備份新的基準數據庫到安全的存儲介質中


# /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.new.gz20111019 --備份舊的基準數據庫

# aide --update --又需要20分鐘的文件掃描,真是悲具,所以在生產環境需要選擇系統不繁忙的時段進行

# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz --把舊的基準數據庫替換成最新的




5)把aide程序、配置文件和基準數據庫寫入只讀設備中,防止被惡意操作:

# mkdir /tmp/aide

# cp /etc/aide.conf /var/lib/aide/aide* /usr/sbin/aide /tmp/aide

# yum -y install genisoimage

# cd /tmp/ && mkisofs -V aide_DBS -J -R -o aide.iso aide/ --把所有的文件製作成光盤

# rpm -e aide

# rm -rf /etc/aide.conf /var/lib/aide/aide* /usr/sbin/aide --把系統中原來的文件刪除


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章