Oracle数据库安全综述.docx

上传人:b****5 文档编号:4404008 上传时间:2022-12-01 格式:DOCX 页数:13 大小:30.20KB
下载 相关 举报
Oracle数据库安全综述.docx_第1页
第1页 / 共13页
Oracle数据库安全综述.docx_第2页
第2页 / 共13页
Oracle数据库安全综述.docx_第3页
第3页 / 共13页
Oracle数据库安全综述.docx_第4页
第4页 / 共13页
Oracle数据库安全综述.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Oracle数据库安全综述.docx

《Oracle数据库安全综述.docx》由会员分享,可在线阅读,更多相关《Oracle数据库安全综述.docx(13页珍藏版)》请在冰豆网上搜索。

Oracle数据库安全综述.docx

Oracle数据库安全综述

Oracle数据库安全综述

邓明翥2007061035

摘要信息时代,数据安全性与日俱增。

对于企业数据库来说。

安全性与系统性能同样重要.一旦数据丢失或者非法用户侵入,对于任何一个应用系统来说都是致命的问题.提高Oracle数据库安全性就要做好安全管理工作.文章从Oracle入手从安全机制和安全策略两个角度分析其安全,并给出一些安全管理操作的具体方法,最后通过对比给出其安全策略的优点。

1数据库系统简介

1.1背景介绍

随着网络技术的飞速发展。

网络安全问题日渐突出。

数据库技术自20世纪60年代产生至今,也已得到了快速的发展和广泛应用,数据库中由于数据大量集中存放,且为众多用户直接共享,安全性问题尤为突出。

数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。

经过几十年的发展,数据库技术在理论上得到不断完善的同时,也广泛地投入到财务、教育、电子政务、金融等领域中得到大规模的应用。

目前,市场上不仅有能满足个人用户需要的桌面小型数据库管理系统,也有能提供大规模数据管理功能、应用在网络环境的大中型数据库管理系统。

1.2数据库系统产品简介

随着大规模数据组织和管理日益引起人们的关注,数据库系统显现出越来越大的市场价值,许多公司都推出了各具特色的数据库管理系统。

下面对在市场上占据主流、具有一定代表意义的两款数据库系统做简要介绍。

1.2.1SQLServer简介

SQLServer是由Microsoft公司开发和推广的关系数据库管理系统。

它最初是由Microsoft、Sybase、Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。

由于Microsoft公司强大的开发能力和市场影响力,自1988年起,不断有新版本SQLServer推出并迅速占领中小型数据库市场。

根据来自BZResearch2007年数据库整合和统计报告的数据,SQLServer的市场占有率为74.7%,高居第一。

其中,SQLServer2000的用户群最为庞大,SQLServer2008是最新版本。

本文所提及的SQLServer,如未特别指出,都指的是SQLServer2000。

SQLServer具有典型的C/S结构。

使用图形化用户界面,使系统管理和数据库管理更加直观、简介。

同时,还提供了丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。

由于SQLServer与WindowsNT完整集成,利用了NT的许多功能,使得配置维护比较简单;在Windows安全机制的基础上,实现了自身的安全管理,有着较良好的安全性。

1.2.2OracleDatabase简介

OracleDatabase,又名OracleRDBMS,或简称Oracle,是甲骨文公司的一款大型关系数据库管理系统。

Oracle是大型数据库系统的典型代表。

由于其采用了独特的资源管理和索引技术,得以在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上就可以支持成百上千个用户。

Oracle提供了基于角色(ROLE)分工的安全管理。

在数据库管理功能、完整性检查、安全性、一致性等方面都有良好的表现。

同时,提供了与第三代高级语言的借口软件PRO*系列,能在C、C++等语言中嵌入SQL语句以及过程化(PL/SQL)语句,对数据库中的数据进行操纵,加上它具有许多优秀的开发工具如POWERBUILD、SQL*FORMS,易于移植,因此在许多大型商务系统中得到使用。

2数据库系统安全概述

数据库系统安全是指为数据库系统建立的安全保护措施,以保护数据库系统软件和其中的数据不因偶然和恶意的原因而遭到破坏、更改和泄漏。

本章将针对数据库系统的安全评估标准、数据库系统的安全需求数据库系统的安全机制展开阐述。

2.1安全威胁

当前对数据库的主要安全威胁有物理威胁和逻辑威胁:

①物理威胁主要是像各种外力,如:

911恐怖事件,火灾等造成的数据库服务器故障或数据库中存储介质的损坏造成的数据丢失。

②逻辑威胁主要是指对信息的未授权存取,如:

恶意用户侵入某银行数据库系统窃取信用卡数据信息。

2.2数据库安全技术

目前对数据库安全物理威胁的主要解决方案包括数据备份/恢复、数据导入/导出、数据库的灾难恢复,计算机的集群和磁盘阵列等技术,在此本文不进行讨论。

本文以Oracle数据库为例阐述对逻辑威胁的主要解决方法,包括身份认证、存取控制、网络加密、数据加密、审计等技术。

2.3数据库系统的安全评估标准

20世纪80年代,美国国防部根据军用计算机系统的安全需要,制订了《可信计算机系统安全评估标准》(TrustedSecureSystemEvaluationCriteria,简称TCSEC)以及该标准的可信数据库系统的解释(TrustedDatabaseInterpretation,简称TDI),形成了最早的信息安全及数据库安全评估体系。

TCSEC/TD1将系统安全性分为4组7个等级,分别是D(最小保护)、C1(自主安全保护)、C2(受控存取保护)、B1(标记安全保护)、B2(结构化保护)、B3(安全域)、A1(验证设计),按系统可靠或可信程度依次增高。

90年代后期,《信息技术安全评价通用准则》(CommonCriteria,简称CC)被ISO接受为国际标准,确立了现代信息安全标准的框架。

这些标准指导了安全数据库系统的研究和开发安全数据库及其应用系统研究。

我国从80年代开始进行数据库技术的研究和开发,从90年代初开始进行安全数据库理论的研究和实际系统的研制。

2001年,军队制订了《军用数据库安全评估标准》;2002年,公安部发布了公安部行业标准——GA/T389-2002:

《计算机信息系统安全等级保护/数据库管理系统技术要求》。

根据2004年底的统计,极大国外数据库管理系统在国内市场的占有率达到95%,国产数据库的总市场容量大约为3.5%,其它开源产品大约占1.5%。

国外的数据库产品不提供源程序代码,也很少有可供公开调用的内核接口,这些都加大了自主安全保护的技术难度。

加之发达国家限制C2级以上安全级别的信息技术与产品对我国的出口,研究开发数据库安全技术具有重要的现实意义。

2.4数据库系统的安全需求

与其他计算机系统的安全需求相类似,数据库系统的安全需求可以归纳为完整性、保密性和可用性三个方面。

数据库的完整性主要包括物理完整性和逻辑完整性。

物理完整性是指保证数据库的数据不受物理故障,如硬件故障、掉电的影响,并有可能在灾难毁坏时重建和恢复数据库。

逻辑完整性是指对数据库逻辑结构的保护,包括数据的语义完整性和操作完整性。

前者主要指数据存取在逻辑上满足完整性约束,后者主要指在并发事务中保证数据的逻辑一致性。

数据库的保密性指不允许XX的用户存取数据;数据库的可用性则是指不应拒绝授权用户对数据库的正常操作,同时保证系统的运行效率并提供用户友好的人机交互。

一般而言,数据库的保密性和可用性是一对矛盾。

对这一矛盾的分析与解决构成了数据库系统的安全模型和一系列安全机制的主要目标。

2.5数据库系统的安全模型

数据库系统的安全模型是用于精确描述数据库系统的安全需求和安全策略的有效方式。

从20世纪70年代开始,一系列数据库安全模型和原型得到研究。

80年代末开始,研究的重点集中于如何在数据库系统中实现多级安全,即如何将传统的关系数据库理论与多级安全模型结合,建立多级安全数据库系统。

到目前为止,先后提出的基于多级关系模型的数据路多级安全模型主要有BLP模型、Biba模型、SeaView模型和JS模型等。

依据存取控制策略、授权管理模式的不同,可以将安全模型分为三类,即自主访问控制模型(DAC)、强制访问控制模型(MAC)和基于角色的访问控制(RBAC)。

DAC模型是基于用户身份的访问和控制。

在DAC模型中,对资源对象的“拥有”是用户最核心的权限属性,每个用户都要被分配一定的权限。

DAC模型可对用户提供灵活的访问控制,但安全性较低,很容易遭受类似特洛伊木马的攻击。

MAC模型通过无法回避的存取限制来防止各种直接或间接地攻击。

在强制访问控制之下,系统给主体和客体分配了不同的安全属性,系统通过对主体和客体的安全属性进行匹配比较决定是否允许访问继续进行。

RBAC模型提供了解决具有大量用户、数据库客体和访问权限系统中的授权管理问题。

在RBAC中,将权限赋予不同的角色;用户在不同的会话中,激活不同的角色,从而可以获得不同的权限。

RBAC在不同的配置下可显示出不同的控制功能,既可以构造出MAC系统,也可以构造出DAC系统,因此比较灵活,易于配置管理。

关于上述三种模型的具体机制,在此不详细阐述,请参阅相关文献。

3Oracle的安全策略

3.1系统安全性策略

系统安全策略的定义[1]为:

系统安全策略是数据库系统为达到安全目标和相应的安全级别所定义的安全技术、方法、机制的总和。

DBMS将系统安全策略体现在其软件之中,最后由DBA给予实现,主要体现在安全管理。

Oracle9i的系统安全策略主要功能如下:

(1)系统与数据的安全性策略

数据库用户管理(DBU)。

数据库主要是由DBU访问的。

DBA可授权DBU应用Create、Alter、Drop语句对数据库对象的操作权限,用户身份验证。

数据库用户可以通过操作系统、网络服务、数据库或者安全套接字层SSL进行身份确认。

(2)操作系统(OS)安全性

由于Oracle数据库和应用程序是运行在网络操作系统(NOS)之上,然后进行安全认证的。

所以前两者的安全性需要与操作系统安全一同考虑。

DBA必须具有对NOS的文件进行Create和Delete的权限而数据库用户却不具有。

如果操作系统为数据库用户分配角色,则DBA必须有修改操作系统账户安全区域的操作系统权限。

3.1.1用户验证

Oracle采用数据库验证、外部验证和企业验证三种用户验证方式。

3.1.1.1数据库验证

当创建用户和指定口令时,便使用数据库验证,同时具有了口令管理能力。

Oracle通过在一个概要文件中设置参数并把该文件分配给一个用户的方式来实现的。

一个概要文件可以限制会话的数量、每个会话使用的CPU时间、调用次数、读的次数、空闲时间以及连接时间。

概要文件可以防止破坏者利用所有的资源以拒绝服务的攻击方式破坏系统。

3.1.1.2外部验证

外部验证是指在Oracle之外的验证,即网络操作系统(NOS)和网络验证服务。

使用外部验证后在Oracle就无需再验证。

若选此项,则在init.ora文件设置相关参数通知Oracle。

使用NOS进行验证的优点是,用户更快更方便地连接数据库;对用户验证进行集中控制;用户信息只有一份副本并保存在NOS中,Oracle中无需保存,当然两者用户应是相同的,同时审计信息只保存在NOS中。

网络验证服务属于高级安全技术。

主要应用网络安全服务,例如Kerberos或PKI等。

3.1.1.3企业验证

企业验证应用于网络环境下的分布式数据库。

分布式环境存在多个数据库服务器,它们组成资源的总和定义为全局资源。

可以使用全局资源(任何一个数据库服务器)的用户定义为全局用户。

企业验证是全局用户使用全局资源的验证,即Oracle安全服务(OSS)。

由Oracle安全服务器完成。

用安全信息和全局资源存储在网络(LAN/Intranet/Internet)的目录中,存储该目录的服务器称为目录服务器。

通常使用轻量目录协议(LDAP)访问该服务器,使用全局口令登录到Oracle分布式数据库的用户称为全局用户。

可将全局用户的权限定义为不同的角色即全局角色。

全局角色的全体组成企业角色。

Oracle安全服务器OSS实现全局用户的登录过程:

1)全局用户登录到Oracle分布式数据库系统中;

2)OSS动态地将某个全局角色分配给该用户;

3)该全局角色所具有的权限即可访问该权限的数据库服务器。

换言之,系统中的多个数据库服务器具有不同的权限,它们与全局角色存在对应(映射)关系。

最简单的是一对一映射,最复杂的是多对多映射。

3.1.2用户许可

用户登录到一个数据库服务器到退出期间称为会话。

Oracle可通过设置来限制会话数量。

会话数量的设置称为并发许可(协议)。

许可是并发使用的,由此许可指定的是并发用户的最大数量,即同时连接到数据库(服务器)的用户会话数量。

通过命名用户的许可,可以限制可访问一个数据库的命名用户数量。

系统运行期间可以跟踪实际会话数量,也能改变并发会话的最大数量。

当达到上限时,只有DBA能够连接到数据库。

而对于一般用户,Oracle会给他发送一条消息,显示到达最大数量的限制,同时将该消息写入到警告文件中。

除此之外,还可以设置并发会话的警告限制数量。

在到达该值时,一般用户还可以继续建立新的会话直到达到最大限制值。

然后,Oracle给每个连接的警告文件写一条消息,并且给一般用户发送一条快要达到最大限制的消息。

通过命名用户许可,限制指定的数据库服务器上使用Oracle的命名用户数量。

使用这个许可就是在启动实例以前,设置在数据库可以创建的用户数量。

当实例运行时,也可以改变这个最大值或完全停用这个限制。

3.2数据安全性策略

主要包括在对象级控制数据库访问和使用的机制。

主要有决定哪个用户访问特定的模式对象,在对象上允许每个用户的特定类型操作,也可以定义审计每个模式对象的操作。

为数据库建立安全等级,例如,如果允许其他用户建立任何模式对象,或将对象的存取权限授予系统中的其他用户,这样的安全性是很差的。

另外,当希望只有DBA有权限建立对象,并向角色和用户授予对象的存取权限时,必须严格控制数据库的安全。

数据的重要性决定了数据和数据库的安全性。

如果数据的重要性差,那么数据的安全性略差一些。

反之,就应该有严格的安全性策略。

用户来维护对数据对象访问的有效控制。

数据安全的实现方法主要有:

用户账号、对象授权、角色、细粒度存取控制和相关应用程序上下文控制。

细粒度存取控制最简单的情况是在SQL语句中加了一个WHERE条件,用它来限制用户对表和视图里元组数据的存取。

应用程序上下文是一个安全数据缓冲,用来存储存取控制决定的信息。

3.3用户安全性策略

在Oracle数据库中,将用户分为一般用户、最终用户、管理员(DBA)、应用程序员和应用程序管理员。

由于一般用户和管理员具有相对的普遍性,在此只针对一般用户和管理员的安全性策略进行介绍。

3.3.1一般用户的安全性策略

口令安全性。

如果是通过数据库进行用户身份验证,就应该使用口令加密方式与数据库进行连接。

当执行分布式查询时,会发生在两个Oracle服务器之间建立连接。

当试图连接到一个服务器时,Oracle在将信息发送到服务器时对口令进行加密。

如果连接失败且审计可用时,这个失败作为审计日志记录下来。

Oracle就会用加密的信息重新连接。

如果连接成功,就将前面连接失败的审计记录信息覆盖。

以防止恶意用户加密的口令强行重新连接。

DBA应该根据所有各类用户实行相关的权限管理,即应充分利用/角色/这个机制的方便性对权限进行有效管理。

3.3.2DBA的安全性策略

当系统规模较小时,只需一个DBA,则系统安全管理员SSA也是DBA。

当系统规模很大时,系统拥有多个DBA,这时两者是分开的。

安全管理员将相关管理权限分成几个组,然后将不同的角色授予相应的DBA。

当创建数据库后,立即更改有管理权限的sys和system用户的口令,防止非法用户访问数据库。

当作为sys和system用户连入数据库后,用户有强大的权限用各种方式对数据库进行改动。

只有DBA能用管理权限连入数据库,并保证只有DBA能作SYSDBA角色的成员,因为SYSDBA可以没有任何限制地操作和恢复数据库及数据库对象。

4Oracle提供的安全机制

数据库的安全性可以分为两类,即数据库系统安全性和数据库数据安全性[2].

4.1系统安全性层面

系统安全性是指在系统级控制数据库的存取和使用的机制。

包括:

①用户名/口令的组合是否有效;②用户是否具有连接数据库的授权;③用户可以执行哪些操作;④用户可用的磁盘空间的数量:

⑤用户的资源限制;⑥数据库审计是否有效。

4.1.1数据备份

Oracle提供了比较完备的数据备份技术。

具体请参见Oracle9i使用手册。

4.1.2身份认证

在网络环境下多用户系统中,身份认证是安全机制中重要环节。

身份认证包括标识和验证,标识是指用户向系统出示自己的身份证明,常用的方法是输入用户名和口令;验证则是系统验证用户的身份证明。

Oracle允许不同类型的验证,以Oracle数据库为基础的验证允许拥有用户账户ID和密码,密码以加密的格式存储在数据字典中。

Oracle也支持基于主机操作系统的用户账号转为Oracle账户的验证。

此外,Oracle高级安全选件还提供更加安全的验证方法[3],如:

NTS、KERBEROSS、RADIUS等验证方式。

4.1.3存取控制

数据库的存取控制机制是定义和控制用户对数据库数据的存取访问权限,以确保只授权给有资格的用户访问数据库的权限并防止和杜绝对数据库中数据的非授权访问。

数据库管理系统需要对精细的数据粒度加以控制,数据库中的粒度有记录、表格、属性、字段和值等。

Oracle可利用权限、角色、概要文件、细粒度访问等技术提供存取控制支持。

4.1.3.1权限

默认情况下新的Oracle用户不具备任何权限。

新用户在登录数据库以及运行数据库操作前必须被授予权限。

Oracle数据库包含系统权限和对象权限。

系统权限允许用户建立和使用对象,但不授权访问真正的数据库对象。

系统权限允许用户运行如:

ALTERTABLE,CREATETABLE等权限。

对象权限被用来允许访问特殊的数据库对象,如表或视图。

Oracle允许对象的拥有者将他们拥有的针对这些对象的权限授予其他用户或角色。

4.1.3.2角色

角色是用来简化用户权限分派的管理任务,用户可以被指派多个角色。

将权限组织到角色中后再利用角色对一个或多个用户授权使授权管理变得更加容易。

Oracle拥有一些特定权限的默认角色。

如:

Connect角色允许用户登录和建立自己的表、索引等;Resource角色允许用户建立触发器和存储过程等对象。

数据库管理员DBA角色被授予所有管理数据库和用户的系统权限。

用户为方便管理可以建立自定义的角色。

4.1.3.3概要文件

Oracle利用概要文件来允许管理员针对一些系统资源,密码的利用。

这些概要文件可以被定义、命名、然后指派给特定的用户或用户组。

概要文件可以用来设置用户在特定的系统资源上的限制,如CPU时间、同时建立的有效会话数、特定用户建立会话的最大时间等。

此外,概要文件也可以用来强制定义密码规则,如密码有效期、密码格式、在若干次登录失败尝试后锁定账户,也可以利用自定义密码格式规则函数来限制密码的设置规则。

4.1.3.4细粒度访问

Oracle提供了细粒度访问控制机制OracleLabelSecurity[5],可实施对单个表或整个模式上的行级访问控制。

要利用OracleLabelSecurity,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。

标签用来标明哪些用户能够访问什么类型数据。

在创建了一个策略之后,将该策略应用于需要保护的表,并将这些标签授予用户。

当Oracle数据库在解析SQL语句时会检测表是否受到某个安全策略的保护,根据用户的访问权限数据库向该SQL。

语句的WHERE子句中添加安全性谓词。

所有这些都发生在Oracle数据库引擎的内部。

所以不管该SQL。

语句的来源如何,用户都不可能绕过该安全性机制,从而达到行级安全的访问控制。

4.1.4审计

任何的数据库系统都不可能是绝对安全的,可以利用Oracle数据库系统的审计功能,监视和记录所选择用户的活动情况,数据库的审计记录存放在SYS方案的AUD$表中。

开启审计功能后会影响一些数据库的性能,在初始状态Oracle对审计功能是关闭的。

要开启审计功能,可在初始化参数中将参数“AUDIT—TRAII。

”值设置为“DB或TRUE”。

Oracle支持三种类型的审计:

语句审计、权限审计和方案对象审计。

语句审计是针对DDL、DML语句的审计,如“AUDITTABI。

E”的语句审计对所有的CREATE和DROPTABLE语句都进行审计;权限审计是对系统权限的审计,如只针对“CREATETABLE”的权限审计,则只审计CREATETABLE语句;方案对象审计是针对特定的DMI。

语句和特定方案对象的GRANT、REVOKE语句的审计。

从Oracle9i后支持细粒度审计,可以用于监视基于内容的数据访问。

此外,也可利用数据库提供的触发器功能进行编程自定义审计方案,如可以用触发器编写登录,注销以及其他数据库事件的Oracle审计信息。

4.2数据安全性层面

在多用户数据库系统中,数据安全性包括:

①防止非授权用户对数据进行存取操作:

②防止非授权用户对模式对象的存取操作;⑨控制系统资源的使用;④控制磁盘的使用;⑤审计用户的操作.

4.2.1数据加密

一般而言数据库系统提供的基本安全技术能够满足大多数的应用,但对于一些重要部门或敏感领域的应用,仅靠上述这些措施是难以完全保证数据的安全性,某些用户尤其是一些内部用户仍可能非法获取用户名、口令字,或利用其他方法越权使用数据库,因此有必要对数据库中存储的重要数据进行加密处理。

数据库密码系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出解密得到明文信息。

Oracle9i提供了特殊DBMS-OBFUSCATION—TOOLKIT包,在Oraclel10g中又增加了DBMSCRYPT0包用于数据加密/解密,支持DES、AES等多种加密/解密算法。

各详细算法在此不作介绍。

5Oracle的安全管理操作

5.1创建概要文件

创建一个概要文件user_limited,把它提供给用户normal_user"使用.如果连续3次与normal_user的连接失败,该账户将自动由oracle锁定,再使用normal_user账户的正确口令,系统会提示出错信息.1天后此账户自动解锁,可继续使用.

创建命令代码如下:

SQL>CREATEPROFILEuser_limitedLIMIT

FAILED_LOGIN_ATTEMPTS3

PASSWORD_LOCK_TIMEl;

SQL>ALTERUSERnormal_userPROFILE

user_limited;

5.2修改概要文件

如果将上述概要文件的允许失败连接次数改为5.账户锁定时间改为10.

修改代码如下:

SQL>ALTERPROFILEuser_limitedLIMIT

FAILED_LOGIN_ATTEMPTS5

PASSWORD_LOCK_TLME10;

5.3启用审计

审计是监视和记录所选用户的数据活动。

审计通常用于调查可疑活动和监视与收集特定数据库活动的数据。

如果数据被非授权用户删除。

管理员可对该数据库的所有连接进行审计,以及对数据库的所有删除进行审计.管理员还可以对某种类型的SQL语句、执行相应动作的系统权限、全部用户或指定用户的活动进行审计。

达到监视数据库对象的数据处理操作的目的.管理员可以启用和禁用审计信息记录。

当在数据库中启用审计时,在语句执行阶段生成审计记录.

如审计normal_user用户的所有更新操作代码为:

SQL>AUDITUPDATETABLEBY

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1