一条audit日志信息的分析

2009年5月15日 | 由 helight | 500字 | 阅读大约需要1分钟 | 归档于 kernel | 标签 #kernel

内核版本:2.6.30-rc5

以下是用”demsg|tail“命令抓取的一段信息:

[ 8260.568539] type=1804 audit(1242187887.213:4345): integrity: pid=13112 uid=1000 auid=4294967295 ses=4294967295 op=invalid_pcr cause=open_writers comm="cc1” name="prefetch.h” dev=sda4 ino=2968641 res=0

分析如下:

type=1804:审计类型号,在审计中将审计分了类别,1800~1899 kernel integrity events( 整数标签和相关事件)。 该分类在include/linux/audit.h定义并且附有详细的说明。

audit(1242187887.213:4345):

integrity:

pid=13112 uid=1000 :进程PID和用户UID

auid=4294967295 :审计会话ID

ses=4294967295 :会话ID

op=invalid_pcr :操作类型

cause=open_writers :原由

comm="cc1” :执行进程的程序名称

name="prefetch.h” :所操作的文件

dev=sda4 :所在硬盘设备

ino=2968641 :文件系统中节点号

res=0

另外audit还可以记录的数据项还有: ssid: obj: opid=%d oauid=%d ouid=%d oses=%d subj=%s list=%d res=%d key= name= netif:网络接口 src= dst= dst_prefixlen subj 。。。。

这些数据的记录都是由audit_log_format(ab,fmt….)这个函数来完成的。 函数原型为:void audit_log_format(struct audit_buffer *ab, const char *fmt, …) 这个函数中起主要作用的是这个函数:audit_log_vformat(ab, fmt, args); 这个函数是将审计信息格式化保存到audit_buffer中,如果空间不够它会继续申请。 申请到printk缓冲区大小为止。