我能否确定 Linux 审核记录字段的名称是唯一的?

我能否确定 Linux 审核记录字段的名称是唯一的?

我正在从 Linux Audit 格式创建一个解析器/转换器。当我研究格式、查看示例并阅读文档时,我偶然发现了一个问题。


我可以确定单个记录中的字段名称是独特的

例如,这样的记录是否合法/出现在现实世界的实现中:

type=TYPE msg=audit(1.002:3): msg="the first msg field" msg="the second msg field"

第二个相关问题是我是否可以pid在一个事件中只有一个?例如,此事件是否合法/出现在现实世界的实现中:

type=TYPE1 msg=audit(1.002:3): pid=0 msg="texthere"
type=TYPE2 msg=audit(1.002:3): pid=0 msg="differenttexthere"

答案1

根据 Steve Grubb 在官方邮件列表上的回复(电子邮件链接):

史蒂夫的回答:

记录中是否可能存在重复字段?

有时。当这种情况发生时,我已经尝试修复这些问题。问题是并不是每个人都通过这个邮件列表运行他们的审计代码,以便我们可以检查它的格式是否正确。我计划做的是编写一个审计事件验证套件,用于检查事件是否格式良好,以及预期事件是否在预期的时间和按预期的顺序写入。清理这些事件是我的待办事项列表中的首要任务。

像这样的东西(显然没有多大意义):

    type=CWD msg=audit(1464013682.961:409):  cwd="/root” cwd=“/usr”

这样的事情不会发生,它更有可能发生在auid和uid周围。原因是内核会自动添加一些东西,因为它是可信的信息源。用户空间可以写入矛盾的信息。例如,如果守护程序正在代表用户工作,但尚未为该用户设置其 auid,那么您可能会看到此内容。

太长了;博士

这是可能的,但不常见且不鼓励。

相关内容