JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 管理:安全服务     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

4.  病毒扫描服务(任务)

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

6.  使用 BART 验证文件完整性(任务)

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

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

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

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

10.  Oracle Solaris 中的安全属性(参考信息)

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

14.  使用可插拔验证模块

15.  使用 安全 Shell

16.  安全 Shell(参考信息)

17.  使用简单验证和安全层

18.  网络服务验证(任务)

第 6 部分Kerberos 服务

19.  Kerberos 服务介绍

20.  规划 Kerberos 服务

21.  配置 Kerberos 服务(任务)

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

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

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

25.  Kerberos 服务(参考信息)

第 7 部分在 Oracle Solaris 中审计

26.  审计(概述)

什么是审计?

审计术语和概念

审计事件

审计类和预选

审计记录和审计标记

审计插件模块

审计日志

存储和管理审计迹

确保时间戳可靠

管理远程系统信息库

审计如何与安全相关?

审计工作原理

配置审计的方式

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

关于此发行版中的审计服务

27.  规划审计

28.  管理审计(任务)

29.  审计(参考信息)

词汇表

索引

审计术语和概念

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

audit class(审计类)

一组审计事件。审计类提供选择一组要审计的事件的方法。

有关更多信息,请参见审计类和预选以及 audit_flags(5)audit_class(4)audit_event(4) 手册页。

audit file system(审计文件系统)

二进制格式的审计文件系统信息库。

有关更多信息,请参见审计日志audit.log(4) 手册页。

audit event(审计事件)

可审计的与安全相关的系统操作。为了便于选择,将事件分为多个审计类。

有关更多信息,请参见审计事件audit_event(4) 手册页。

audit flag(审计标志)

作为参数提供给命令或关键字的审计类。标志的前缀可以是加号或减号,+ 表示对类的成功事件进行审计,而 - 表示对类的失败事件进行审计。在加号前面加上插入记号 ^ 表示将不审计成功事件 (^+),而在减号前面加上该插入记号表示将不审计失败事件 (^-)。

有关更多信息,请参见 audit_flags(5) 手册页和审计类语法

audit plugin(审计插件)

用于将队列中的审计记录传输到指定位置的模块。audit_binfile 插件可创建二进制审计文件。而这些二进制文件组成了审计迹,存储在审计文件系统中。audit_remote 插件可将二进制审计记录发送到远程系统信息库。audit_syslog 插件可将选定的审计记录汇总到 syslog 日志中。

有关更多信息,请参见审计插件模块以及模块手册页 audit_binfile(5)audit_remote(5)audit_syslog(5)

audit policy(审计策略)

一组可以在您的站点中启用或禁用的审计选项。这些选项包括是否记录某种审计数据,还包括是否在写满审计队列时暂停可审计的操作。

有关更多信息,请参见了解审计策略auditconfig(1M) 手册页。

Audit record(审计记录)

审计队列中收集的审计数据。一条审计记录描述一个审计事件。每条审计记录由多个审计标记组成。

有关更多信息,请参见审计记录和审计标记audit.log(4) 手册页。

audit token(审计标记)

审计记录或审计事件字段。每个审计标记描述审计事件的一个属性,例如用户、程序或其他对象。

有关更多信息,请参见审计标记格式audit.log(4) 手册页。

audit trail(审计迹)

一个或多个审计文件的集合,用于存储使用缺省插件 audit_binfile 的所有已审计系统上的审计数据。

有关更多信息,请参见审计迹

local auditing(本地审计)

收集在本地系统上生成的审计记录。这些记录可以是在全局区域或非全局区域(或者两者)中生成的。

有关更多信息,请参见审计插件模块

post-selection(后选)

有关要在审计迹中检查哪些审计事件的选择。缺省活动插件 audit_binfile 可创建审计迹。后选工具 auditreduce 命令将从审计迹中选择记录。

有关更多信息,请参见 auditreduce(1M)praudit(1M) 手册页。

preselection(预选)

有关要监视哪些审计类的选择。将在审计队列中收集预选的审计类的审计事件。由于不会审计未预选的审计类,因此这些审计类的事件将不会出现在队列中。

有关更多信息,请参见审计类和预选以及 audit_flags(5)auditconfig(1M) 手册页。

public object(公共对象)

root 用户拥有且任何人都可读取的文件。例如,/etc 目录和 /usr/bin 目录中的文件就是公共对象。不会审计只读事件的公共对象。例如,即使预选了 file_read (fr) 审计类,也不会审计公共对象的读取。您可以通过更改 public 审计策略选项来覆盖缺省值。

remote auditing(远程审计)

审计远程服务器 (Audit Remote Server, ARS) 接收并存储来自正被审计且配置有活动的 audit_remote 插件的系统的审计记录。为了区分被审计系统与 ARS,可以将被审计系统称为“本地被审计系统”。

有关更多信息,请参见 auditconfig(1M) 手册页中的 -setremote 选项和审计远程服务器

审计事件

审计事件代表某系统上可审计的操作。审计事件在 /etc/security/audit_event 文件中列出。每个审计事件均连接到一个系统调用或用户命令,并指定给一个或多个审计类。有关 audit_event 文件的格式的说明,请参见 audit_event(4) 手册页。

例如,AUE_EXECVE 审计事件将审计 execve() 系统调用。命令 auditrecord -e execve 显示以下条目:

execve
  system call execve               See execve(2)
  event ID    23                   AUE_EXECVE
  class       ps,ex                (0x0000000040100000)
      header
      path
      [attribute]                  omitted on error
      [exec_arguments]             output if argv policy is set
      [exec_environment]           output if arge policy is set
      subject
      [use_of_privilege]
      return

如果预选审计类 psex,则每个 execve() 系统调用都将记录在审计队列中。

审计过程处理可归属无归属事件。审计策略将事件分为同步事件和异步事件,如下所示:

除了审计服务定义的审计事件,第三方应用程序也可以生成审计事件。审计事件编号 32768 到 65535 适用于第三方应用程序。供应商需要联系其 Oracle Solaris 代表,以保留事件编号并获取对审计界面的访问权限。

审计类和预选

每个审计事件属于一个或多个审计类。审计类是用于容纳大量审计事件的方便容器。预选要审计的类时,该类中的所有事件都将记录在审计队列中。例如,预选 ps 审计类时,将记录 execve()fork() 以及其他系统调用。

可以预选系统中的事件和特定用户启动的事件。

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

0x0000000000001000:lo:login or logout
0x0000000000100000:ps:process start/stop

审计类包括以下两个全局类:allnoaudit_class(4) 手册页中介绍了这些审计类。有关类的列表,请阅读 /etc/security/audit_class 文件。

可以配置审计事件到类的映射。可以从类中删除事件、向类中添加事件,还可以创建新类以包含选定事件。有关过程,请参见如何更改审计事件的类成员身份。要查看映射到类的事件,请使用 auditrecord -c class 命令。

审计记录和审计标记

每条审计记录记录一个发生的审计事件。该记录包含操作执行者、受影响的文件、尝试执行的操作以及操作发生的时间和位置等信息。以下示例显示了有三个标记(headersubjectreturn)的 login 审计记录:

header,69,2,login - local,,example_system,2010-10-10 10:10:10.020 -07:00
subject,jdoe,jdoe,staff,jdoe,staff,1210,4076076536,69 2 example_system
return,success,0

为每个审计事件保存的信息类型由一组审计标记进行定义。每次为事件创建审计记录时,记录中都会包含为该事件定义的部分或全部标记。事件的性质决定了要记录的标记。在前面的示例中,每行都以审计标记的名称开头。标记名称后跟审计标记的内容。headersubjectreturn 审计标记一起组成了 login - local 审计记录。要显示组成审计记录的标记,请使用 auditrecord -e event 命令。

有关每个审计标记结构的详细说明和 praudit 输出示例,请参见审计标记格式。有关审计标记的二进制流的说明,请参见 audit.log(4) 手册页。

审计插件模块

审计插件模块将审计记录从审计队列定向到文件或系统信息库。至少有一个插件必须处于活动状态。缺省情况下,audit_binfile 插件处于活动状态。可使用 auditconfig -setplugin plugin-name 命令配置插件。

审计服务提供以下插件:

要配置插件,请参见 auditconfig(1M) 手册页。有关插件配置的示例,请参见配置审计日志(任务)中的任务。有关插件的信息,请参见 audit_binfile(5)audit_remote(5)audit_syslog(5) 手册页。

审计日志

审计记录是在审计日志中收集的。对于审计记录,审计服务提供三种输出模式。

站点可以配置审计以收集所有格式的审计记录。您可以对您的站点中的系统进行配置,以在本地使用二进制模式,将二进制文件发送到远程系统信息库,以及使用 syslog 模式。下表对二进制审计记录和 syslog 审计记录进行了比较。

表 26-1 二进制审计记录、远程审计记录以及 syslog 审计记录的比较

功能
二进制和远程记录
syslog 记录
协议
二进制-写入文件系统

远程-流化处理到远程系统信息库

将 UDP 用于远程日志记录
数据类型
二进制
文本
记录长度
无限制
每条审计记录最多 1024 个字符
位置
二进制-存储在系统上的 zpool 中

远程-远程系统信息库

存储在 syslog.conf 文件中指定的位置
配置方式
二进制-在 audit_binfile 插件上设置 p_dir 属性

远程-在 audit_remote 插件上设置 p_hosts 属性,并使该插件处于活动状态

使 audit_syslog 插件处于活动状态并配置 syslog.conf 文件
读取方式
二进制-在批处理模式下,浏览器通常以 XML 格式输出

远程-系统信息库指定相应过程

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

纯文本输出

完整性
保证完整,并且以正确的顺序显示
不能保证完整
时间戳
国际协调时间 (Coordinated Universal Time, UTC)
审计的系统时间

二进制记录提供最高的安全性和最大的覆盖范围。二进制输出满足安全证书的要求,例如通用准则 审计要求。

audit_binfile 插件可将记录写入对其进行保护以防止偷窥的文件系统中。在单个系统上,将收集所有二进制记录并按顺序显示它们。当某个审计迹内的系统分布于不同的时区时,可以参考二进制日志中的 UTC 时间戳进行精确比较。使用 praudit -x 命令可在浏览器中查看 XML 格式的记录。还可以使用脚本来解析 XML 输出。

audit_remote 插件可将记录写入远程系统信息库。该系统信息库负责存储和后选。

相反,syslog 记录可能会提供更大的便利性和灵活性。例如,您可以从各种源收集 syslog 数据。此外,当您监视 syslog.conf 文件中的 audit.notice 事件时,syslog 实用程序会记录一条带有当前时间戳的审计记录摘要。您可以使用为来自各种源(包括工作站、服务器、防火墙和路由器)的 syslog 消息开发的同一管理和分析工具。可以实时查看记录,并将其存储在远程系统中。

通过使用 syslog.conf 远程存储审计记录,可以保护日志数据免遭攻击者改动或删除。另一方面,远程存储审计记录时,这些记录容易遭受拒绝服务、伪装源地址等网络攻击。此外,UDP 会丢包或无序发送包。syslog 项限制为 1024 个字符,因此可能会截断日志中的某些审计记录。在单个系统上,不会收集所有的审计记录。记录可能不会按顺序显示。由于每条审计记录都使用本地系统的日期和时间进行标记,因此不能根据时间戳为多个系统构造审计迹。

有关插件和审计日志的更多信息,请参阅以下内容:

存储和管理审计迹

audit_binfile 插件处于活动状态时,审计文件系统 以二进制格式保留审计文件。典型的安装使用 /var/audit 文件系统,也可以使用其他文件系统。所有审计文件系统的内容组成了审计迹。审计记录按以下顺序存储在这些文件系统中:

这些文件系统作为 audit_binfile 插件的 p_dir 属性参数来指定。对于某个文件系统,列表中位于此文件系统前面的文件系统已满时才会使用此文件系统。有关包含文件系统项列表的示例,请参见如何为审计文件创建 ZFS 文件系统

将审计文件放置在缺省审计根目录下可帮助审计审阅者审阅审计迹。auditreduce 命令使用审计根目录来查找审计迹中的所有文件。缺省审计根目录为 /var/audit。可以在 auditreduce 命令中使用 -M 选项以指定特定计算机中的审计文件,而使用 -S 选项可以指定其他审计文件系统。有关更多信息,请参见 auditreduce(1M) 手册页。

审计服务提供用于合并和过滤审计迹文件的命令。auditreduce 命令可以合并审计迹中的审计文件。此命令还可以过滤文件以查找特定事件。praudit 命令读取二进制文件。praudit 命令的选项提供适合借助脚本和浏览器显示的输出。

确保时间戳可靠

合并多个系统中的审计日志时,这些系统上的日期和时间必须准确。同样,将审计日志发送到远程系统时,记录系统和系统信息库系统必须具有准确的时钟。网络时间协议 (Network Time Protocol, NTP) 可以使各个系统时钟保持准确和相互协调。有关更多信息,请参见《Oracle Solaris 11 网络服务介绍》中的第 3  章 "与时间相关的服务"xntpd(1M) 手册页。

管理远程系统信息库

配置 audit_remote 插件后,审计记录将由远程系统信息库接收。审计远程服务器 (Audit Remote Server, ARS) 提供了审计记录的接收方。审计记录通过受保护的连接以流方式传输到 ARS,并且能够像在本地存储时那样存储它们。要配置 ARS,请参见如何配置审计文件的远程系统信息库。有关 ARS 的描述,请参见审计远程服务器ars(5) 手册页。