知识卡片

auditd脱离syslog子系统运行的安全考量

专业/工作 · 1221.b

内容

Linux 审计系统 auditd 之所以被设计成独立于 syslog 子系统直接挂钩内核运行,是出于一个具体的安全考量:即使其他子系统(包括syslog)因为某种原因(比如被恶意用户蓄意关闭)无法工作,auditd依然能继续记录和转发审计事件。这也是为什么转发审计日志时官方建议使用专门的audisp-remote插件,而不是简单地让rsyslog直接提取/var/log/audit/audit.log——虽然技术上两种方式都能达到同样的转发效果,但用rsyslog会让审计能力隐性依赖上syslog子系统的存活状态,一旦攻击者先关闭了rsyslog,审计日志的外发也会跟着失效,这不是万无一失(攻击者也可能连audisp-remote一起关掉),但确实提供了额外一层保护。发散:这是安全设计里”减少共享故障域”的具体案例——越是承担安全审计职责的组件,越不该和其他普通功能共用同一套可被攻击者控制的开关。

参考来源

《监控运维实践 原则与策略-2021》第10章《安全监控》