You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solaris 11.4中libbsm函数缺失问题及audit插件开发咨询

Solaris 11.4 libbsm函数缺失与审计插件开发指南

一、函数缺失的原因

  • Solaris 11.4对libbsm做了API精简,手册里提到的au_fetch_tok这类函数已经被废弃,属于内部私有接口,不再对外提供公开调用的入口,自然找不到对应的定义。
  • 手册更新不及时:部分libbsm的旧版手册内容没同步更新,还保留了已移除的函数说明,导致手册和实际可用API对不上。

二、手册更新情况

  • Solaris 11.4的官方手册已经通过后续补丁修正了libbsm的内容,你可以执行以下操作获取最新本地手册:
    • 安装system/manual包的最新补丁:pkg update system/manual
    • 用man -M /usr/share/man/libbsm查看更新后的libbsm手册,重点看au_read_rec、au_tok_iter这些替代函数的说明。

三、审计插件开发建议

1. 用当前支持的公开API

别再碰废弃函数,改用Solaris 11.4正式支持的接口:

  • 用au_read_rec()读取完整审计记录
  • 用au_tok_iter()遍历记录里的令牌,替代au_fetch_tok的功能
  • 搭配au_tok_to_str()把令牌转成可读字符串,省得自己手动解析

2. 参考系统自带工具的实现

Solaris自带的auditreduce、praudit都是基于libbsm写的,你可以去usr/src/cmd/audit目录看它们的源码,学习正确的审计数据解析流程,比如怎么处理不同类型的令牌、怎么应对异常记录。

3. 遵循审计插件规范

开发类似audit_syslog的插件,得符合Solaris审计框架的规则:

  • 必须实现audit_plugin_init()、audit_plugin_process()、audit_plugin_fini()这三个核心函数
  • 注册插件时,要在/etc/security/audit_control里加配置,指定插件路径和参数
  • 处理审计记录时要注意线程安全,因为审计框架会用多线程调用插件的处理函数

4. 测试与调试技巧

  • 用praudit验证你的解析结果,对比插件输出和praudit的格式化内容,确保一致
  • 开启审计调试模式:auditconfig -setdebug 1,查看插件运行时的错误日志
  • 测试边界场景,比如空记录、异常格式的令牌、大体积审计记录的处理

内容的提问来源于stack exchange,提问作者phantom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:25:05