跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
以下术语用于说明审计服务。有些定义包含指向更完整说明的链接。
表 28-1 Oracle Solaris 审计术语
|
可以审计与安全相关的系统操作。这些可审计的操作定义为审计事件。审计事件在 /etc/security/audit_event 文件中列出。在该文件中,会根据事件编号、符号名称、简短说明以及事件所属的审计类集定义每个审计事件。有关 audit_event 文件的更多信息,请参见 audit_event(4) 手册页。
例如,以下项定义了 exec() 系统调用的审计事件:
7:AUE_EXEC:exec(2):ps,ex
当您预选审计类 ps 或审计类 ex 进行审计时,将在审计迹中记录 exec() 系统调用。
Oracle Solaris 审计处理可归属事件和无归属事件。审计策略将事件分为同步事件和异步事件。如下所述:
可归属事件-可归属到某个用户的事件。exec() 系统调用可归属到某个用户,因此将该调用视为可归属事件。所有的可归属事件都是同步事件。
无归属事件-在内核中断级别发生的事件,或在验证用户之前发生的事件。na 审计类处理无归属的审计事件。例如,引导系统便是一个无归属事件。多数无归属事件都是异步事件。但是,具有关联进程的无归属事件(如登录失败)是同步事件。
同步事件-与系统中的进程关联的事件。同步事件占系统事件的大多数。
异步事件-与任何进程无关联的事件,因此既不会阻止进程,随后也不会唤醒进程。例如,初始系统引导和 PROM 进入和退出事件都是异步事件。
预选某个审计事件所属的类以进行审计时,会在审计迹中记录此事件。例如,当您预选 ps 和 na 审计类进行审计时,除其他事件之外,还会在审计迹中记录 exec() 系统调用和系统引导操作。
除了 Oracle Solaris 审计服务定义的审计事件,第三方应用程序也可以生成审计事件。审计事件编号 32768 到 65535 适用于第三方应用程序。
每个审计事件属于一个或多个审计类。审计类是用于容纳大量审计事件的方便容器。预选要审计的类时,可以指定应在审计迹中记录该类中的所有事件。可以预选系统中的事件和特定用户启动的事件。运行审计服务之后,可以从预选类中动态添加或删除审计类。
系统范围预选 – 在 audit_control 文件的 flags、naflags 和 plugin 行中指定系统范围内的缺省值以进行审计。audit_control 文件中介绍了 audit_control 文件。另请参见 audit_control(4) 手册页。
用户特定预选 – 在 audit_user 数据库中针对个别用户指定除系统范围内的审计缺省值之外的其他值。
审计预选掩码确定要针对用户审计的事件类。用户的审计预选掩码是系统范围内的缺省值和针对用户指定的审计类的组合。有关更多的详细信息,请参见进程审计特征。
audit_user 数据库可以在本地管理,也可以通过命名服务来管理。Solaris Management Console 可提供图形用户界面 (graphical user interface, GUI) 来管理此数据库。有关详细信息,请参见 audit_user(4) 手册页。
动态预选 - 将审计类指定为 auditconfig 命令的参数,以便从进程或会话中添加或删除这些审计类。有关更多信息,请参见 auditconfig(1M) 手册页。
可以使用后选命令 auditreduce 从预选审计记录中选择记录。有关更多信息,请参见检查审计迹和 auditreduce(1M) 手册页。
审计类在 /etc/security/audit_class 文件中定义。每个项都包含类的审计掩码、类的名称,以及类的描述性名称。例如,audit_class 文件中 ps 和 na 类的定义为:
0x00100000:ps:process start/stop 0x00000400:na:non-attribute
有 32 种可能的审计类。其中包括两个全局类:all 和 no。audit_class(4) 手册页中介绍了这些审计类。
可以配置审计事件到类的映射。可以从类中删除事件、向类中添加事件,还可以创建新类以包含选定事件。有关过程,请参见如何更改审计事件的类成员身份。
每条审计记录记录一个发生的审计事件。该记录包含操作执行者、受影响的文件、尝试执行的操作以及操作发生的时间和位置等信息。下面是一条 login 审计记录的示例:
header,81,2,login - local,,2003-10-13 11:23:31.050 -07:00 subject,root,root,other,root,other,378,378,0 0 example_system text,successful login return,success,0
为每个审计事件保存的信息类型由一组审计标记进行定义。每次为事件创建审计记录时,记录中都会包含为该事件定义的部分或全部标记。事件的性质决定了要记录的标记。在前面的示例中,每行都以审计标记的名称开头。名称后跟审计标记的内容。login 审计记录共由四个审计标记组成。
有关每个审计标记结构的详细说明和 praudit 输出示例,请参见审计标记格式。有关审计标记的二进制流的说明,请参见 audit.log(4) 手册页。
可以指定审计插件模块以处理您的预选已经放入审计队列中的记录。插件是 audit_control 文件中的项。
audit_binfile.so 插件-将审计队列发送到二进制审计文件。在 audit_control 文件中,如果未指定插件,并且 dir 项指定了值,那么审计守护进程将使用该插件。
audit_syslog.so 插件-将选定记录从审计队列发送到 syslog 日志。
有关 audit_control 文件的语法,请参见 audit_control(4) 手册页。有关示例,请参见配置审计文件(任务列表)中的任务。
有关插件的信息,请参见 audit_binfile(5)、audit_syslog(5) 和 audit_control(4) 手册页。
审计记录是在审计日志中收集的。Oracle Solaris 审计为审计日志提供两种输出模式。称为审计文件的日志以二进制格式存储审计记录。系统或站点的审计文件集提供完整的审计记录。完整的审计记录称为审计迹。
syslog 实用程序收集并存储审计记录的文本版本摘要。syslog 记录不是完整的记录。以下示例显示了 login 审计记录的 syslog 项:
Oct 13 11:24:11 example_system auditd: [ID 6472 audit.notice] \ login - login ok session 378 by root as root:other
站点可以存储两种格式的审计记录。您可以在站点上将系统配置为使用二进制模式和/或 syslog 模式。下表对二进制审计记录和 syslog 审计记录进行了比较。
表 28-2 二进制审计记录和 syslog 审计记录的比较
|
二进制记录提供最高的安全性和最大的覆盖范围。二进制输出满足安全认证要求,例如公共标准受控制访问保护框架 (Controlled Access Protection Profile, CAPP)。这些记录将写入可防止窥探的文件系统中。在单个系统上,将收集所有二进制记录并按顺序显示它们。当某个审计迹内的系统分布于不同的时区时,可以参考二进制日志中的 GMT 时间戳进行精确比较。使用 praudit -x 命令可在浏览器中查看 XML 格式的记录。还可以使用脚本来解析 XML 输出。
相反,syslog 记录可以提供更大的便利性和灵活性。例如,您可以从各种源收集 syslog 数据。此外,当您监视 syslog.conf 文件中的 audit.notice 事件时,syslog 实用程序会记录一条带有当前时间戳的审计记录摘要。您可以使用为来自各种源(包括工作站、服务器、防火墙和路由器)的 syslog 消息开发的同一管理和分析工具。可以实时查看记录,并将其存储在远程系统中。
通过使用 syslog.conf 远程存储审计记录,可以保护日志数据免遭攻击者改动或删除。另一方面,远程存储审计记录时,这些记录容易遭受拒绝服务、伪装源地址等网络攻击。此外,UDP 会丢包或无序发送包。syslog 项限制为 1024 个字符,因此可能会截断日志中的某些审计记录。在单个系统上,不会收集所有的审计记录。记录可能不会按顺序显示。由于每条审计记录都使用本地系统的日期和时间进行标记,因此不能根据时间戳为多个系统构造审计迹。
有关审计日志的更多信息,请参阅以下内容:
审计目录以二进制格式保存审计文件。典型安装使用多个审计目录。所有审计目录的内容组成了审计迹。审计记录按以下顺序存储在审计目录中:
主审计目录-正常情况下放置系统审计文件的目录
辅助审计目录-主审计目录已满或不可用时放置系统审计文件的目录
万不得已时使用的目录-主审计目录和所有辅助审计目录都不可用时使用的本地审计目录
这些目录在 audit_control 文件中指定。列表中位于此目录前面的目录已满时才会使用该目录。有关带有目录项列表的 audit_control 注释文件的信息,请参见示例 30-3。
将审计文件放置在缺省审计根目录下可帮助审计审阅者审阅审计迹。auditreduce 命令使用审计根目录来查找审计迹中的所有文件。缺省审计根目录为 /etc/security/audit。该目录符号链接至 /var/audit。名为 /var/audit/ hostname/files 的目录中的审计文件可以通过 auditreduce 命令轻松找到。有关更多信息,请参见auditreduce 命令。
审计服务提供用于合并和减少审计迹文件的命令。auditreduce 命令可以合并审计迹中的审计文件。此命令还可以过滤文件以查找特定事件。praudit 命令读取二进制文件。praudit 命令的选项提供适合借助脚本和浏览器显示的输出。