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