我正在尝试以编程方式从我编写的应用程序(C/C++)生成自定义审计日志,但目前找不到允许我这样做的库/函数。我知道 auditd 和 audit.rules,但我想要的是仅针对应用程序执行的特定操作生成审计的能力(例如,仅在应用程序计算目录大小时记录,而不记录其他任何内容)。当我在 MacOS 上进行开发时,有一个库 libbsm.h,它具有 au_open()、au_write() 和 au_close() 等函数,可以调用这些函数来生成自定义审计日志。是否有可用的库可以充当这些 libbsm 函数的等价物?或者根本没有?欢迎任何回复,并提前感谢您。
由于公司机密,我不能分享任何代码。我也没有使用任何默认的 LSM(SMACK、AppArmor、SELinux 等)。
答案1
将 BSM 审计记录提交到审计日志的命令audit
由freebsd-手册页所有当前支持的 Ubuntu 版本中的软件包。
从结果来看man audit
:
姓名
审计— 将 BSM 审计记录提交至审计日志
概要
#包括 <bsm/audit.h> 整数 审计(const char *记录,u_int长度);
描述
这审计() 系统调用向系统审计提交一份完整的 BSM 审计记录 日志。 record 参数是指向要记录的特定事件的指针和长度 是要写入的数据的大小(以字节为单位)。
返回值
Upon successful completion, the value 0 is returned; otherwise the value -1
is returned and the global variable errno is set to indicate the error.