系统管理指南:安全性服务

审计标记格式

每个审计标记都有一个标记类型标识符,它后跟特定于标记的数据。每种标记类型都有自己的格式。下表显示了每个标记的标记名称以及简短说明。为了与先前的 Solaris 发行版兼容,将维护过时的标记。

表 30–4 用于 Solaris 审计的审计标记

标记名称 

说明 

更多信息 

acl

访问控制列表 (Access Control List, ACL) 信息 

acl 标记

arbitrary

具有格式和类型信息的数据 

arbitrary 标记(已过时)

arg

系统调用参数值 

arg 标记

attribute

文件 vnode 标记 

attribute 标记

cmd

命令参数和环境变量

cmd 标记

exec_args

可执行的系统调用参数 

exec_args 标记

exec_env

可执行的系统调用环境变量 

exec_env 标记

exit

程序退出信息 

exit 标记(已过时)

file

审计文件信息 

file 标记

group

进程组信息 

group 标记(已过时)

groups

进程组信息 

groups 标记

header

指示审计记录的开始 

header 标记

in_addr

Internet 地址 

in_addr 标记

ip

IP 数据包头信息 

ip 标记(已过时)

ipc

系统 V IPC 信息 

ipc 标记

ipc_perm

系统 V IPC 对象标记 

ipc_perm 标记

iport

Internet 端口地址 

iport 标记

opaque

无结构数据(未指定的格式) 

opaque 标记(已过时)

path

路径信息 

path 标记

path_attr

访问路径信息 

path_attr 标记

privilege

权限集信息 

privilege 标记

process

进程标记信息 

process 标记

return

系统调用的状态 

return 标记

sequence

序列号标记 

sequence 标记

socket

套接字类型和地址 

socket 标记

subject

主题标记信息(与 process 标记的格式相同)

subject 标记

text

ASCII 字符串 

text 标记

trailer

指示审计记录的结束 

trailer 标记

uauth

使用授权 

uauth 标记

zonename

区域名称 

zonename 标记

审计记录始终以 header 标记开始。header 标记指示审计记录在审计跟踪中的开始位置。对于可归属事件,subjectprocess 标记指代导致此事件发生的进程的值。对于不可归属事件,process 标记指代系统。

acl 标记

acl 标记可记录有关访问控制列表 (Access Control List, ACL) 的信息。此标记包含四个固定字段:

praudit 命令可按如下方式显示 acl 标记:


acl,jdoe,staff,0755

arbitrary 标记(已过时)

arbitrary 标记可封装数据以进行审计跟踪。此标记包含四个固定字段以及一个数据组。固定字段如下所示:

此标记的其余部分由指定类型的 count 组成。praudit 命令可按如下方式显示 arbitrary 标记:


arbitrary,decimal,int,1

42

下表显示了列显格式字段的可能值。

表 30–5 arbitrary 标记的列显格式字段值

值 

操作 

AUP_BINARY

以二进制格式列显日期 

AUP_OCTAL

以八进制格式列显日期 

AUP_DECIMAL

以十进制格式列显日期 

AUP_HEX

以十六进制格式列显日期 

AUP_STRING

将日期列显为字符串 

下表显示了项大小字段的可能值。

表 30–6 arbitrary 标记的项大小字段值

值 

操作 

AUR_BYTE

数据以 1 字节的字节单位列显 

AUR_SHORT

数据以 2 字节的短单位列显 

AUR_LONG

数据以 4 字节的长单位列显 

arg 标记

arg 标记包含有关系统调用参数的信息:系统调用的参数号、参数值以及可选说明。此标记允许在审计记录中使用 32 位整数的系统调用参数。arg 标记具有五个字段:

praudit 命令可按如下方式显示不包含第四个字段的 arg 标记:


argument,4,0xffbfe0ac,pri

praudit -x 命令包括显示的字段的名称:


<argument arg-num="4" value="0xffbfe0ac" desc="pri"/>

attribute 标记

attribute 标记包含文件 vnode 的信息。此标记具有七个字段:

有关文件系统 ID 和设备 ID 的详细信息,请参见 statvfs(2) 手册页。

attribute 标记通常与 path 标记同时出现。attribute 标记在搜索路径期间生成。如果出现路径搜索错误,则没有可用的 vnode 来获取必需的文件信息。因此,attribute 标记不作为审计记录的一部分包括。praudit 命令可按如下方式显示 attribute 标记:


attribute,20666,root,root,247,4829,450971566127

cmd 标记

cmd 标记记录参数列表和与命令关联的环境变量的列表。

cmd 标记包含以下字段:

praudit 命令可按如下方式显示 cmd 标记:


cmd,argcnt,3,ls,-l,/etc,envcnt,0,

exec_args 标记

exec_args 标记可记录 exec() 系统调用参数。exec_args 标记具有两个固定字段:

此标记的其余部分由 count 字符串组成。praudit 命令可按如下方式显示 exec_args 标记:


exec_args,2,vi,/etc/security/audit_user

注 –

仅当 argv 审计策略选项处于活动状态时,才输出 exec_args 标记。


exec_env 标记

exec_env 标记可记录 exec() 系统调用的当前环境变量。exec_env 标记具有两个固定字段:

此标记的其余部分由 count 字符串组成。praudit 命令可按如下方式显示 exec_env 标记:


exec_env,25,

GROUP=staff,HOME=/export/home/jdoe,HOST=exm1,HOSTTYPE=sun4u,HZ=100,

LC_COLLATE=en_US.ISO8859-1,LC_CTYPE=en_US.ISO8859-1,LC_MESSAGES=C,

LC_MONETARY=en_US.ISO8859-1,LC_NUMERIC=en_US.ISO8859-1,

LC_TIME=en_US.ISO8859-1,LOGNAME=jdoe,MACHTYPE=sparc,

MAIL=/var/mail/jdoe,OSTYPE=solaris,PATH=/usr/sbin:/usr/bin,PS1=#,

PWD=/var/audit,REMOTEHOST=192.168.13.5,SHELL=/usr/bin/csh,SHLVL=1,

TERM=dtterm,TZ=US/Pacific,USER=jdoe,VENDOR=sun

注 –

仅当 arge 审计策略选项处于活动状态时,才输出 exec_env 标记。


exit 标记(已过时)

exit 标记可记录程序的退出状态。exit 标记包含以下字段:

praudit 命令可按如下方式显示 exit 标记:


exit,Error 0,0

file 标记

file 标记是由 auditd 守护进程生成的特殊标记。当停用旧审计文件时,此标记可标记新审计文件的开始以及旧审计文件的结束。auditd 守护进程可生成包含此标记的特殊审计记录,以便将连续的审计文件同时“链接”到一个审计跟踪中。file 标记具有四个字段:

praudit -x 命令可显示 file 标记的字段:


file,2003-10-13 11:21:35.506 -07:00,

	/var/audit/localhost/files/20031013175058.20031013182135.example1

group 标记(已过时)

此标记已由 groups 标记替换。请参见groups 标记

groups 标记

groups 标记替换了 group 标记。groups 标记可记录进程凭证中的组项。groups 标记具有两个固定字段:

此标记的其余部分由 count 组项组成。praudit 命令可按如下方式显示 groups 标记:


groups,staff,admin

注 –

仅当 group 审计策略选项处于活动状态时,才输出 groups 标记。


header 标记

header 标记的特殊之处在于它标记审计记录的开始。header 标记与 trailer 标记组合使用以将记录中的所有其他标记括在一起。header 标记具有八个字段:

在 64 位系统上,header 标记使用 64 位时间标记而不是 32 位时间标记显示。

praudit 命令可按如下方式显示 ioctl() 系统调用的 header 标记:


header,176,2,ioctl(2),fe,example1,2003-09-08 11:23:31.050 -07:00

ID 修饰符字段具有以下已定义标志:


0x4000			PAD_NOTATTR						nonattributable event

0x8000			PAD_FAILURE						failed audit event

in_addr 标记

in_addr 标记包含一个 Internet 协议地址。自 Solaris 8 发行版开始,Internet 地址可以用 IPv4 格式或 IPv6 格式显示。IPv4 地址使用 4 个字节。IPv6 地址使用 1 个字节来描述地址类型,使用 16 个字节来描述地址。in_addr 标记具有三个字段:

praudit 命令可按如下方式显示不包含第二个字段的 in_addr 标记:


ip address,192.168.113.7

ip 标记(已过时)

ip 标记包含 Internet 协议数据包头的副本。ip 标记具有两个字段:

praudit 命令可按如下方式显示 ip 标记:


ip address,0.0.0.0

IP 数据包头结构在 /usr/include/netinet/ip.h 文件中定义。

ipc 标记

ipc 标记包含调用方用于标识特殊 IPC 对象的系统 V IPC 消息句柄、信号句柄或共享内存句柄。ipc 标记具有三个字段:


注 –

IPC 对象标识符不符合 Solaris 审计标记的上下文无关性质。没有可唯一地标识 IPC 对象的全局“名称”。相反,IPC 对象由其句柄标识。这些句柄仅当 IPC 对象处于活动状态时才有效。但是,标识 IPC 对象应该不存在问题。很少用到系统 V IPC 机制,并且这些机制全部共享相同的审计类。


下表显示了 IPC 对象类型字段的可能值。这些值在 /usr/include/bsm/audit.h 文件中定义。

表 30–7 IPC 对象类型字段的值

名称 

值 

说明 

AU_IPC_MSG

IPC 消息对象 

AU_IPC_SEM

IPC 信号对象 

AU_IPC_SHM

IPC 共享内存对象 

praudit 命令可按如下方式显示 ipc 标记:


IPC,msg,3

ipc_perm 标记

ipc_perm 标记包含系统 V IPC 访问权限的副本。此标记将被添加到由 IPC 共享内存事件、IPC 信号事件和 IPC 消息事件生成的审计记录中。ipc_perm 标记具有八个字段:

praudit 命令可按如下方式显示 ipc_perm 标记:


IPC perm,root,sys,root,sys,0,0,0x00000000

值来自与 IPC 对象关联的 ipc_perm 结构。

iport 标记

iport 标记包含 TCP 或 UDP 端口地址。iport 标记具有两个字段:

praudit 命令可按如下方式显示 iport 标记:


ip port,0xf6d6

opaque 标记(已过时)

opaque 标记包含作为一系列字节的未设置格式的数据。opaque 标记具有三个字段:

praudit 命令可按如下方式显示 opaque 标记:


opaque,12,0x4f5041515545204441544100

path 标记

path 标记包含对象的访问路径信息。此标记包含以下字段:

praudit 命令可按如下方式显示不包含第二个字段的 path 标记:


path,/etc/security/audit_user

praudit -x 命令可按如下方式显示 path 标记:


<path>/etc/security/audit_user</path>

下图显示了 path 标记的格式。

图 30–4 path 标记格式

上文对该图进行了说明。

path_attr 标记

path_attr 标记包含对象的访问路径信息。访问路径指定了 path 标记对象以下的属性文件对象的顺序。系统调用(例如 openat())可访问属性文件。有关属性文件对象的更多信息,请参见 fsattr(5) 手册页。

path_attr 标记包含以下字段:

praudit 命令可按如下方式显示 path_attr 标记:


path_attr,1,attr_file_name

privilege 标记

privilege 标记可记录针对进程的权限使用。并不针对基本集中的权限记录 privilege 标记。如果通过管理操作已从基本集中删除了权限,则会记录此权限的使用。有关权限的更多信息,请参见权限(概述)

privilege 标记包含以下字段:

praudit 命令可按如下方式显示 privilege 标记:


privilege,effective,

process 标记

process 标记包含有关与进程关联的用户(例如信号接收者)的信息。process 标记具有九个字段:

审计 ID、用户 ID、组 ID、进程 ID 以及会话 ID 均为长字段,而不是短字段。


注 –

process 标记的会话 ID、实际用户 ID 或实际组 ID 字段可能不可用。因此将值设置为 -1


任何包含终端 ID 的标记都具有数个变体。 praudit 命令可隐藏这些变体。因此,对于任何包含终端 ID 的标记,均采用相同的方式处理终端 ID。终端 ID 为 IP 地址、端口号或设备 ID。设备 ID(例如连接到调制解调器的串行端口)可以为零。终端 ID 通过数种格式之一进行指定。

以设备编号表示的终端 ID 按如下方式指定:

在 Solaris 8 之前的发行版中,以端口号表示的终端 ID 按如下方式指定:

自 Solaris 8 发行版开始,以端口号表示的终端 ID 按如下方式指定:

praudit 命令可按如下方式显示 process 标记:


process,root,root,sys,root,sys,0,0,0,0.0.0.0

下图显示了 process 标记的格式。

图 30–5 process 标记格式

上文中对该图形进行了说明。

return 标记

return 标记包含系统调用的返回状态 (u_error) 以及进程返回值 (u_rval1)。此标记具有三个字段:

return 标记始终作为内核针对系统调用生成的审计记录的一部分返回。在应用程序审计中,此标记指示退出状态以及其他返回值。

praudit 命令可按如下方式显示系统调用的 return 标记:


return,failure: Operation now in progress,-1

praudit -x 命令可按如下方式显示 return 标记:


<return errval="failure: Operation now in progress" retval="-1/">

sequence 标记

sequence 标记包含一个序列号。此标记用于进行调试。sequence 标记具有两个字段:

每当向审计跟踪中添加审计记录时,序列号便会增加。praudit 命令可按如下方式显示 sequence 标记:


sequence,1292

praudit -x 命令可按如下方式显示 sequence 标记:


<sequence seq-num="1292"/>

注 –

仅当 seq 审计策略选项处于活动状态时,才输出 sequence 标记。


socket 标记

socket 标记包含介绍 Internet 套接字的信息。在某些情况下,此标记具有四个字段:

praudit 命令可按如下方式显示此 socket 标记实例:


socket,0x0002,0x83b1,localhost

在大多数情况下,此标记具有八个字段:

自 Solaris 8 发行版开始,Internet 地址可以用 IPv4 格式或 IPv6 格式显示。IPv4 地址使用 4 个字节。IPv6 地址使用 1 个字节来描述地址类型,使用 16 个字节来描述地址。

praudit 命令可按如下方式显示 socket 标记:


socket,0x0002,0x0002,0x83cf,example1,0x2383,server1.Subdomain.Domain.COM

praudit -x 命令介绍了 socket 标记字段。换行的目的是为了进行显示。


<socket sock_domain="0x0002" sock_type="0x0002" lport="0x83cf" 

laddr="example1" fport="0x2383" faddr="server1.Subdomain.Domain.COM"/>

subject 标记

subject 标记可介绍执行或尝试执行某操作的用户。格式与 process 标记的格式相同。subject 标记具有九个字段:

审计 ID、用户 ID、组 ID、进程 ID 以及会话 ID 均为长字段,而不是短字段。


注 –

subject 标记的会话 ID、实际用户 ID 或实际组 ID 字段可能不可用。因此将值设置为 -1


任何包含终端 ID 的标记都具有数个变体。 praudit 命令可隐藏这些变体。因此,对于任何包含终端 ID 的标记,均采用相同的方式处理终端 ID。终端 ID 为 IP 地址、端口号或设备 ID。设备 ID(例如连接到调制解调器的串行端口)可以为零。终端 ID 通过数种格式之一进行指定。

以设备编号表示的终端 ID 按如下方式指定:

在 Solaris 8 之前的发行版中,以端口号表示的终端 ID 按如下方式指定:

自 Solaris 8 发行版开始,以端口号表示的终端 ID 按如下方式指定:

subject 标记始终作为内核针对系统调用生成的审计记录的一部分返回。praudit 命令可按如下方式显示 subject 标记:


subject,jdoe,root,staff,root,staff,424,223,0 0 example1

下图显示了 subject 标记的格式。

图 30–6 subject 标记格式

上文中对该图形进行了说明。

text 标记

text 标记包含一个文本字符串。此标记具有三个字段:

praudit 命令可按如下方式显示 text 标记:


text,logout jdoe

trailer 标记

headertrailer 这两个标记的特殊之处在于它们将审计记录的各个结束点区分开来,并将所有其他标记括在一起。header 标记可开始审计记录。trailer 标记可结束审计记录。trailer 标记是可选标记。仅当已经设置了 trail 审计策略选项时,才将 trailer 标记作为每条记录的最后一个标记添加。

在尾部打开的情况下生成审计记录时,auditreduce 命令可以检验尾部是否正确指回记录首部。trailer 标记支持向后查找审计跟踪。

trailer 标记具有三个字段:

praudit 命令可按如下方式显示不包含第二个字段的 trailer 标记:


trailer,136

uauth 标记

uauth 标记记录在命令或操作中使用的授权。

uauth 标记包含以下字段:

praudit 命令可按如下方式显示 uauth 标记:


use of authorization,solaris.admin.printer.delete

zonename 标记

zonename 标记可记录发生审计事件的区域。字符串 "global" 指示在全局区域中发生的审计事件。

zonename 标记包含以下字段:

praudit 命令可按如下方式显示 zonename 标记:


zonename,graphzone