(计算机应用技术专业论文)数据库安全检测系统设计与实现.pdf_第1页
(计算机应用技术专业论文)数据库安全检测系统设计与实现.pdf_第2页
(计算机应用技术专业论文)数据库安全检测系统设计与实现.pdf_第3页
(计算机应用技术专业论文)数据库安全检测系统设计与实现.pdf_第4页
(计算机应用技术专业论文)数据库安全检测系统设计与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

兰州大学硕士学位论文 摘要 目前,数据库被广泛地应用于各种信息系统,存储着大量的数据和信息,它已成为了最吸 引攻击者的目标。针对数据库的攻击,现有的入侵检测系统检测效果并不理想。数据库的安 全检测成为了信息安全研究的一个热点问题。 本文首先分析了国内外数据库安全领域研究的现状;对数据库中现有的安全机制及数据 库面临的安全威胁进行了讨论;在此基础上将影响数据库安全的主要因素归为漏洞和用户 活动两方面;最后提出了一个数据库安全检测方案,并对该方案进行了系统设计和实现。 本论文的主要研究内容和工作集中于以下方面: 1 扩展了原有的数据库安全检测框架,在提供漏洞扫描检测的基础上增加了对数据库 异常活动的审计检测。 2 实现了授权检测、字典攻击和渗透测试三种基于规则的检测方法,开发了漏洞扫描 检测。 3 设计了基于统计的用户活动审计算法,检测数据库中的异常活动。 4 最后,在此基础上开发了数据库安全检测系统,实现了对数据库漏洞和异常活动的 检测。 本论文设计的数据库安全检测系统已经开发完成。该系统中的漏洞扫描子系统己调试完 成,现正在一些单位进行试用。试用的结果表明该系统已达到设计的预期效果。 关键词:数据库安全,安全检测,审计 兰州大学硕士学位论文 a b s t r a c t d e s p i t et h en e c e s s i t yo fp r o t e c t i n gi n f o r m a t i o ns t o r e di nd a t a b a s es y s t e m ,e x i s t i n g i n t r u s i o n d e t e c t i o n s y s t e m s a r en o ts u f f i c i e n tf o rd e t e c t i n gi n m l s i o ni nd a t a b a s es y s t e m s t h i st h e s i sf i r s ta n a l y z e dt h er e s e a r c hd e v e l o p m e n t o f d a t a b a s es e c u r i t yi nt h ew o r l d t h e n ,i t a n a l y z e dd a t a b a s es e c u r i t ym e c h a n i s m a n dt h r e a to fd a t a b a s es e c u r i t y b a s e do nt i f f si tc l a s s i f y t h r e a t e no fs e c u r i t yi n t os y s t e mv u l n e r a b i l i t ya n du s e ro p e r a t i o n a tl a s t , t h e t h e s i sp r o p o s e d d a t a b a s es e c u r i t yd e t e c t i o ns c h e m aa n dr e a l i z e di t k s u m m a r y t h ea u t h o r sw o r k s a l i s t e db e l o w : e x p a n d e df r a m e w o r ko f e x i s td a t a b a s es e c u r i t yd e t e c t i o ns y s t e mb ya d d i n gd a t a b a s e a n o m a l y t r a n s a c t i o na u d i td e t e c t i o nt od a t a b a s ev u l n e r a b i l i t ys c a n n i n g 2 d e v e l o p e dr u l e - b a s e dv u l n e r a b i l i t ys c 赳啦m e t h o d sw h i c hi n c l u d e a u t h o r i z a t i o n d e t e c t i o n ,d i c t i o n a r y a t t a c ka n d p e n e t r a t i o nd e t e c t i o n 3 p r o p o s e d as t a t i s t i c s - b a s e da u d i td e t e c t i o na l g o f i t h r at od e t e c ta n o m a l yu s e ro p e r a t i o n 4 r e a l i z e dad a t a b a s es e c u r i t yd e t e c t i o ns y s t e mt od e t e c tv u l n e r a b i l i t ya n da n o m a l y u s a g ei nd a t a b a s e w eh a v ed e s i g n e da n d d e v e l o p e d t h ed a t a b a s es e c u r i t yd e t e c t i o ns y s t e mt h a tw em e n t i o n e di n t h i sp a p e r v u l n e r a b i l i t ys c a n n i n gs y s t e mh a sb e e nd e b u g g e da n dp u ti n t oi m p l e m e n t t h e t r i a lr e s u l t sd e m o n s t r a t et h i sd e t e c t i o n s y s t e m i sa v a i l a b l e k e y w o r d s :d a t a b a s es e c u r i t y , s c a n n e r , a u d n 原创性声明 y 7 3 2 1 7 3 本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行 研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、 _ 数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成 果做出重要贡献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:盔蓝耋 日期:刎 必l i 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属 兰州大学。本人完全了解兰卅i 大学有关保存、使用学位论文的规定,同 意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许 论文被查阅和借阅;本人授权兰州大学可以将本学位论文的全部或部分 _ - - 内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本学 位论文。本人离校后发表、使用学位论文或与该论文直接相关的学术论 文或成果时,第一署名单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名:组莲差导师签名: 第一章引言 1 1 研究背景 第一章引言 当前,数据库已经广泛地应用于电子商务、金融以及企业资源规划( e r p ) 系统等信 息系统中,存储和管理着大量的信息数据。因为数据库中大量数据的集中存放和管理,其 日渐成为非法入侵者攻击的焦点。数据库安全已经成为了信息安全的主要研究课题之一。 1 1 1 数据库安全概念 数据库系统一般可以理解成两部分:一部分是数据库,按一定的方式存取资料;另一 - 部分是数据库管理系统( d b m s ) ,为用户及应用程序提供资料访问,并具有对数据库进行管 理、维护等多种功能【5 1 。相应的,数据库系统安全包含系统运行安全和系统信息安全两个方 面。 1 系统运行安全:确保当数据库系统运行过程中遇到灾难性破坏、硬件或软件故障、 或数据库用户误操作时,能够重构和恢复数据库原有的数据,保证整个系统的正常运行。 2 系统信息安全:在向授权用户提供可靠的数据服务的同时,拒绝非授权的数据存取 访问,保证数据库中数据的可用性、完整性和一致性。 本文只讨论系统信息安全部分,接下来章节中的“数据库安全”即指系统信息安全。 为了保证数据库安全,在数据库管理系统中提供了身份认证、存取控制、数据加密、 审计跟踪等机制。这些技术将在第二章中详细介绍。 1 1 2 数据库安全及检测研究现状 国外很早就开展了数据库安全方面的研究,f e r n a n d e z 在( d a t a b a s es e c u r i t ya n d i n t e g r i t y ) 一书,对数据库安全领域进行详细的分析。该书从安全策略,安全模型,授权,资料完整 性,审计等方面对数据库安全问题进行研究,同时也简单分析了分布式数据库的安全与统 1 第一章引言 计数据库的安全。国际信息处理联合会( m 口) 于1 9 8 9 ,1 9 9 0 相继出版了两本数据库安全论 文集【2 】m ,该论文集对将数据库安全领域内的策略与模型,面向对象数据库,分布式数据库, 审计,推理等几部分的发展进行了阐述。2 0 0 1 年i n f o r m a t i o ns e c u r i t yt e c h n i c a l r e p o r t 刊出d a t a b a s es e c u r i t yr e n - o s p e c f i v ea n dw a y f o r w a r d 文1 4 】,对数据库安全领域 新进展进行了深入的分析概括并对将来的发展给出一个有益的指引。国内刘启原的数据 库与信息系统的安全5 j 书对数据库安全模型进行了详细的阐述,同时也介绍了一些安全 标准。 近年来数据库安全相关方面的研究很多。其中大多是关于统计数据库的安全问题,如 统计资料安全中的组合问题【6 】,推理攻击问题【7 】,审计问题阁。近年来,陆续发表的一些论 文,开始数据库应用环境对数据库安全影响的研究,如分布式数据库安全【9 】,w e b 环境下的 数据库安全 1 0 1 。并提出了若予解决方案,如:使用时间签名方法检测实时数据库系统入侵i l l 】, 基于数据项引用特征的数据库滥用侦测 1 2 1 ,以及基于事务特征的异常事务检测等方法。 在国内,清华大学数据安全实验室对数据库安全检测作了相关研究。蔡义望对数据库 漏洞进行了分类,并设计了数据库安全检测系统的框架唧。藏瑞恩设计了一种基于规则的 数据库安全检测方法f 1 6 1 。在数据库安全检测的产品开发方面,目前国内尚无相关产品。国 外方面,i s s 公司的d a t a b a s es c a n n e r 是第一个提出并投入使用的数据库安全漏洞检测软件。 该系统是一个预防入侵的数据库漏洞扫描、评估工具。可以实现对m i c r o s o f ts q ls e r v e r , s y b a s e ,o r a c l e 这3 种多版本的数据库管理系统进行风险评估。它主要实现对数据库配置、 系统默认的选项( 包括用户口令组合) 等方面进行检查。p e n t a s a f es e c u r i t yt e c h n o l o g i e s 公 司的d a t a b a s es e c a r i t ym a n a g e rf o ro r a c l e 是一个通过对用户、角色、授权及安全设置等多 方面的管理来实现多数据库系统环境中安全检测的软件。它的优点是实现安全策路个人化, 并提供分布式环境安全检测功能。 - 2 第一章引言 1 2 研究意义 首先,现代数据库系统具有多种特征和性能配置方式,在使用时可能会误用。比如说 所有现代关系型数据库系统都是“可从端口寻址的”,这意味着任何人只要有合适的网络连 接工具,就都可与数据库直接相连,并能躲开操作系统的安全机制。例如:可以用t c p i p 协 议从1 5 2 1 和1 5 2 6 端口访闯o r a c l e7 3 和o r a c l e8 数据库。再如多数数据库系统还有众所 周知的默认账号和密码,可支持对数据库资源的各级访问。从这两个简单的资料相结合, 很多重要的数据库系统很可能受到威胁。 其次,目前还没有专门针对数据库中入侵和攻击的防范和检测措施。尽管入侵检测系 统( i d s ) 的技术已趋成熟,但是将其应用于数据库系统依然存在如下问题: 一、i d s 解析数据库操作协议的程度不深。大多数的数据库的协议是保密的,通过 包截取和解析的方法实现对数据库的入侵检测比较困难。 二、i d s 中通常是对网络通信中的数据包、系统中的文件操作以及操作系统级上的 命令调用和进程等方面的特征来判定入侵的发生。但是对于数据库的入侵检测需要更加 精细的检测。 三、虽然在系统的入侵检测方面已经有比较深入的研究,并已经有大量的产品。但 是,在数据库入侵检测方面的研究还很少。文献【儿】【1 2 】等提出了数据库入侵检测的方 法:通过对事务的时间特征、数据项的引用关系统计进行分析,定位可能的攻击。但是, 目前还没有出现专门针对数据库中非正常事务的检测产品。 最后,数据库中的审计未被充分利用。审计跟踪具有最后防线性质的防范能力,或许 是用来发现内部用户的滥用的唯一方法四。但是,由于缺乏自动分析的工具,导致有用的信 息淹没在大量的审计记录中,往往是在发现入侵的时候才对审计记录进行检查。 因此,数据库的安全一方面需要对数据库的漏洞进行经常性的检测和修复,防止漏洞被 黑客利用;另一方面,也需要有针对数据库中入侵的检测措施,检测外部的入侵和内部用 3 第一章引言 户的滥用。 1 3 本论文的主要研究内容及工作 本论文在研究数据库安全威胁的基础上,设计和实现了数据库安全检测系统,从漏洞 检测和用户活动审计检测两方面,实现对数据库入侵的防范和检测。 在本研究课题中,作者参与了安全检测系统总体框架的设计、并负责审计检测子系统 的设计及该予系统与漏洞扫描子系统的实现,承担了漏洞扫描予系统的测试和试用任务。 本文首先研究和分析了数据库安全及检测的现状,分析了数据库安全检测的需求。论文 对数据库的安全机制及数据库面临的安全威胁进行了研究,讨论了现有安全检测机制在检测 数据库入侵的不足。在此基础上设计和实现了数据库安全检测系统,该系统包括漏洞扫描子 系统和审计检测子系统。在漏洞扫描方面,应用了授权检测、字典攻击和渗透测试三种检测 方法:在用户活动审计方面,设计了基于统计的审计算法。本文针对统计分析方法误报和漏 报率较高的缺点,制定了自适应调整策略。最后,我们应用c _ 卜 语言和o d b c 技术实现了整 个数据库安全检测系统,并对漏洞扫描子系统进行了测试和试用。 1 4 本文组织结构 第二章介绍数据库管理系统中的身份认证、存取控制、数据加密、审计跟踪等安全机制。 并讨论了目前数据库面临的安全问题。我们分析影响数据库安全的因素和威胁的来源。随 后介绍了现有的这方面的安全检测措施,并分析这些检测措施的不足。 第三章在针对数据库安全威胁和现有安全机制的不足,提出了数据库安全检测系统。介 绍了系统的框架和主要模块的功能,并对系统的升级和扩展与系统安全性进行了讨论。 第四章介绍漏洞扫描子系统的实现,漏洞扫描检测的流程,并对检测中使用的漏洞库、 规则库、策略库等关键技术进行了分析。 第五章介绍了安全审计的概念,审计检测予系统的实现,审计分析的流程,审计分析使 4 第一章引言 用的统计分析算法,并对采用算法自适应调整的策略进行了分析。 最后,对本论文的工作进行总结,并进行了展望。 5 - 第二章数据库安全机制 第二章数据库的安全及检测 2 1 数据库系统安全概述 数据库安全机制是多层次,具体可以划分为用户、数据库管理系统( d b m s ) 、操作系 统( o s ) 、数据库( d b ) 四个层次。对于用户部分的安全机制一般采用身份认i 正( a u t h e n t i c a t i o n ) 方法。数据库管理系统则是通过访闯控制保证资料安全性,任何一个用户意图控制个对 象都必须拥有相应的授权( a u t h o r i z a t i o n ) 。在d b 存储这一级目前大多采用加密技术,对数 据进行加密,即便物理存储设备失窃后,其上存储的数据也可保证不被泄漏。在操作系统 级的安全控制主要侧重于文件权限保护,系统资源使用限制。 在这一章节中,我们将以o r a c l e 数据库为例分析数据库中的用户认证和访问控制机制。 并简单介绍数据库加密和操作系统级的相关安全控制。 2 2 数据库安全机制 2 2 1 身份认证 数据库用户名是连接数据库、存取数据库对象的主体标记,是数据库中管理权限和控制 数据访问的一种安全措施。用户认证就是确定所要求的用户身份的正确性。它可以利用口 令、智能卡或生物特征( 如:指纹、虹膜等) 等实现。口令识别是数据库身份认证中最常 用的方式。 数据库用户管理的复杂性在于不仅要防止敏感资料被窥探,而且要防止开发人员或普通 用户有意或无意地进行任何干扰数据库的操作。数据库系统安全管理的第一步是为每一个 用户( 包括系统开发人员及应用系统的操作人员) 创建相应的数据库账号,任何用户对数据库 的任何操作都必须强制通过系统的安全设置检查之后方能实施。数据库提供了一些预定义 账号,这些预定义账号具有各自的特定权限,利用它们可以实现一些特殊的数据库功能, 如o r a c l es y s 账号拥有系统所有的资料字典基表和相关的数据库对象,s y s t e m 账号拥有一些 - 6 第二章数据库安全机制 附加的资料字典和视图以及o r a c l e 应用开发工具所用到的表和视图。对于这些系统提供 的缺省账号应尽量避免直接使用,使用时要及时修改系统预定义账号的口令。 为了防止非授权的数据库用户的使用,o r a c l e 提供三种认证方式。 o r a c l e 数据库方式的用户确认。o r a c l e 利用存储在数据库中的信息可鉴定试图接 到数据库的用户,这种鉴别方法仅在操作系统不能用于数据库用户鉴别时才使用。当用户 使用o r a c l e 数据库时执行用户鉴别。每个用户在建立时有一个口令,用户口令在建立对 数据库连接时使用,以防止对数据库非授权的使用。用户的1 :3 令以密码的格式存储在数据 库资料字典中,用户可随时修改其口令。 基于主机的认证机制,即使用0 s 的用户账号登录。如果操作系统允许,o r a c l e 可使 用操作系统所维护的信息来鉴定用户。由操作系统鉴定用户的优点是:用户可以更方便地 连接到o r a c l e ,不需要指定用户名和口令。对用户认证的控制集中在操作系统,o r a c l e 不需要存储和管理用户口令。然而用户名在数据库中仍然要维护。 基于第三方的认证机制由o r a c l e 高级安全选项提供( 如使用x 5 0 9v 3c e r t i f i c a t e s 实现 数据库与数据库间认证) 。 认证是安全的第一个关口,其安全机制中心在于口令的管理。在这方面o r a c l e 提供锁 定账号,口令过期,口令复杂验证,口令重用等安全措施。如不对这些选项进行合理配将 导致系统易于被黑客攻破。而且下文的存取控制机制也显的没有意义了。因为黑客是以合 法用户账号进入系统的。 2 2 2 访问控制 数据库访问控制( 1 t t ? , c e $ s c o n t r 0 1 ) 是对用户访问数据库各种对象( 包括表,视图,目录, 应用等) 的权限( 包括创建,撤销,查询,增加,删除,修改,执行等) 的控制,可以通 过用户分类和数据分类实现。 - 7 一 第二章数据库安全机制 ( 一) 用户分类访问控制 用户分类访问控制是对不同类型的用户授予不同的数据管理权限。一般将权限分为三 类:数据库登录权限类、资源管理权限类和数据库管理员权限类。 有了数据库登录权限的用户才能进入数据库管理系统,才能使用数据库管理系统所提供 的各类工具和实用程序。同时,数据库客体的拥有者可以授予这类用户以数据查询、建立 视图等权限。这类用户只能查阅部分数据库信息,不能改动数据库中的任何数据。 具有资源管理权限的用户,除了拥有上一类的用户权限外,还有创建数据库表、索引等 数据库客体的权限,可以在权限允许的范围内修改、查询数据库,还能将自己拥有的权限 授予其他用户,可以申请审计。 具有数据库管理员权限的用户将具有数据库管理的一切权限,包括访问任何用户的任 何数据,授予( 或回收) 用户的各种权限,创建各种数据库客体,完成数据库的备份、装入重 组以及进行全系统的审计等工作。这类用户的工作是谨慎而带全局性的工作,只有极少数 用户属于这种类型。 用户分类访问控制主要包括认证( a u t l l e r n i c 8 t i o n ) 和授权( a u t h o r i z a t i o n ) 管理两部分。其中 授权管理又有多种实现机制,除最基本的系统权限和对象权限两类权限管理外,还有如基 于角色的方式实现授权管理。为了保证数据安全,系统管理员将仅需的权限分配给用户。 这就是著名的“最少权限原则只分配给用户他们执行任务所需要的最少的权限”。 下文将对权限管理和角色管理的内容进行详细分析。 1 、权限管理 权限( p r i v i l e g e s ) 是授予一个用户执行某种操作的许可。数据库的权限由s q l 的g r a n t 语句授予并且由r e v o k e 语句收回。这两种基本命令涉及数百种不同的操作权限,但主要分 为两大类: 1 ) 系统权限( s y s t e mp r i v i l e g e s )指对数据库系统及数据结构的操作权限,是执行一 r 第二章数据库安全机制 处特殊动作或者在对象类型上执行一种特殊动作的权利。例如创建或删除用户、表、同 义词、索引等等。实际上,o r a c l e 有近百种系统权限,而几乎每个o r a c l e 用户 都需要的一个系统权限是c r e a t es e s s i o n ,就是与o r a c l e 建立连接的能力。 2 ) 对象权限( o b j e c tp r i v i l e g e s )指对一个指定的、特别命名的数据库对象( 如一个 表或索引) 的操作权限( 如s e l e c t 或u p d a t e ) 。对于有些模式对象,如聚集、索引、触发 器、数据库链没有相关的对象特权,它们由系统特权控制。尽管对象权限只有几种类型 的操作权限,但数据库权限管理的大部分工作都遵循以对象权限为主,系统权限为辅 的原则。 这两种权限的主要差别是范围的不同,一个对象权限只能授权对一个特定数据库对象的 操作权限,如对顾客表的查询或更新权限;而一个系统权限受i j 应用于一个对象类型的所有 的实例,可授权创建、修改和删除各种结构,如授权a l t e rl l s c r 系统权限,则意昧着可以修 改任何数据库账号。 在权限管理方面需要特别注意下列选项的使用: 小w i t ha d m i n o p t i o n 选项 在授予任何系统权限和对象权限时要特别慎重使用这 一选项,它有可能导致“级联”授权的问题。在权限管理中除了要考虑把哪些权限 赋予一个用户,同时还要考虑是否允许该用户把这些权限的部分或全部授予其它用 户。一旦带有这些选项的授权生效,就意味着被授权的用户可以继续把它分派给 别的用户或从其它用户的权限域中取消它。 b ) p u b l i c 选项带有该选项的对象,即允许任何可以访问数据库的用户都可以访问 该数据对象。一般系统权限很少授予p u b l i c ,只有那些不需要考虑安全性问题的特 定对象才可以授予p u b l i c 。 2 、基于角色的权限管理 角色( r o l e s ) 是共享一个公共权限集的一组用户,数据库管理系统通过角色简化权限 q 第二章数据库安全机制 分配管理。可授权角色具有某些系统权限或对象权限,可以把一个角色授予另一个角色, 角色可以包含个体权限加角色的混合,系统的角色可以构造成为一棵角色层次树。 数据库系统中的用户及应用程序都要有一定的权限集才能进行工作。如果数据库管理员 把权限直接授予各个用户,一旦用户的权限需要相应地调整,d b a 就需要做很多工作来完 成这些改变。基于角色的权限管理较好地解决了这些问题,只需根据部门和企业的安全政 策、操作规则划分出不同的数据库角色,通常可以为机构的每个职务定义一个数据库角色。 然后根据需要把这些角色授予相应用户,即使某职务的权限发生了改变,也只需简单地修 改该职务相对应的角色的权限,而不必修改该职务的每一个用户的权限,这样不仅保证了 数据库的安全性,还大大降低了权限管理的负担和代价,减少了系统的安全漏洞。 基于角色的权限管理具有很强的实时性,授予角色的权限立即被分配给角色的用户使 用:从个角色取消某项权限,那么就会立即阻止与该角色有关联的所有用户使用该权限; 角色还可根据需要处于激活或停顿状态,以便控制用户所授予的角色的活动。另外角色本 身可以得到口令保护( o r a c l e 中) 。基于角色的权限管理极大地加强了系统的安全控制的灵 活性,进一步增强了系统的安全性能。 ( 二) 数据分类访问控制 同一类权限的用户,对数据库中数据管理和使用的范围又可能是不同的为此,d b m s 提供了将数据分类的功能,即建立视图。管理员把某用户可查询的数据逻辑上归并起来, 简称一个或多个视图,并赋予名称,在把该视图的查询权限授予该用户( 也可以授予多个用 户) 。这种数据分类可以进行得很细,其最小粒度是数据库二维表中一个交叉的元素。 表的属主或d b a 可以通过创建视图的方法对表的若干行或若干列进行授权,对视图授 权的方法与对表的授权相同,但视图授权仅限于s e l e c t ,i n s e r t ,u p d a t e 和d e l e t e 操作。视 图特权可使该视图的行或列享有某些权限,而禁止非法用户对其进行有关操作,同时那些 1 0 第二章数据库安全机制 未包含在视图中的行或列自动地受到保护。 利用视图机制可以很便捷地实现更深层次的数据库的安全保护粒度。一个带选择条件的 视图可以用来维护行级的安全性,那些不满足条件的行自动地碍到保护。同时那些未被定 义为视图字段的表的其它字段也自动地被保护起来,从而实现数据库列级的安全性。 - 同时利用视图可以实现属主或网络位置的透明,迸一步保障了系统的安全性。当授权用 户对表进行存取时必须在f r o m 予甸中指明表的属主,在网络环境中还必须指明资料所在的 机器位置,通过创建相应视图可以隐含有关信息,使用户或程序员不必关心表的属主或资 料的实际存放位置,即使发生网络结构变化、数据库变化或资料分布变化,也只需修改视 图的定义,所有的应用程序不必做任何修改,同时也能有效防止资料的意外丢失或蓄意破 坏。 ( 三) 其他访问控制方式 1 、存储过程 通过使用存储过程限制用户可以访问的信息范围和权限控制。一个过程和函数,是由 s q l 语句和p l s q l 语句组合在一起,为执行某一个任务的一个可执行单位。一个过程或 函数可被建立,在数据库中存储其编译形式,可由用户或数据库应用所执行。 我们经常封装商业翘则在存储过程中有两个原因。一、如果用户对数据库拥有直接权限, 他将绕过前端应用的安全控制。二、通过存储过程有利于在满足商业规则的情况下达到最 少权限原刚。 2 、触发器 触发器( i g g e r ) 是在你对表进行插入、删除或更新之前,之后自动运行的代码。它与存储 过程的区别就在于它是自动运行。通过触发器实现权限控制和存储过程类似。比如说我们 书写如下一个触发器,通过这个触发器我们可以控制对科n p 表的修改必须在我们规定的时 t i 第二章数据库安全机制 间内才能实现。 c r e a t et r i g g e rc h e c j o s a l a r ya c c e s s b e f o r ed e l e t eo ri n s e r to ru p d a t e o ns c o t t e m p b e g i n hi ft o d a yi sas a t u r d a yo rs u n d a y tt h e nr e t u r na ne r r o r + i f ( t oc h a r ( s y s d a t e ,d y ) = s a t o r t oc h a r ( s y s d a t e ,d y ) = s u n ) t h e n r a i s e a p p l i c a t i o n _ e r r o r ( 一2 0 5 0 1 , m a yn o tc h a n g ee m p l o y e et a b l ed u r i n g t h ew e e k e n d 。) j e n d i f ; + i ft h ec u r r e n tt i m ei sb e f o r e8 :0 0 a mo ra f t e r6 :0 0 p m ,t h e n r e t u r na ne r r o r + i f ( t oc h a r ( s y s d a t e ,h h 2 4 ) = 1 8 ) t h e nr a i s e _ a p p l i c a t i o n e r r o r ( 一2 0 5 0 2 ,m a yo n l yc h a n g e e m p l o y e e t a b l ed u r i n gw o r k i n gh o u r s ) ; e n d i f ; e n d ; 2 2 3 其它安全机制 1 、数据库审计 数据库审计( a u d i t i n g ) 主要任务是对应用程序或用户使用资源( 包括数据) 的情况进 行记录和审查,以保证数据的安全。目前主流的数据库产品中都已经内置了审计模块,主 要功能是通过设置安全审计事件,自动在数据字典中存储与安全有关的事件信息,跟踪和 记录用户对数据库信息和资源的使用情况,并允许用标准s q l 语言去分析这些审计跟踪信 o r a c l e 支持三种审计类型:登录审计、数据活动审计、对象审计。 - 1 2 - 第二章数据库安全机制 o r a c l e 所允许的审计选择限于下列方面:审计语句的成功执行、不成功执行,或者 其两者。对每一用户会话审计语句执行一次或者对语句每次执行审计一次。对全部用户或 指定用户的活动的审计。审计记录包含有审计的操作、用户执行的操作、操作的日期和时 间等信息。审计记录可存在资料字典表( 称为审计记录) 或操作系统审计记录中。数据库 审计记录是在s y s 模式的a u d $ 表中。 一旦激活数据库的审计,就可以记录下数据库中指定的用户活动的相关信息。通过对 这些记录信息处理( 包括手工或自动工具) 能够监测到系统中的攻击,一方面可以发现攻 击的企图,如连续登录失败;另一方面,可以发现数据库中用户违规使用权限和对数据操 作的行为。总之,数据库审计是数据库安全的最后道防线,根据审计记录可以跟踪和追 踪入侵行为,从而保护数据库的安全。 2 、资源管理与系统配置 通过资源管理防止某一用户的查询失控或者恶意地操纵系统资源。资源限制是由配置文 件管理。一个配置文件( p r o f i l e ) 是命名的一组对用户的资源限制参数集a 每种资源可在会 话级、调用级或两者上控制。 在会话级:每一次用户与数据库连接,就建立了一会话。在o r a c l e 中可以对会话期 间耗费的c p u 时间、内存量进行限制。如果会话级资源限制被超过,当前语旬被中止( 回 滚) ,并返回指明会话限制已达到的信息。此时,当前事务中所有之前执行的语句不受影响, 此时仅可作c o m m i t 、r o l l b a c k 或删除对数据库的连接等操作,进行其它操作都将出 错。 。 在调用级:一般s q l 语句的执行都会分成多个步骤完成( 解析、执行、取数据) 。在 o r a c l e 中可以对每一步骤中耗费的c p u 时间、内存量进行限制。如果调用级的资源限制被 超过,语句处理被停止,该语句被回滚,并返回一错误。然而当前事务的已执行所有语句 不受影响,用户会话继续连接。 1 3 第二章数据库安全机制 3 、系统文件访问控制 如前面所述,数据库安全在操作系统级上是通过访问控制实现的。尽管数据库拥有自己 的身份认证和访问控制措施,但是并不能阻止操作系统用户访问数据库的系统文件如:脚 本、补丁文件。如果用户在脚本文件”s q l 中添加了如下语句: c r e a t eu s e r j a c ki d e n t i f i e db yp w d ; g r a n td b a t o j a c k ; 一旦这个脚本被运行,将在数据库中创建一个管理员用户j a e k 。因此,在操作系统级需要 合理地设置数据库文件的访问权限,防止文件被未授权地修改。 4 、数据库加密 数据库加密是使用加密技术对数据库中的部分或全部数据进行加密,即便硬件存储失窃 也不会泄漏数据。 o r a e l e8 i 没有提供全库加密。但是通过p l s q l 包使用者可以采用d e s 或3 d e s 对资 料进行加解密,从而实现部分资料加密。数据库加密内容请参考【5 】。本文不讨论数据库加 密问题。 2 3 数据库安全威胁分析 数据库系统的安全问题即是在向授权用户提供可靠的信息数据服务的同时,又要拒绝 非授权的对数据访问的请求,保证数据库管理下的数据的可用性、完整性和一致性。根据 前面的讨论,现今的数据库管理系统( d b m s ) 内部中提供了一套包括用户身份认证、访问 控制、审计跟踪及数据加密等机制在内的成熟的安全机制,为数据安全提供了一定的安全 保障。但是随着个人计算机和网络技术的发展,越来越多的用户通过网络访问和使用数据 库。为了方便网络应用,现在的数据库产品中提供了大量的网络服务功能。很多攻击者开 始利用数据库及数据库应用软件的漏洞入侵数据库。下面,我们将根据攻击的来源对数据 库安全面临的安全威胁进行分析。 1 4 第二章数据库安全机制 2 3 1 外部威胁 外部威胁是指那些没有授权访问系统的人。对于数据库系统来讲,外部用户同时也包 括那些已经取得操作系统授权但是没有被授权访问数据库的用户。他们往往是利用已知的 一些安全漏洞进入系统,常用的漏洞有未打补丁的软件漏洞、不安全的服务以及系统的弱 e l 令等。大部分的攻击事件都是利用公开的漏洞,通过一些已知的攻击方法成功实施的。 根据攻击源的分布,我们将数据库的安全威胁分为来自网络的安全威胁和来自操作系统的 威胁。 1 1 来自网络的入侵 网络系统是数据库应用的外部环境和基础,数据库系统要发挥其强大作用离不开网络 系统的支持。网络系统的安全可以说是数据库安全的第一道屏障,外部入侵首先就是从入 侵网络系统开始的,因此必须采取有效的措施来保障系统的安全。现在网络上流传着大量 的攻击方式和自动攻击工具,大大降低了实施攻击的难度。如果入侵者突破了网络系统层 次上的安全,就可以直接或间接地进入数据库系统。 网络攻击者利用的漏洞有以下几类: a ) 数据库漏洞,例如利用数据库中的默认账号口令的入侵。 o r a c l e 数据库系统具有十个以上的默认用户帐号和密码,它们在创建数据库的时候 被创建。这些账号和初始密码是公开的,而且大多都没有被锁定。m d s y s 账号是 被用来支持s p a l i a l d a t a o p t i o n ( 空间数据选项) 管理,在数据库创建的时候被创建, 其默认密码是m d s y s 。如果在d b ar o l ep r i v s 视图上查看这个账号你会发现 它并没有被分配任何角色,似乎这个账号是安全的。但是,在o r a e l e 8 i ( o r a e l e8 1 6 ) 里的d b a s y s p r i v s 可以看到有1 1 5 个系统权限被授予这个账号。对o r a c l e 数 据库实旄的最早的攻击之一就是通过这个账号进行的【1 4 1 。 b ) 不安全的数据库服务,如o r a c l e8 it n s l i s t e n e r 缓冲区溢出漏洞。 15 第二章数据库安全机制 o r a c l e 客户端只需发送一个t y p e l ( n s p t c n ) 包,它含有正确的n e t 8 头和构造 过后的含攻击者代码的命令串。尽管通过激活口令验证机制能限制t n sl i s t e n e r 管 理员命令于信任用户内,但缺省情况下,该验证机制并没被激活。而且利用一些无 需验证口令的命令仍能利用此漏洞,如“s t a t u s ”。利用此漏洞,攻击代码可以 在系统管理员的权限在运行。 c ) 第三方软件的漏洞,如s q li n j e c t i o n 攻击。 s q li n j e c t i o n 是最近在数据库脆弱性方面讨论时经常被提及的攻击。它是通过w e b 服务软件( 如a p a c h e ) 将恶意的s q l 命令插入到程序提交给服务器的查询中,欺 骗数据库服务器达到攻击者的目的。 d ) 操作系统的漏洞。 网络上流传着大量操作系统的漏洞和入侵方法。一旦入侵者获得操作系统的管理权 限,数据库的安全机制将无力阻止攻击者继续入侵进入数据库系统。 2 ) 来自操作系统的入侵 操作系统是大型数据库系统的运行平台,为数据库系统提供一定程度的安全保护。由 于数据库系统在操作系统下都是以文件形式进行管理的,操作系统的用户可以直接利用o s 工具来非法伪造、篡改数据库文件内容。例如: o r a c e i n t e m a 密码:o r a c l e n t e m a l 密码是存放在文件名为“s r x x x c m d 的文本文件中, x x x 是o r a c l e 系统的i d 或s i d ,默认值为“o r c l ”。在o r a c l e 数据库的启动过程中耍用到 o r a c l e i n t e r n e t 密码,这个账号具有随意访问数据库资源的权力。 “o r a p w s c 件许可控制:o r a c l e 内部密码和由s y s d b a 授权的帐号密码存贮在“o r a p w 文本文件中。尽管文件已被加密,但在o r a c l e 的u n i x 和w m d o w s n t 的程序中,还是 要限制该文件的使用权限。 因此,对操作系统用户管理和权限合理分配,防止操作系统用户非法进入数据库系统, 1 6 第二章数据库安全机制 对于数据库的安全非常重要。 此外,加强操作系统的安全管理,也有助于抵制来自网络的数据库攻击。一方面,网 络攻击者可以直接利用操作系统的漏洞窃取数据库文件;另方面,入侵者可以首先进入 操作系统,然后利用操作系统管理上的漏洞再迸一步进入数据库系统。 2 3 2 内部威胁 经过授权进入系统的人员称为内部威胁。他们通常拥有系统中的一些权限,他们可能 是管理员、公司职员、合作伙伴或者客户。无论是出于方便、必要还是其他原因,违反了 已经制定的安全制度或者是执行了无法保证安全的行为。相对于乡卜部入侵者来说,内部用 户更容易对系统造成威胁,而这一点却往往被人们所忽视。例如:一个心怀怨恨的员工在 离开公司前,利用自己的权限修改了存储过程( 如:s p _ p a s s w o r d ) ,在其中添加几行命令, 就可在表单中增加新的密码,用e - m a i l 传递密码。特这个员工离开后,其他人调用这一存 储过程,那么新的账号和密码就被发送到他的信箱。相比之下这些方式显得更为隐蔽,也 更加难以检测。 内部威胁主要来自以下几个方面: 夺违反安全规定。雇员有时为了方便而将密码共享; 夺滥用权限。这些用户是指那些被授权访问系统和系统资源的合法用户,他们使 用自己的权限进行了那些并不属于他们职责范围内的操作。铡如:系统管理员 ( d b a ) ,他在数据库中拥有至高无上的权利,可以查看任何用户的数据,并有 可能泄漏这些数据。此外通过系统的扩展存储过程,数据库用户也可以运行 操作系统的命令。对这些用户,要对他们的日常操作进行检查,以确保他们没 有超出分配的任务范围。 1 7 第二章数据库安全机制 2 4 数据库安全检测和存在的问题 2 4 1 现有的安全检测措施 对于网络和主机层面上的攻击检测,主要有防火墙、入侵检测。防火墙阻挡来自外部的 不可信连接。入侵检测系统一般部署在防火墙后,通过网络截包解析或分析日志来检测网 络中和主机上的异常。从检测技术分,入侵检测可以分为基于异常检测( a n o m a l yd e t e c t i o n ) 和基于误用检测( m i s u s ed e t e c f i o n ) 1 5 1 。从检测数据的来源,入侵检测技术又可以划分为 基于网络检测和基于主机检测。近年来,入侵检测系统已经被广泛应用到信息系统的安全 检测中。 对于数据库管理系统上的安全检测,目前只有数据库漏洞扫描。对于数据库中的入侵 和攻击检测,现在还没有很好的解决方案。数据库的安全漏洞主要集中以下几方面:数据 库管理疏忽,系统配置不当,数据库软件本身的b u g 以及应用在数据库上的第三方软件引 入的安全问题( 如a p a c h 的s q li n j e c t i o n 漏洞) 。数据库漏洞扫描系统是一个预防入侵的 工具,它对数据库的漏洞进行扫描、评估并提供修复建议。 2 4 2 存在的问题 数据库的安全一方面通过漏洞扫描,及时修复漏洞来迸行防御性的工作,另一方面还需 要对数据库中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论