Linux高級入侵檢測-文件系統完整性


一、AIDE

AIDE(Advanced Intrusion Detection Environment)是一款針對文件和目錄進行完整性對比檢查的程序,它被開發成Tripwire的一個替代品。

AIDE如何工作

AIDE通過構造指定文件的完整性樣本庫(快照),作為比對標准,當這些文件發生改動時,其對應的校驗值也必然隨之變化,AIDE可以識別這些變化從而提醒管理員。AIDE監控的屬性變化主要包括:權限、屬主、屬組、文件大小、創建時間、最后修改時間、最后訪問時間、增加的大小以及鏈接數,並能夠使用SHA1、MD5等算法為每個文件生成校驗碼。

這款工具年紀也不小了,相對來同類工具Tripwire說,它的操作也更加簡單。它需要對系統做快照,記錄下HASH值,修改時間,以及管理員對文件做的預處理。這個快照可以讓管理員建立一個數據庫,然后存儲到外部設備進行保管。
當管理員想要對系統進行一個完整性檢測時,管理員會將之前構建的數據庫放置一個當前系統可訪問的區域,然后用AIDE將當前系統的狀態和數據庫進行對比,最后將檢測到的當前系統的變更情況報告給管理員。另外,AIDE可以配置為定時運行,利用cron等日程調度技術,每日對系統進行檢測報告。
這個系統主要用於運維安全檢測,AIDE會向管理員報告系統里所有的惡意更迭情況。

AIDE的特性

支持消息摘要算法:md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool
支持文件屬性:文件類型,文件權限,索引節點,UID,GID,鏈接名稱,文件大小,塊大小,鏈接數量,Mtime,Ctime,Atime 
支持Posix ACL,SELinux,XAttrs,擴展文件系統屬性
純文本的配置文件,精簡型的數據庫
強大的正則表達式,輕松篩選要監視的文件和目錄
支持Gzip數據庫壓縮
獨立二進制靜態編譯的客戶端/服務器監控配置
[root@centos7 ~]$yum install -y aide

安裝AIDE

下載:http://sourceforge.net/projects/aide

yum install aide
vi /etc/aide.conf
database=file:@@{DBDIR}/aide.db.gz  #系統鏡像庫位置
database_out=file:@@{DBDIR}/aide.db.new.gz  #新生成系統鏡像庫,默認在/var/lib/aide/下
# Next decide whatdirectories/files you want in the database.
/boot   NORMAL
/bin    NORMAL
/sbin   NORMAL
/lib    NORMAL
/lib64  NORMAL
#/opt    NORMAL #注釋不檢查目錄
/usr    NORMAL
/root   NORMAL
# These are too volatile ,排除掉個別不檢查的目錄
!/usr/src
!/usr/tmp
#根據需求在下面添加新的檢測目錄
/etc/exports  NORMAL
/etc/fstab    NORMAL
/etc/passwd   NORMA

配置文件詳解

#定義了數據庫路徑的變量與日志路徑的變量
@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide
#開啟壓縮 
gzip_dbout=yes
# 將多個權限定義成規則賦給變量,便於后面引用
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs
CONTENT = sha256+ftype
PERMS = p+u+g+acl+selinux+xattrs
# 采用哪種規則對哪些文件進行監控 
/boot/   CONTENT_EX
/bin/    CONTENT_EX
/sbin/   CONTENT_EX
/lib/    CONTENT_EX
/lib64/  CONTENT_EX           #采用CONTENT_EX定義的規則進行監測
/opt/    CONTENT              #僅對opt目錄進行校驗碼與文件類型監測
/root/\..* PERMS              #PERMS並沒有hash校驗值,因為/root下的數據會經常變化
# 不監控的文件
!/etc/.*~
#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

定義規則

編輯配置文件/etc/adie.conf,定義一個規則變量mon,監控/app目錄下所有文件,不監控/app/saomiao.log。

[root@centos7 aide]$ vim /etc/aide.conf
  mon = p+u+g+sha512+m+a+c
  /app mon
  !/app/juli.sh

創建數據庫

生成數據庫文件,在配置文件中定義各文件計算各校驗碼放入數據庫中,用於以后比對。從提示中看出生成了一個/var/lib/aide/aide.db.new.gz數據庫文件,這個數據庫文件為初始數據庫,如果進行入侵檢測將與/var/lib/aide/aide.db.gz數據庫文件作比對,如果發現兩個數據庫不一致則提示被入侵。

[root@centos7 aide]$aide --init
AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

模擬文件被入侵更改

模擬文件被修改 : 向saomiao.sh文件添加換行,促使更改校驗碼、Mtime、Ctime

[root@centos7 aide]$ echo >> /app/saomiao.sh

檢測:AIDE的檢測機制是計算出現在的數據庫后與aide.db.gz比對。aide.db.gz默認又不存在,所以要將之前的創建的初始化數據庫aide.db.new.gz改名為aide.db.gz

[root@centos7 aide]$mv aide.db.new.gz aide.db.gz 

  

入侵檢測

最后使用aide -C注意是大寫,將現在計算出的數據與aide.db.new.gz比對,查看數saomiao.sh文件的Mtime、CtimeSHA512被更改過

設置任務計划,定期檢測

crontab –e
30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #每天早上08:30執行一次
 

也可以將信息發送到郵件:

30 08 * * * /usr/sbin/aide --check| mail –s “AIDE report“ test@163.co
 

二、RKHunter

RKHunter工具時專門檢測系統是否遭受rootkit的一個工具,他通過自動執行一系列的腳本來全面的檢測服務器是否感染rootkit。

RKHunter的功能

檢測易受攻擊的文件;
檢測隱藏文件;
檢測重要文件的權限;
檢測系統端口號;

安裝

[root@centos7 aide]$yum install rkhunter
檢測

使用命令rkhunker -c對系統進行檢測。RKHunter檢測會分幾部分,第一部分主要檢測系統的二進制工具,因為這些工具時rootkit的首要感染目標。每檢測完一部分需要Enter來確認繼續。

[ ok ] 表示沒有異常
[ no found ] 是沒有找到此工具,不用理會
[ warning ] 如果是紅色的Warnning那就需要進一步確認這些工具是否被感染或者被替換。

如果想讓程序自動檢測而不是每檢測完一部分就讓用戶確認,可以使用

rkhunter --check --skip-keypress

同時如果要想達到每周或者每月自動檢測就可以將他加入到計划任務中自動執行

crontab -e
1 10 7 * * * root /usr/bin/rkhunter --check --cronjob


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM