Linux Audit守護(hù)進(jìn)程是一個可以審計Linux系統(tǒng)事件的框架。在本文中,我們一起看看安裝、配置和使用這個框架來執(zhí)行Linux系統(tǒng)和安全審計。
審計目標(biāo)
通過使用一個強(qiáng)大的審計框架,系統(tǒng)可以追蹤很多事件類型來監(jiān)控和并審計它。這樣的例子包括:
審計文件訪問和修改
看看誰改變了一個特殊文件
檢測未授權(quán)的改變
監(jiān)控系統(tǒng)調(diào)用和函數(shù)
檢測異常,比如崩潰的進(jìn)程
為入侵檢測目的設(shè)置“導(dǎo)火線”
記錄各個用戶使用的命令
組件
這個框架本身有數(shù)個組件:
內(nèi)核:
audit:鉤在內(nèi)核中來捕獲事件并將它們發(fā)送到auditd
二進(jìn)制文件:
auditd:捕捉事件并記錄它們(記錄在日志文件中)的守護(hù)進(jìn)程
auditctl:配置auditd的客戶端工具
audispd:多路復(fù)用事件的守護(hù)進(jìn)程
aureport:從日志文件(auditd.log)中讀取內(nèi)容的報告工具
ausearch:事件查看器(查看的內(nèi)容是auditd.log)
autrace:使用內(nèi)核中的審計組件來追蹤二進(jìn)制文件
aulast:和上一個類似,但是使用的是審計框架
aulastlog:和lastlog類似,但是也使用的是審計框架
ausyscall:映射系統(tǒng)調(diào)用ID和名字
auvirt:展示和審計有關(guān)虛擬機(jī)的信息
文件:
audit.rules:auditctl使用,它讀取該文件來決定需要使用什么規(guī)則
auditd.conf:auditd的配置文件
安裝
Debian/Ubuntu使用命令:apt-get install auditd audispd-plugins
Red Hat/CentOS/Fedora:通常已經(jīng)安裝了(包:audit和audit-libs)
配置
2個文件管理審計守護(hù)進(jìn)程的配置,一個用于守護(hù)進(jìn)程本身(auditd.conf),另一個是用于auditctl工具的規(guī)則(audit.rules)。
auditd.conf
文件auditd.conf對Linux audit守護(hù)進(jìn)程的配置聚焦在它應(yīng)該在哪里以及如何記錄事件。它也定義了如何應(yīng)對磁盤滿的情況、如何處理日志輪轉(zhuǎn)和要保留的日志文件數(shù)量。通常,對大多數(shù)系統(tǒng)來說,默認(rèn)配置是足夠的。
audit.rules
為了配置應(yīng)該審計什么日志,審計框架使用了一個名為audit.rules的文件。
和大多數(shù)情況一樣,從零開始而不加載任何規(guī)則。通過用-l參數(shù)來運(yùn)行auditctl,我們可以確定使用中的規(guī)則。
[root@host ~]# auditctl -l
No rules
萬一加載了任何規(guī)則的話,用-D參數(shù)運(yùn)行auditctl來刪除已加載規(guī)則。
現(xiàn)在是時候來監(jiān)控點(diǎn)東西了,比如/etc/passwd文件。通過定義要查看的路徑和權(quán)限,我們在這個文件上放一個觀察點(diǎn):
auditctl -a exit,always -F path=/etc/passwd -F perm=wa
通過定義path選項(xiàng),我們告訴審計框架來監(jiān)視什么目錄或者文件。權(quán)限決定了什么類型的訪問將觸發(fā)一個事件。雖然這里的權(quán)限看起來類似文件的權(quán)限,但是要注意,在這2者之間有一個重大的區(qū)別。這里的4個選項(xiàng)是:
r = 讀取
w = 寫入
x = 執(zhí)行
a = 屬性改變
通過使用ausearch工具,我們可以快速的追蹤對文件的訪問和找到相關(guān)的事件。
這個輸出里面的一些重點(diǎn)是:
事件的時間(time)和對象的名稱(name),當(dāng)前的工作路徑(cwd),相關(guān)的系統(tǒng)調(diào)用(syscall),審計用戶ID(auid)和在這個文件上執(zhí)行行為的二進(jìn)制(exe)。請注意,auid定義了在登錄過程中的原始用戶。其他的用戶ID字段可能指向了一個不同的用戶,取決于在觸發(fā)一個事件時在使用的實(shí)際用戶。
轉(zhuǎn)換系統(tǒng)調(diào)用
系統(tǒng)調(diào)用是以數(shù)字類型的值來記錄的。因?yàn)樵诓煌姆?wù)器架構(gòu)之間,這些值會有重疊,所以當(dāng)前的服務(wù)器架構(gòu)也記錄了下來。
通過使用uname -m,我們可以確定服務(wù)器架構(gòu)并使用ausyscall 來確定數(shù)字為188的系統(tǒng)調(diào)用代表了什么。
[root@host audit]# ausyscall x86_64 188
setxattr
現(xiàn)在,我們知道了這是屬性的變化,這是講得通的,因?yàn)槲覀兌x了觀察點(diǎn),在屬性變化(perm=a)的時候觸發(fā)一個事件。
使用了臨時規(guī)則并想再用老的規(guī)則?使用一個文件來刷新審計規(guī)則:
auditctl -R /etc/audit/audit.rules
審計Linux的進(jìn)程
和使用strace類似,審計框架有一個名為autrace的工具。它使用了審計框架并增加了合適的規(guī)則來捕獲信息并記錄。收集到的信息可以使用ausearch來展示。
執(zhí)行一次追蹤:
使用ausearch來展示相關(guān)的文件:
按照用戶來審計文件訪問
審計框架可以用于監(jiān)控系統(tǒng)調(diào)用,包括對文件的訪問。如果你希望知道一個特定的用戶ID訪問了什么文件,使用像下面的這樣一條規(guī)則:
auditctl -a exit,always -F arch=x86_64 -S open -F auid=80
-F arch=x86_64定義了使用什么架構(gòu)(uname -m)來監(jiān)控正確的系統(tǒng)調(diào)用(一些系統(tǒng)調(diào)用在不同的架構(gòu)之間是不同的)。
-S open 選擇 “open”系統(tǒng)調(diào)用
-F auid=80 相關(guān)的用戶ID
這種類型的信息對于入侵檢測確實(shí)是很有用的,而且對于在Linux系統(tǒng)上取證也確實(shí)是很有用的。
自動化
因?yàn)長inux審計守護(hù)進(jìn)程可以提供有價值的審計數(shù)據(jù),Lynis會檢查這個框架的存在。如果沒有這個框架,Lynis會建議你安裝它。
另外,Lynis會執(zhí)行一些測試來判定日志文件、可用的規(guī)則等等。
為了有效的入侵檢測目的,和入侵檢測系統(tǒng)集成對于事件發(fā)生的時候發(fā)現(xiàn)它們并采取恰當(dāng)?shù)男袆邮呛荜P(guān)鍵的。
后記
審計守護(hù)進(jìn)程有更多的用途。在本博客未來的文章中將列出其他例子。如果你是嚴(yán)肅對待Linux平臺審計的,Linux審計框架一定是個很好的朋友!
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209327
發(fā)布評論請先 登錄
相關(guān)推薦
評論