Linux

Linux 審計日誌記錄的未記錄格式

  • August 1, 2016

我正在為 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

引用自:https://unix.stackexchange.com/questions/293975