设置审计
以下过程显示如何设置审计子系统。有关更多特定信息,请参考这些步骤中注释的配置文件。
- 从 /etc/security/audit/events 文件中的列表选择系统活动(事件)审计。如果已经向应用程序或内核扩展添加了新的审计事件,则必须编辑文件以添加新的事件。
- 如果包含的代码记录应用程序(使用 auditwrite 或 auditlog 子例程)或内核扩展(使用 audit_svcstart、audit_svcbcopy 和 audit_svcfinis 内核服务)里的事件,添加事件到此文件。
- 确保任何新建审计事件的格式指示信息包含在 /etc/security/audit/events 文件中。当格式化审计记录时,这些规范启用 auditpr 命令写审计跟踪。
- 分组选定的审计事件到名为审计类相似项目集中。定义 /etc/security/audit/config 文件的类节中的审计类。
- 指定单独用户的审计类并指定审计事件到需要审计的文件,如下:
- 指定单独用户的审计类,添加一行到 /etc/security/audit/config 文件的 user 节。指定用户的审计类,可以使用 chuser 命令。
- 指定对象(数据或可执行文件)的审计事件,为该文件添加节到 /etc/security/audit/objects 文件。
- 还可以通过编辑 /usr/lib/security/mkuser.default 文件来为新的用户指定缺省的审计类。当生成新建用户标识时,文件保留要使用的用户属性。例如,为所有新建用户标识使用 general 审计类,如下:
user: auditclasses = general pgrp = staff groups = staff shell = /usr/bin/ksh home = /home/$USER
获取全部审计事件,指定 ALL 类。当甚至在适度繁忙的系统执行此操作时,将生成大量的数据。通常,更实际的做法是限制记录事件的数量。
- 在 /etc/security/audit/config 文件中,使用 BIN 收集、STREAM 收集或两种方式都用来配置数据收集类型。通过为审计数据使用分离的文件系统确保审计数据不能和文件空间的其它数据竞争。这确保审计数据有足够的空间。配置数据收集类型如下:
- 配置 BIN 收集:
- 通过设置 start 节里的 binmode = on 启用 BIN 方式收集。
- 编辑 binmode 节配置 bin 和 trail,并指定包含 BIN 方式后端处理命令的文件路径。后端命令的缺省文件是 /etc/security/audit/bincmds文件。
- 确信审计 bin 足够大能满足需要并且如果正在填充文件系统相应设置 freespace 参数以获取警告。
- 包含在 /etc/security/audit/bincmds 文件中审计管道中处理审计 bin 的 shell 命令。
- 配置 STREAM 收集:
- 通过设置 start 节中的 streammode = on 启用 STREAM 方式收集。
- 编辑 streammode 节指定到包含 streammode 处理命令的文件路径。包含此信息的缺省文件是 /etc/security/audit/streamcmds 文件。
- 包含在 /etc/security/audit/streamcmds 文件中审计管道中处理 stream 记录的 shell 命令。
- 配置 BIN 收集:
- 完成对配置文件的任何必需的更改后,准备使用 audit start 命令选项启用审计子系统。
- 使用 audit query 命令选项查看审计哪个事件和对象。
- 使用 audit shutdown 命令选项再次释放审计子系统。
选择审计事件
审计的目的是检测可能有损系统安全性的活动。当未授权用户执行时,以下活动违背系统安全性并且是审计的对象:
- 在可信计算库里从事活动
- 认证用户
- 访问系统
- 更改系统配置
- 绕过审计系统
- 初始化系统
- 安装程序
- 修改帐户
- 把信息传入到系统或从系统传出
审计系统没有要审计事件的缺省设置。必须根据您的需要选择事件或事件类。
要审计活动,必须识别启动审计事件的命令或进程并且确保事件列在系统的 /etc/security/audit/events 文件中。那么必须添加事件到 /etc/security/audit/config 文件中的相应类或到 /etc/security/audit/objects 文件中的对象节。请参阅系统上 /etc/security/audit/events 文件里的审计事件和跟踪格式化指示信息列表。有关如何写和使用审计事件格式的描述,请参阅 auditpr 命令。
在选定审计事件后,必须把相似事件并到审计类。然后分配审计类给用户。
选择审计类
通过把连接相似事件并入到审计类,可以简化把审计事件指定给用户。审计类定义在 /etc/security/audit/config 文件中的类节里。
一些可能的典型审计类如下:
常规 | 改变系统状态和更改用户认证的事件。审计试图绕过系统访问控制。 |
对象 | 安全性配置文件的写入权限。 |
内核 | 通过内核的进程管理功能生成内核类中的事件。 |
/etc/security/audit/config 中节的示例如下:
classes: general = USER_SU,PASSWORD_Change,FILE_Unlink,FILE_Link,FILE_Rename system = USER_Change,GROUP_Change,USER_Create,GROUP_Create init = USER_Login,USER_Logout
选择审计数据收集方法
数据收集方法的选择取决于要如何使用审计数据。如果需要大量数据的长期存储,选择 BIN 收集。如果收集时处理数据,选择 STREAM 收集。如果需要长期存储和立即处理,选择两种方法。
Bin 收集 | 允许大审计跟踪的长时间存储。审计记录写进作为临时的 bin 的文件保存。在文件填满后,当审计子系统写进其它 bin 文件并且把记录写到审计跟踪存储时,通过 auditbin 守护程序处理数据。 |
Stream 收集 | 允许在收集的同时处理审计数据。审计记录写进内核里的循环缓冲区,通过读 /dev/audit 检索。审计记录可以显示、打印提供纸上的审计跟踪或通过 auditcat 命令转换成 bin 记录。 |
实时文件修改监视示例
以下示例用于监控关键文件的实时文件访问:
- 设置监控关键文件改变的列表,例如 /etc 中的全部文件,并且在 objects 文件中配置它们以获得 FILE_Write 事件:
find /etc -type f | awk '{printf("%s:ntw = FILE_Writenn",$1)}' >> /etc/security/audit/objects
- 设置 stream 审计列出全部文件写操作。(此示例列出写到控制台的全部文件,但在生产环境下可能想要有一个后端,它发送事件到入侵检测系统。)The /etc/security/audit/streamcmds file is similar to the following:
/usr/sbin/auditstream | /usr/sbin/auditselect -e "event == FILE_Write" | auditpr -hhelpPRtTc -v > /dev/console &
- 在 /etc/security/audit/config 中设置 STREAM 方式审计,为文件写事件添加类并且配置应该用类审计的所有用户:
start: binmode = off streammode = on stream: cmds = /etc/security/audit/streamcmds classes: filemon = FILE_write users: root = filemon afx = filemon ...
- 现在运行 audit start。在控制台上显示所有 FILE_Write 事件。
类属审计日志方案的示例
此例中假定系统管理员要使用审计子系统监控大的多用户服务器系统。未执行直接集成到 IDS,手工检查所有审计记录的不规则性。仅记录一些实质的审计事件,保持生成数据的数量为可管理的大小。
以下是为审计检测考虑的审计事件:
FILE_Write | 要知道对配置文件的文件写操作,因此此事件会用于 /etc 树里的全部文件。 |
PROC_SetUserIDs | 用户标识的所有更改 |
AUD_Bin_Def | 审计 bin 配置 |
USER_SU | su 命令 |
PASSWORD_Change | passwd 命令 |
AUD_Lost_Rec | 万一有记录丢失的通知 |
CRON_JobAdd | 新建 cron 作业 |
AT_JobAdd | 新建 at 作业 |
USER_Login | 所有登录 |
PORT_Locked | 终端上由于太多无效尝试而全部锁定 |
以下是如何生成类属审计日志的示例:
- 设置要监控关键文件改变的列表,例如 /etc 里全部文件,并且为 objects 文件里的 FILE_Write 事件配置它们,如下:
find /etc -type f | awk '{printf("%s:ntw = FILE_Writenn",$1)}' >> /etc/security/audit/objects
- 使用 auditcat 命令设置 BIN 方式审计。/etc/security/audit/bincmds 文件与以下相似:
/usr/sbin/auditcat -p -o $trail $bin
- 编辑 /etc/security/audit/config 文件并且为我们感兴趣的事件添加类。列出所有现有的用户并且为它们指定 custom 类:
start: binmode = on streammode = off bin: cmds = /etc/security/audit/bincmds trail = /audit/trail bin1 = /audit/bin1 bin2 = /audit/bin2 binsize = 100000 freespace = 100000 classes: custom = FILE_Write,PROC_SetUser,AUD_Bin_Def,AUD_Lost_Rec,USER_SU, PASSWORD_Change,CRON_JobAdd,AT_JobAdd,USER_Login,PORT_Locked users: root = custom afx = custom ...
- 将 custom 审计类添加到 /usr/lib/security/mkuser.default 文件,这样新的标识将自动拥有正确的相关审计调用:
user: auditclasses = custom pgrp = staff groups = staff shell = /usr/bin/ksh home = /home/$USER
- 通过使用 SMIT 或 crfs 命令创建名为 /audit 的新的文件系统。该文件系统应该足以容纳两个 bin 和一个大的审计跟踪。
- 运行 audit start 命令选项并测试 /audit 文件。您应该可以看到两个 bin 文件和一个初始为空的 trail 文件。使用系统一定时间后,trail 文件中应该已有审计记录,可以通过以下命令读取
auditpr -hhelpPRtTc -v | more
此例仅使用很少事件。要查看全部事件,您可以为所有用户指定类名 ALL。这个操作将生成大量的数据。您可能希望将所有有关用户更改和特权更改的事件都添加到 custom 类中。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4096/viewspace-52410/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4096/viewspace-52410/