随着网络信息化的发展,信息安全问题也日益突出。在经历一段网络安全热度之后,越来越多的安全公司认识到,安全问题不只是技术问题,而更多的是管理问题。比如这样的简单例子:对于帐号和密码通常在系统建立的时候特别重视,然而经过一段时间后,由于管理上的松懈,很多情况下,原本复杂的密码又恢复成为很简单的字符,安全隐患由此产生。而这样的安全问题,很难从技术上得到解决。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
数据库是金融、信息化和很多应用系统的核心,数据库的安全性应该更加受到重视。因此,制订合适的数据库安全策略,是维护数据库安全的规范,也是其指导方针,它即从技术上维护安全也从管理上进行规范。
信息安全中,安全策略主要是维护数据信息的完整性、保密性和可用性。因此,数据库的安全策略将主要围绕这三点进行,包括物理安全、访问控制、数据备份和应急响应等。这里,我们将以微软的SQL Server 数据库为例来说明制订其安全策略的思路,其他数据库安全策略制订思路基本类似。
一、制订基本安全策略
首先需要了解安全风险,并进行预防和维护。制订安全策略的第一步是分析要保护的信息所受到的各种威胁并熟悉其风险。安全威胁大体相近,但因实际情况略有不同,这就需要具体情况具体分析。
同其他安全性一样,数据库的安全威胁主要来自三个方面:非人为破坏,比如地震等;人为的非主动破坏,比如误操作;人为主动破坏,比如黑客入侵。对于非人为破坏,主要只能依靠定期备份或者热备份等,并在相隔物理距离外保护备份。这里,主要是讨论对于人为破坏。
1、物理安全
保证物理安全是安全防范的基本。这主要是指保证数据库服务器、数据库所在环境、相关网络的物理安全性。比如:是否能够保证服务器所在网络的网线、交换机能环境的物理安全;是否只有数据库管理员能够在物理上接触数据库服务器;是否能够确保避免通过社会工程学的手段来欺骗或者诱导从而能获得物理上的访问能力等等。
2、访问控制
访问控制是基本安全性的核心。它包括了帐号管理、密码策略、权限控制、用户认证等方面,主要是从与帐号相关的方面来维护数据库的安全性。比如:Spida蠕虫仅仅利用了SQL Server数据库的最高管理员帐号sa密码为空而入侵并扩散的。
访问控制策略主要包括这些问题:
* 避免帐号被人列举。比如,非管理员获得所有数据库用户帐号列表。
* 最小化权限原则。数据库管理员仅仅分配帐号的足够使用权限。比如,如果一个用户只需要进行数据库的查询工作,那么这个用户使用的权限就只能局限于select语句,而不能有delete、update等语句的使用权限。权限的扩散以及超越应用范围的访问是访问控制的一大威胁。
* 最高权限最小化原则。确保不会分配多余的管理员权限帐号。管理员帐号的数量和安全危险性是成正比的。
* 帐号密码安全原则。分配帐号的密码必须符合密码安全原则的要求。基本密码安全要求包括:密码长度(8位以上)、密码复杂性(必须同时包括字母、数字和符号)、密码结构非连续性(密码构成内容必须是在键盘上分别隔离的元素,1234%qwert这样的密码结构就是不符合要求的)等。有条件的或者有非常高安全要求的环境甚至可以采用一次性密码。密码的安全性是访问控制的主要威胁,特别是最高管理员,比如sa帐号的密码。
* 用户认证是否足够安全。密码是否经过加密,确保认证过程的密码安全性,用户认证过程是否有日志记录。SQLServer默认情况下,数据的传输是明文的,包括密码(只是经过非常简单的编码),因此,有必要情况下必须采用比如SSL加密。
* 详尽的访问审核。访问审核能够为损害等提供可查依据。SQL Server提供了详尽的审核功能,比如:SQL 语句、角色添加删除、登录事件的成功失败、对象的使用、语句权限的使用、密码更改、数据库事件、锁事件、存储过程事件以及服务关闭启动等等。SQL Server数据库提供了SQL 事件探查器,可以用来监视这些事件等。
* 文件的访问控制。确保文件不会被人修改、删除。这些文件包括数据库系统文件、数据库文件、日志文件以及备份文件等。
3、数据备份
定期的进行数据备份是减少数据损失的有效手段,能让数据库遭到破坏(恶意或者误操作)后,恢复数据资源。这也是数据库安全策略的一个重要部分。SQL Server备份和还原组件为存储在SQL Server数据库中的关键数据提供重要的保护手段。可以从多种故障中恢复,包括:媒体故障,用户错误,服务器永久丢失。
制订适合自己的数据库备份策略,必须确定数据的可用性要求。总体备份策略包括备份的类型和频率以及所需的硬件特性和速度。最好能够测试备份和恢复过程,有助于确保拥有从各种故障中恢复所需的备份,并且当真正的故障发生时可以快速平稳地执行恢复过程。
制订过程中需要根据自己的实际情况来确定备份周期等,比如:服务器故障时间将对公司造成多大的经济损失;重新创建丢失的数据的难易程度如何;如果遇到媒体故障,如磁盘驱动器发生故障,可接受的故障时间是多长;一旦发生灾难,如因火灾丢失服务器,可接受的故障时间是多长;什么时候大量使用数据库,导致频繁的插入和更新操作,等等。
二、数据库管理和维护策略
这里所说的管理和维护策略,主要是指在管理和维护数据库过程中需要制订的一些规范。其中,需要遵循前面的基本安全策略,又同时给管理和维护提出新的要求,特别在处理一些实际特殊情况上的规范。
* 这些特殊情况包括:什么时候应该为用户分配一个自己的帐号?是否用户请求应用要求的时候就为他分配一个新的帐号,如果只是临时使用呢?用户权限需要更改的问题?数据库服务器的物理搬迁,其备份和恢复问题?数据库搬迁过程中是否需要一个临时数据库作替代?如果数据库管理员更换了,整个管理是否需要更新?
* 除了解决一些可能出现的实际问题外,还有就是维护上的重点:数据库性能监视。也需要定期监视和分析同数据库相关的网络通讯量和系统性能。
SQL Server 2000 提供多种工具监视 SQL Server 实例的性能以及在数据库中发生的用户活动。通过监视使您得以确定数据库应用程序是否按预期有效地运行,即使应用程序、数据库和环境发生了变化。例如,随着更多的并发用户使用数据库应用程序,SQL Server 上的负荷可能会增加。通过监视,可以确定是否必须更改当前的 SQL Server 实例或系统配置以处理增加的工作负荷,或者确定增加的负荷是否对性能无显著的影响。
* 定期的安全评估是必须的。通过定期的安全评估能够了解目前数据库安全的现状,也能很清晰得了解安全策略的执行情况。通常,评估的内容就是基本安全策略中的项目,以及相关环境的一些安全漏洞。
* 定期查看所有日志和日志记录机制。这些应包括操作系统事件日志、特定于应用程序的日志和入侵检测系统日志。
* 定期检查数据库服务器以确保安装了最新的安全修补程序。微软通常会在漏洞出现后及时发布公告和补丁。
三、处理应急事件
正确的事件响应机制应是您的总体安全策略和降低风险战略的不可分割的一部分。对安全事件及时做出响应有直接的好处,这是很显然的。
当然完全防止所有安全问题的发生是不可能的,所以当安全问题出现的时候,需要确保它能造成的损失和影响最小。可以采取这样的措施使安全问题的数量和影响最小化。这就包括:
* 明确地建立并实施所有策略和步骤。许多安全问题是由人为无意间造成的,可能是因为没有遵守或不理解更改管理过程,或者对安全设备配置不当。
* 建立安全事件响应小组。小组成员负责处理所有安全事件。每个成员都应有明确定义的职责,以确保能对每一个问题做出及时响应。
* 收集整理出所有相关人员或者公司的通讯信息。应确保有他们的联系人姓名和电话号码,比如事件响应小组成员的通讯信息。甚至需要地方和国家执法机关的详细信息,有助于确保知道通过什么步骤通报事件和收集证据。 当应急情况发生的时候,可以按照这些步骤由应急小组成员或者管理员指定:
* 作出初步评估,并通报发生的事件
* 立刻控制损失/将风险减到最小,并确定破坏的类型和严重程度
* 保护证据,并通知其他机构等
* 恢复系统
* 编写和整理事件记录资料,评估事件的破坏和损失代价
* 总结响应过程并更新策略
四、其他部分
当安全策略制订完后,应该对策略和过程经过彻底测试,以确保它们实用、清楚,并能提供适当的安全级别。 同时在安全策略和事件处理方面必须得到管理层的支持。
为管理员、用户制订安全培训计划。很多安全问题以及安全策略实施过程就是因为使用者对其不熟悉造成的。而且数据库总是各种应用的汇集点,因此,使用者的培训必不可少。
同时,情况总是在变化,因此数据库安全策略也应该随时调整,以便适应新的情况或者问题。