审计是规则遵从和安全计划的核心组成部分,也是目前IT部门中普遍实行的做法。关系数据库是第一款嵌入审计功能、并将其作为本地平台功能的企业级应用程序。然而,这次尝试却给审计带来了不好的名声。厂商只是提供了最基本的功能,却没有给数据库管理员提供所需要的性能和易管理性,因此管理员们至今仍对审计功能感到厌恶,并依旧抵制使用数据库审计跟踪功能。
数据库管理员对本地审计功能感到厌恶是有其合理性的:本地审计的性能和数据管理效果曾带给他们梦魇般的遭遇,此外,审计跟踪并不是为了目前它们所从事的任务而设计的。虽然存在着这些不足,但是法规遵从所需的精确、完整的交易记录却是关系数据库审计跟踪所能够提供的。
安全和规则遵从的需要促使人们去使用数据库审计功能,这些日志文件也给人们提供了洞察数据库活动的独特视角。 数据库厂商正致力于优化产品的审计性能,减小历史遗留问题,但用户依然需要谨慎部署,从而避免目前已知的问题。
什么是数据库审计
数据库审计是指对审计和事务日志进行审查,从而跟踪数据和数据库结构的变化。数据库可以这样进行设置:捕捉数据和元数据的改变,以及存储这些资料的数据库所做的修改。典型的审计报告应该包括以下内容:完成的数据库操作、改变的数据值、执行该项操作的人,以及其他几项属性。这些审计功能被植入到所有的关系数据库平台中,并确保生成的记录文件具有较高的准确性和完整性,就好像在数据库中存储的数据一样。此外,审计跟踪还能把一系列的语句转化为合理的事务,并提供业务流程取证(forensic)分析所需的业务环境。
不过,审计功能也存在限制,例如不能对数据访问语句(通常称之为SELECT语句)进行审计。另外,本地数据库审计很难捕捉到用户认可的原始查询(query)和变量(variables),只能从综合的角度对事件做出记录,而日志则可以捕捉到改变前后的数据值。这也使得审计跟踪在检测已改变的内容时,比检测已访问的内容更为有效。
对数据库活动和状态进行取证检查时,审计可以准确的把握事件的本质。对SELECT语句(用户查看数据时会使用)进行检查时,因为本地平台缺乏对这些语句的收集能力,即便利用高级选项实现了这项操作,也会导致性能受到极大损失。既然有简单的方法可以高效地对SELECT语句进行登记(cataloging)(例如,登入失败、尝试查看信用证信息),为什么企业还要选择在本地数据库审计功能上增加其他的数据收集资源。不管怎样,内置的数据库审计功能可以生成事务认证和法规控制的核心信息。
数据库审计的促进因素
在对一些特定的数据库审计创建工具和收集工具进行分析之前,让我们先来探究一下为什么需要加入这些功能。你所在的企业可能存在下面所提的一项也或是所有需求。
规则遵从:法规控制在一些领域起着关键性的作用,例如在管理变动、业务流程验证、系统故障,或生成具有一定准确性和一致性的安全事件材料等方面。这也是数据库审计在欺诈检测方面如此重要的原因所在。此外,数据库审计对与萨班斯-奥克斯利(Sarbanes-Oxley)法案相关的法规遵从也具有重大的意义。管理变动、事务历史记录、特定事件报告通常都是法规控制所要求的。PCI-DSS额外控制也是非常重要的,因为系统权限更改、或管理行为和系统功能的变更都需要进行仔细的审查。
你需要时刻谨记的是,数据库审计并没有在各种规则遵从(包括SOX、PCI-DSS、HIPAA、FERPA或美国国家隐私条例)中被明确地列为一项必须具备的要求。在实践中,审计为政策执行所必要的元素(如,业务流程、数据使用、以及管理任务)都提供了精确、简洁的历史记录。因为所有企业应用程序都需要数据库的支持,并且是数据状态(业务处理的净结果)的唯一权威,所以数据库是实行控制最合理、也最有效的地方。因此,大多数以跟踪特定用户群体、对象或数据元素为核心任务的审计工作都需要进行数据库审计。
安全:数据的安全和隐私是使用数据库审计功能的另一个主要促进因素,比以上所述的几点因素重要得多。捕捉失败的登入、查询,以及管理功能的误用是对系统探查能力进行检测的一种途径。对能够暴露数据的视窗(views)插件进行监控、使用系统功能的公共许可、为普通用户提供管理能力的权限更改,这些都是很常见的使用案例。对谁在何时、何地进行了何种操作等属性进行取证分析,能够提供非常不错的提示信息,以显示数据库的使用是否合法,或是否有可能受到潜在的攻击。为防止数据库被篡改,审计跟踪提供了足够的信息以确定更改的类型,并帮助用户理解必需的纠正措施。通常情况下,审计跟踪用于辅助SIEM(安全信息和事件管理)以及日志管理等安全工具,进行相关性和安全事件的通知。
操作: 数据库审计功能最初是为帮助数据库管理员审查数据库活动而设计的,使得他们可以理解如何分配资源以及对何处的查询做出调整。尽管目前已经有了完成上述任务的工具,并且性能也不错,数据库审计仍然在进行着故障分析和业务流程分析,从而确保数据库的可靠性。因为你可以设想下述场景:当灾难性的故障发生了,你会问“刚才发生了什么事?”,此时,如果进行审计跟踪的话,你可以极为简便的恢复系统。
【编辑推荐】