《个人住房数据库安全标准.doc》由会员分享,可在线阅读,更多相关《个人住房数据库安全标准.doc(49页珍藏版)》请在金锄头文库上搜索。
1、个人住房数据库安全标准 第一章 目的与范围1.1.目的为了加强个人住房数据库系统安全管理,提高个人住房数据库安全水平,保证数据库系统的正常安全运行,特制定本数据库的安全标准。1.2.范围数据库安全包含传统的备份与恢复,用户认证与访问控制,数据存贮和通信环节的加密,而且它作为操作系统之上的应用平台,其安全与网络和主机安全息息相关。本文对个人住房信息系统的数据库系统,安全加固进行指导。1.3. 数据库安全保护目标个人住房信息系统数据库中存储的数据是国家的宝贵的信息资源,这些数据的安全的需求概括来讲就是:正确的人能够及时地存取到正确的数据。 数据安全保护目标有下面三方面: 数据机密性 安全的数据库系
2、统需保证数据的机密性,只能让合法的用户看到他该看到的数据。 数据完整性 数据完整性要求:保证数据合法有效;保护数据不被恶意删除和修改;保证数据之间的逻辑依赖关系。 数据可访问 数据可用性意味着数据对授权用户是可用的,能够保证业务的正常运行。包括对数据的备份恢复和避免恶意的拒绝服务攻击。 第二章 数据安全数据安全风险分析与对策2.1. 数据安全风险分析在数据库应用中,数据安全面临着以下威胁: 数据被篡改通信的私有性对保证数据在传输过程中不被篡改非常重要。分布式的环境给恶意攻击者篡改数据带来了可能。在数据篡改的攻击中,一个未授权的攻击者对传输中的数据进行拦截、篡改后,再把数据继续进行传输。 数据被
3、窃取 数据必须能够安全地存储和传输,因此敏感信息诸如信用卡号、密码等不会被窃取。在大多数网络中,即使通信通道全部是有线链路,未授权用户也可以设法接入网络以窃听网络上的传输数据。对于所有类型的网络,包括局域网和广域网这种数据窃听都有可能。 用户身份被伪造攻击者可能冒充合法用户从网络上登录到数据库系统。在分布式环境中,攻击者很容易伪造身份获取到敏感重要的信息。并且,攻击者还可以劫持连接。例如声称的客户机B和声称的服务器A可能并不是真正的客户机B和服务器A。 伪造身份现已成为网络安全的最大威胁之一。 密码潜在的问题在大型的系统中,用户必须记住不同应用和不同服务的多个密码,他们通常选择易于猜测的密码,
4、如姓名、字典里的一个单词等以方便记住。这些密码对于攻击来说是很脆弱的;并且,由于不同的应用都需要密码,用户往往把密码标准化,不同的应用的密码略有不同,从一个应用的密码可以推知另外一个应用的密码,这样方便记住。所有这些问题都给安全带来了威胁。 未经授权对表列存取数据库可能含有机密的表,或者表里可能含有机密的列,这些机密数据不应该不加区分地被所有用户访问。所以应该在列这个更细的级别对数据进行保护。 未经授权对行存取有一些数据行可能含有机密的信息,这些机密的数据行不应该不加区分地被能访问该表的所有用户访问,应该有更细粒度的安全控制保证数据的机密性。比如说在一个共享的业务环境中,用户应该只能够存取他自
5、己的信息:每个客能看到他自己的订单记录,而不能够看到所有的订单记录。这些限制可以通过应用强加上去,但是如果用户绕过应用,直接访问数据库,就会有数据机密性的风险。所以需要在数据这一层加上访问安全策略的控制。 缺乏有效的跟踪、监控机制如果系统管理员不能跟踪用户的行为,则用户对他们的行为不会负责任。所以必须有可靠的机制来监控用户对数据的操作。2.2. 典型数据库安全攻击数据库通常包含最为敏感、机密的数据。例如:人力资源部门的个人详细资料、客户详细资料、订单或信用卡详细资料。必须安全地存储这类数据,并防止其在未经授权的情况下被披露、篡改或恶意使用。即便数据库服务器并未直接与 Internet 相连,仍
6、需防止其遭受利用配置弱点、现有缓冲器溢出或不良开发惯例而实施的攻击。 SQL 注入实施 SQL 注入攻击时,攻击者会充分利用应用程序的输入验证和数据访问代码中的漏洞,使用 Web应用程序的安全上下文在数据库中随意运行命令。 SQL 注入是一种攻击,它将恶意代码插入稍后将传递到数据库系统以进行分析和执行的字符串中。任何返回 SQL 语句的客户端应用程序都会使信任它的服务器遭受这样的插入攻击,因为该服务器将执行接收到的任何语法上有效的语句。当应用程序根据用户输入的内容构造 SQL 语句时,最容易插入。当客户端将用户输入的内容传递到服务器端存储过程时,也有可能进行插入攻击。如果应用程序使用特权过多的
7、帐户连接,可能会对服务器造成重大破坏。 网络窃听大多数应用程序的部署体系结构都包括从数据库服务器中物理分离出数据访问代码。因此,必须防止网络窃听者窃取诸如应用程序特定数据或数据库登录凭据等敏感数据。 未经授权的服务器访问应仅限特定客户端计算机可以直接访问数据库服务器,以防止未经授权的服务器访问。 密码破解常见的密码攻击方式是尝试破解众所周知的帐户名称。 导致密码破解的常见漏洞为:弱密码或空密码,包含日常用语的密码;常见的密码破解攻击包括:字典攻击,手动猜测密码 2.3.数据库安全管理关键要点一个强大的数据库安全系统应当确保其中信息的安全性并对其有效地控制。下面列举的原则有助于企业在安全规划中实
8、现客户利益保障,策略制订以及对信息资源的有效保护。 管理细分和委派原则在典型的数据库工作环境中,DBA总是独立执行所有的管理和其它事务工作,传统数据库管理并没有安全管理员(Security Administrator)这一角色,这就迫使数据库管理员(DBA)既要负责帐号的维护管理,又要专门对数据库执行性能和操作行为进行调试跟踪,从而导致管理效率低下。通过管理责任细分和任务委派,安全管理员将得以从常规事务中解脱出来,而更多地关注于解决数据库安全执行以及管理相关的重要问题。 最小权限原则许多新的保密规则针对对特定数据的授权访问。企业必须本着最小权限原则,从需求和工作职能两方面严格限制对数据库的访问
9、权。通过角色(role)的合理运用,最小权限可确保数据库功能限制和对特定数据的访问。 帐号安全原则用户帐号对于每一个数据库联接来说都是必须的。用户帐号设置在缺乏基于字典的密码强度检查和用户帐号过期控制的情况下,只能提供很有限的安全功能。帐号应遵循传统的用户帐号管理方法来进行安全管理。这些方法包括:更改缺省密码;应用适当的密码设置;当登录失败时实施帐号锁定;对数据提供有限制的访问权限;禁止休眠状态的帐户,以及管理帐户的生命周期等。 有效的审计数据库审计是数据库安全的基本要求。数据库审计经常被DBA以提高性能或节省磁盘空间为由忽视或关闭,这大大降低了管理分析的可靠性和效力。审计跟踪对了解哪些用户行
10、为导致数据的修改至关重要,它将与数据直接相关的事件都记入日志,因此,对监视数据访问和用户行为是最基本的管理手段。企业应针对自己的应用和数据库活动定义审计策略。审计并非一定要按要么对所有目标,要么没有审计的粗放模式进行,从这一点来看,智能审计的实现对安全管理意义重大-不仅能节省时间,而且能减少执行所涉及的范围和对象;通过智能限制日志大小,还能突出更加关键的安全事件。 加强关键数据库安全保护关键数据库中的数据是支撑企业业务工作的宝贵信息资产,为了保护关键数据库的机密性、完整性和可用性,必须建立完善的数据库安全访问控制策略,采用数据库提供的安全机制对数据库数据安全保护,实行用户帐号管理、密码管理、访
11、问权限管理控制、数据库加密、备份恢复等方面的安全加固。 第三章 数据库基本安全架构 3.1. 数据库安全机制考虑数据库系统面对安全的挑战,业界通常采用以下技术对安全进行控制: 身份验证 访问控制 权限管理 审计 加密 数据完整性以下是针对不同的数据库安全风险可采用的数据库安全技术对照表。 3.2. 成熟数据库安全机制 账户认证机制数据库安全性中最基本的概念之一就是验证。系统通过这个过程来证实用户身份。用户可以通过提供身份证明或验证令牌来响应验证请求。用户提供身份标识表示其声称自己是被授权可访问该环境的人,密码则将提供用户的验证证据。当然,这种验证假定用户的密码受到很好的保护,而且是唯一一个知道
12、这个密码的人。 用户验证由 数据库系统 或者是 数据库系统 之外的安全性工具完成,许多大型的数据据库系统都提供了用户验证的功能。如果采用数据库系统之外的安全性工具,这些工具通常是操作系统的一部分或独立第三方身份验证工具。事实上,安全性不仅是数据库问题,操作系统厂商也要花费很多的时间、金钱和心思确保他们的产品是安全的。但是,有些操作系统并没有本地安全机制。如果使用的是没有安全机制的操作系统,那可以把环境配置成依靠在更安全的系统上运行的数据库系统 服务器来提供这种安全性。也可以采用独立的第三方身份验证工具(如由 Open Group 定义的分布式计算环境安全服务(Distributed Compu
13、ting Environment(DCE)Security Services)来给数据库系统环境添加一层安全层。数据库系统可以协调这些外部安全工作与其安全主动性来保护事务或分析环境。一旦用户身份验证成功,数据库系统 记下用户的身份标识和其它相关的安全信息,如用户组列表。用户必须使用 授权名或授权标识以被 数据库系统识别,授权名或授权标识可以与用户标识或映射值相同。这一连接信息将在用户连接期间保留。用户验证验证的方式因为验证可以由数据库系统、操作系统或第三方认证工具处理,所以数据库系统的验证 可以通过参数的配置来选择的不同验证选项。数据库系统 使用这一参数确定验证应该以何种方式、在何处发生。 设
14、置在逻辑上可以分组为以下不同类别:SERVER(服务器)、Client(客户机)、第三方工具(如DCE)。 服务器验证提供两种方式: 普通方式缺省安全性机制,指明验证应该使用服务器的操作系统在服务器上发生。如果用户标识和密码是在连接期间指定的,那么 数据库系统 将调用操作系统函数来验证提交的用户标识和密码。(在基于 Windows 的环境中,用户标识常被称为用户名。用户名和密码合起来常被称为用户账户。) 加密方式本质上同缺省选项是一样的,只有一点例外,即从客户机传到服务器的密码是加密的。数据库系统在连接时使用密码加密技术和 Diffie-Hellman 算法为加密算法生成密钥。 Client(
15、客户机)验证客户机验证指的是用户身份验证将在客户机上发生。如果客户机驻留在原本就具有安全特性的操作系统(例如,AIX)上,那么它就是可信任客户机。如果服务器接收到来自可信任客户机和不可信任客户机的请求,那么 根据配置选项允许可信任客户机使用客户机验证(client authentication)获得访问权,而不可信任客户机则必须提供密码才能成功验证。 第三方产品验证选项一些管理员愿意实现第三方产品安全服务,原因是它提供用户和密码集中式管理,不传送明文密码和用户标识并且向用户提供单次登录。数据库系统 使用第三方产品来提供对安全服务的集成支持。 视图控制机制视图的作用不同的用户对数据库中数据管理和使用的范围是不同的。为此,DBMS提供了将数据分类的功能,即建立视图。管理员把某用户可查询的数据逻辑上归并起来,简称一个或多个视图,并赋予名称,在把该视图的查询权限授予该用户(也可以授予多个用户)。 视图经常用于对数据设置行级保密和列级保密。例如,可以授权用户访问一个视图,这个视图只显示该用户可以访问的行,而不显示表中所有行。同样,可以通过视图限制该用户访问的列。