a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
d)应对审计进程进行保护,防止未经授权的中断。
三、测评项aa)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
SQLServer默认开启着错误日志,在服务器-管理-SQL Server日志中:
错误日志大概记录的内容:
2.1 日志自动记录的信息大概有如下:
(1) SQL SERVER 的启动参数,以及认证模式,内存分配模式。
(2) 每个数据库是否能够被正常打开。如果不能,原因是什么?
(3) 数据库损坏相关的错误
(4) 数据库备份与恢复动作记录
(5) DBCC CHECKDB记录
(6) 内存相关的错误和警告
(7) SQL调度出现异常时的警告。一般SERVER Hang 服务器死机会伴随着有这些警告
(8) SQL I/O操作遇到长时间延迟的警告
(9) SQL在运行过程中遇到的其他级别比较高的错误
(10) SQL内部的访问越界错误(Access Violation)
(11) SQL服务关闭时间
(12) SQL SERVER版本,以及windows和processor基本信息。
2.2 日志开启跟踪能看到的信息
(1) 所有用户成功或失败的登入
(2) 死锁及其参与者的信息。跟踪标志1222 或1204
2.3 日志不能记录的问题
(1) 阻塞问题。只要阻塞还没有严重到影响线程调度,日志里是不会体现的。
(2) 普通性能问题,超时问题。
(3) windows层面异常。
错误日志可以配置的内容有:
从上面可以得知,SQLServer默认虽然开启着错误日志,对一部分事件进行了记录。
但是错误日志记录的事件的范围不够大,并没有达到对重要的用户行为和重要安全事件进行审计这个要求,比如记录更改关键数据的语句等,所以只能算是部分符合。
如果想要达到符合,需要自创审核规范和审核对象,SQLServer是具备这个功能的,在服务器的安全性和数据库的安全性中可以查看:
至于具体如何实现其中的规则,这里我就不详细写了,网上写得很清楚:SQLSERVER2008新增的审核/审计功能
(之所不写是因为大部分情况下被测评方要么就没有采取任何措施,要么就使用数据库审计系统来实现了,通过数据库本身的功能来实现的概率很小)
哦,对了,这是SQLServer2008和之后版本才具备的功能,在之前的版本中,实现相关功能的方法有:
四、测评项b
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;