auditselect { -e "Expression" | -f File} [ -m ] [ Trail ]
auditselect 命令是审计子系统的一部分。如果该命令在 /etc/security/audit/bincmds 文件中配置为作为处理二进制文件的后端命令,则它由 auditbin 守护进程调用。
auditselect 命令选择与标识的标准相匹配的审计记录并将这些记录写至标准输出。通过 auditselect 命令,您可以过滤审计跟踪来获取用于分析的特定记录或选择要长期存储的特定记录。此命令从 Trail 参数指定的文件或从标准输入取出流或二进制输入。如果将 $bin 字符串指定为 Trail 参数的值,则 auditbin 守护进程在它调用 auditselect 命令时替换当前二进制文件的路径名称。选择标准可作为表达式输入或从 -f 标志指定的文件输入。如果压缩二进制文件,则 auditselect 命令在处理前将它们解包。
对于流数据,请在 /etc/security/audit/streamcmds 文件中配置 auditstream 命令和 auditselect 命令或从命令行输入这两个命令。
-e "Expression" | 定义选择标准。Expression 参数由逻辑运算符结合的一个或多个项构成。 |
-f File | 指定包含选择标准的 File。 |
-m | 指定具有记录扩展的输出审计记录。 |
有效的表达式由逻辑运算符结合的一个或多个项构成。
逻辑运算符允许在一个表达式中使用一个以上的项。常规居先规则适用于对具有一个以上的逻辑运算符的表达式求值,而圆括号可用于强制求值的顺序。有效的逻辑运算符包含以下几个:
&& | (And)如果 term1 和 term2 都为真,则表达式 term1 && term2 为真(已选)。 |
|| | (Or)如果 term1 或 term2 为真,则表达式 term1 || term2 为真(已选)。 |
! | (Not)如果 term1 不为真,则表达式 !term1 为真(已选)。 |
表达式各个项具有以下格式:
字段 关系运算符 值
字段对应每个记录的审计报头中的信息。字段的有效值包含以下项:
关系运算符用于将审计记录中的字段与指定的值进行比较。有效的关系运算符包含:
== | 等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
>= | 大于或等于 |
<= | 小于或等于 |
有效项由一个字段、一个关系运算符和一个值构成。另外,不是所有的运算符和值对每个字段而言都是有效的。以下是有效的组合:
字段 | 有效运算符 | 有效值 |
event | = =, ! = | 文本字符串的审计事件名称 |
result | = =, ! = | 文本字符串的审计状态代码 |
command | = =, ! = | 文本字符串的命令名称 |
pid | all | 十进制整数的进程标识 |
ppid | all | 十进制整数的进程标识 |
login | all | 十进制整数的用户标识 |
login | = =, ! = | 文本字符串的用户名 |
real | all | 十进制整数的用户标识 |
real | = =, ! = | 文本字符串的用户名 |
tid | all | 十进制整数的线程标识 |
time | all | 以当前语言环境指定的格式表示的字符串 |
date | all | 以当前语言环境指定的格式表示的字符串 |
host | = =, ! = | 文本字符串的主机名称或 16 个字符的 cpu 标识 |
访问控制:此命令应向 root 用户和审计组的成员授予执行(x)访问权。此命令应该是 root 用户的 setuid 并具有可信计算基属性。
/usr/sbin/auditselect -e "event== USER_SU || event== \ USER_Login" $bin >> /audit/trail.login
当启用审计时,用户会话的每次启动的记录从当前二进制文件读取,并写至 /audit/trail.login 文件。
/usr/sbin/auditstream -c authentication | \ /usr/sbin/auditselect -e "event == \ USER_Login && result == FAIL" | \ /usr/sbin/auditpr -t 2 -v >> /dev/lpr2
要产生硬拷贝的审计跟踪,则失败的认证事件的记录写至 /dev/lpr2 行式打印机。
/usr/sbin/auditselect -e "result == FAIL_AUTH" /audit/oldtrail | /usr/sbin/auditpr -t -helt -v
因为认证被拒绝而导致失败的事件的记录打印出来。报头标题将只打印一次,后跟事件、登录标识和时间字段,然后是审计跟踪。
command == login && login == smith && time >= 08:00:00 && time <= 17:00:00 && date >= 05/01/87 && date <= 05/05/87
"event == USER_Login" "event != USER_Login"
"command == passwd"
要查明审计事件是否不是由 passwd 命令生成的,请使用:
"command != passwd"
"result == OK"
"login == 014" "login != carol" "login == 014 || login != carol" "real == carol"
"pid == 2006" "pid != 2006" "ppid == 2006"
注:虽然登录和实际用户标识以及进程标识可以用不等运算符(< =、> =、<、>)进行比较,但通常没有必要这样做。
"time == 08:03:00" "time != 08:03:00" "time < 08:03:00" "time <= 08:03:00" "time > 08:03:00" "time >= 08:03:00"
选择和上述与 08:03:00 时间字符串的比较关系相符的审计记录。时间字符串的格式必须与当前语言环境指定的格式一致。
"date == 05/03/89" "date != 05/03/89" "date < 05/03/89" "date <= 05/03/89" "date > 05/03/89" "date >= 05/03/89"
选择和上述与 05/05/89 日期字符串的比较关系相符的审计记录。日期字符串的格式必须与当前语言环境指定的格式一致。
/usr/sbin/auditselect | 指定 auditselect 命令的路径。 |
/etc/rc | 包含系统初始化命令。 |
/etc/security/audit/config | 包含审计系统配置信息。 |
/etc/security/audit/events | 包含系统的审计事件。 |
/etc/security/audit/objects | 包含被审计对象(文件)的审计事件。 |
/etc/security/audit/bincmds | 包含 auditbin 后端命令。 |
/etc/security/audit/streamcmds | 包含审计流命令。 |
/etc/security/audit/hosts | 包含“CPU 标识到主机名”的映射。 |
audit 命令、auditcat 命令、auditconv 命令、auditpr 命令、auditstream 命令、env 命令。
auditbin 守护进程。
有关审计的一般信息,请参考《AIX 5L V5.2 安全指南》中的『审计概述』。
要参阅您建立“审计系统”必须采取的步骤,请参考《AIX 5L V5.2 安全指南》中的『建立审计』。
有关用户的标识和认证,任意访问控制、可信计算基以及审计的更多信息,请参考《AIX 5L V5.2 安全指南》中的『单机系统安全性』。