每个审计标记都有一个标记类型标识符,它后跟特定于标记的数据。每种标记类型都有自己的格式。下表显示了每个标记的标记名称以及简短说明。为了与先前的 Solaris 发行版兼容,将维护过时的标记。
表 30–4 用于 Solaris 审计的审计标记
标记名称 |
说明 |
更多信息 |
---|---|---|
acl |
访问控制列表 (Access Control List, ACL) 信息 | |
arbitrary |
具有格式和类型信息的数据 | |
arg |
系统调用参数值 | |
attribute |
文件 vnode 标记 | |
cmd | ||
exec_args |
可执行的系统调用参数 | |
exec_env |
可执行的系统调用环境变量 | |
exit |
程序退出信息 | |
file |
审计文件信息 | |
group |
进程组信息 | |
groups |
进程组信息 | |
header |
指示审计记录的开始 | |
in_addr |
Internet 地址 | |
ip |
IP 数据包头信息 | |
ipc |
系统 V IPC 信息 | |
ipc_perm |
系统 V IPC 对象标记 | |
iport |
Internet 端口地址 | |
opaque |
无结构数据(未指定的格式) | |
path |
路径信息 | |
path_attr |
访问路径信息 | |
privilege |
权限集信息 | |
process |
进程标记信息 | |
return |
系统调用的状态 | |
sequence |
序列号标记 | |
socket |
套接字类型和地址 | |
subject |
主题标记信息(与 process 标记的格式相同) | |
text |
ASCII 字符串 | |
trailer |
指示审计记录的结束 | |
uauth |
使用授权 | |
zonename |
区域名称 |
审计记录始终以 header 标记开始。header 标记指示审计记录在审计跟踪中的开始位置。对于可归属事件,subject 和 process 标记指代导致此事件发生的进程的值。对于不可归属事件,process 标记指代系统。
acl 标记可记录有关访问控制列表 (Access Control List, ACL) 的信息。此标记包含四个固定字段:
标记 ID 字段,将此标记标识为 acl 标记
指定 ACL 类型的字段
ACL 值字段
列出与此 ACL 关联的权限的字段
praudit 命令可按如下方式显示 acl 标记:
acl,jdoe,staff,0755 |
arbitrary 标记可封装数据以进行审计跟踪。此标记包含四个固定字段以及一个数据组。固定字段如下所示:
此标记的其余部分由指定类型的 count 组成。praudit 命令可按如下方式显示 arbitrary 标记:
arbitrary,decimal,int,1 42 |
值 |
操作 |
---|---|
AUP_BINARY |
以二进制格式列显日期 |
AUP_OCTAL |
以八进制格式列显日期 |
AUP_DECIMAL |
以十进制格式列显日期 |
AUP_HEX |
以十六进制格式列显日期 |
AUP_STRING |
将日期列显为字符串 |
下表显示了项大小字段的可能值。
表 30–6 arbitrary 标记的项大小字段值
值 |
操作 |
---|---|
AUR_BYTE |
数据以 1 字节的字节单位列显 |
AUR_SHORT |
数据以 2 字节的短单位列显 |
AUR_LONG |
数据以 4 字节的长单位列显 |
arg 标记包含有关系统调用参数的信息:系统调用的参数号、参数值以及可选说明。此标记允许在审计记录中使用 32 位整数的系统调用参数。arg 标记具有五个字段:
标记 ID 字段,将此标记标识为 arg 标记
参数 ID 字段,告知标记所指的系统调用参数
参数值字段
说明性文本字符串长度字段
文本字符串字段
praudit 命令可按如下方式显示不包含第四个字段的 arg 标记:
argument,4,0xffbfe0ac,pri |
praudit -x 命令包括显示的字段的名称:
<argument arg-num="4" value="0xffbfe0ac" desc="pri"/> |
attribute 标记包含文件 vnode 的信息。此标记具有七个字段:
标记 ID 字段,将此标记标识为 attribute 标记
文件访问模式和类型字段
属主用户 ID 字段
属主组 ID 字段
文件系统 ID 字段
节点 ID 字段
文件可能表示的设备 ID 字段
有关文件系统 ID 和设备 ID 的详细信息,请参见 statvfs(2) 手册页。
attribute 标记通常与 path 标记同时出现。attribute 标记在搜索路径期间生成。如果出现路径搜索错误,则没有可用的 vnode 来获取必需的文件信息。因此,attribute 标记不作为审计记录的一部分包括。praudit 命令可按如下方式显示 attribute 标记:
attribute,20666,root,root,247,4829,450971566127 |
cmd 标记包含以下字段:
标记 ID 字段,将此标记标识为 cmd 标记
计数字段,用于命令参数
参数列表字段
下一个字段长度字段
参数内容字段
计数字段,用于环境变量
环境变量列表字段
下一个字段长度字段
环境变量内容字段
praudit 命令可按如下方式显示 cmd 标记:
cmd,argcnt,3,ls,-l,/etc,envcnt,0, |
exec_args 标记可记录 exec() 系统调用参数。exec_args 标记具有两个固定字段:
标记 ID 字段,将此标记标识为 exec_args 标记
计数字段,表示传递给 exec() 系统调用的参数数量
此标记的其余部分由 count 字符串组成。praudit 命令可按如下方式显示 exec_args 标记:
exec_args,2,vi,/etc/security/audit_user |
仅当 argv 审计策略选项处于活动状态时,才输出 exec_args 标记。
exec_env 标记可记录 exec() 系统调用的当前环境变量。exec_env 标记具有两个固定字段:
标记 ID 字段,将此标记标识为 exec_env 标记
计数字段,表示传递给 exec() 系统调用的参数数量
此标记的其余部分由 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 标记包含以下字段:
标记 ID 字段,将此标记标识为 exit 标记
程序退出状态字段,传递给 exit() 系统调用时显示
返回值字段,描述退出状态或提供系统错误号
praudit 命令可按如下方式显示 exit 标记:
exit,Error 0,0 |
file 标记是由 auditd 守护进程生成的特殊标记。当停用旧审计文件时,此标记可标记新审计文件的开始以及旧审计文件的结束。auditd 守护进程可生成包含此标记的特殊审计记录,以便将连续的审计文件同时“链接”到一个审计跟踪中。file 标记具有四个字段:
标记 ID 字段,将此标记标识为 file 标记
时间标记字段,标识创建或关闭文件的日期和时间
文件名长度字段
包含以空字符结尾的文件名的字段
praudit -x 命令可显示 file 标记的字段:
file,2003-10-13 11:21:35.506 -07:00, /var/audit/localhost/files/20031013175058.20031013182135.example1 |
此标记已由 groups 标记替换。请参见groups 标记。
groups 标记替换了 group 标记。groups 标记可记录进程凭证中的组项。groups 标记具有两个固定字段:
标记 ID 字段,将此标记标识为 groups 标记
计数字段,表示此审计记录中包含的组数
此标记的其余部分由 count 组项组成。praudit 命令可按如下方式显示 groups 标记:
groups,staff,admin |
仅当 group 审计策略选项处于活动状态时,才输出 groups 标记。
header 标记的特殊之处在于它标记审计记录的开始。header 标记与 trailer 标记组合使用以将记录中的所有其他标记括在一起。header 标记具有八个字段:
标记 ID 字段,将此标记标识为 header 标记
字节计数字段,表示审计记录的总长度(包括 header 和 trailer 标记)
版本号字段,标识审计记录结构的版本
审计事件 ID 字段,标识记录所表示的审计事件
ID 修饰符字段,标识审计事件的特殊特征
地址类型字段,IPv4 或 IPv6
计算机 IP 地址字段
时间和日期字段,表示记录的创建时间和日期
在 64 位系统上,header 标记使用 64 位时间标记而不是 32 位时间标记显示。
praudit 命令可按如下方式显示 ioctl() 系统调用的 header 标记:
header,176,2,ioctl(2),fe,example1,2003-09-08 11:23:31.050 -07:00 |
0x4000 PAD_NOTATTR nonattributable event 0x8000 PAD_FAILURE failed audit event |
in_addr 标记包含一个 Internet 协议地址。自 Solaris 8 发行版开始,Internet 地址可以用 IPv4 格式或 IPv6 格式显示。IPv4 地址使用 4 个字节。IPv6 地址使用 1 个字节来描述地址类型,使用 16 个字节来描述地址。in_addr 标记具有三个字段:
标记 ID 字段,将此标记标识为 in_addr 标记
IP 地址类型字段,IPv4 或 IPv6
IP 地址字段
praudit 命令可按如下方式显示不包含第二个字段的 in_addr 标记:
ip address,192.168.113.7 |
ip 标记包含 Internet 协议数据包头的副本。ip 标记具有两个字段:
标记 ID 字段,将此标记标识为 ip 标记
IP 数据包头副本字段,即全部 20 个字节
ip address,0.0.0.0 |
IP 数据包头结构在 /usr/include/netinet/ip.h 文件中定义。
ipc 标记包含调用方用于标识特殊 IPC 对象的系统 V IPC 消息句柄、信号句柄或共享内存句柄。ipc 标记具有三个字段:
标记 ID 字段,将此标记标识为 ipc 标记
类型字段,指定 IPC 对象的类型
句柄字段,标识 IPC 对象
IPC 对象标识符不符合 Solaris 审计标记的上下文无关性质。没有可唯一地标识 IPC 对象的全局“名称”。相反,IPC 对象由其句柄标识。这些句柄仅当 IPC 对象处于活动状态时才有效。但是,标识 IPC 对象应该不存在问题。很少用到系统 V IPC 机制,并且这些机制全部共享相同的审计类。
下表显示了 IPC 对象类型字段的可能值。这些值在 /usr/include/bsm/audit.h 文件中定义。
表 30–7 IPC 对象类型字段的值
名称 |
值 |
说明 |
---|---|---|
AU_IPC_MSG |
1 |
IPC 消息对象 |
AU_IPC_SEM |
2 |
IPC 信号对象 |
AU_IPC_SHM |
3 |
IPC 共享内存对象 |
praudit 命令可按如下方式显示 ipc 标记:
IPC,msg,3 |
ipc_perm 标记包含系统 V IPC 访问权限的副本。此标记将被添加到由 IPC 共享内存事件、IPC 信号事件和 IPC 消息事件生成的审计记录中。ipc_perm 标记具有八个字段:
标记 ID 字段,将此标记标识为 ipc_perm 标记
IPC 属主的用户 ID 字段
IPC 属主的组 ID 字段
IPC 创建者的用户 ID 字段
IPC 创建者的组 ID 字段
IPC 访问模式字段
IPC 序列号字段
IPC 密钥值字段
praudit 命令可按如下方式显示 ipc_perm 标记:
IPC perm,root,sys,root,sys,0,0,0x00000000 |
值来自与 IPC 对象关联的 ipc_perm 结构。
iport 标记包含 TCP 或 UDP 端口地址。iport 标记具有两个字段:
标记 ID 字段,将此标记标识为 iport 标记
TCP 或 UDP 端口地址字段
praudit 命令可按如下方式显示 iport 标记:
ip port,0xf6d6 |
opaque 标记包含作为一系列字节的未设置格式的数据。opaque 标记具有三个字段:
标记 ID 字段,将此标记标识为 opaque 标记
数据字节计数字段
字节数据组字段
praudit 命令可按如下方式显示 opaque 标记:
opaque,12,0x4f5041515545204441544100 |
标记 ID 字段,将此标记标识为 path 标记
路径长度字段
对象绝对路径字段,基于系统的实际根目录
praudit 命令可按如下方式显示不包含第二个字段的 path 标记:
path,/etc/security/audit_user |
praudit -x 命令可按如下方式显示 path 标记:
<path>/etc/security/audit_user</path> |
下图显示了 path 标记的格式。
path_attr 标记包含对象的访问路径信息。访问路径指定了 path 标记对象以下的属性文件对象的顺序。系统调用(例如 openat())可访问属性文件。有关属性文件对象的更多信息,请参见 fsattr(5) 手册页。
path_attr 标记包含以下字段:
标记 ID 字段,将此标记标识为 path_attr 标记
计数字段,表示属性文件路径的段数
count 空字符结尾字符串字段
praudit 命令可按如下方式显示 path_attr 标记:
path_attr,1,attr_file_name |
privilege 标记可记录针对进程的权限使用。并不针对基本集中的权限记录 privilege 标记。如果通过管理操作已从基本集中删除了权限,则会记录此权限的使用。有关权限的更多信息,请参见权限(概述)
privilege 标记包含以下字段:
标记 ID 字段,将此标记标识为 privilege 标记
后一字段长度字段
权限集名称字段
后一字段长度字段
权限列表字段
praudit 命令可按如下方式显示 privilege 标记:
privilege,effective, |
process 标记包含有关与进程关联的用户(例如信号接收者)的信息。process 标记具有九个字段:
标记 ID 字段,将此标记标识为 process 标记
审计 ID 字段
有效用户 ID 字段
有效组 ID 字段
实际用户 ID 字段
实际组 ID 字段
进程 ID 字段
审计会话 ID 字段
终端 ID 字段,包含设备 ID 和计算机 ID
审计 ID、用户 ID、组 ID、进程 ID 以及会话 ID 均为长字段,而不是短字段。
process 标记的会话 ID、实际用户 ID 或实际组 ID 字段可能不可用。因此将值设置为 -1。
任何包含终端 ID 的标记都具有数个变体。 praudit 命令可隐藏这些变体。因此,对于任何包含终端 ID 的标记,均采用相同的方式处理终端 ID。终端 ID 为 IP 地址、端口号或设备 ID。设备 ID(例如连接到调制解调器的串行端口)可以为零。终端 ID 通过数种格式之一进行指定。
以设备编号表示的终端 ID 按如下方式指定:
32 位应用程序-4 个字节表示设备编号,4 个字节未使用
64 位应用程序-8 个字节表示设备编号,4 个字节未使用
在 Solaris 8 之前的发行版中,以端口号表示的终端 ID 按如下方式指定:
32 位应用程序-4 个字节表示端口号,4 个字节表示 IP 地址
64 位应用程序-8 个字节表示端口号,4 个字节表示 IP 地址
自 Solaris 8 发行版开始,以端口号表示的终端 ID 按如下方式指定:
使用 IPv4 的 32 位-4 个字节表示端口号,4 个字节表示 IP 类型,4 个字节表示 IP 地址
使用 IPv6 的 32 位-4 个字节表示端口号,4 个字节表示 IP 类型,16 个字节表示 IP 地址
使用 IPv4 的 64 位-8 个字节表示端口号,4 个字节表示 IP 类型,4 个字节表示 IP 地址
使用 IPv6 的 64 位-8 个字节表示端口号,4 个字节表示 IP 类型,16 个字节表示 IP 地址
praudit 命令可按如下方式显示 process 标记:
process,root,root,sys,root,sys,0,0,0,0.0.0.0 |
下图显示了 process 标记的格式。
return 标记包含系统调用的返回状态 (u_error) 以及进程返回值 (u_rval1)。此标记具有三个字段:
标记 ID 字段,将此标记标识为 return 标记
系统调用错误状态字段
系统调用返回值字段
return 标记始终作为内核针对系统调用生成的审计记录的一部分返回。在应用程序审计中,此标记指示退出状态以及其他返回值。
praudit 命令可按如下方式显示系统调用的 return 标记:
return,failure: Operation now in progress,-1 |
praudit -x 命令可按如下方式显示 return 标记:
<return errval="failure: Operation now in progress" retval="-1/"> |
sequence 标记包含一个序列号。此标记用于进行调试。sequence 标记具有两个字段:
标记 ID 字段,将此标记标识为 sequence 标记
32 位无符号长字段,包含序列号
每当向审计跟踪中添加审计记录时,序列号便会增加。praudit 命令可按如下方式显示 sequence 标记:
sequence,1292 |
praudit -x 命令可按如下方式显示 sequence 标记:
<sequence seq-num="1292"/> |
仅当 seq 审计策略选项处于活动状态时,才输出 sequence 标记。
socket 标记包含介绍 Internet 套接字的信息。在某些情况下,此标记具有四个字段:
标记 ID 字段,将此标记标识为 socket 标记
套接字类型字段,指示所引用的套接字的类型(TCP、UDP 或 UNIX)
本地端口字段
本地 IP 地址字段
praudit 命令可按如下方式显示此 socket 标记实例:
socket,0x0002,0x83b1,localhost |
在大多数情况下,此标记具有八个字段:
标记 ID 字段,将此标记标识为 socket 标记
套接字域字段
套接字类型字段,指示所引用的套接字的类型(TCP、UDP 或 UNIX)
本地端口字段
地址类型字段,IPv4 或 IPv6
本地 IP 地址字段
远程端口字段
远程 IP 地址字段
自 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 标记可介绍执行或尝试执行某操作的用户。格式与 process 标记的格式相同。subject 标记具有九个字段:
标记 ID 字段,将此标记标识为 subject 标记
审计 ID 字段
有效用户 ID 字段
有效组 ID 字段
实际用户 ID 字段
实际组 ID 字段
进程 ID 字段
审计会话 ID 字段
终端 ID 字段,包含设备 ID 和计算机 ID
审计 ID、用户 ID、组 ID、进程 ID 以及会话 ID 均为长字段,而不是短字段。
subject 标记的会话 ID、实际用户 ID 或实际组 ID 字段可能不可用。因此将值设置为 -1。
任何包含终端 ID 的标记都具有数个变体。 praudit 命令可隐藏这些变体。因此,对于任何包含终端 ID 的标记,均采用相同的方式处理终端 ID。终端 ID 为 IP 地址、端口号或设备 ID。设备 ID(例如连接到调制解调器的串行端口)可以为零。终端 ID 通过数种格式之一进行指定。
以设备编号表示的终端 ID 按如下方式指定:
32 位应用程序-4 个字节表示设备编号,4 个字节未使用
64 位应用程序-8 个字节表示设备编号,4 个字节未使用
在 Solaris 8 之前的发行版中,以端口号表示的终端 ID 按如下方式指定:
32 位应用程序-4 个字节表示端口号,4 个字节表示 IP 地址
64 位应用程序-8 个字节表示端口号,4 个字节表示 IP 地址
自 Solaris 8 发行版开始,以端口号表示的终端 ID 按如下方式指定:
使用 IPv4 的 32 位-4 个字节表示端口号,4 个字节表示 IP 类型,4 个字节表示 IP 地址
使用 IPv6 的 32 位-4 个字节表示端口号,4 个字节表示 IP 类型,16 个字节表示 IP 地址
使用 IPv4 的 64 位-8 个字节表示端口号,4 个字节表示 IP 类型,4 个字节表示 IP 地址
使用 IPv6 的 64 位-8 个字节表示端口号,4 个字节表示 IP 类型,16 个字节表示 IP 地址
subject 标记始终作为内核针对系统调用生成的审计记录的一部分返回。praudit 命令可按如下方式显示 subject 标记:
subject,jdoe,root,staff,root,staff,424,223,0 0 example1 |
下图显示了 subject 标记的格式。
标记 ID 字段,将此标记标识为 text 标记
文本字符串长度字段
文本字符串自身字段
praudit 命令可按如下方式显示 text 标记:
text,logout jdoe |
header 和 trailer 这两个标记的特殊之处在于它们将审计记录的各个结束点区分开来,并将所有其他标记括在一起。header 标记可开始审计记录。trailer 标记可结束审计记录。trailer 标记是可选标记。仅当已经设置了 trail 审计策略选项时,才将 trailer 标记作为每条记录的最后一个标记添加。
在尾部打开的情况下生成审计记录时,auditreduce 命令可以检验尾部是否正确指回记录首部。trailer 标记支持向后查找审计跟踪。
trailer 标记具有三个字段:
标记 ID 字段,将此标记标识为 trailer 标记
填充编号字段,有助于标记记录结尾
审计记录中的字符总数字段,包括 header 和 trailer 标记
praudit 命令可按如下方式显示不包含第二个字段的 trailer 标记:
trailer,136 |
uauth 标记包含以下字段:
标记 ID 字段,将此标记标识为 uauth 标记
后一字段中文本长度字段
授权列表字段
praudit 命令可按如下方式显示 uauth 标记:
use of authorization,solaris.admin.printer.delete |
zonename 标记可记录发生审计事件的区域。字符串 "global" 指示在全局区域中发生的审计事件。
zonename 标记包含以下字段:
标记 ID 字段,将此标记标识为 zonename 标记
后一字段中文本长度字段
区域名称字段
praudit 命令可按如下方式显示 zonename 标记:
zonename,graphzone |