热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全

谈数据库系统安全保护机制

发布时间:2012-02-25 00:32文章来源:网络文章作者:秩名 点击次数:
摘要:  随着计算机及网络技术的发展和广发应用,越来越多的关键业务系统运行在数据库平台上。数据库中的数据作为一个组织中的数字财产,一旦泄露或丢失就可能让组织蒙受经济损失,或者失去客户和公众的信任。本文将从实际安全保护经验出发,结合《信息系统安全等...

  1、引言
随着计算机及网络技术的发展和广发应用,越来越多的关键业务系统运行在数据库平台上。数据库中的数据作为一个组织中的数字财产,一旦泄露或丢失就可能让组织蒙受经济损失,或者失去客户和公众的信任。本文将从实际安全保护经验出发,结合《信息系统安全等级保护基本要求》提出具体的数据库系统安全保护措施。

  2、数据库系统安全保护机制

  GB/T 22239-2008《信息系统安全等级保护基本要求》的技术基本要求中,为保证数据库系统的安全,要求实现包括身份验证、访问控制、数据加密、审计跟踪以及数据备份与恢复的安全功能。

  2.1 有效保护数据库系统用户口令认证

  口令认证方式是鉴别数据库系统用户身份最基本的方式。因此,实施严格的账号和密码管理机制是实现数据库系统安全的重点。数据库系统用户安全策略包括以下几方面。

  (1) 保护默认的用户账号。在新的数据库系统安装时,通常会安装若干默认账号,而这些账号、密码以及权限在互联网上都是公开的,恰恰为攻击者提供了机会和目标。因此,为确保账号的安全,应避免因安装不需要的账号而带来不必要的危险。

  (2) 管理并确保密码安全。一个未经慎重选择又从未变更过的密码对于数据库系统来说,是巨大的安全隐患之一。根据密码复杂性规则,通常需要验证密码是否和账号一致、密码是否超过一定字符长度、密码是否和过去的密码一致、密码是否很容易被猜测到。因此,在制定数据库系统密码规范时,应该包括密码生存周期。宽限时间、密码重复使用(最大)时间、登录失效、账号锁定和密码验证功能。以Oracle数据库系统为例,设定用户密码规范的程序如下:
SQL>CREATE PROFILE strong_pwd LIMIT
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 15
PASSWORD_REUSE_TIME 180
PASSWORD_REUSE_MAX UNLIMITED
FALLED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 5
PASSWORD_VERIFY_FUNCTION password_strong_name

  (3) 删除陈旧账号。在确保数据库系统安全的过程中,一个良好的习惯是删除不再使用或不再需要的账号,过期的账号至少应该被锁定或被删除。此外,之前在数据库系统中已经安装但现在需要被删除的数据库应用也会造成安全风险。

  2.2 加强对数据库系统的访问控制

  访问控制是允许或禁止访问资源的过程。基于角色的访问控制是一种数据库权限管理机制,它根据不同的职能岗位划分角色,资源访问权限被封装在角色中,而用户被赋予角色,通过角色来间接访问资源。在给角色或用户授权时,必须遵循最小权限和特权分离的基本安全原则。

  (1) 最小权限原则是只需授予列级权限的不授予表级权限,只需授予表级权限的不授予库级权限,只需授予对象权限的不授予系统权限。此外,在确定不需要使用某种权限时要及时收回角色和权限。最小权限原则有效地限制、分割了用户对数据资源进行访问时的权限,降低了非法用户或非法操作可能给系统及数据带来的损失。

  (2) 特权分离原则是利用角色间约束能力实现权利之间的制约,即数据库管理员、系统安全员和系统审计员三个角色是互斥的,一个用户最多拥有这三个角色之一。特权分离原则有利于保证权力之间的制衡和监督,能减少未经授权访问和欺诈行为发生的概率。

  在《信息系统安全等级保护基本要求》第三级以上要求中,提出实现强制访问控制功能。强制访问控制机制对数据库系统中的每个存取对象指派一个密级,对每个用户授予一个存取级,任意一个对象,只有具有合法存取级的用户才可以存取,可以有效地防止木马类的恶意攻击。目前,实现强制访问控功能要求的方法除采用安全数据库管理系统外,还可以通过部署第三方安全增强产品实现数据库强制存取控制机制。

  2.3 确保重要数据的加密

  数据加密是保证数据库系统中数据保密性和完整性的有效手段。数据库系统的加密措施是指对数据库系统中的重要数据进行加密处理,确保只有当系统的合法用户访问有权限的数据时,系统才把相应的数据进行解密操作,否则,数据库系统应当保持重要数据的加密状态,以防止非法用户利用窃取到的明文信息对系统进行攻击。

  2.4 保护访问数据库的进出网络通道

  虽然防病毒软件和防火墙提供了一定级别的安全防护,但并不能因此认为网络通信就是安全的。数据库监听器作为连接数据库服务端得网络进程,正经受着巨大的攻击风险。首要的任务是对监听过程进行密码保护,而改变默认端口也是确保数据库监听器安全的一种好办法。通过配置数据库监听器,可以使其允许或不允许客户IP地址的访问。这也是保护数据库不受非预期用户访问的简单而有效的方法。

  2.5 建立安全的审计机制

  审计就是对指定用户在数据库系统中的操作进行监控和记录的一种数据库功能。审计功能在数据库系统中运行时,自动将对数据库的所有操作记录在审计日志中,包括用户登录操作、对数据库的操作及系统功能的使用等。审计日志记录可用于事后监督,同时对日志的分析还可用于预防入侵,从而提高数据库系统的安全。
以Oracle数据库系统为例,以下程序可实现对用户author执行SELECT操作的审计:audit SELECT table by author;

  2.6 实施备份与故障恢复措施

  备份与恢复是实现数据库系统安全运行的重要技术之一,是确保数据库系统因各种原因发生系统故障时,能尽快投入再使用的重要保证。按照数据库系统所遭受破坏程度的不同,备份与恢复措施又分为灾难性备份和非灾难性备份。

  (1) 灾难性备份措施是通过设置主数据库系统的远程异地备份,以备数据库系统不能正常运行时启用。

  (2) 非灾难性备份措施是采用数据库标准备份、专用备份设备等方式进行全系统备份、差异备份和增量备份,以确保在数据库系统失效时,利用已有的数据备份能尽快有效地把数据库还原到错误发生的前一刻上,同时保持数据的完整性和一致性。

  3、结语

  本文依据《信息系统安全等级保护基本要求》,从数据库系统的身份验证、访问控制、数据加密、审计跟踪以及数据备份与恢复等方面提出了具体的安全保护措施,这些措施在实际运用中还应该根据具体应用环境的安全需要,紧密结合网络安全、操作系统安全进行分析,并制定统一的安全管理策略。数据库系统安全防范是一个永久性的问题,只有通过不断的改进和完善安全手段,才能保证系统的正常运行,以及提高系统的可靠性。

标签分类: 数据库 系统 安全保护

上一篇:利用MySQL加密函数保护Web网站敏感数据
下一篇:动态网站“MySQL”索引的分析和优化加速