Skip to main content

安全审计

测评项:a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;

1)应核查是否开启了安全审计功能;

DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int);控制,过程执行完后会立即生效,param 有三种取值:

0:关闭审计,缺省值为 0。

1:打开普通审计

2:打开普通审计和实时审计

使用数据库数据库审计员查询审计开关当前的值:

image.png

2)应核查安全审计范围是否覆盖到每个用户;

默认覆盖到数据库上的每一个用户账户。

3)应核查是否对重要的用户行为和重要安全事件进行审计。

审计级别说明如下:

系统级:系统的启动、关闭、部分系统事件以及一些系统过程和函数的调用,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录

语句级:导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句

对象级:审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句

开启ENABLE_AUDIT以及针对语句级查询后查看日志记录;

select * from V$AUDITRECORDS;

image.png

另外在配置文件dm.ini中添加参数 AUD_PATH 指定审计文件保存位置后,可在对应log目录下找到日志记录文件。

测评项:b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相 关的信息

审计记录内容包括操作者的用户名、所在站点、所进行的操作、操作的对象、操作时间、当前审计条件等。

测评项:c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;

单个审计文件的大小可以通过 DM 的 INI 参数 AUDIT_MAX_FILE_SIZE 指定。当单个审计文件超过指定大小时,系统会自动切换审计文件,自动创建新的审计文件,审计记录将写入新的审计文件中。AUDIT_MAX_FILE_SIZE 为动态系统级参数,有效值范围为 1~4096M,缺省值为 100M。

极限情况下,审计记录可能会因为磁盘空间不足而无法写入审计文件,最终导致系统无法正常运行。对这种情况的处理有两种策略,通过设置 DM 的 INI 参数 AUDIT_FILE_FULL_MODE 进行配置。当将 AUDIT_FILE_FULL_MODE 置为 1 时,将删除最老的审计文件,直至有足够的空间创建新审计文件。当将 AUDIT_FILE_FULL_MODE 置为 2 时,将不再写审计记录;缺省值为 1。

不同AUDIT_FILE_FULL_MODE的含义如下:

参数值 含义
0 当审计文件写满时,停止写入新的审计记录,并可能触发报错(严格模式,确保记录不丢失,但可能影响业务)。
1 写满后 切换到新的审计文件(需提前配置文件路径和滚动策略,如按大小或时间分割)。
2 写满后 覆盖最早的审计记录(但可能仅覆盖部分旧记录,策略较简单)。
3 写满后 循环覆盖最早的审计记录(持续滚动写入,始终保留最新的审计记录,旧记录逐步被覆盖)。

两种策略都会导致审计记录的缺失,因此,管理员应该及时对审计文件进行备份。

SELECT * FROM V$PARAMETER WHERE NAME = 'AUDIT_FILE_FULL_MODE';

image.png

测评项:d)应对审计进程进行保护,防止未经授权的中断。

默认普通用户以及非审计员管理账户无权限关闭日志记录进程。

更多和审计相关的信息请查阅:https://eco.dameng.com/document/dm/zh-cn/pm/audit.html