Linux如何基于AIDE檢測文件系統(tǒng)完整性
一、AIDE
AIDE(Advanced Intrusion Detection Environment)是一款針對文件和目錄進(jìn)行完整性對比檢查的程序,它被開發(fā)成Tripwire的一個(gè)替代品。
AIDE如何工作
AIDE通過構(gòu)造指定文件的完整性樣本庫(快照),作為比對標(biāo)準(zhǔn),當(dāng)這些文件發(fā)生改動時(shí),其對應(yīng)的校驗(yàn)值也必然隨之變化,AIDE可以識別這些變化從而提醒管理員。AIDE監(jiān)控的屬性變化主要包括:權(quán)限、屬主、屬組、文件大小、創(chuàng)建時(shí)間、最后修改時(shí)間、最后訪問時(shí)間、增加的大小以及鏈接數(shù),并能夠使用SHA1、MD5等算法為每個(gè)文件生成校驗(yàn)碼。
這款工具年紀(jì)也不小了,相對來同類工具Tripwire說,它的操作也更加簡單。它需要對系統(tǒng)做快照,記錄下HASH值,修改時(shí)間,以及管理員對文件做的預(yù)處理。這個(gè)快照可以讓管理員建立一個(gè)數(shù)據(jù)庫,然后存儲到外部設(shè)備進(jìn)行保管。當(dāng)管理員想要對系統(tǒng)進(jìn)行一個(gè)完整性檢測時(shí),管理員會將之前構(gòu)建的數(shù)據(jù)庫放置一個(gè)當(dāng)前系統(tǒng)可訪問的區(qū)域,然后用AIDE將當(dāng)前系統(tǒng)的狀態(tài)和數(shù)據(jù)庫進(jìn)行對比,最后將檢測到的當(dāng)前系統(tǒng)的變更情況報(bào)告給管理員。另外,AIDE可以配置為定時(shí)運(yùn)行,利用cron等日程調(diào)度技術(shù),每日對系統(tǒng)進(jìn)行檢測報(bào)告。這個(gè)系統(tǒng)主要用于運(yùn)維安全檢測,AIDE會向管理員報(bào)告系統(tǒng)里所有的惡意更迭情況。
AIDE的特性
支持消息摘要算法:md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool 支持文件屬性:文件類型,文件權(quán)限,索引節(jié)點(diǎn),UID,GID,鏈接名稱,文件大小,塊大小,鏈接數(shù)量,Mtime,Ctime,Atime 支持Posix ACL,SELinux,XAttrs,擴(kuò)展文件系統(tǒng)屬性 純文本的配置文件,精簡型的數(shù)據(jù)庫 強(qiáng)大的正則表達(dá)式,輕松篩選要監(jiān)視的文件和目錄 支持Gzip數(shù)據(jù)庫壓縮 獨(dú)立二進(jìn)制靜態(tài)編譯的客戶端/服務(wù)器監(jiān)控配置裝[root@centos7 ~]$yuminstall-y aide
安裝AIDE
下載:http://sourceforge.net/projects/aide
yum install aidevi /etc/aide.confdatabase=file:@@{DBDIR}/aide.db.gz #系統(tǒng)鏡像庫位置database_out=file:@@{DBDIR}/aide.db.new.gz #新生成系統(tǒng)鏡像庫,默認(rèn)在/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 ,排除掉個(gè)別不檢查的目錄!/usr/src!/usr/tmp#根據(jù)需求在下面添加新的檢測目錄/etc/exports NORMAL/etc/fstab NORMAL/etc/passwd NORMA
配置文件詳解#定義了數(shù)據(jù)庫路徑的變量與日志路徑的變量
@@define DBDIR /var/lib/aide@@define LOGDIR /var/log/aide
#開啟壓縮
gzip_dbout=yes
# 將多個(gè)權(quán)限定義成規(guī)則賦給變量,便于后面引用
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrsCONTENT = sha256+ftypePERMS = p+u+g+acl+selinux+xattrs
# 采用哪種規(guī)則對哪些文件進(jìn)行監(jiān)控
/boot/ CONTENT_EX/bin/ CONTENT_EX/sbin/ CONTENT_EX/lib/ CONTENT_EX/lib64/ CONTENT_EX #采用CONTENT_EX定義的規(guī)則進(jìn)行監(jiān)測/opt/ CONTENT #僅對opt目錄進(jìn)行校驗(yàn)碼與文件類型監(jiān)測/root/..* PERMS #PERMS并沒有hash校驗(yàn)值,因?yàn)?root下的數(shù)據(jù)會經(jīng)常變化
# 不監(jiān)控的文件
!/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
定義規(guī)則
編輯配置文件/etc/adie.conf,定義一個(gè)規(guī)則變量mon,監(jiān)控/app目錄下所有文件,不監(jiān)控/app/saomiao.log。
[root@centos7 aide]$ vim /etc/aide.conf mon = p+u+g+sha512+m+a+c /app mon !/app/juli.sh
創(chuàng)建數(shù)據(jù)庫
生成數(shù)據(jù)庫文件,在配置文件中定義各文件計(jì)算各校驗(yàn)碼放入數(shù)據(jù)庫中,用于以后比對。從提示中看出生成了一個(gè)/var/lib/aide/aide.db.new.gz數(shù)據(jù)庫文件,這個(gè)數(shù)據(jù)庫文件為初始數(shù)據(jù)庫,如果進(jìn)行入侵檢測將與/var/lib/aide/aide.db.gz數(shù)據(jù)庫文件作比對,如果發(fā)現(xiàn)兩個(gè)數(shù)據(jù)庫不一致則提示被入侵。
[root@centos7 aide]$aide --initAIDE, version 0.15.1### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
模擬文件被入侵更改
模擬文件被修改 : 向saomiao.sh文件添加換行,促使更改校驗(yàn)碼、Mtime、Ctime
[root@centos7 aide]$ echo >> /app/saomiao.sh
檢測:AIDE的檢測機(jī)制是計(jì)算出現(xiàn)在的數(shù)據(jù)庫后與aide.db.gz比對。aide.db.gz默認(rèn)又不存在,所以要將之前的創(chuàng)建的初始化數(shù)據(jù)庫aide.db.new.gz改名為aide.db.gz。
[root@centos7 aide]$mv aide.db.new.gz aide.db.gz
入侵檢測
最后使用aide -C注意是大寫,將現(xiàn)在計(jì)算出的數(shù)據(jù)與aide.db.new.gz比對,查看數(shù)saomiao.sh文件的Mtime、CtimeSHA512被更改過
設(shè)置任務(wù)計(jì)劃,定期檢測
crontab ?e30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #每天早上08:30執(zhí)行一次
也可以將信息發(fā)送到郵件:
30 08 * * * /usr/sbin/aide --check| mail ?s “AIDE report“ test@163.co
二、RKHunter
RKHunter工具時(shí)專門檢測系統(tǒng)是否遭受rootkit的一個(gè)工具,他通過自動執(zhí)行一系列的腳本來全面的檢測服務(wù)器是否感染rootkit。
RKHunter的功能
檢測易受攻擊的文件; 檢測隱藏文件; 檢測重要文件的權(quán)限; 檢測系統(tǒng)端口號;安裝
[root@centos7 aide]$yum install rkhunter
檢測
使用命令rkhunker -c對系統(tǒng)進(jìn)行檢測。RKHunter檢測會分幾部分,第一部分主要檢測系統(tǒng)的二進(jìn)制工具,因?yàn)檫@些工具時(shí)rootkit的首要感染目標(biāo)。每檢測完一部分需要Enter來確認(rèn)繼續(xù)。
[ ok ] 表示沒有異常
[ no found ] 是沒有找到此工具,不用理會
[ warning ] 如果是紅色的Warnning那就需要進(jìn)一步確認(rèn)這些工具是否被感染或者被替換。
設(shè)置任務(wù)計(jì)劃,定期檢測
crontab ?e30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #每天早上08:30執(zhí)行一次
也可以將信息發(fā)送到郵件:
30 08 * * * /usr/sbin/aide --check| mail ?s “AIDE report“ test@163.co
二、RKHunter
RKHunter工具時(shí)專門檢測系統(tǒng)是否遭受rootkit的一個(gè)工具,他通過自動執(zhí)行一系列的腳本來全面的檢測服務(wù)器是否感染rootkit。
RKHunter的功能
檢測易受攻擊的文件; 檢測隱藏文件; 檢測重要文件的權(quán)限; 檢測系統(tǒng)端口號;安裝
[root@centos7 aide]$yum install rkhunter
檢測
使用命令rkhunker -c對系統(tǒng)進(jìn)行檢測。RKHunter檢測會分幾部分,第一部分主要檢測系統(tǒng)的二進(jìn)制工具,因?yàn)檫@些工具時(shí)rootkit的首要感染目標(biāo)。每檢測完一部分需要Enter來確認(rèn)繼續(xù)。
[ ok ] 表示沒有異常[ no found ] 是沒有找到此工具,不用理會[ warning ] 如果是紅色的Warnning那就需要進(jìn)一步確認(rèn)這些工具是否被感染或者被替換。
如果想讓程序自動檢測而不是每檢測完一部分就讓用戶確認(rèn),可以使用
rkhunter --check --skip-keypress
同時(shí)如果要想達(dá)到每周或者每月自動檢測就可以將他加入到計(jì)劃任務(wù)中自動執(zhí)行
crontab -e1 10 7 * * * root /usr/bin/rkhunter --check --cronjob
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Win10寬帶連接錯(cuò)誤651的原因及解決技巧2. Win7字體變大怎么辦?Win7字體變大解決方法3. Win10電腦硬盤容量如何查看?4. Win7旗艦版安裝程序無法創(chuàng)建新的系統(tǒng)分區(qū)怎么辦5. Windows10快捷鍵失效怎么辦?這個(gè)小訣竅麻煩收好了6. Win11內(nèi)存占用高怎么辦?Win11內(nèi)存占用大的解決方法7. Win10無法共享打印機(jī)和文件怎么辦8. WinXP系統(tǒng)LOL打字沒有候選框如何解決?9. Win10經(jīng)常提示ms-gamingoverlay怎么辦?Win10經(jīng)常提示ms-gamingoverlay的解決方法10. Windows Management Instrumentation進(jìn)程占用cpu過高怎么辦?
