深入解析 Android 审计系统与 SELinux 策略管理
1. 审计系统概述
审计系统在 Android 及其依赖项的集成工作中扮演着重要角色。之前的一系列补丁操作,不仅修复了代码中的一些漏洞,更关键的是启用了 SELinux/LSM 绑定钩子和策略控制。Linux 中的审计系统被 LSMs 用于打印拒绝记录,并收集详尽完整的事件记录。无论何时 LSM 打印消息,都会传播到审计子系统并输出。若审计子系统启用,还能获取与拒绝相关的更多上下文信息,甚至支持加载规则进行监控,例如监控非系统 UID 对 /system 的所有写入操作。
2. auditd 守护进程
auditd 守护进程运行在用户空间,通过 NETLINK 套接字监听审计子系统。它会注册自身以接收内核消息,也能通过该套接字加载审计规则。注册后,auditd 守护进程将接收所有审计事件。虽然曾尝试将其集成到 Android 主线,但最终被拒绝,不过它仍被一些 OEM(如三星)和 NSA 的 4.3 分支所使用。后来,一种将记录放入 logcat 的替代方法被合并到 Android 中。
auditd 守护进程的日志管理机制如下:
- 日志文件为 /data/misc/audit/audit.log,设备启动时该文件可能已存在,当文件大小超过编译时在 system/core/auditd/Android.mk 文件中设置的阈值(通常为 1000 KB,可在设备的 makefile 中更改),或者向守护进程发送 SIGHUP 信号时,audit.log 文件会被重命名为 audit.old,然后创建一个新的 audit.log 文件继续记录。
以下是相关操作示例:
超级会员免费看
订阅专栏 解锁全文
40

被折叠的 条评论
为什么被折叠?



