Linux提供了用来记录系统安全信息的审计系统,审计系统分为用户空间和内核空间审计系统,用户空间审计系统用来设置规则和审计系统状态、将内核审计系统传来的审计消息写入log文件。内核审计系统用于产生和过滤内核的各种审计消息。本节重点分析内核审计系统产生和过滤审计消息的机制。
2.2.1 审计系统构架
审计系统提供了一种记录系统安全信息的方法,为系统管理员在用户违反系统安全法则时提供及时的警告信息。审计系统的审计信息包括:可被审计的事件名称、事件状态(成功或失败)和安全信息等。
审计系统可以将记录系统内部发生的事件的信息根据用户的需求,提供不同的报表功能,从而实现对系统信息的追踪、审查、统计和报告等功能。
Linux审计系统子系统之间通信如图2-3所示。应用程序auditctl用来设置审计消息过滤规则、查询内核审计系统状态等,它通过netlink机制与内核审计系统的socket线程进行双向通信。内核其他线程的审计信息通过内核审计API写入套接字缓冲区队列audit_skb_queue中,内核线程kauditd通过netlink机制将审计消息定向发送给用户空间的审计后台auditd的主线程,auditd主线程再通过事件队列将审计消息传给审计后台的写log文件线程,由写log文件线程将审计消息写入log文件。另一方面,审计后台还通过一个与套接字绑定的管道将审计消息发送给dispatcher应用程序。
Linux安全体系分析与编程 部分章节下载见
具体下载目录在 /2012年资料/2月/3日/Linux安全体系分析与编程 部分章节/