欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第15章--数据库系统安全优秀PPT.ppt

    • 资源ID:57456952       资源大小:788.50KB        全文页数:53页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第15章--数据库系统安全优秀PPT.ppt

    第15章 数据库系统平安李 剑 北京邮电高校信息平安中心 E-mail:lijianbupt.edu 电话:13001936882版权全部,盗版必纠概论随着计算机技术的飞速发展,数据库的应用特别广泛,深化到各个领域,但随之而来产生了数据的平安问题。各种应用系统的数据库中大量数据的平安问题、敏感数据的防窃取和防篡改问题,越来越引起人们的高度重视。数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其平安性至关重要,关系到企业兴衰、国家平安。因此,如何有效地保证数据库系统的平安,实现数据的保密性、完整性和有效性,已经成为业界人士探究探讨的重要课题之一,本章就数据库系统平安做探讨。版权全部,盗版必纠书目第15章 数据库系统平安15.1 数据库系统平安概述15.2 针对数据库系统的攻击15.2.1 弱口令攻击15.2.2 利用漏洞对数据库发起的攻击15.2.3 SQL Serever的单字节溢出攻击15.2.4 SQL注入攻击15.3 数据库攻击的防范措施15.3.1 数据库攻击防范概述15.3.2 SQL注入攻击的防范思索题版权全部,盗版必纠15.1 数据库系统平安概述1.数据库平安的意义数据库平安的意义数据库是当今信息存储的一个重要形式,数据库系统已经被广泛的应数据库是当今信息存储的一个重要形式,数据库系统已经被广泛的应用与政府、军事、金融等众多领域。假如对与针对数据库的攻击不加用与政府、军事、金融等众多领域。假如对与针对数据库的攻击不加以遏制,轻则干扰人们的日常生活,重则造成巨大的经济损失,甚至以遏制,轻则干扰人们的日常生活,重则造成巨大的经济损失,甚至威逼到国家的平安。探讨数据库平安的意义在于:威逼到国家的平安。探讨数据库平安的意义在于:(1)目前的对数据库的平安问题重视不足。现在对于平安威逼的防范目前的对数据库的平安问题重视不足。现在对于平安威逼的防范多集中在对于主机和操作系统的防护,例如配置防火墙和防病毒软件,多集中在对于主机和操作系统的防护,例如配置防火墙和防病毒软件,而对数据库平安则关注甚少。而对数据库平安则关注甚少。(2)数据库才是攻击者的主要目标。目前的数据库系统中存储着大量数据库才是攻击者的主要目标。目前的数据库系统中存储着大量的重要数据,例如军事机密、商业隐私、个人交易账号和口令等等。的重要数据,例如军事机密、商业隐私、个人交易账号和口令等等。大多数攻击者的攻击目标正是获得这些隐私数据。大多数攻击者的攻击目标正是获得这些隐私数据。另外,从网络攻击者的角度来探讨平安防卫措施,通过分析与利用攻另外,从网络攻击者的角度来探讨平安防卫措施,通过分析与利用攻击者的实施方法,把握攻击者的心理,对网络攻击进行深化探讨,提击者的实施方法,把握攻击者的心理,对网络攻击进行深化探讨,提高平安检测、主动防卫的实力都具有重要意义。高平安检测、主动防卫的实力都具有重要意义。版权全部,盗版必纠15.1 数据库系统平安概述2.数据库系统的平安威逼数据库系统的平安威逼依据违反数据库平安性所导致的后果,平安威逼可以分为依据违反数据库平安性所导致的后果,平安威逼可以分为以下几类:以下几类:(1)非授权的信息泄露:未获授权的用户有意或无意得到非授权的信息泄露:未获授权的用户有意或无意得到信息。通过对授权访问的数据进行推导分析获得非授权的信息。通过对授权访问的数据进行推导分析获得非授权的信息。信息。(2)非授权的数据修改:包括全部通过数据处理和修改而非授权的数据修改:包括全部通过数据处理和修改而违反信息完整性的行为。但是非授权修改不确定会涉及到违反信息完整性的行为。但是非授权修改不确定会涉及到非授权的信息泄露,因为对于入侵者而言即使不读出数据非授权的信息泄露,因为对于入侵者而言即使不读出数据库中的数据亦可以进行破坏。库中的数据亦可以进行破坏。(3)拒绝服务:包括会影响用户访问数据或运用资源的行拒绝服务:包括会影响用户访问数据或运用资源的行为。为。版权全部,盗版必纠15.1 数据库系统平安概述3.数据库系统平安层次数据库系统平安层次数据库系统的平安可以从以下五个层次来说明:数据库系统的平安可以从以下五个层次来说明:(1)物理层的平安性物理层的平安性 数据库所在节点必需在物理上得到牢靠的爱护。数据库所在节点必需在物理上得到牢靠的爱护。(2)用户层的平安性用户层的平安性 哪些用户可以运用数据库,运用数据库的哪些数据对象,具有什么样的权哪些用户可以运用数据库,运用数据库的哪些数据对象,具有什么样的权限等。限等。(3)操作系统层的平安性操作系统层的平安性 数据库所在的主机的操作系统的弱点将可能供应恶意攻击数据库的入口。数据库所在的主机的操作系统的弱点将可能供应恶意攻击数据库的入口。(4)网络层的平安性网络层的平安性 Oracle 9i数据库主要是面对网络供应服务,因此,网络软件的平安性和数据库主要是面对网络供应服务,因此,网络软件的平安性和网络数据传输的平安性至关重要。网络数据传输的平安性至关重要。(5)数据库系统层的平安性数据库系统层的平安性 通过对用户授予特定的访问数据库对象的权利的方法来确保数据库系统层通过对用户授予特定的访问数据库对象的权利的方法来确保数据库系统层的平安。的平安。版权全部,盗版必纠15.1 数据库系统平安概述4.数据库系统的平安需求数据库系统的平安需求依据上述的数据库平安威逼,提出相应的数据库依据上述的数据库平安威逼,提出相应的数据库平安需求:平安需求:(1)防止非法数据访问防止非法数据访问这是数据库平安最关键的需求之一。数据库管理这是数据库平安最关键的需求之一。数据库管理系统必需依据用户或应用的授权来检查访问恳求,系统必需依据用户或应用的授权来检查访问恳求,以保证仅允许授权的用户访问数据库。数据库的以保证仅允许授权的用户访问数据库。数据库的访问限制要比操作系统中的文件访问限制困难得访问限制要比操作系统中的文件访问限制困难得多。首先,限制的对象有更细的粒度,例如表、多。首先,限制的对象有更细的粒度,例如表、记录、属性等;其次,数据库中的数据是语义相记录、属性等;其次,数据库中的数据是语义相关的,所以用户可以不干脆访问数据项而间接获关的,所以用户可以不干脆访问数据项而间接获得数据内容。得数据内容。版权全部,盗版必纠15.1 数据库系统平安概述(2)防止推导推导是指用户通过授权访问的数据,经过推导而得出的机密信息,而依据平安策略该用户根本无权访问机密信息。特殊是在统计数据库中,用户简洁从统计后的信息中推出某些个体信息。(3)保证完整性保证数据库的完整性,即保证数据库不被非法修改,以及不会因为病毒、系统中的错误等导致存储数据遭破坏。这种爱护通过访问限制、备份/复原等平安机制共同实现。保证数据的操作完整性,即在并发事务中保证数据库中数据的逻辑一样性。数据库库管理系统中的并发管理器子系统负责实现操作的完整性。保证数据的语言完整性,即在修改数据时保证新值在确定范围内以确保逻辑上的完整性。对数据值的约束通过完整性约束来描述。可以针对数据库来定义完整性约束(定义数据库处于正确状态的条件),也可以针对变换来定义完整性约束(定义修改数据库时须要验证的条件)。版权全部,盗版必纠15.1 数据库系统平安概述(4)审计和日志为了保证数据库中的数据平安,一般要求数据库管理系统能够将全部对数据库进行的操作记录下来,以备事后的调查分析,追查入侵者或者发觉系统漏洞。审计和日志是特别有效的威慑和事后追查、分析工具。(5)标识和认证标识和认证是数据库的第一道防线,也是授权和审计的前提。(6)多级爱护多级爱护表示一个平安需求的集合。现实世界中很多应用要求将数据划分不同的隐私等级。同一记录的不同字段可能划分为不同的等级,甚至同一字段的不同值都会是不同的等级。在多级爱护体系中,对于不同的数据项赐予不用的保密级别,然后依据数据项的密级给数据项的操作赐予不同的级别。在多级爱护体系中,进一步的要求是探讨如何赐予多数据项组成的集合一个恰当的密级。数据的完整性和保密性是通过赐予用户权限来实现的,用户只能访问他所拥有的权限所对应级别的数据。版权全部,盗版必纠15.1 数据库系统平安概述(7)限界限界的意义在于防止程序之间出现非授权的信息传递。信息传递出现在“授权通道”、“存储通道”和“隐通道”中。授权通道通过授权的操作供应输出信息。存储通道是存储区,一个程序向其中存储数据,而其他程序可以读取。隐通道指的是运用系统中并非设计用来通信的资源在主体间通信的信道。版权全部,盗版必纠15.2 针对数据库系统的攻击数据库系统是在操作系统平台之上的最重要的系统软件,数据库系统的平安可以说是特别重要的。曾经有句话这样说:假如网络遍地是金钱,那么金钱就在数据库服务器中。随着无纸化业务环境的不断扩大,人们在数据库中存储着越来越多的敏感信息:银行账户、医疗记录、政府文件、军事机密等等,数据库系统就成为越来越有价值的攻击目标,因此确保数据库系统的平安也越来越重要。作为一种大型的系统软件,数据库系统中也存在着各种各样的平安漏洞,其中危害性较大的有缓冲区溢出、堆溢出和SQL注入等。本小节将讲解并描述一些典型的针对数据库系统的攻击。版权全部,盗版必纠15.2.1 弱口令攻击弱口令是指口令强度过低,使非授权用户简洁在短时间内通过猜解或者少量的列举即可得到口令。弱口令会使非授权用户获得访问数据库的权限。这会造成机密数据泄露、损坏等严峻后果。出现弱口令的缘由多是在数据库安装和建立用户信息的时候,数据库管理员设置了统一且简洁的访问口令,授权用户也没有刚好修改默认口令。特殊是在某些数据库安装的过程中,安装程序会默认建立一个空白口令的特权用户。版权全部,盗版必纠15.2.1 弱口令攻击下面是一个因为存在默认用户名和口令的实例。在2005年的1月W32.Spybot.IVQ蠕虫便是依靠空白口令的root用户感染了数以千计的Windows MySQL服务器。在MySQL的某些默认配置中,mysql.user表内有4个默认条目:两个条目用于root,两个条目用于匿名账户。在主机build上,有一个用于账户root具有root特权的远程条目。假如在本地主机上,可以用空白口令以root特权进行身份验证,则可以全面限制数据库。假如在本地主机上,可以用任何用户进行身份验证,则可以guest权限访问数据库。版权全部,盗版必纠15.2.1 弱口令攻击假如在被称为build的远程主机上,可以用任何用户进行身份验证,则可以以guest权限访问数据库。在Windows主机上,root账户的存在使得任何本地用户都可以将其自己提升到本地系统级访问权限,因为MySQL默认以SYSTEM运行。而且,假如攻击者简洁地将他的主机命名为build,MySQL服务一旦启动,他就具有了对主机的远程系统级的访问权限。针对这一问题最好的爱护是实行以下措施:(1)安装MySQL是禁止网络访问(拔掉网线或者应用全部防火墙规则)。(2)在安装之后,应马上删除mysql.user表内除了本地主机(localhost)root账户之外的全部账户。(3)为本地主机的root账户设置困难的口令。版权全部,盗版必纠15.2.2 利用漏洞对数据库发起的攻击数据库厂商会发觉自己产品中的某些平安问题,然后为自己的产品供应某些平安补丁,产品的版本随之不断升级。作为数据库的用户,假如不刚好升级自己的数据库,就会面临平安威逼。下面以零长度字符串绕过MySQL身份验证漏洞攻击为例子,讲解利用漏洞对数据库的攻击。版权全部,盗版必纠15.2.2 利用漏洞对数据库发起的攻击在MySQL5.0以前的版本中,MySQL通过下面语句:check_scramble_323(passwd,thd-scramble,(ulong*)acl_user_tmp-salt)=0来推断用户输入的密码是否正确,然而在check_scramble_323()函数内可以看到:bool check_scramble_323(const char*scrambled,const char*message,ulong*hash_pass)while(*scrambled)if(*scrambled+!=(char)(*to+extra)return 1;/密码错误return 0;版权全部,盗版必纠15.2.2 利用漏洞对数据库发起的攻击这里,用户可以指定一个其所需长度的字符串。在这个简洁的身份验证中,假如指定长度为0的字符串。在最终的循环中,循环比较scrambled字符串和MySQL所得到的字符串的每个字符,直到scrambled字符串内没有字符为止。因为scrambled字符串长度为0,根本不会进行循环比较,所以验证函数干脆返回0,使得用户以0长度字符串通过身份验证。这是一个特别简洁的利用数据库漏洞的例子。版权全部,盗版必纠15.2.3 SQL Serever的单字节溢出攻击SQL Server 2000会监听UDP:1433端口,而且会对值为0 x02的单字节报文进行响应,返回关于SQL Server的信息。但是当单字节报文的值不是0 x02而是其他值时,SQL Server将会异样。会引起异样的值包括:0 x04,导致栈溢动身生;0 x08字符,会导致对溢出;0 x0A,会引发拒绝服务攻击。另外,在一些数据库管理系统,如WinMySQLAdmin在my.ini文件中以明文形式保存了MySQL的口令信息。使得非授权的本地用户也可以访问MySQL数据库。版权全部,盗版必纠15.2.4 SQL注入攻击1.SQL注入攻击原理注入攻击原理阅读器阅读器/服务器服务器(B/S,Browser/Server,)结构是互联网兴,)结构是互联网兴起后的一种网络结构模式,这种模式统一起后的一种网络结构模式,这种模式统一了客户端,将系统功能实现的核心部分集了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护中到服务器上,简化了系统的开发、维护和运用。和运用。B/S结构由服务端、阅读器和通结构由服务端、阅读器和通信协议三大部分组成。如下图所示:信协议三大部分组成。如下图所示:版权全部,盗版必纠15.2.4 SQL注入攻击版权全部,盗版必纠15.2.4 SQL注入攻击接受这种方式构建的Web服务,常常受到SQL注入的攻击。近几年,针对Web服务数据库的SQL注入攻击特别多。SQL注入可导致数据库系统中的一般用户窃取机密数据、进行权限提升等,而这种攻击方式又不须要太多计算机方面的学问,一般只要能娴熟运用SQL语言即可,因此对数据库的平安构成了很大的威逼。另外,目前还有NBSI等SQL注入工具,更使得对数据库的平安受到巨大威逼。如图15.2所示为合作NBSI SQL注入攻击工具对某网站成功进行了攻击,从图中可以看出数据库中的内容。版权全部,盗版必纠15.2.4 SQL注入攻击版权全部,盗版必纠15.2.4 SQL注入攻击很多Web应用程序在编写时没有对用户输入数据的合法性进行检验,导致应用程序通过用户输入的数据构造SQL查询语句时存在着平安隐患。SQL注入攻击的基本思想就是在用户输入中注入一些额外的特殊字符或者SQL语句,使系统构造出来的SQL语句在执行时变更了查询条件,或者附带执行了攻击者注入的SQL语句。攻击者依据程序返回的结果,获得某些想知道的数据,这就是所谓的SQL注入。SQL注入攻击源于英文“SQL Injection Attack”。目前还没有一种标准的定义,常见的是对这种攻击形式、特点的描述。微软技术中心从两个方面进行了描述:版权全部,盗版必纠15.2.4 SQL注入攻击(1)脚本注入式的攻击。(2)恶意用户输入用来影响被执行的SQL脚本。由于SQL注入攻击利用了SQL的语法,其针对的是基于数据的应用程序当中的漏洞,这使得SQL注入攻击具有广泛性。理论上说,对于全部基于SQL语言标准的数据库软件都是有效的。一个简洁SQL注入攻击的示例如下:通过网页提交数据 id、password以验证某个用户的登陆信息;然后通过服务器端的脚本构造如下的SQL查询语句:版权全部,盗版必纠15.2.4 SQL注入攻击SELECT*FROM user WHERE ID=+id+AND PASSWORD=+password+假如用户提交的id=abc,password=123系统会验证是否有用户名为abc,密码为123的用户存在,但是攻击者会提交恶意的数据:id=abc,password=OR 1=1使得脚本语言构造的SQL查询语句变成:SELECT*FROM user WHERE ID=abc AND PASSWORD=OR 1=1因为1=1恒为真,所以攻击者就可以轻而易举的绕过密码验证。目前易受到SQL注入攻击的两大系统平台组合:MySQL+PHP和SQL Server+ASP。其中MySQL和SQL Server是两种SQL数据库系统,ASP和PHP是两种服务端脚本语言,SQL注入攻击正是由于服务器脚本程序存在漏洞造成的。版权全部,盗版必纠15.2.4 SQL注入攻击2.SQL注入攻击的一般步骤注入攻击的一般步骤SQL注入攻击的手法相当敏捷,在遇到意外状况时须要构注入攻击的手法相当敏捷,在遇到意外状况时须要构造奇妙的造奇妙的SQL语句,从而成功获得须要的数据。总体来说,语句,从而成功获得须要的数据。总体来说,SQL注入攻击有以下几个步骤:注入攻击有以下几个步骤:(1)发觉发觉SQL注入位置。注入位置。找到存在找到存在SQL注入漏洞的网页地址,是起先注入漏洞的网页地址,是起先SQL注入的注入的一步。不同的一步。不同的URL地址带有不同类型的参数,须要不同的地址带有不同类型的参数,须要不同的方法来推断。方法来推断。(2)推断数据库的类型。推断数据库的类型。不同厂商的数据库管理系统的不同厂商的数据库管理系统的SQL语言虽然都基于标准的语言虽然都基于标准的SQL语言,但是不同的产品对语言,但是不同的产品对SQL的支持不尽相同,对的支持不尽相同,对SQL也有各自的扩展。而且不同的数据有不同的攻击方法,也有各自的扩展。而且不同的数据有不同的攻击方法,必须要区分对待。必须要区分对待。版权全部,盗版必纠15.2.4 SQL注入攻击(3)通过SQL注入获得须要的数据。获得数据库中的机密数据是SQL注入攻击的主要目的。例如管理员的账户信息,登陆口令等等。(4)执行其他的操作。在取得数据库的操作权限之后,攻击者可能会实行进一步的攻击,例如上传木马以获得更高一级的系统限制权限,达到完全限制目标主机的目的。这部分内容本文不做具体探讨。版权全部,盗版必纠15.2.4 SQL注入攻击3.SQL注入漏洞的推断注入漏洞的推断一般来说,一般来说,SQL注入一般存在于形如:注入一般存在于形如::/localhost/show.asp?id=XX等带有参数的动态等带有参数的动态网页中,这些参数可能有一个或者多个,参数类型可能是网页中,这些参数可能有一个或者多个,参数类型可能是数字型或者字符型。假如动态网页带有参数并且访问数据数字型或者字符型。假如动态网页带有参数并且访问数据库,那么就有可能存在库,那么就有可能存在SQL注入。注入。以下以以下以 :/localhost/show.asp?id=XX为例进行为例进行分析,分析,XX可能是整型,也有可能是字符串。可能是整型,也有可能是字符串。(1)整型参数的推断整型参数的推断当输入的参数当输入的参数XX为整型时,通常为整型时,通常show.asp中中SQL语句语句原貌大致如下:原貌大致如下:select*from 表名表名 where 字段字段=XX,所以可以用,所以可以用以下步骤测试以下步骤测试SQL注入是否存在。注入是否存在。版权全部,盗版必纠15.2.4 SQL注入攻击 :/localhost/show.asp?id=XX(附加一个单引号),此时show.asp中的SQL语句变成了select*from 表名 where 字段=XX,show.asp运行异样;:/localhost/show.asp?id=XX and 1=1,show.asp运行正常,而且与 :/localhost/show.asp?id=XX运行结果相同;:/localhost/show.asp?id=XX and 1=2,show.asp运行异样;假如以上三步全面满足,该脚本中确定存在SQL注入漏洞。版权全部,盗版必纠15.2.4 SQL注入攻击(2)字符串型参数的推断当输入的参数XX为字符串时,通常show.asp中SQL语句原貌大致如下:select*from 表名 where 字段=XX,所以可以用以下步骤测试SQL注入是否存在。:/localhost/show.asp?id=XX(附加一个单引号),此时show.asp中的SQL语句变成了select*from 表名 where 字段=XX,show.asp运行异样;:/localhost/show.asp?id=XX or 1=1,show.asp运行正常,而且与 :/localhost/show.asp?id=XX运行结果相同;:/localhost/show.asp?id=XX and 1=2,show.asp运行异样;假如以上三步全面满足,show.asp中确定存在SQL注入漏洞。版权全部,盗版必纠15.2.4 SQL注入攻击(3)特殊状况的处理有时程序员会在程序过滤掉单引号等字符,以防止SQL注入。此时可以用以下几种方法尝试注入。大小定混合法:由于ASP并不区分大小写,而程序员在过滤时通常要么全部过滤大写字符串,要么全部过滤小写字符串,而大小写混合往往会被忽视。如用SelecT代替select,SELECT等。UNICODE法:在IIS中,以UNICODE字符集实现国际化,我们完全可以IE中输入的字符串化成UNICODE字符串进行输入。如+=%2B,空格=%20 等。ASCII码法:可以把输入的部分或全部字符全部用ASCII码代替,如U=chr(85),a=chr(97)等。图15.3描述了正常状况下访问一个网页的界面,图15.4是在URL后追加and 1=1时访问这个网页的界面、图15.5是1=2时访问这个网页的界面。由此可以确定该页面存在SQL注入漏洞。版权全部,盗版必纠15.2.4 SQL注入攻击版权全部,盗版必纠15.2.4 SQL注入攻击版权全部,盗版必纠15.2.4 SQL注入攻击版权全部,盗版必纠15.3 数据库攻击的防范措施从上一节可以看出针对数据库攻击有各种各样的攻击,本章来讲解并描述针对于上述攻击的防范措施。由于目前互联网上SQL攻击比较多,并且危害比较大,所以本节重点讲解并描述如何防范SQL攻击。版权全部,盗版必纠15.3.1 数据库攻击防范概述数据库系统的平安除依靠自身内部的平安机制外,还与外部网络环境、应用环境、从业人员素养等因素休戚相关,因此,从广义上讲,数据库系统的平安框架如前所述可以划分为5个层次,这里主要讲其中的三个层次:(1)网络层平安从广义上讲,数据库的平安首先依靠于网络系统。随着Internet的发展和普及,越来越多的公司将其核心业务向互联网转移,各种基于网络的数据库应用系统如雨后春笋般涌现出来,面对网络用户供应各种信息服务。可以说网络系统是数据库应用的外部环境和基础,数据库系统要发挥其强大作用离不开网络系统的支持,数据库系统的用户(如异地用户、分布式用户)也要通过网络才能访问数据库的数据。网络系统的平安是数据库平安的第一道屏障,外部入侵首先就是从入侵网络系统起先的。从技术角度讲,网络系统层次的平安防范技术有很多种,大致可以分为防火墙、入侵检测、VPN技术等。版权全部,盗版必纠15.3.1 数据库攻击防范概述(2)操作系统层平安操作系统是大型数据库系统的运行平台,为数据库系统供应确定程度的平安爱护。目前操作系统平台大多数集中在Windows NT和Unix,平安级别通常为C1、C2级。主要平安技术有操作系统平安策略、平安管理策略、数据平安等方面。操作系统平安策略用于配置本地计算机的平安设置,包括密码策略、账户锁定策略、审核策略、IP平安策略、用户权利指派、加密数据的复原代理以及其它平安选项。具体可以体现在用户账户、口令、访问权限、审计等方面。版权全部,盗版必纠15.3.1 数据库攻击防范概述(3)数据库管理系统层平安数据库系统的平安性很大程度上依靠于数据库管理系统。假如数据库管理系统平安机制特别强大,则数据库系统的平安性能就较好。目前市场上流行的是关系式数据库管理系统,其平安性功能很弱,这就导致数据库系统的平安性存在确定的威逼。由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以干脆利用操作系统的漏洞窃取数据库文件,或者干脆利用OS工具来非法伪造、篡改数据库文件内容。这种隐患一般数据库用户难以察觉,分析和堵塞这种漏洞被认为是B2级的平安技术措施。版权全部,盗版必纠15.3.1 数据库攻击防范概述数据库管理系统层次平安技术主要是用来解决这一问题,即当前面两个层次已经被突破的状况下仍能保障数据库数据的平安,这就要求数据库管理系统必需有一套强有力的平安机制。解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。以上这三个层次构筑成数据库系统的平安体系,与数据平安的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的平安。版权全部,盗版必纠15.3.2 SQL注入攻击的防范随着一些自动化注入攻击的出现,目前针对Web应用的SQL注入攻击越来越普遍,技术也在不断翻新。但是SQL注入的基本原理还是通过构造畸形的SQL语句,绕过认证系统获得敏感信息。然而为了运用Web服务器和数据库服务器的功能,实现信息交互的目的就不行避开的暴露一些可以被攻击者非法利用的平安缺陷。如何实行有效的措施阻挡内部信息泄露,将系统的平安威逼降至最低是防护的关键。这须要从配置Web服务器、配置数据库和编写平安代码等多方面着手,加强系统平安性。版权全部,盗版必纠15.3.2 SQL注入攻击的防范1.Web服务器的平安配置服务器的平安配置由于由于Web服务器浩大而困难的结构,使得服务器浩大而困难的结构,使得Web服务器在服务器在平安方面难免存在缺陷漏洞。正确配置平安方面难免存在缺陷漏洞。正确配置Web服务器可以服务器可以与有效降低与有效降低SQL注入的风险。注入的风险。(1)修改服务器初始配置修改服务器初始配置服务器在安装时会添加默认的用户和默认口令,开启默认服务器在安装时会添加默认的用户和默认口令,开启默认的连接端口等,这些都会给攻击者留下入侵的可能。在安的连接端口等,这些都会给攻击者留下入侵的可能。在安装完成后应当刚好删除默认的账号或者修改默认登录名的装完成后应当刚好删除默认的账号或者修改默认登录名的权限。关闭全部服务端口后,再开启须要运用的端口。权限。关闭全部服务端口后,再开启须要运用的端口。(2)刚好安装服务器平安补丁刚好安装服务器平安补丁刚好对服务器模块进行必要的更新,特殊是官方供应的有刚好对服务器模块进行必要的更新,特殊是官方供应的有助于提高系统平安性的补丁包。使服务器保持最新的补丁助于提高系统平安性的补丁包。使服务器保持最新的补丁包,运行稳定的版本。包,运行稳定的版本。版权全部,盗版必纠15.3.2 SQL注入攻击的防范(3)关闭服务器的错误提示信息错误提示信息对于调试中的应用程序有着很重要的作用,但是当Web应用一旦发布,这些错误提示信息就应当被关闭。具体的错误信息也会让攻击者获得很多重要信息。自行设置一种错误提示信息,即全部错误都只返回同一条错误消息,让攻击无法获得有价值的信息。(4)配置书目权限对于Web应用程序所在的书目可以设置其为只读的。通过客户端上传的文件单独存放,并设置为没有可执行权限,并且不在允许Web访问的书目下存放机密的系统配置文件。这样是为了防止注入攻击者上传恶意文件,例如Webshell等等。版权全部,盗版必纠15.3.2 SQL注入攻击的防范(5)删除危急的服务器组件有些服务器组件会为系统管理员供应便利的配置途径,比如通过Web页面配置服务器和数据库、运行系统吩咐等等。但是这些组件可能被恶意用户加以利用,从而对服务器造成更严峻的威逼。为平安起见,应当刚好删除这样的服务器组件。(6)刚好分析系统日志将服务器程序的日志存放在平安书目中,定期对日志文件进行分析,一边第一时间发觉入侵。但是日志分析只是一种被动的防卫手段,只能分析和鉴别入侵行为的存在,但是对于正在发生的入侵无法做出有效的防范。版权全部,盗版必纠15.3.2 SQL注入攻击的防范2.数据库的平安配置数据库的平安配置(1)修改数据库初始配置修改数据库初始配置数据库系统在安装时会添加默认的用户和默认口令等,例如数据库系统在安装时会添加默认的用户和默认口令等,例如MySQL安装过程中默认密码为空的安装过程中默认密码为空的root账号。这些都会给攻击者留下入侵的账号。这些都会给攻击者留下入侵的可能。在安装完成后应当刚好删除默认的账号或者修改默认登录名的可能。在安装完成后应当刚好删除默认的账号或者修改默认登录名的权限。权限。(2)刚好升级数据库刚好升级数据库刚好对数据库模块进行必要的更新,特殊是官方供应的有助于提高数刚好对数据库模块进行必要的更新,特殊是官方供应的有助于提高数据库系统平安性的补丁包,可以解决已知的数据库漏洞问题。据库系统平安性的补丁包,可以解决已知的数据库漏洞问题。(3)最小权利法则最小权利法则Web应用程序连接数据库的账户只拥有必要的权限,这有助于爱护应用程序连接数据库的账户只拥有必要的权限,这有助于爱护整个系统尽可能少的受到入侵。用不同的用户账户执行查询、插入、整个系统尽可能少的受到入侵。用不同的用户账户执行查询、插入、删除等操作,可以防止用于执行删除等操作,可以防止用于执行SELECT的状况下,被恶意插入执行的状况下,被恶意插入执行INSERT、UPDATE或者或者DELETE语句。语句。版权全部,盗版必纠15.3.2 SQL注入攻击的防范3.脚本解析器平安设置脚本解析器平安设置对于对于PHP编程语言,在编程语言,在php.ini文件中可以配置文件中可以配置一些涉及平安性的设置,通过这些设置可以增加一些涉及平安性的设置,通过这些设置可以增加SQL的注入难度,降低的注入难度,降低SQL注入风险:注入风险:(1)设置设置“magic_quotes_gpc”为为“on”该选项是可以将一些输入的特殊字符自动转义。该选项是可以将一些输入的特殊字符自动转义。(2)设置设置“register_globals”为为“off”“register_globals”选项来设置启用选项来设置启用/禁止禁止PHP为用户输入创建全局变量,设置为为用户输入创建全局变量,设置为off表示:表示:假如用户提交表单变量假如用户提交表单变量a,PHP不会创建不会创建&a,而只会创建,而只会创建_GETa或者或者_POST VARSa。版权全部,盗版必纠15.3.2 SQL注入攻击的防范(3)设置“safe_mode”为“on”打开这个选项会增加几条限制:限制指定吩咐可以执行、限制指定函数可以运用、基于脚本全部权和目标文件全部权的文件访问限制、禁止文件上传功能。(4)设置“open_basedir”为“off”它可以禁止指定文件书目之外的文件操作,有效解决include()函数攻击。(5)设置“display_errors”为“off”此时是禁止把错误信息显示在网页上,因为这些语句中可能会返回应用程序中的有关变量名、数据库用户名、表结构信息等。恶意用户有可能利用其中获得的有关信息进行注入攻击。也可以设置此选项为“on”,但是要修改脚本返回的错误信息,使其发生错误时只显示一种信息。版权全部,盗版必纠15.3.2 SQL注入攻击的防范4.过滤特殊字符过滤特殊字符SQL注入攻击的实质就是构造畸形的注入攻击的实质就是构造畸形的SQL语句,同过语句,同过Web应用程序送达数据库系统执行。假如应用程序送达数据库系统执行。假如Web应用程序应用程序没有对用户输入的参数进行过滤,就运用这些参数构造没有对用户输入的参数进行过滤,就运用这些参数构造SQL语句送达数据库系统执行,那么极有可能发生语句送达数据库系统执行,那么极有可能发生SQL注入攻击。注入攻击。(1)整形参数过滤整形参数过滤对于整形参数,可以通过强制类型转换,例如:对于整形参数,可以通过强制类型转换,例如:$user_id=(int)_$GETuid;将用户输入的参数中非整数部分去除。将用户输入的参数中非整数部分去除。(2)简洁的字符和数字组合参数验证简洁的字符和数字组合参数验证这是最常见的一种输入允许条件,验证这样的数据,正则这是最常见的一种输入允许条件,验证这样的数据,正则表达式为:表达式为:/w+$/。这将允许用户输入字母、数字。这将允许用户输入字母、数字和下划线符号。和下划线符号。版权全部,盗版必纠15.3.2 SQL注入攻击的防范(3)包含特殊字符的参数的处理目前网络公认的SQL注入非法字符主要集中在:“”、“;”、“-”、“+”、“”、“%”、“=”等和一些特殊语句上面,如DELETE。在这些不应当出现特殊字符的地方出现了非法字符就可以干脆通过过滤阻挡,目前通用的此类防范正则表达式为:(|and|insert|select|delete|-|+|&|update|count|*|%|chr|mid|master|exec|char|declare)当然还要包括这些符号和字符的十进制和十六进制码。这里还有些内容没有添加到表达式中,但是它可以随系统和管理员的须要补充最新的特殊符号,以防止更新的注入攻击形式。(4)限制用户参数长度全部字符串都必需限定为合适的长度。例如,用户名无需运用256个字符。这样可以削减恶意字符串的长度,能够有效地阻挡SQL注入攻击的成功实施。版权全部,盗版必纠15.3.2 SQL注入攻击的防范5.应用存储过程防范应用存储过程防范SQL注入攻击注入攻击存储过程是一组编译在单个执行支配中的存储过程是一组编译在单个执行支配中的Transact-SQL语句,存储过程是语句,存储过程是SQL语句和可选限制流语句的预编译集合,以一个名称存储并作为一个单元语句和可选限制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。存储过程帮助在不同的应用程序之间实现一样的或多个结果集以及返回值。存储过程帮助在不同的应用程序之间实现一样的逻辑。在一个存储过程内,可以设计、编码和测试执行某个常用任务所需的逻辑。在一个存储过程内,可以设计、编码和测试执行某个常用任务所需的SQL语句和逻辑。而后,每个须要执行该任务的应用程序只须执行此存储过语句和逻辑。而后,每个须要执行该任务的应用程序只须执行此存储过程即可。将业务逻辑编入单个存储过程还供应了单个限制点,以确保业务规程即可。将业务逻辑编入单个存储过程还供应了单个限制点,以确保业务规则正确执行。假如某操作须要大量则正确执行。假如某操作须要大量Transact-SQL代码或需重复执行,存储代码或需重复执行,存储过程将比过程将比Transact-SQL批代码的执行要快。将在创建存储过程时对其进行批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后运用该过程的内存中版本。每次运行分析和优化,并可在首次执行该过程后运用该过程的内存中版本。每次运行Transact-SQL语句时,都要从客户端重复发送,并且在语句时,都要从客户端重复发送,并且在SQL Server每每次执行这些语句时,都要对其进行编译和优化。一个须要数百

    注意事项

    本文(第15章--数据库系统安全优秀PPT.ppt)为本站会员(1398****507)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开