JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

什么是审计?

审计工作原理

审计如何与安全相关?

审计术语和概念

审计事件

审计类和预选

审计记录和审计标记

审计插件模块

审计日志

存储审计迹

检查审计迹

在具有 Oracle Solaris 区域的系统上审计

Solaris 10 发行版中的审计增强功能

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

词汇表

索引

审计术语和概念

以下术语用于说明审计服务。有些定义包含指向更完整说明的链接。

表 28-1 Oracle Solaris 审计术语

术语
定义
Audit class(审计类)
一组审计事件。审计类提供选择一组要审计的事件的方法。有关更多信息,请参见审计类和预选
Audit directory(审计目录)
二进制格式的审计文件的系统信息库。有关审计目录类型的说明,请参见审计日志
Audit event(审计事件)
被审计的与安全相关系统操作。为了便于选择,将事件分为多个审计类。有关可以审计的系统操作的介绍,请参见审计事件
Audit policy(审计策略)
一组可以在您的站点中启用或禁用的审计选项。这些选项包括是否记录某种审计数据,还包括是否在写满审计迹时暂停可审计的操作。有关更多信息,请参见确定审计策略
Audit record(审计记录)
存储在审计文件中的审计数据。一条审计记录描述一个审计事件。每条审计记录由多个审计标记组成。有关审计记录的更多信息,请参见审计记录和审计标记
Audit token(审计标记)
审计记录或审计事件字段。每个审计标记描述审计事件的一个属性,例如用户、程序或其他对象。有关所有审计标记的说明,请参见审计标记格式
Audit trail(审计迹)
一个或多个审计文件的集合,用于存储运行审计服务的所有系统上的审计数据。有关更多信息,请参见审计迹
Preselection(预选)
预选是指在启用审计服务之前选择要监视的审计类。预选的审计类的审计事件将会在审计迹中出现。由于不会审计未预选的审计类,因此这些审计类的事件将不会出现在审计迹中。后选工具 auditreduce 命令将从审计迹中选择记录。有关更多信息,请参见审计类和预选
Public object(公共对象)
公共对象是一个由 root 用户拥有且任何人都可读取的文件。例如,/etc 目录和 /usr/bin 目录中的文件就是公共对象。不会审计只读事件的公共对象。例如,即使预选了 file_read (fr) 审计类,也不会审计公共对象的读取。您可以通过更改 public 审计策略选项来覆盖缺省值。
Audit plugin(审计插件)
将内核队列中的审计记录传输到指定位置的模块。audit_binfile.so 插件创建二进制审计文件(审计迹)。audit_syslog.so 插件将选定的审计记录过滤到 syslog 日志。有关更多信息,请参见审计插件模块

审计事件

可以审计与安全相关的系统操作。这些可审计的操作定义为审计事件。审计事件在 /etc/security/audit_event 文件中列出。在该文件中,会根据事件编号、符号名称、简短说明以及事件所属的审计类集定义每个审计事件。有关 audit_event 文件的更多信息,请参见 audit_event(4) 手册页。

例如,以下项定义了 exec() 系统调用的审计事件:

7:AUE_EXEC:exec(2):ps,ex

当您预选审计类 ps 或审计类 ex 进行审计时,将在审计迹中记录 exec() 系统调用。

Oracle Solaris 审计处理可归属事件和无归属事件。审计策略将事件分为同步事件和异步事件。如下所述:

预选某个审计事件所属的类以进行审计时,会在审计迹中记录此事件。例如,当您预选 psna 审计类进行审计时,除其他事件之外,还会在审计迹中记录 exec() 系统调用和系统引导操作。

除了 Oracle Solaris 审计服务定义的审计事件,第三方应用程序也可以生成审计事件。审计事件编号 32768 到 65535 适用于第三方应用程序。

审计类和预选

每个审计事件属于一个或多个审计类。审计类是用于容纳大量审计事件的方便容器。预选要审计的类时,可以指定应在审计迹中记录该类中的所有事件。可以预选系统中的事件和特定用户启动的事件。运行审计服务之后,可以从预选类中动态添加或删除审计类。

可以使用后选命令 auditreduce 从预选审计记录中选择记录。有关更多信息,请参见检查审计迹auditreduce(1M) 手册页。

审计类在 /etc/security/audit_class 文件中定义。每个项都包含类的审计掩码、类的名称,以及类的描述性名称。例如,audit_class 文件中 psna 类的定义为:

0x00100000:ps:process start/stop
0x00000400:na:non-attribute

有 32 种可能的审计类。其中包括两个全局类:allnoaudit_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_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 审计记录的比较

功能
二进制记录
syslog 记录
协议
写入文件系统
将 UDP 用于远程日志记录
数据类型
二进制
文本
记录长度
无限制
每条审计记录最多 1024 个字符
位置
存储在本地磁盘上以及使用 NFS 挂载的目录中
存储在 syslog.conf 文件中指定的位置
配置方式
编辑 audit_control 文件,并保护 NFS 挂载审计目录
编辑 audit_control 文件,然后编辑 syslog.conf 文件
读取方式
通常以批处理模式读取

XML 格式的浏览器输出

实时读取,或者通过为 syslog 创建的脚本进行搜索

纯文本输出

完整性
保证完整,并且以正确的顺序显示
不能保证完整
时间戳
格林威治标准时间 (Greenwich Mean Time, GMT)
审计的系统时间

二进制记录提供最高的安全性和最大的覆盖范围。二进制输出满足安全认证要求,例如公共标准受控制访问保护框架 (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 命令的选项提供适合借助脚本和浏览器显示的输出。