《IBM—中国移动企业信息化数据库安全规范z240228.docx》由会员分享,可在线阅读,更多相关《IBM—中国移动企业信息化数据库安全规范z240228.docx(48页珍藏版)》请在课桌文档上搜索。
1、级:文档编号:项目代号:中国移动企业信息化数据库安全规范Version1.0中国移动通信CHINAMOBILE中国移动通信有限公司二零XX年十二月拟制:审核:批准:会签:标准化:版本控制版本号日期参与人员更新说明分发控制编号读者文档权限与文档的主要关系1创建、修改、读取负责编制、修改、审核2批准负责本文档的批准程序3标准化审核作为本项目的标准化负责人,负责对本文档进行标准化审核4读取5读取目录第1章目的与范围11.1. 目的11.2. 适用范围11.3. 数据库安全保护目标1第2章数据库数据安全风险分析与对策32.1. 数据安全风险分析32.2. 典型数据库安全攻击方式42.2.1. SQL注
2、入52.2.2. 网络窃听.62.2.3. 未经授权的服务器访问62.2.4. 密码破解.62.3. 数据库安全管理关键要点72.3.1. 管理细分和委派原则.72.3.2. 最小权限原则.72.3.3. 帐号安全原则.72.3.4. 有效的审计82.3.5. 加强关键数据库安全保护8第3章数据库基本安全架构93.1. 数据库安全机制考虑93.2. 成熟数据库安全机制IO3.2.1. 账户认证机制.103.2.2. 视图控制机制.123.2.3. 访问控制机制.133.2.4. 安全审计机制.16第4章数据库系统安全加固184.1. 数据库系统的安全防护架构184.2. 网络系统层次安全防护1
3、84.2.1. 防火墙隔离.194.2.2. 入侵检测.194.2.3. VPN204.3. 操作系统层次安全加固204.3.1. 操作系统用户安全设置214.3.2. 操作系统安全日志设置224.3.3. 关闭非必要的服务和程序224.3.4. 修补操作系统和更新包234.4. 数据库管理系统安全加固244.4. L数据库安全策略要点244.4.1. 略244.4.2. 略254.4.3. 略254.4.4. 安全性策略264.4.5. 者安全策略264.4.6. 数据库帐户安全274.4.7. 密码安全设置284.4.8. 访问权限安全314.4.9. 数据库加密.324.4.10. 日志
4、记录354A.7.审计.35448.备份恢复.374.49管理员客户端安全404.4.10.数据库系统安全补T.41第5章进一步的安全加固考虑425.1. 细粒度访问控制425.2. 应用程序安全检查435.3. 数据库系统与基于标准的公共密钥体系PKI集成445.4. 关键数据库系统灾难备份44第1章目的与范围1.1. 目的为了加强中国移动集团企业信息化办公室下属各公司的网络数据库系统安全管理,提高中国移动集团下属各公司办公网的网络数据库系统安全水平,保证数据库系统的正常安全运行,特制定本数据库的安全加固规范。随着基础网络建设和应用系统开发的日益成熟与完善,尤其是企业信息化建设的前景和风险共
5、存的事实,安全问题逐步成为企业信息化部门关注和讨论的焦点。对于企业来说,信息系统最重要的资源并不是网络和设备,而是有价值的数据和存贮这些关键数据的地方一数据库。本文档旨在于规范中国移动集团企业信息化办公室下属各公司对通用数据库进行的安全加固。1.2. 适用范围数据库安全包含传统的备份与恢复,用户认证与访问控制,数据存贮和通信环节的加密,而且它作为操作系统之上的应用平台,其安全与网络和主机安全息息相关。本文对中国移动集团企业信息化办公室下属各公司办公网系统的数据库系统,加固进行指导。1.3. 数据库安全保护目标中国移动关键数据库中存储的数据是中国移动的宝贵的信息资源,这些数据的安全的需求概括来讲
6、就是:正确的人能够及时地存取到正确的数据。数据安全保护目标有下面三方面: 数据机密性安全的数据库系统需保证数据的机密性,只能让合法的用户看到他该看到的数据。 数据完整性数据完整性要求:(1)保证数据合法有效;(2)保护数据不被恶意删除和修改;(3)保证数据之间的逻辑依赖关系。 数据可访问数据可用性意味着数据对授权用户是可用的,能够保证业务的正常运行。包括对数据的备份恢复和避免恶意的拒绝服务攻击。第2章数据库数据安全风险分析与对策2.L数据安全风险分析在数据库应用中,数据安全面临着以下威胁:数据被篡改通信的私有性对保证数据在传输过程中不被篡改非常重要。分布式的环境给恶意攻击者篡改数据带来了可能。
7、在数据篡改的攻击中,一个未授权的攻击者对传输中的数据进行拦截、篡改后,再把数据继续进行传输。比如一个攻击者把银行交易的金额从100元改为I(XX)元,导致交易错误。数据被窃取数据必须能够安全地存储和传输,因此敏感信息诸如信用卡号、密码等不会被窃取。在大多数网络中,即使通信通道全部是有线链路,未授权用户也可以用workstation或者PC设法接入网络以窃听网络上的传输数据。对于所有类型的网络,包括局域网和广域网这种数据窃听都有可能。用户身份被伪造攻击者可能冒充合法用户从网络上登录到数据库系统。在分布式环境中,攻击者很容易伪造身份获取到敏感重要的信息。并且,攻击者还可以劫持连接。例如声称的客户机
8、B和声称的服务器A可能并不是真正的客户机B和服务器Ao伪造身份现已成为网络安全的最大威胁之一。密码潜在的问题在大型的系统中,用户必须记住不同应用和不同服务的多个密码,他们通常选择易于猜测的密码,如姓名、字典里的一个单词等以方便记住。这些密码对于攻击来说是很脆弱的;并且,由于不同的应用都需要密码,用户往往把密码标准化,不同的应用的密码略有不同,从一个应用的密码可以推知另外一个应用的密码,这样方便记住。所有这些问题都给安全带来了威胁。未经授权对表、列存取数据库可能含有机密的表,或者表里可能含有机密的列,这些机密数据不应该不加区分地被所有用户访问。所以应该在列这个更细的级别对数据进行保护。未经授权对
9、行存取有一些数据行可能含有机密的信息,这些机密的数据行不应该不加区分地被能访问该表的所有用户访问,应该有更细粒度的安全控制保证数据的机密性。比如说在一个共享的业务环境中,用户应该只能够存取他自己的信息:每个客户只能看到他自己的订单记录,而不能够看到所有的订单记录。这些限制可以通过应用强加上去,但是如果用户绕过应用,直接访问数据库,就会有数据机密性的风险。所以需要在数据这一层加上访问安全策略的控制。缺乏有效的跟踪、监控机制如果系统管理员不能跟踪用户的行为,则用户对他们的行为不会负责任。所以必须有可靠的机制来监控用户对数据的操作。2. 2.典型数据库安全攻击方式数据库通常包含最为敏感、机密的数据。
10、例如:人力资源部门的个人详细资料、客户详细资料、订单或信用卡详细资料。必须安全地存储这类数据,并防止其在未经授权的情况下被披露、篡改或恶意使用。即便数据库服务器并未直接与Internet相连,仍需防止其遭受利用配置弱点、现有缓冲器溢出或不良开发惯例而实施的攻击。数据库攻击的执行者可能是: 为利用数据库而使用的不安全的Web应用程序。 具有网络访问权限的不道德的管理员。 受骗而运行恶意代码的数据库用户。下图显示的是一些主要的威胁和漏洞,它们可导致数据库服务器的安全受到威胁并可能使敏感数据被毁或被窃取。涛码破津朴权过品的眼芬帐户糊仅取无济数据库服务器的安全威胁和漏洞2.2.1. SQL注入实施SQ
11、L注入攻击时,攻击者会充分利用应用程序的输入验证和数据访问代码中的漏洞,使用Web应用程序的安全上下文在数据库中随意运行命令。SQL注入是一种攻击,它将恶意代码插入稍后将传递到数据库系统以进行分析和执行的字符串中。任何返回SQL语句的客户端应用程序都会使信任它的服务器遭受这样的插入攻击,因为该服务器将执行接收到的任何语法上有效的语句。当应用程序根据用户输入的内容构造SQL语句时,最容易插入。当客户端将用户输入的内容传递到服务器端存储过程时,也有可能进行插入攻击。如果应用程序使用特权过多的帐户连接,可能会对服务器造成重大破坏。2.2.2. 网络窃听大多数应用程序的部署体系结构都包括从数据库服务器
12、中物理分离出数据访问代码。因此,必须防止网络窃听者窃取诸如应用程序特定数据或数据库登录凭据等敏感数据。可加大网络窃听可能性的漏洞包括:不安全的通信渠道以明文方式向数据库传送凭据2.2.3. 未经授权的服务器访问应仅限特定客户端计算机可以直接访问数据库服务器,以防止未经授权的服务器访问。使数据库服务器易遭未经授权的服务器访问的漏洞包括: 未在外围防火墙封锁数据库服务端口 缺少IPSeC或TCP/IP筛选策略经过身份验证的用户和无用户名及密码的用户都可遭受直接连接攻击。例如: 使用查询分析器等工具建立到数据库系统的直接连接并发出命令。 如果攻击者向侦听端口发送精心构建的数据包,诸如软件版本等服务器
13、信息便会泄漏。2.2.4. 密码破解常见的密码攻击方式是尝试破解众所周知的帐户名称。导致密码破解的常见漏洞为: 弱密码或空密码 包含日常用语的密码常见的密码破解攻击包括: 字典攻击 手动猜测密码2.3.数据库安全管理关键要点一个强大的数据库安全系统应当确保其中信息的安全性并对其有效地控制。下面列举的原则有助于企业在安全规划中实现客户利益保隙,策略制订以及对信息资源的有效保护。2.3.1. 管理细分和委派原则在典型的数据库工作环境中,DBA总是独立执行所有的管理和其它事务工作,传统数据库管理并没有安全管理员(SeCUrityAdnliniStrator)这一角色,这就迫使数据库管理员(DBA)既
14、要负责帐号的维护管理,又要专门对数据库执行性能和操作行为进行调试跟踪,从而导致管理效率低下。通过管理责任细分和任务委派,安全管理员将得以从常规事务中解脱出来,而更多地关注于解决数据库安全执行以及管理相关的重要问题。2.3.2. 最小权限原则许多新的保密规则针对对特定数据的授权访问。企业必须本着最小权限原则,从需求和工作职能两方面严格限制对数据库的访问权。通过角色(role)的合理运用,最小权限可确保数据库功能限制和对特定数据的访问。2.3.3. 帐号安全原则用户帐号对于每一个数据库联接来说都是必须的。用户帐号设置在缺乏基于字典的密码强度检查和用户帐号过期控制的情况下,只能提供很有限的安全功能。
15、帐号应遵循传统的用户帐号管理方法来进行安全管理。这些方法包括:更改缺省密码;应用适当的密码设置;当登录失败时实施帐号锁定;对数据提供有限制的访问权限;禁止休眠状态的帐户,以及管理帐户的生命周期等。2.3.4. 有效的审计数据库审计是数据库安全的基本要求。数据库审计经常被DBA以提高性能或节省磁盘空间为由忽视或关闭,这大大降低了管理分析的可靠性和效力。审计跟踪对了解哪些用户行为导致数据的修改至关重要,它将与数据直接相关的事件都记入日志,因此,对监视数据访问和用户行为是最基本的管理手段。企业应针对自己的应用和数据库活动定义审计策略。审计并非一定要按要么对所有目标,要么没有审计的粗放模式进行,从这一
16、点来看,智能审计的实现对安全管理意义重大一不仅能节省时间,而且能减少执行所涉及的范围和对象;通过智能限制日志大小,还能突出更加关键的安全事件。2.3.5. 加强关键数据库安全保护关键数据库中的数据是支撑企业业务工作的宝贵信息资产,为了保护关键数据库的机密性、完整性和可用性,必须建立完善的数据库安全访问控制策略,采用数据库提供的安全机制对数据库数据安全保护,实行用户帐号管理、密码管理、访问权限管理控制、数据库加密、备份恢复等方面的安全加固。第3章数据库基本安全架构3.1. 数据库安全机制考虑数据库系统面对安全的挑战,业界通常采用以下技术对安全进行控制: 身份验证 访问控制 权限管理 审计 加密
17、数据完整性以下是针对不同的数据库安全风险可采用的数据库安全技术对照表。安全风险解决之道安全技术未验证用户确认用户身份帐户认证未授权的数据存取限制数据存取访问控制加密存储数据存储数据加密限制权限权限管理网络数据侦听、窃取保护网络网络加密数据破坏备份恢复数据库备份账号密码脆弱强制密码安全密码规则缺乏跟踪监控用户的行为安全审计系统入侵加密敏感数据存储数据加密技术及时修补安全漏洞安全补丁3. 2.成熟数据库安全机制3.1.1. 账户认证机制数据库安全性中最基本的概念之一就是验证。系统通过这个过程来证实用户身份。用户可以通过提供身份证明或验证令牌来响应验证请求。用户提供身份标识表示其声称自己是被授权可访
18、问该环境的人,密码则将提供用户的验证证据。当然,这种验证假定用户的密码受到很好的保护,而且是唯一一个知道这个密码的人。用户验证由数据库系统或者是数据库系统之外的安全性工具完成,许多大型的数据据库系统都提供了用户验证的功能。如果采用数据库系统之外的安全性工具,这些工具通常是操作系统的一部分或独立第三方身份验证工具。事实上,安全性不仅是数据库问题,操作系统厂商也要花费很多的时间、金钱和心思确保他们的产品是安全的。但是,有些操作系统并没有本地安全机制。如果使用的是没有安全机制的操作系统,那可以把环境配置成依靠在更安全的系统上运行的数据库系统服务器来提供这种安全性。也可以采用独立的第三方身份验证工具(
19、如由OPenGrOUP定义的分布式计算环境安全服务(DistributedComputingEnvironment(DCE)SecurityServices)来给数据库系统环境添加一层安全层。数据库系统可以协调这些外部安全工作与其安全主动性来保护事务或分析环境。一旦用户身份验证成功,数据库系统记下用户的身份标识和其它相关的安全信息,如用户组列表。用户必须使用授权名或授权标识以被数据库系统识别,授权名或授权标识可以与用户标识或映射值相同。这一连接信息将在用户连接期间保留。用户验证的方式因为验证可以由数据库系统、操作系统或第三方认证工具处理,所以数据库系统的验证可以通过参数的配置来选择的不同验证选
20、项。数据库系统使用这一参数确定验证应该以何种方式、在何处发生。设置在逻辑上可以分组为以下不同类别:SERVER(服务器)、CIient(客户机)、第三方工具(如DCE)。服务器验证服务器验证提供两种方式:普通方式缺省安全性机制,指明验证应该使用服务器的操作系统在服务器上发生。如果用户标识和密码是在连接期间指定的,那么数据库系统将调用操作系统函数来验证提交的用户标识和密码。(在基于Windows的环境中,用户标识常被称为用户名。用户名和密码合起来常被称为用户账户。)加密方式本质上同缺省选项是一样的,只有一点例外,即从客户机传到服务器的密码是加密的。数据库系统在连接时使用密码加密技术和Diffie
21、-Hellman算法为加密算法生成密钥。CHent(客户机)验证客户机验证指的是用户身份验证将在客户机上发生。如果客户机驻留在原本就具有安全特性的操作系统(例如,AIX)上,那么它就是可信任客户机。通常,除MicrosoftWindows95和98被认为不可信任之外,所有客户机都是可信任的。如果服务器接收到来自可信任客户机和不可信任客户机的请求,那么根据配置选项允许可信任客户机使用客户机验证(CIientauthentication)获得访问权,而不可信任客户机则必须提供密码才能成功验证。第三方产品验证选项一些管理员愿意实现第三方产品安全性服务,原因是它提供用户和密码集中式管理,不传送明文密码
22、和用户标识,并且向用户提供单次登录。数据库系统使用第三方产品来提供对安全性服务的集成支持。3.1.2. 视图控制机制视图的作用不同的用户对数据库中数据管理和使用的范围是不同的。为此,DBMS提供了将数据分类的功能,即建立视图。管理员把某用户可查询的数据逻辑上归并起来,简称一个或多个视图,并赋予名称,在把该视图的查询权限授予该用户(也可以授予多个用户)。视图经常用于对数据设置行级保密和列级保密。例如,可以授权用户访问一个视图,这个视图只显示该用户可以访问的行,而不显示表中所有行。同样,可以通过视图限制该用户访问的列。视图的实现视图是数据库的一个子集,它仅包含用户有权访问的信息。这样单个用户的所有
23、查询仅在自己的数据库子集上进行。子集视图保证用户不会访问允许范围之外的其它设计。除了元素之外,视图由数据库中相应的一系列关系构成。用户可以在已有的属性元素上进行相应的操作。视图(VieW)像表一样由列组成,其查询方式与表相同。但是视图中没有数据。从理论上讲,可以把视图看作是覆盖一个或多个表的“蒙版”,视图中的列可以在一个或多个基本表中找到。所以视图不使用物理存储位置来存储数据。对一个视图进行查询时,视图将查询其基于的表,并且以视图定义所规定的格式和顺序返回值。由于视图没有直接相关的物理数据,因此视图是一种非常安全的数据保护手段。3.1.3. 访问控制机制由于数据库中存放着大量的数据,为了防止数
24、据被非法地使用,有必要限制合法用户操纵数据库的权限。数据库中的权限可以分为系统级权限和对象级权限。系统级权限用来控制整个数据库的访问权限,例如创建或删除数据库对象的权限。对象级权限使用户可以访问不属于自己的数据库对象。可以通过授权来对不同的数据库用户授予不同的系统级和对象级权限。系统权限可以使用角色来管理对用户有效的系统级权限。这些权限包括CreatCtable和alterindex等等。对于每种数据库对象的操作都是由各自的权限授权的。例如,一个用户可以被授予CREATETABLE权限,而不是CREATETYPE权限。可以创建一些自定义的系统级角色,这些角色只向用户授予他们在数据库中所需的权限
25、而不是过多的特权。以OraCle8i为例,可以使用系统级角色分派以管理数据库的系统级命令。可以创建自定义的系统级角色或使用数据库自带的角色。可通过系统级授予的权限。下表列出了OraCIe8i提供的11个系统级角色。使用这些角色就能对授予数据库管理角色的系统级权限进行限制。OraCle8i提供的系统级角色角色授予角色的权限CONNECTALTERSESSION、CREATECLUSTER、CREATEDATABASELINK、REATESEQUENCE、CREATESESSION、CREATESYNONYM、CREATETABLE、CREATEVIEWCreateviewCreatecluste
26、rsCREATEPROCEDUre、createsequence、cretetablesCreatetriggerresourceCreateclusterCREATEPROCEDUre、createDBA全部系统权限WithadminoptionIiXPFULL_DATABASESelectanytablesBAeKUPANYTABle、insert、DELETE、ANDUPDATEONTHETABLESSYS.INCVID、SYS.INCFILsANDSYS.INCEXPIMPFULL_DATABASEBecomeuserDELETE_CATALOG_ROLE所有字典软件包上的DELETE
27、权限EXECUTE_CATALOG_ROLE所有字典软件包上的EXECUTE权限SELECT_CATALOG_ROLE所有类别表和视图上的SELECT权限CreatetypeCREATETYPE、EXECUTE、EXEeUTEANYTYPE、ADMINOPTION、GRANTOPTIONRECOVERY_CATALOGOWNERDROPROLERECOVERY_CATALOGOWNER、CRETEROLE、RECOVERY,CATALOGOWNER、CREATETRIGGER、CREATEPROCEDURETORECOVERY_CATALOGOWNERHSADMIN_ROLEHS_EXTERN
28、ALj)BJECT、HS_EXTERNALJJSER对象权限对数据库中对象的访问是通过权限(PriViIege)来完成的。数据库管理系统通过grant命令就可以针对特定的数据库对象使用特定的数据库命令。例如,如果用户THUMPER拥有一个叫作EMPLOYEE的表,数据库管理员将此表的Select权授予全部用户(PUBLIC)。那么全部用户(PUBLlC)就可以从THUMPER的EMPLOYEE表中选择记录。数据库管理员通过授权机制,将授予权限存于数据字典中。对表、视图、序列(以及它们的同义词)的访问,加上执行过程、函数、软件包及类型的能力都可以授权给用户。以OraCIe8i为例,下表是数据库对
29、象权限列表。允许的对象权限权限授予能力SELECT可查询对象INSERT可以把行插入对象中,该权限可授予对象的特定列UPDATE可更新对象的行,该权限可授予对象的特定列DELETE可从对象中删除行ALTER可修改对象INDEX可以在表上创建索引REFERENCES可以创建引用表的外键EXECUTE可以执行函数、软件包、过程、库或类型READ可访问目录可以使用WithgrantOPtion子句向授与用户传递授权能力,以便在基对象上进一步授权。下面的SQL*Plus清单就示出了一个这样的例子。在这个例子中,用户用WithgrantOPtion选项向第二个用户授予在EMPLoYEE表上SELECT和
30、部分UPATE访问的权限。这个用户又将其中一个权限授予另一用户JFISHER。如果EMPLOYEE是一个分区表,不允许只对它的一个分区授予SELECT访问权。不过,可以创建只从一个分区中选择数据的视图,然后把对这个视图的SELECT访问权授予用户。该视图是一个附加的管理对象,但是可以用它实现分区级数据安全。角色权限对象权限控制管理工作复杂,可以通过创建角色(role)即权限组一来简化权限的管理。对于有大量用户的应用程序,角色将大大减grant命令的使用量。由于角色可以用口令保护且能被动态地允许和禁止,所以它们给数据库增加了一个附加安全层。以OraCle8i为例,数据库管理系统提供了一些系统级角
31、色,如COrmCCt、resource和dba等。角色就是一组权限的集合。ConneCt角色一般是授予最终用户,它具有创建会话、表和视图等的能力,但它未给用户任何表空间的定额。由于用户没有表空间定额,所以也就不能创建表。resource角色是授予开发人员的,它可以创建各种数据库对象,并且会给用户无限的表空间。如果用户具有无限的表空间,它可以写一个小的脚本,然后恶意将系统用垃圾数据填满,这样数据库系统也就无法运行,并将直接导致最终的瘫痪。所以不要轻易地把resource角色赋给用户。dba角色包括了所有的系统级权限,并具有将这些权限授予其他用户的选项。dba角色一般赋给系统管理员。下面的清单中示
32、出了角色的使用例子。在这个例子中创建了两个角色。第一个角色是APPLlCATION_USER,被给予系统级权限CREATESESSI0N;被授予该角色的用户可以在数据库登录。第二个角色是DATA_ENTRYlLERK,被授予表上的权限。createroleAPPLICATlONjJSER;grantCREATESESSIONtoAPPLICATloNjJSER;createroleDATA_ENTRY_CLERK;grantselect,insertonTHUMPER.EMPLOYEEtoDATA_ENTRY_CLERK;角色也可以被授予其他角色。例如,可以把APPLlCATIoN_USER角
33、色授予DATA_ENTRY_CLERK角色。如下例所示:grantAPPLICATIoNJJSERtoDATA_ENTRY_CLERK;3.1.4. 安全审计机制数据库具有审计发生在其内部的所有操作的能力。审计记录可以写入数据库系统审计记录表或操作系统的审计跟踪中。使用操作系统审计跟踪的能力依赖于操作系统。有三种不同的操作类型可以被审计:登录企图、对象访问和数据库操作。这些类型将在下面分别描述。登录审计每个连接数据库的企图都可被审计。登录审计记录列出了使用的操作系统帐户、数据库帐户名、使用的终端ID、登录和注销的时间、验证结果(成功、失败当用户输入一个用户名但无口令、失败当用户输入一个无效口令
34、)操作审计影响数据库对象(如一个表、数据库链接、表空间、同义词、回滚段、用户或索引)的任何操作都可被审计。影响对象的可能操作(如Create、alter和drop)可以在审计时编成组。这些命令组可以减少建立和维护审计设置值所需管理工作量。审计记录列出了所用的操作系统帐户、数据库帐户名、所用的终端ID,执行操作的操作外,对象拥有者和对象名,操作结果(成功,失败及失败原因)对象审计除了系统级的对象操作外,还可以审计对象的数据处理操作。这些操作可能包括对表的选择、插入、更新和删除操作。这种操作类型的审计方式与前节所描述的操作审计非常相似。新的数据库系统提供更为复杂的审计安全手段,例如0racle9i
35、提供以下审计功能:/由服务器强制进行的审计捕获用户的活动、系统权限、语句或者对象/触发器能够记录未被自动包含在审计追踪中的定制信息/精细粒度的、可扩展的审计功能使机构能够定义具体的审计政策,以便在恶意入侵发生时,立刻识别、警告和解决这一入侵一而不管它是来自机构外部还是机构内部/事件处理器提供了确定如何处理由触发器启动的某一审计事件的灵活性/通过保存初始连接的登录用户及以该用户名义进行操作的用户的身份来审计多层系统中的活动第4章数据库系统安全加固4.L数据库系统的安全防护架构数据库系统的安全除依赖自身内部的安全机制外,还与外部网络环境、运行主机环境等因素息息相关。从广义上讲,数据库系统的安全框架
36、可以划分为三个层次:1 .网络系统层次;2 .操作系统层次;3 .数据库管理系统层次。这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。4. 2.网络系统层次安全防护从广义上讲,数据库的安全首先倚赖于网络系统。随着Intemet的发展普及,越来越多的公司将其核心业务向互联网转移,各种基于网络的数据库应用系统如雨后春笋般涌现出来,面向网络用户提供各种信息服务。可以说网络系统是数据库应用的外部环境和基础,数据库系统要发挥其强大作用离不开网络系统的支持,数据库系统的用户(如异地用户、分布式用户)也要通过网络才能访问数据库的数
37、据。网络系统的安全是数据库安全的第一道屏障,外部入侵首先就是从入侵网络系统开始的。网络入侵试图破坏信息系统的完整性、机密性或可信任的任何网络活动的集合,具有以下特点:没有地域和时间的限制;通过网络的攻击往往混杂在大量正常的网络活动之中,隐蔽性强。针对数据库系统的安全风险,可以采用以下的网络系统层次安全加固方法。采用防火墙隔离数据库服务器与外部不受信任网络,屏蔽外界对数据库系统的攻击,如SQL注入、未授权访问、密码攻击等;采用入侵检测系统,对数据库系统的攻击进行监测,发现并切断外部点恶意攻击,如SQL注入、未授权访问、密码攻击等;采用VPN技术,对网络传输进行安全加密,保护数据库访问的安全,能够
38、有效抵御网络窃听的攻击。以下简单介绍防火墙、入侵检测、VPN技术。4.2.1. 防火墙隔离防火墙是应用最广的一种防范技术。作为系统的第一道防线,其主要作用是监控可信任网络和不可信任网络之间的访问通道,可在内部与外部网络之间形成一道防护屏障,拦截来自外部的非法访问并阻止内部信息的外泄,但它无法阻拦来自网络内部的非法操作。它根据事先设定的规则来确定是否拦截信息流的进出,但无法动态识别或自适应地调整规则,因而其智能化程度很有限。防火墙技术主要有三种:数据包过滤器(packetfilter)代理(proxy)和状态分析(Statefulinspection)O现代防火墙产品通常混合使用这几种技术。4.
39、2.2. 入侵检测入侵检测(IDS-InStrUSiOnDeteCtiOnSyStem)是近年来发展起来的一种防范技术,综合采用了统计技术、规则方法、网络通信技术、人工智能、密码学、推理等技术和方法,其作用是监控网络和计算机系统是否出现被入侵或滥用的征兆。1987年,DerothyDenning首次提出了一种检测入侵的思想,经过不断发展和完善,作为监控和识别攻击的标准解决方案,IDS系统已经成为安全防御系统的重要组成部分。入侵检测采用的分析技术可分为三大类:签名、统计和数据完整性分析法。独立的入侵监测系统不能够对广泛发生的各种入侵活动都做出有效的监测和反应,为了弥补独立运作的不足,人们提出了协
40、作式入侵监测系统的想法。在协作式入侵监测系统中,IDS基于一种统一的规范,入侵监测组件之间自动地交换信息,并且通过信息的交换得到了对入侵的有效监测,可以应用于不同的网络环境。4.2.3. VPN虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。通过将数据流转移到低成本的压网络上,一个企业的虚拟专用网解决方案将大幅度地减少用户花费在城域网和远程网络连接上的费用。同时,这将
41、简化网络的设计和管理,加速连接新的用户和网站。另外,虚拟专用网还可以保护现有的网络投资。随着用户的商业服务不断发展,企业的虚拟专用网解决方案可以使用户将精力集中到自己的生意上,而不是网络上。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。根据VPN所起的作用,可以将VPN分为三类:VPDN、IntranelVPN和EXtranetVPN0虚拟专用网至少应能提供如下功能: 加密数据,以保证通过公网传输的信息即使被他人截获也不会泄露。 信息认证和身份认证,保证信息的完整性、合
42、法性,并能鉴别用户的身份。 提供访问控制,不同的用户有不同的访问权限。4.3.操作系统层次安全加固数据库系统安装在主机系统之上,为了有效的保障数据库系统安全,必须对主机系统平台进行规范的安全加固。请参照“中国移动主机安全加固规范”建立安全可靠的数据库系统服务的主机运行环境。此外,必须针对数据库系统服务的特点进行安全设置。包括:4.3.1. 操作系统用户安全设置限制能够从数据库服务器实施访问的操作系统帐户数量,使其保持在必要的数量上。使用权限最低的帐户,并在任何情况下均为其设置强密码。用于运行数据库系统的最低权限帐户可限制危害数据库系统并设法执行操作系统命令的攻击者的危害能力。用户组设置在操作系
43、统下建立用户组是保证数据库安全性的一种有效方法。对于数据库系统程序为了安全性目的一般分为两类:一类所有的用户都可执行,另一类只有数据库管理员可执行。保证安全性的几种方法:(1)在安装数据库之前,创建数据库管理员组(DBA)而且分配主机超级用户和数据库系统拥有者的用户ID给这个组。DBA能执行的程序只有710权限。在安装过程中系统权限命令被自动分配给DBA组。(2)允许一部分系统用户有限制地访问数据库服务器系统,增加一个由授权用户组成的特权组,确保将特权组ID赋予数据库服务器实用例程,公用的可执行程序,可被这组执行,然后该这个实用例程的权限为710,它将允许同组的用户执行,而其他用户不能。(3)
44、改那些不会影响数据库安全性的程序的权限为711。服务器实用程序的安全性以下是保护数据库服务器不被非法用户使用的几条建议:(1)确保数据库系统可执行例程目录(比如0RCLEJ0MEbin)下的所有程序的拥有权归数据库软件拥有者ID所有;(2)给所有用户实用程序(比如sqiplus,sqiforms,exp,imp等)711权限,使服务器上所有的用户都可访问数据库服务器;(3)给所有的DB实用例程(比如SQL*DB)700权限。4.3.2. 操作系统安全日志设置主机系统日志应记录数据库服务的启动、关闭等操作,以及主机管理员、数据库服务管理员、和应用开发人员的行为等。事件日志应保存在安全保护的目录或
45、者其他的安全主机系统中。尽管在辨别入侵者和进行中的攻击行为及诊断攻击痕迹方面审核是必不可少的工具,但它并不能防止发生系统攻击。但重要的是,日志审核机制能够对安全攻击事件提供分析和证据。事件日志应记录至少记录以下操作系统层面的事件。记录所有失败的系统登录尝试。要具备检测和跟踪恶意行为的能力,就必须记录失败的系统登录尝试。系统会以事件的形式将操作系统登录失败记录在安全事件日志中。包括:使用已禁用的帐户进行了登录。使用未知用户帐户或使用密码无效的有效用户帐户进行了登录。这些审核事件的数量意外增加可能预示着有人在尝试猜测密码。记录文件系统中所有失败的操作。系统将失败的审核事件记录在安全事件日志中。这些
46、事件反映了用户帐户对关键文档资源,例如数据库工具、日志文件,非授权访问情况。4.3.3. 关闭非必要的服务和程序为了确保数据库主机系统的安全,减少不必要的安全漏洞的引入,主机系统应关闭所有非必要的服务。要减少受攻击面并确保不受未发现的服务漏洞的影响,禁用任何非必需的服务。运行那些仍使用最低权限帐户的服务。 禁用不使用的数据库服务。以SQL2000数据库为例。根据实际情况禁止不使用的服务:令SQLSERVERAGENTo支持服务制定命令执行计划及在出错时通知操作人员;令MsSQLServerADHelpero提供ACtiVeDireCtOry集成服务,包括数据库实例注册;令MicrosoftSearcho它可提供全文搜索能力。在任何情况下均须通过本地系统帐户来运行此服务;令MicrosoftDTC0支持分布式事务,如非必要,禁用该服务。 禁止不使用的应用服务。例如HTTP、SMTP、FTP、DNS等。如果由于业务和管理的需要使用某些网络服务,如HTTP等,必须进行安全分析和测试,严格按照相应的安全加固规范进行安全设置,并且严格限制用户权限。 禁止不使用的协议。防止使用不必要的协议可减少受攻击面。配置S数据库服务器,使其只支持以TCP/IP协议连接的客户端。如果其他协议并非必