?

Linux下基于audit 的文件操作溯源機制研究

2024-01-18 05:10謝明玉
今日自動化 2023年10期
關鍵詞:配置文件日志進程

張 雷,謝明玉

(阿壩師范學院,四川汶川 623002)

1 audit用戶空間的子系統配置文件和文件監控規則設置

audit 用戶空間子系統作為用戶態系統程序,主要包括auditd、auditctl、ausearch 和aureport 等子系統模塊。audit 用戶空間子系統通過設置配置文件和文件監控規則控制內核kauditd 模塊只產生監控文件操作日志數據并轉存。

(1)auditd.conf 設 置。auditd.conf 作 為audit 審計守護程序的配置文件,其相關參數可設置日志數據的輸出存儲方式。通過對local_events、write_logs、log_format 和q_depth 參數分 別設置 為yes、no、ENRICHED 和2000,擴展audit 分發器內部隊列大小,阻止日志數據落盤,便于日志數據轉存。

(2)audit.rules 文件規則設置。audit.rules 文件用于存儲控制規則、文件系統規則和系統調用規則。通過把目標文件監控規則存儲在此文件,重啟audit 審計守護程序,接收內核kauditd 模塊產生的文件操作日志數據。

2 基于netlink與unix域socket的審計文件操作日志數據傳輸機制

netlink 作為unix/linux 所特有的IPC 機制,是一種異步全雙工通信方式,支持由內核發起通信并為netlink 通信提供一組特殊API 接口,用戶態則基于socket API,實現內核態進程和用戶態進程之間雙工數據傳輸。內核態進程kuaidtd 通過netlink 通信機制向用戶態守護進程auditd 傳輸各類審計文件操作日志數據并保存在auditd 守護進程的socket 緩存接收隊列中,由auditd 守護進程根據其配置文件決定是存儲到/var/log/audit 文件夾下,或是借助第三方程序轉存。

為轉存文件操作日志數據,重啟audit 用戶態審計子系統,根據已設置的auditd.conf 文件初始化audit 子系統,按照unix 域配置文件(af_unix.conf)建立一個本地通信服務器端,其unix socket 配置路徑為/var/run/audispd_events;同時,為在本地接收文件操作日志數據,建立本地文件操作日志數據接收客戶端,等待接收服務器端傳輸的日志數據。啟動本地通信客戶端程序,建立本地進程間的unix 域套接字通信關聯,隨時接收auditd 守護進程轉發的各位審計文件操作日志數據。

3 基于/proc文件系統的審計文件操作日志數據存儲

/proc 文件系統作為一個偽文件系統,只存在于內存中,不占用外存空間。在/proc 文件系統中存儲文件,其數據讀寫效率比外存快幾十甚至上百倍。在/proc 目錄下創建auditlog 目錄,在此目錄里創建審計文件操作日志數據存儲文件logN(0 ≤n<6),每個日志文件依次存儲1 min 內的日志數據,當N≥6時,N清零重新賦值為0,日志文件輪轉覆蓋寫存儲日志數據,確保日志數據能夠快速存儲與讀寫。

4 audit文件操作日志數據提取、過濾和解析

audit 審計系統一般安裝在unix/Linux 服務器系統上,通過設置文件監控規則控制內核kauditd 進程只產生文件操作日志數據事件,通過netlink 和unix域套接字通信傳輸的文件操作日志數據輪轉覆蓋寫存儲于/proc/auditlog 文件目錄下的logN文件內。文件操作日志數據事件通常包含類型為PROCTITLE、PATH、SYSCALL 和CWD4 條記錄,全面記錄文件操作的動態和靜態關聯日志數據。

audit 系統雖設置了文件監控規則,但其仍能夠額外獲取一部分關聯的日志數據信息。為方便日志數據解析,在數據解析之前,依據文件操作日志數據ID 和記錄標記關鍵字,過濾多余日志數據記錄,精簡日志數據,提升數據解析精度和效率。

根據文件操作日志數據特點,運用auditDataParse庫,以記錄類型為單位,把日志數據拆分成鍵值對,從PROCTITLE 類型中提取時間戳、事件ID、文件操作命令和參數,從PATH 類型中提取文件名稱及其操作權限,從SYSCALL 類型中提取具體操作用戶和操作結論,從CWD 類型中提取當前工作目錄,最后所有提取目標日志數據存儲到結構體struct audit。運用auditDataPars 庫中的解析方法,把相應的數字日志數據解析成對應的文本日志數據并以事件ID 為主鍵存儲于MYSQL 數據庫中。

5 文件操作溯源框架設計

audit 審計系統產生海量的日志數據,包含文件操作日志數據(前提是設置好文件監控規則)。文章在audit 審計系統產生文件操作日志數據的基礎上,有效設置配置文件和文件監控規則文件,優化文件操作日志數據傳輸和存儲,運用auditDataParse 庫提取和解析文件操作日志數據,完成文件操作日志數據收集與存儲。其文件操作溯源機制框架設計如圖1所示。

圖1 文件操作溯源框架設計

文件操作溯源框架包含定制化配置、傳輸層、數據存儲與處理層、數據庫層和顯示層5個層次。據此框架設計,可開發設計實現Linux 下文件操作溯源。

6 文件操作溯源實現

在Linux 系統(centOS 8)下,基于audit 審計系統(audit 3.0)按上述框架完成文件操作溯源編程。其文件操作溯源如下。

(1)設定配置文件auditd.conf 參數。

(2)設置系統控制和文件系統規則文件 audit.rules。

(3)重啟audit 審計系統。

(4)在/home/autest 文件夾下執行如下操作。

(5)根據溯源框架傳輸層和數據存儲與處理層,獲取文件操作日志數據并提取、過濾和分析。

(6)存儲溯源文件操作日志數據到MYSQL 數據庫。

其對應的文件操作記錄數據結果見表1。

表1 文件操作溯源記錄信息

7 結束語

文章基于audit 審計系統,構建文件操作溯源框架,設置守護進程配置文件和文件監控規則文件,建立netlink 和unix 域套接字日志通信與/proc 存儲,基于auditDataParse 庫提取、過濾和解析日志,實現溯源文件操作記錄信息。但由于audit 審計系統緩存隊列大小限制,在有海量日志數據的情況下,容易丟失日志數據。所以基于audit 的文件操作溯源機制適合運用于中型及小型Linux 服務系統。

猜你喜歡
配置文件日志進程
提示用戶配置文件錯誤 這樣解決
一名老黨員的工作日志
扶貧日志
互不干涉混用Chromium Edge
債券市場對外開放的進程與展望
忘記ESXi主機root密碼怎么辦
游學日志
打印機設置
社會進程中的新聞學探尋
一種基于粗集和SVM的Web日志挖掘模型
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合