数据库安全审计手册
数据库系统功能强大而丰富,对于一个数据库环境而言,我们可以生成很多类型的审计记录。知道有哪些审计类型以及如何实施这些审计有助于你满足合规需求。要实施完善的数据库审计,必须理解的一个关键问题是需求,从而知道可以使用哪些审计类型来满足自己的需求。
目录:
-
>审计数据库的登入和登出
对于每一个事件,你都需要保存登录名和时间,但你还应该考虑记录附加信息。这包括发起连接的客户端的IP地址,以及用于初始化连接的程序。例如,在Oracle环境中,你可能想知道该连接是否由SQL Plus等初始化。
-
>审计使用数据库的源头
与登录活动审计相关的是客户源信息的审计。这包括审计哪个网络节点连接到了数据库(例如,使用一个IP地址还是主机名),并且审计使用哪个应用程序访问了数据库。
-
>审计正常操作时间之外的数据库使用
审计正常操作时间之外的数据库使用非常必要,这是因为在下班期间所进行的活动通常都是可疑的,它有可能是未授权用户试图访问或篡改数据的一个结果和证明。当然,黑客在伪装过程中通常也会试图破坏数据库。
-
>审计DDL(数据描述语言)活动
设计的变更审计,或者更具体地讲,DDL的活动审计一直很重要,并且是最常实施的审计线索之一。这是因为设计的变更审计在安全和合规方面,以及从配置管理和过程方面都很重要。从安全的观点来看,DDL命令都是潜在的最具有破坏力的命令,易被攻击者利用从而破坏系统。
-
>审计数据库错误
审计由数据库返回的错误也是很重要的,它是你应实施的首个审计日志之一。从安全的观点来看,这尤其重要。失败的登录是需要进行记录和监视的错误之一,即使你并没审计数据库的登录。最后,任何失败的提升特权的试图操作都表明攻击正在发生。
-
>存储过程和触发器的来源变更审计
由于数据库木马使用了灵活但却完全过程化的编程语言,要隐藏恶意代码是很容易的。因此,你应采取最佳方法来审计这些结构的所有变更。有几种方法可实现这种审计。
-
>审计特权、用户、登录定义和其它安全特性的变更
这类审计对于数据库的审计来说是必须的;你必须对数据库安全和特权的任何变更维持一套完整的审计记录。数据库管理着安全、许可、变更的复杂规划,在安全问题中的首要规则是,必须审计安全形势的任何变更。
-
>审计敏感数据的变更
对数据操纵语言(DML)的审计是另一种常见需求,特别是在财务信息的正确性成为主要问题时。相关的审计需求包括,全面记录每一次DML活动的新值和旧值。
-
>审计关于私密问题的SELECT语句
SELECT语句过去并不是审计线索的重点,但最近对私密问题的重视已经改变了这种情况。例如,如果你需要确保客户、合伙人、雇员的机密信息不会从数据库中泄露,就得重视审计SELECT语句。
-
>对审计对象的定义变更实施审计
必须审计对审计对象的定义所做的任何更改。如果你有一个可以监控办公楼的监控设备,不要忘了监视其所指向的方向。否则,入侵者可以将监控设备指向墙壁,或者用纸粘在镜头上,然后再从事其它不法活动。