之前我们已经了解安全审计打造固若金汤的数据堡垒系列文章(一),(二),(三)的部分了。第四本分我们还将继续为您介绍安全审计方面的内容,包括审计特权、用户、登录定义和其它安全特性的变更等内容。
审计特权、用户、登录定义和其它安全特性的变更
这类审计对于数据库的审计来说是必须的;你必须对数据库安全和特权的任何变更维持一套完整的审计记录。数据库管理着安全、许可、变更的复杂规划,在安全问题中的首要规则是,必须审计安全形势的任何变更。考虑审计下面的这些变更:
1、增加和删除用户、登录、角色等
2、登录和用户(角色)之间的映射关系发生变更
3、特权变更(无论是由用户还是由角色引起的)
4、口令变更
5、在服务器、数据库、语句或对象水平上对安全属性的变更
由于数据库内的安全模式是一个入口,所以必须审计对特权和许可的任何变更。攻击者会经常提升其特权水平,而且在管理员提供了错误的许可、授权后也经常出现错误。因而,对可能影响数据库安全状况的所有变更都进行完整的审计,就如同将监视摄像机放置在大楼的入口处一样,必须审计登录凭证是否发生变化。
安全许可的变更对数据库极其重要,仅依赖于每天的比较是不够的,应该选择实时变更通知,即实时审计那些没有在生产环境中提前规划的变更。这意味着你应当使用一种外部的数据库安全和审计系统,或者使用内置的数据库机制所生成的审计线索来构建实时的警告。
如果你打算自己实施这种系统,就需要捕获相关事件,然后构建警告框架。例如,下表显示了可用于SQL Server的相关事件。
在DB2中,SECMAINT是六类审计之一,在授权和撤消对象或数据库特权时,或者在许可和撤消DBADM权限时,会生成记录。在修改数据库管理员的安全配置参数(SYSADM_GROUP、SYSCTRL_GROUP、 SYSMAINT_GROUP)时,也会生成记录。下表列示了一些可能的SECMAINT的特权或授权:
在这种情况下,你可以建立一组希望用于跟踪的命令。如下图所示。
然后将规则(相关规则显示在下图中)添加到策略中,在使用这种命令时向安全管理人员发出警告。策略中的规则确保了安全管理人员能收到关于这种命令的警告,但即使没有规则,你仍能获得完整的审计线索,这种线索包括用户组中发生的任何命令。
审计数据库链接以及数据库副本的创建、变更、利用
与前面几种审计不同,对链接、同义词或昵称的审计以及对创建副本过程的审计都表明,定期析出和比较数据已经足够了。虽然你有三个选择:比较快照,使用数据库的内部审计机制,使用外部审计和安全系统。但实际上,使用diff这个小工具就足以应对。这种情形下,你只需一段能够查询这些定义的脚本,并将这些定义放在一个可用于与未来的某天进行比较的文件中。
如果你喜欢使用内部的数据库审计机制或使用外部的审计系统,就得将这些审计线索建立在对象和命令上。在多数数据库环境中,没有专门的副本和链接的审计功能。不过,你仍有许多特定的审计对象和命令。例如,你可以使用与副本有关的SQL Server对象。
【编辑推荐】