Linux 審計日誌記錄的未記錄格式
我正在為 Linux Audit 編寫一個解析器,我偶然發現了一些似乎不符合標準的奇怪案例。
我的參考資料是Red Hat 的文件。
正確的審計記錄應如下所示:
type=USER_CMD msg=audit(1464013671.517:403): pid=3569 uid=0 auid=1000 ses=7 msg='cwd="/root" cmd=123 terminal=pts/1 res=success'
記錄中的 name=value 欄位無效
我們來看下面的記錄:
type=DAEMON_START msg=audit(1464013652.147:626): auditd start, ver=2.4 format=raw kernel=3.16.0-4-586 auid=4294967295 pid=3557 res=success
文件沒有說明
auditd start
不符合name=value格式的內容。這是什麼?我在哪裡可以讀到它?
逗號和空格作為分隔符
此外,文件說
每條記錄由幾個名稱=值對組成,由空格或逗號分隔。
這顯然不是真的,因為我們可以看到它
auditd start, ver=2.4
是用命令和空格分隔的。為什麼會這樣?真正描述的標准在哪裡?
記錄中的額外空格
我們來看下面的記錄:
type=CWD msg=audit(1464013682.961:409): cwd="/root"
type=CWD msg=audit(1464013682.961:409):
它在和之間有兩個空格cwd="/root"
。這沒有任何意義。事實上,我只在帶有type=CWD
和的記錄中觀察到這種行為cwd="/root"
。為什麼會這樣?
注意:我在最近的 Debian 上生成了這些日誌。
所以我解決了問題的一小部分——我發現這
auditd start, ver=2.2
是有效的。我沒有找到任何文件。我擁有的唯一文件是 Red Hat 手冊中的一個範例:例 7.5。其他 audit.log 事件
以下審核事件記錄了 auditd 守護程序的成功啟動。ver 欄位顯示已啟動的審核守護程序的版本。
type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=500 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success
以下審核事件記錄了 UID 為 500 的使用者以 root 使用者身份登錄的失敗嘗試。
type=USER_AUTH msg=audit(1364475353.159:24270): user pid=3280 uid=500 auid=500 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="root" exe="/bin/su" hostname=? addr=? terminal=pts/0 res=failed'
可悲的是,這些只是例子。我很想閱讀該標準的實際文件,因為我在任何地方都找不到它。
更新
我問了官方郵件列表中的這些問題(請參閱我的問題的完整回复)。
這是我學到的:
記錄中的 name=value 欄位無效
我不清楚為什麼
auditd start
存在,但這是 Steve Grubb 對我的問題的回答。> > auditd start、user 等所有元素在哪裡列出?我找不到任何指定冒號(將類型和 msg=audit(…) 與欄位分開)和記錄欄位之間可能發生的情況的文件。 > > >
真的沒有,Libauparse 會處理所有這些,因此您不必這樣做。如果您想做翻譯,您可以將日誌輸入 auparse,然後按照您想要的方式格式化事件。
基本上,答案隱藏在 auparse 庫中的某處。
逗號和空格作為分隔符
> > 為什麼有些記錄用逗號和空格分隔?例子: > > > >
> type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=500 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success > >
> >很久以前,這些記錄意味著人類可讀(不要笑)和機器可消耗的。隨著時間的推移,這些已轉換為名稱=值對。甚至您上面提到的那個也已修復。
記錄中的額外空格
這個已經被 Steve Grubb 修補過了。
更新檔:https ://www.redhat.com/archives/linux-audit/2016-July/msg00086.html