第9章数据库系统安全.ppt
第第9章章数据库系统安全数据库系统安全数据库是计算机科学的一个重要分支,数据库是计算机科学的一个重要分支,任何信任何信息管理的应用息管理的应用都都离不开数据库离不开数据库的支持。的支持。随着网络的发展,随着网络的发展,数据库已经与网络数据库已经与网络紧密地结紧密地结合起来。合起来。数据库系统安全的重要性不亚于网络安全的重数据库系统安全的重要性不亚于网络安全的重要性。数据库是信息的主要来源。要性。数据库是信息的主要来源。数据库系统的安全有它数据库系统的安全有它独有的特点独有的特点。第第9章章 数据库系统安全数据库系统安全Network and Information Security9.1数据库安全概述数据库安全概述Network and Information Security安安 全全 问问 题题注注 释释物理上物理上的数据库的数据库完整性完整性预防数据库物理方面的问题,如预防数据库物理方面的问题,如掉电,以及当被灾祸掉电,以及当被灾祸破坏后能重构破坏后能重构数据库数据库逻辑上逻辑上的数据库的数据库完整性完整性保持数据的结构,比如:保持数据的结构,比如:一个字段值的修改不至于影一个字段值的修改不至于影响其他字段响其他字段元素的完整性元素的完整性包含在每个元素中的数据都是包含在每个元素中的数据都是准确的准确的可审计性可审计性能够能够追踪追踪到谁访问修改过数据的元素到谁访问修改过数据的元素访问控制访问控制允许用户只访问被批准的数据,以及限制不同的用户允许用户只访问被批准的数据,以及限制不同的用户有有不同的访问模式不同的访问模式,如读或写,如读或写用户认证用户认证确保每个确保每个用户被正确地识别用户被正确地识别,既便于审计追踪,也为,既便于审计追踪,也为了限制对特定的数据进行访问了限制对特定的数据进行访问可获(用)性可获(用)性用户一般可以访问数据库以及所有用户一般可以访问数据库以及所有被批准访问的数据被批准访问的数据保密性保密性非授权用户非授权用户得不到数据的明文得不到数据的明文(1)(1)存取控制技术存取控制技术(2)(2)隔离控制技术隔离控制技术(3)(3)加密技术加密技术(4)(4)信息流向控制技术信息流向控制技术(5)(5)推理控制技术推理控制技术(6)(6)数据数据备备份技份技术术 Network and Information Security9.1.1 数据库安全技术一般情况下,我们可以确定整个数据库一般情况下,我们可以确定整个数据库是是敏感敏感的的(要求保密要求保密)或或不敏感的不敏感的(不要求不要求保密保密)。细一点,可以确定库中的细一点,可以确定库中的某个基表某个基表(对于对于关系型数据库关系型数据库)是是敏感的或不敏感的敏感的或不敏感的。但有时情况却复杂得多。但有时情况却复杂得多。Network and Information Security9.1.2多级数据库多级数据库姓名、部门和电话姓名、部门和电话这三列是不需保密的,任何人都可以这三列是不需保密的,任何人都可以查询。查询。但是但是工资和绩效考核工资和绩效考核却是必须保密的却是必须保密的(现在很多企业都搞现在很多企业都搞所谓的所谓的“密薪制密薪制”),这说明基表中只有部分字段是敏感,这说明基表中只有部分字段是敏感的。的。姓名部门工资电话绩效考核张三培训部18002175349优李四技术部25002171420良王五办公室16002582322中赵六客户服务部20002582254良Network and Information Security也许也许李四李四是一个特殊人物,他的所有情况都要保密,是一个特殊人物,他的所有情况都要保密,甚至甚至他的存在他的存在都是一个秘密。都是一个秘密。赵六的电话赵六的电话也许很重要,不想被别人知道。也许很重要,不想被别人知道。这些数据的安全要求与这些数据的安全要求与工资与绩效考核工资与绩效考核两个字段的两个字段的安全要求是不一样的。安全要求是不一样的。姓名部门工资电话绩效考核张三培训部18002175349优李四技术部25002171420良王五办公室16002582322中赵六客户服务部20002582254良Network and Information Security1.1.一个元素的敏感度一个元素的敏感度可能可能不同于不同于同一记录的其他元同一记录的其他元素素或或同一属性的其他值同一属性的其他值。这要求应该对每个元素单。这要求应该对每个元素单独实行安全保护。独实行安全保护。2.2.敏感和不敏感敏感和不敏感两种级别两种级别不足以描绘不足以描绘某些安全要求,某些安全要求,需要需要多个安全级别多个安全级别。3.3.集合安全不同于单个元素的安全集合安全不同于单个元素的安全,如数据库中的,如数据库中的和、平均值。集合安全可能高于也可能低于单个元和、平均值。集合安全可能高于也可能低于单个元素的安全。素的安全。第第9章章 数据库系统安全数据库系统安全Network and Information Security数据库安全特点数据库安全特点虽然虽然DBMSDBMS在操作系统的基础上增加了不少安全措施,例如基在操作系统的基础上增加了不少安全措施,例如基于权限的访问控制等,但操作系统和于权限的访问控制等,但操作系统和DBMSDBMS对数据库文件本身对数据库文件本身仍然缺乏有效的保护措施,有经验的黑客会仍然缺乏有效的保护措施,有经验的黑客会“绕道而行绕道而行”,直接利用操作系统工具窃取或篡改数据库文件内容直接利用操作系统工具窃取或篡改数据库文件内容。被称为通向被称为通向DBMSDBMS的的“隐秘通道隐秘通道”,它所带来的危害一般数据,它所带来的危害一般数据库用户难以觉察。库用户难以觉察。分析和堵塞分析和堵塞“隐秘通道隐秘通道”被认为是被认为是B2B2级的安全技术措施。级的安全技术措施。对数据库中的对数据库中的敏感数据进行加密敏感数据进行加密处理,是堵塞这一处理,是堵塞这一“隐秘通隐秘通道道”的有效手段。的有效手段。9.9.2 2 数据库加密数据库加密第第9章章 数据库系统安全数据库系统安全Network and Information Security80的计算机犯罪来自系统内部。的计算机犯罪来自系统内部。在传统的数据库系统中,在传统的数据库系统中,数据库管理员的权力至高数据库管理员的权力至高无上无上,他既负责各项系统管理工作,例如,他既负责各项系统管理工作,例如资源分配、资源分配、用户授权、系统审计用户授权、系统审计等,又可以查询数据库中的一等,又可以查询数据库中的一切信息。切信息。为此,可采用技术手段来为此,可采用技术手段来削弱系统管理员的权力削弱系统管理员的权力,如采用如采用多权分立多权分立的策略,除了系统管理员以外,增的策略,除了系统管理员以外,增加安全员和审计员,使加安全员和审计员,使系统管理员、安全员和审计系统管理员、安全员和审计员之间相互牵制、制约员之间相互牵制、制约。实现数据库加密以后,各用户(或用户组)实现数据库加密以后,各用户(或用户组)的数据由的数据由用户用自己的密钥加密用户用自己的密钥加密,数据库,数据库管理员没有密钥无法进行正常解密,从而管理员没有密钥无法进行正常解密,从而保证了用户信息的安全。保证了用户信息的安全。另外,通过加密,数据库的部分内容成为另外,通过加密,数据库的部分内容成为密文,从而能密文,从而能减少因介质失窃或丢失而造减少因介质失窃或丢失而造成的损失成的损失。数据库加密对于企业内部安全管理,也是数据库加密对于企业内部安全管理,也是不可或缺的。不可或缺的。一般来说,一个良好的数据库加密系统应该满足以一般来说,一个良好的数据库加密系统应该满足以下基本要求:下基本要求:1.1.支持各种粒度加密支持各种粒度加密2.2.良好的密钥管理机制良好的密钥管理机制3.3.合理处理数据合理处理数据4.4.不影响合法用户的操作不影响合法用户的操作Network and Information Security9.9.2.1 2.1 数据库加密的基本要求数据库加密的基本要求1.操作系统层加密2.DBMS内核层实现加密 3.DBMS外层实现加密 Network and Information Security9.9.2.2 2.2 数据库加密的方式数据库加密的方式数据库加密系统分成两个功能独立的主要部件:一个是数据库加密系统分成两个功能独立的主要部件:一个是加加密字典及其管理程序密字典及其管理程序,另一个是数据库,另一个是数据库加加/解密引擎解密引擎通过调用通过调用数据加数据加/解密引擎解密引擎实现对数据库实现对数据库数据的加密、解密及数据转换数据的加密、解密及数据转换等功能。等功能。用户对用户对数据库信息具体数据库信息具体的加密要求以及参数信的加密要求以及参数信息息保存在保存在加密字典加密字典中中优点首先,系统对数据库的最终用户是首先,系统对数据库的最终用户是完全透明完全透明的,的,系统系统(?)可以可以根据需要进行明文和密文的转换工作;根据需要进行明文和密文的转换工作;其次,其次,加密系统加密系统完全独立于完全独立于数据库应用系统数据库应用系统,无须改动数据库应,无须改动数据库应用系统就能实现数据加密功能;用系统就能实现数据加密功能;第三,加第三,加/解密处理在客户端进行,解密处理在客户端进行,不会影响数据库服务器的效率不会影响数据库服务器的效率。数据库加数据库加/解密引擎是解密引擎是数据库加密系统数据库加密系统的核心部件的核心部件,它位于客户程,它位于客户程序与数据库服务器之间,负责在后台完成数据库信息的加序与数据库服务器之间,负责在后台完成数据库信息的加/解密处解密处理,对操作人员来说是透明的。理,对操作人员来说是透明的。数据加数据加/解密引擎没有操作界面,在需要时由操作系统自动加载并解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中。驻留在内存中。数据库加密如果采用数据库加密如果采用序列密码序列密码,那么,那么同步同步将成为一个大问题。将成为一个大问题。需要对需要对大片密文中的极小部分大片密文中的极小部分解密时,如何同步密文与密钥呢?解密时,如何同步密文与密钥呢?非对称加密非对称加密?所以数据库加密所以数据库加密一般一般采用分组密码采用分组密码。对于分组密码中常用的对于分组密码中常用的ECBECB和和CBCCBC两种模式,又该如何确定呢?两种模式,又该如何确定呢?考虑到数据库中会有考虑到数据库中会有大量相同大量相同的数据,比如性别、职务、年龄等信息,的数据,比如性别、职务、年龄等信息,我们应该采用我们应该采用CBCCBC模式。模式。对于在对于在DBMSDBMS上实现的加密,上实现的加密,加密粒度加密粒度可以细分为可以细分为基表、记录、字段或数基表、记录、字段或数据元素。据元素。第第9章章数据库系统安全数据库系统安全Network and Information Security9.9.2.3 2.3 数据库加密的方法及加密粒度数据库加密的方法及加密粒度9.9.2.4 2.4 数据库加密系统的密钥管理数据库加密系统的密钥管理 第第9章章数据库系统安全数据库系统安全Network and Information Security当一用户访问数据库时,当一用户访问数据库时,密钥管理中心利用某种技密钥管理中心利用某种技术对用户进行术对用户进行身份认证身份认证。如果是合法用户,则允许访问如果是合法用户,则允许访问.密钥管理中心根据密钥管理中心根据用户的权限取出用户的权限取出相应的数据密钥相应的数据密钥,根据用户的,根据用户的请求请求对有关数据进行加解密处理对有关数据进行加解密处理。其中密钥的产生应满足下列条件:1.在产生大量密钥的过程中,在产生大量密钥的过程中,产生重复密钥的产生重复密钥的概率要尽可能的低概率要尽可能的低。2.从从一个数据项的密钥一个数据项的密钥推导出推导出另一个数据项的另一个数据项的密钥密钥在在计算上是不可行计算上是不可行的,这样,即使部分密的,这样,即使部分密钥泄露,其他密钥也是安全的。钥泄露,其他密钥也是安全的。3.即使知道一些明文值的即使知道一些明文值的统计分布统计分布,要从密文,要从密文中获取未知明文,在计算上是不可行的。中获取未知明文,在计算上是不可行的。9.9.3.1 3.1 统计数据库的安全问题统计数据库的安全问题 具体地说,统计数据库是这样一种数据库;具体地说,统计数据库是这样一种数据库;从库中取从库中取得的信息是关于一得的信息是关于一实体集子集实体集子集的汇总信息的汇总信息。统计数据库只为统计数据库只为提供统计数据提供统计数据所用,如人口普查数据所用,如人口普查数据库就是这样。库就是这样。在统计数据库中,除了在统计数据库中,除了禁止非法存取禁止非法存取等一般安全问题等一般安全问题外,还存在外,还存在特殊的安全特殊的安全问题。问题。保护统计数据库的目的是,由保护统计数据库的目的是,由该数据库发布统计信息该数据库发布统计信息时,保证不会使其中受保护的具体信息泄露时,保证不会使其中受保护的具体信息泄露。9.9.3 3 统计数据库的安全统计数据库的安全第第9章章数据库系统安全数据库系统安全Network and Information Security一般的统计数据库有下面几种统计信息类型:一般的统计数据库有下面几种统计信息类型:1.1.计数:计数:count(c)count(c),求满足特征表达式求满足特征表达式c c的记录个数。的记录个数。2.2.求求和和:sum(c,a)sum(c,a),求求满满足足特特征征表表达达式式c c的的记记录录中中字字段段a a的和。的和。3.3.求求平平均均值值:average(c,a)average(c,a),求求满满足足特特征征表表达达式式c c的的记录中字段记录中字段a a的平均值。的平均值。4.4.求求最最大大值值:max(c,a)max(c,a),求求满满足足特特征征表表达达式式c c的的记记录录中字段中字段a a的最大值。的最大值。5.5.求求最最小小值值:min(c,a)min(c,a),求求满满足足特特征征表表达达式式c c的的记记录录中字段中字段a a的最小值。的最小值。第第9章章数据库系统安全数据库系统安全Network and Information Security编号章节题型难度分值111选择A2211填空B2321判断C2421简答A5531应用B10631选择C2741填空A2841简答B5题库分析人如果想知道第三章各题的分值,他直接查询将题库分析人如果想知道第三章各题的分值,他直接查询将会被拒绝。会被拒绝。但他可以先查询但他可以先查询count(章章=3),得到结果为,得到结果为2;他再查询他再查询sum(章章=3,分值,分值),得到结果,得到结果12;他再查询他再查询max(章章=3,分值,分值),得到结果,得到结果10。现在他已知道第三章有两道题,一道现在他已知道第三章有两道题,一道10分,一道分,一道2分。分。用户通过一些统计数据库用户通过一些统计数据库允许的合法查询允许的合法查询,可以得到本,可以得到本来来对他保密的信息对他保密的信息。统计数据库远不是安全保密的,而且,前面介绍的一般统计数据库远不是安全保密的,而且,前面介绍的一般数据库的数据库的访问控制访问控制并不能解决统计数据库的泄密问题并不能解决统计数据库的泄密问题.因为因为访问控制访问控制主要是限制用户的主要是限制用户的存取权力存取权力,用户只能对,用户只能对数据库中的一部分数据进行访问。数据库中的一部分数据进行访问。在统计数据库中,保密的目标应该是在统计数据库中,保密的目标应该是防止用户通过一系防止用户通过一系列列“合法合法”的统计查询,使的统计查询,使“不合法不合法”的要求得到满足的要求得到满足,也就是防止用户从一系列查询中推理出某些秘密信息,也就是防止用户从一系列查询中推理出某些秘密信息,这时我们要实行的控制称为这时我们要实行的控制称为“推理控制推理控制”。第第9章章数据库系统安全数据库系统安全Network and Information Security9.9.3.2 3.2 安全性与精确度安全性与精确度 第第9章章数据库系统安全数据库系统安全Network and Information Security设设S为全部统计信息,为全部统计信息,P为非机密统计信息子集,为非机密统计信息子集,R为发布的子为发布的子集,集,D是由是由R(也包括也包括R在内的统计信息在内的统计信息)泄露的统计信息子集泄露的统计信息子集 发布发布R子集的目的是,全部非机密统计信息在子集的目的是,全部非机密统计信息在R内或可由内或可由R求得,求得,当当DP时时(精确度精确度),发布的统计信息包含了全部非机密统计信,发布的统计信息包含了全部非机密统计信息,因而可认为发布的统计信息保证了精确度。息,因而可认为发布的统计信息保证了精确度。精确度精确度保证了保证了最大限度最大限度地使用统计信息地使用统计信息,而,而安全性安全性则则保证了秘保证了秘密统计信息密统计信息的秘密的秘密。如果满足条件如果满足条件DP(安全性安全性),则不会因,则不会因R而使秘密统计信息泄而使秘密统计信息泄露。露。可以看出,可以看出,安全性与精确度的要求正好是相反的安全性与精确度的要求正好是相反的,二者都满足,二者都满足的条件是的条件是DP。要做到既要做到既保证安全性,又保证精确度,即保证安全性,又保证精确度,即DP,是非常困难,是非常困难的的1.1.小查询集和大查询集攻击小查询集和大查询集攻击2.2.跟踪器攻击跟踪器攻击3.3.插入和删除攻击插入和删除攻击4.4.对线性系统的攻击对线性系统的攻击第第9章章数据库系统安全数据库系统安全Network and Information Security9.3.3 9.3.3 对统计数据库的攻击方式对统计数据库的攻击方式1.小查询集和大查询集攻击现假设用户的外部知识使其知道数据库内现假设用户的外部知识使其知道数据库内第第i个记录满足特征表达个记录满足特征表达式式c,如果用户以统计信息,如果用户以统计信息count(c)查询数据库,并得到回答查询数据库,并得到回答count(c)=1,则该用户能够确定该查询集只含一个记录,即第,则该用户能够确定该查询集只含一个记录,即第i个个记录。记录。此时,用户利用统计信息此时,用户利用统计信息sum(c,a)的查询,的查询,可求得第可求得第i个记录的个记录的字段字段a的值的值;也可以以统计信息也可以以统计信息count(candd)查询数据库内第查询数据库内第i个个记录是否满足特征表达式记录是否满足特征表达式d,若值为,若值为0则说明不满足,值为则说明不满足,值为1则说则说明满足。明满足。甚至在查询集记录个数不唯一的情况下,这类攻击有时仍然是可甚至在查询集记录个数不唯一的情况下,这类攻击有时仍然是可行的。行的。假设已知第假设已知第i个记录满足个记录满足c,且,且count(c)1,如果,如果count(candd)=count(c),则,则第第i个记录当然也满足个记录当然也满足d。如果如果count(candd)count(c),则不能确定第,则不能确定第i个记录是否满足个记录是否满足d。2.跟踪器攻击利用所谓利用所谓“跟踪器跟踪器”的手段,也可使统计数据库泄密。跟踪器有的手段,也可使统计数据库泄密。跟踪器有多种多种。假设用户假设用户已知第已知第i个记录唯一满足特征表达式个记录唯一满足特征表达式c,如果想通过统计,如果想通过统计查询查询sum(c,a)求得第求得第i个记录的字段个记录的字段a的值,在系统实施了查询集的值,在系统实施了查询集控制后,由于控制后,由于查询集过小将遭拒绝查询集过小将遭拒绝,故用户不能直接得到结果。,故用户不能直接得到结果。但是,如果特征表达式但是,如果特征表达式c可由多个表达式组合而成,即将可由多个表达式组合而成,即将c分成分成c1、c2,使得,使得c=c1-c2,同时,同时,count(c1)和和count(c2)都大小适中,不受都大小适中,不受限限。此时,由于此时,由于count(c1)和和count(c2)均不受查询集限制,所以用户可均不受查询集限制,所以用户可用用count(c)=count(c1)-count(c2)来验证来验证count(c)=1,然后可利用然后可利用sum(c,a)=sum(c1,a)-sum(c2,a)来求得第来求得第i个记录的字段个记录的字段a的值。的值。3.插入和删除攻击 插入和删除攻击是攻击者通过插入和删除攻击是攻击者通过插入自己所知的假记录来插入自己所知的假记录来观察统计信息的变化情况,从而分析出秘密信息观察统计信息的变化情况,从而分析出秘密信息。例如,如果例如,如果查询集过小查询集过小,用户可以将一些满足条件的假,用户可以将一些满足条件的假记录插入统计数据库,记录插入统计数据库,使得查询集变大使得查询集变大,从而使查询得,从而使查询得以进行。以进行。只需从查询集中只需从查询集中除去那些假记录的信息,除去那些假记录的信息,即可得到真实即可得到真实信息。信息。显然,如果显然,如果要求只对统计信息有查询权的用户不能插入要求只对统计信息有查询权的用户不能插入或删除记录,或虽然能够插入删除,但对或删除记录,或虽然能够插入删除,但对数据库出现的数据库出现的变化加以控制变化加以控制,则插入删除攻击并不会构成严重威胁,则插入删除攻击并不会构成严重威胁。4.对线性系统的攻击可以对统计数据库进行多次相关的查询,可以对统计数据库进行多次相关的查询,把把查询条件、查询结果和秘密信息构成查询条件、查询结果和秘密信息构成一个线性方程组一个线性方程组,通过,通过解线性方程组的解线性方程组的方法来求得秘密信息方法来求得秘密信息。第一第一类类:对统计对统计数据数据库库的的查询查询加以限制。加以限制。1.1.限制查询集的大小限制查询集的大小2.2.单元隐蔽单元隐蔽(能够帮助用户推导出秘密信息的有关统计信息单元应该隐能够帮助用户推导出秘密信息的有关统计信息单元应该隐去去)3.3.最大阶控制最大阶控制(如果一个统计查询恰好涉及到如果一个统计查询恰好涉及到m个互不相同的属性,那个互不相同的属性,那么这样的统计称为么这样的统计称为m阶统计,所谓最大阶控制就是要限制阶统计,所谓最大阶控制就是要限制m的值。的值。)4.4.数据库分割数据库分割(将数据库分割成一个个记录组,规定用户只能(将数据库分割成一个个记录组,规定用户只能以这些记录组作为基本单元进行统计查询,亦即同一记录组以这些记录组作为基本单元进行统计查询,亦即同一记录组中的数据,或者全部在查询集中,或者全部不在其中。中的数据,或者全部在查询集中,或者全部不在其中。)第第9章章 数据库系统安全数据库系统安全Network and Information Security9.3.4 9.3.4 统计数据库的安全措施统计数据库的安全措施第二类:数据搅乱方式第二类:数据搅乱方式对统计数据库的几种查询限制方式是以对统计数据库的几种查询限制方式是以限制用户限制用户的统计的统计查询要求为代价的,有时会影响正常用户的使用。查询要求为代价的,有时会影响正常用户的使用。数据搅乱方式的原理与此则完全不相同。数据搅乱方式的原理与此则完全不相同。所谓数据搅乱所谓数据搅乱,就是系统在发布统计信息之前,使统计,就是系统在发布统计信息之前,使统计值发生变化。值发生变化。当然,搅乱的目的是使用户无法从统计值中当然,搅乱的目的是使用户无法从统计值中推断出秘密推断出秘密信息信息,而不能破坏整个数据库数据的,而不能破坏整个数据库数据的统计规律统计规律。9.9.4.1 4.1 WebWeb数据库概述数据库概述由于由于WebWeb的易用性、实用性,它很快占据了的易用性、实用性,它很快占据了InternetInternet服务服务的主导地位,已经成为使用最为广泛、最有前途、最有魅的主导地位,已经成为使用最为广泛、最有前途、最有魅力的信息传播技术。力的信息传播技术。不过,不过,WebWeb服务只是提供了服务只是提供了InternetInternet上信息交互的平台。上信息交互的平台。随着随着InternetInternet技术的兴起与发展和技术的兴起与发展和WebWeb技术的蓬勃发展,技术的蓬勃发展,人们已不满足于只在人们已不满足于只在WebWeb浏览器上获取静态的信息,人们浏览器上获取静态的信息,人们需要通过它需要通过它发表意见、查询数据发表意见、查询数据,甚至进行网上购物,甚至进行网上购物,这这就迫切需要实现就迫切需要实现动态的动态的WebWeb信息信息服务。服务。9.9.4 4 WebWeb数据库的安全数据库的安全第第9章章数据库系统安全数据库系统安全Network and Information Security当前比较流行的当前比较流行的WebWeb数据库主要有:数据库主要有:1.SQL Server1.SQL Server2.MySQL2.MySQL3.Oracle3.Oracle这这3 3种种数数据据库库适适应应性性强强,性性能能优优异异,容容易易使使用,在国内得到了广泛的应用。用,在国内得到了广泛的应用。第第9章章数据库系统安全数据库系统安全Network and Information Security9.9.4.2 4.2 常用的几种常用的几种WebWeb数据库数据库(1)(1)突破客突破客户户端脚本的限制端脚本的限制 (2)(2)对对SQLSQL语语句的攻句的攻击击程程序序中中的的SQLSQL查查询询语语句句(以以ASP.netASP.net为为例例,username.Textusername.Text与与passwd.Textpasswd.Text是用户名与口令两个文本框的值)可能是:是用户名与口令两个文本框的值)可能是:sql=select*fromuserwhereusername=+username.Text+andpasswd=+passwd.Text+;执行的时候就是:执行的时候就是:select*fromuserwhereusername=chengandpasswd=1234第第9章章数据库系统安全数据库系统安全Network and Information Security9.4.3 9.4.3 WebWeb数据库安全简介数据库安全简介根根据据返返回回的的数数据据集集是是否否为为空空来来判判断断是是否否能能够够登登录录。如如果果攻攻击击者者在在passwdpasswd文文本本框框里里输输入入的的不不是是12341234,而而是是1111 1111 or or 1=11=1,SQLSQL语句就成为:语句就成为:select*from user where username=cheng and select*from user where username=cheng and passwd=1111 or 1=1 passwd=1111 or 1=1 由于由于1 1=1 1恒为真,即使口令不对也没关系,这条语恒为真,即使口令不对也没关系,这条语句肯定能返回数据集。句肯定能返回数据集。实际上,实际上,用户名对不对也没有关系用户名对不对也没有关系。这就是著名且古老的这就是著名且古老的1=11=1攻击。攻击。安全的办法是在程序中增加对安全的办法是在程序中增加对单引号等特殊字符的过滤单引号等特殊字符的过滤。第第9章章数据库系统安全数据库系统安全Network and Information Security(3)(3)利用多利用多SQLSQL语句执行漏洞语句执行漏洞select*from book where bookname=select*from book where bookname=linuxlinux入门入门如果我们输入的不是如果我们输入的不是linuxlinux入门而是入门而是linuxlinux入门入门;delete delete book-book-,则执行语句变为:则执行语句变为:select*from book where bookname=select*from book where bookname=linuxlinux入门入门;delete book-delete book-其中其中-的作用是把最后一个单引号注释掉,从而构成对的作用是把最后一个单引号注释掉,从而构成对表的删除。表的删除。(4)(4)包含文件泄露包含文件泄露第第9章章数据库系统安全数据库系统安全Network and Information Security在在进进行行SQL SQL ServerServer数数据据库库的的安安全全配配置置之之前前,首首先先你你必必须须对对操操作系作系统进统进行安全配置行安全配置,保,保证证你的操作系你的操作系统处统处于安全状于安全状态态。然然后后对对你你要要使使用用的的操操作作数数据据库库软软件件(程程序序)进进行行必必要要的的安安全全审审核核,比比如如对对ASPASP、PHPPHP等等脚脚本本,这这是是很很多多基基于于数数据据库库的的WEBWEB应应用常出用常出现现的安全的安全隐隐患。患。对对于于脚脚本本主主要要是是一一个个过过滤滤问问题题,需需要要过过滤滤一一些些类类似似单单引引号号的的特殊字符,防止破坏者构造特殊字符,防止破坏者构造恶恶意的意的SQLSQL语语句。句。接着,安装接着,安装SQL ServerSQL Server后后请请打上最新打上最新补补丁。丁。9.9.5 5 SQL ServerSQL Server数据库的安全数据库的安全第第9章章数据库系统安全数据库系统安全Network and Information Security在在SQLServer的配置工具中,可以进行网的配置工具中,可以进行网络安全的相关设置。对于络安全的相关设置。对于SQLServer2008,打开配置工具打开配置工具SQLServerConfigurationManager。(1)修改)修改TCP使用的端口。使用的端口。(2)隐藏)隐藏SQLServer服务器。服务器。(3)使用加密的网络传输。)使用加密的网络传输。(4)限制源)限制源IP地址。地址。第第9章章数据库系统安全数据库系统安全Network and Information Security9.5.1 SQL Server网络安全设置(1)使用安全的口令策略。)使用安全的口令策略。(2)使用安全的账号策略。)使用安全的账号策略。(3 3)加强数据库日志的记录。)加强数据库日志的记录。(4)管理扩展存储过程。)管理扩展存储过程。(5)数据的定时备份。数据的定时备份。第第9章章数据库系统安全数据库系统安全Network and Information Security9.5.2 SQL Server其他安全设置Thanks!