数据库系统安全课件

上传人:F****n 文档编号:88156414 上传时间:2019-04-20 格式:PPT 页数:53 大小:832.50KB
返回 下载 相关 举报
数据库系统安全课件_第1页
第1页 / 共53页
数据库系统安全课件_第2页
第2页 / 共53页
数据库系统安全课件_第3页
第3页 / 共53页
数据库系统安全课件_第4页
第4页 / 共53页
数据库系统安全课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《数据库系统安全课件》由会员分享,可在线阅读,更多相关《数据库系统安全课件(53页珍藏版)》请在金锄头文库上搜索。

1、第15章 数据库系统安全,概论,随着计算机技术的飞速发展,数据库的应用十分广泛,深入到各个领域,但随之而来产生了数据的安全问题。各种应用系统的数据库中大量数据的安全问题、敏感数据的防窃取和防篡改问题,越来越引起人们的高度重视。数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要,关系到企业兴衰、国家安全。因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,已经成为业界人士探索研究的重要课题之一,本章就数据库系统安全做讨论。,目录,第15章 数据库系统安全 15.1 数据库系统安全概述 15.2 针对数据库系统的攻击 15.2.1 弱口令攻击 15.2.2

2、 利用漏洞对数据库发起的攻击 15.2.3 SQL Serever的单字节溢出攻击 15.2.4 SQL注入攻击 15.3 数据库攻击的防范措施 15.3.1 数据库攻击防范概述 15.3.2 SQL注入攻击的防范 思考题,数据库安全是指数据库的任何部分都没有受到侵害,或者没有受到未经授权的存取和修改。 1数据库安全的内涵 数据库安全主要包括数据库系统安全和数据库数据安全两层含义。,返回本章首页,15.1 数据库系统安全概述,(1)数据库系统安全 数据库系统安全是指在系统级控制数据库的存取和使用机制,应尽可能地堵住各种潜在的漏洞,防止非法用户利用这些漏洞危害数据库系统的安全;同时保证数据库系统

3、不因软硬件故障和灾害的影响而不能正常运行。数据库系统安全包括: 硬件运行安全; 物理控制安全; 操作系统安全; 用户连接数据库需授权; 灾害、故障恢复等。,返回本章首页,(2)数据库数据安全 数据库数据安全是指在对象级控制数据库的存取和使用的机制,哪些用户可以存取指定的模式对象及在对象上允许有哪些操作。数据库数据安全包括: 有效的用户名/口令鉴别; 用户访问权限控制; 数据存取权限、方式控制; 审计跟踪; 数据加密等。,返回本章首页,2. 数据库安全管理原则 对数据库系统进行安全管理规划时一般要遵循以下原则: (1)管理细分和委派原则 (2)最小权限原则 (3)帐号安全原则 (4)有效审计原则

4、,返回本章首页,数据库管理系统简介,DBMS是专门负责数据库管理和维护的计算机软件系统,是数据库系统的核心,不仅负责数据库的维护工作,还负责数据库的安全性和完整性。 DBMS是与文件系统类似的软件系统,通过DBMS,应用程序和用户可以取得所需的数据。与文件系统不同的是DBMS还定义了所管理的数据之间的结构和约束关系,还提供了一些基本的数据管理和安全功能。,返回本章首页,数据库系统的缺陷与威胁,1.数据库系统的缺陷 数据库系统的安全缺陷主要体现在以下几个方面: 数据库系统安全通常与操作系统安全密切相关 数据库系统安全通常被忽视 数据库帐号和密码容易泄露,返回本章首页,2.数据库系统面临的威胁 数

5、据库系统面临的安全威胁主要来自以下几个方面: 物理和环境的因素 事务内部故障 存储介质故障 人为破坏 病毒与黑客 未经授权的数据读写与修改 对数据的异常访问造成数据库系统故障 数据库权限设置错误,造成数据的越权访问,返回本章首页,15.2 针对数据库系统的攻击,数据库系统是在操作系统平台之上的最重要的系统软件,数据库系统的安全可以说是十分重要的。曾经有句话这样说:如果网络遍地是金钱,那么金钱就在数据库服务器中。随着无纸化业务环境的不断扩大,人们在数据库中存储着越来越多的敏感信息:银行账户、医疗记录、政府文件、军事机密等等,数据库系统就成为越来越有价值的攻击目标,因此确保数据库系统的安全也越来越

6、重要。 作为一种大型的系统软件,数据库系统中也存在着各种各样的安全漏洞,其中危害性较大的有缓冲区溢出、堆溢出和SQL注入等。本小节将讲述一些典型的针对数据库系统的攻击。,15.2.1 弱口令攻击,弱口令是指口令强度过低,使非授权用户容易在短时间内通过猜解或者少量的列举即可得到口令。弱口令会使非授权用户获得访问数据库的权限。这会造成机密数据泄露、损坏等严重后果。 出现弱口令的原因多是在数据库安装和建立用户信息的时候,数据库管理员设置了统一且简单的访问口令,授权用户也没有及时修改默认口令。特别是在某些数据库安装的过程中,安装程序会默认建立一个空白口令的特权用户。,15.2.1 弱口令攻击,下面是一

7、个因为存在默认用户名和口令的实例。在2005年的1月W32.Spybot.IVQ蠕虫便是依靠空白口令的root用户感染了数以千计的Windows MySQL服务器。 在MySQL的某些默认配置中,mysql.user表内有4个默认条目:两个条目用于root,两个条目用于匿名账户。在主机build上,有一个用于账户root具有root特权的远程条目。 如果在本地主机上,可以用空白口令以root特权进行身份验证,则可以全面控制数据库。 如果在本地主机上,可以用任何用户进行身份验证,则可以guest权限访问数据库。,15.2.1 弱口令攻击,如果在被称为build的远程主机上,可以用任何用户进行身份

8、验证,则可以以guest权限访问数据库。 在Windows主机上,root账户的存在使得任何本地用户都可以将其自己提升到本地系统级访问权限,因为MySQL默认以SYSTEM运行。而且,如果攻击者简单地将他的主机命名为build,MySQL服务一旦启动,他就具有了对主机的远程系统级的访问权限。 针对这一问题最好的保护是采取以下措施: (1) 安装MySQL是禁止网络访问(拔掉网线或者应用全部防火墙规则)。 (2) 在安装之后,应立刻删除mysql.user表内除了本地主机(localhost)root账户之外的所有账户。 (3) 为本地主机的root账户设置复杂的口令。,15.2.2 利用漏洞对

9、数据库发起的攻击,数据库厂商会发现自己产品中的某些安全问题,然后为自己的产品提供某些安全补丁,产品的版本随之不断升级。作为数据库的用户,如果不及时升级自己的数据库,就会面临安全威胁。下面以零长度字符串绕过MySQL身份验证漏洞攻击为例子,讲解利用漏洞对数据库的攻击。,15.2.2 利用漏洞对数据库发起的攻击,在MySQL5.0以前的版本中,MySQL通过下面语句: check_scramble_323(passwd, thd-scramble, (ulong *)acl_user_tmp-salt) = 0 来判断用户输入的密码是否正确,然而在check_scramble_323()函数内可以

10、看到: 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字符串内没有

11、字符为止。因为scrambled字符串长度为0,根本不会进行循环比较,所以验证函数直接返回0,使得用户以0长度字符串通过身份验证。这是一个非常简单的利用数据库漏洞的例子。,15.2.3 SQL Serever的单字节溢出攻击,SQL Server 2000会监听UDP:1433端口,而且会对值为0x02的单字节报文进行响应,返回关于SQL Server的信息。但是当单字节报文的值不是0x02而是其他值时,SQL Server将会异常。会引起异常的值包括:0x04,导致栈溢出发生;0x08字符,会导致对溢出;0x0A,会引发拒绝服务攻击。 另外,在一些数据库管理系统,如WinMySQLAdmin

12、在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注入可导致数

13、据库系统中的普通用户窃取机密数据、进行权限提升等,而这种攻击方式又不需要太多计算机方面的知识,一般只要能熟练使用SQL语言即可,因此对数据库的安全构成了很大的威胁。另外,目前还有NBSI等SQL注入工具,更使得对数据库的安全受到巨大威胁。如图15.2所示为合作NBSI SQL注入攻击工具对某网站成功进行了攻击,从图中可以看出数据库中的内容。,15.2.4 SQL注入攻击,15.2.4 SQL注入攻击,许多Web应用程序在编写时没有对用户输入数据的合法性进行检验,导致应用程序通过用户输入的数据构造SQL查询语句时存在着安全隐患。SQL注入攻击的基本思想就是在用户输入中注入一些额外的特殊字符或者S

14、QL语句,使系统构造出来的SQL语句在执行时改变了查询条件,或者附带执行了攻击者注入的SQL语句。攻击者根据程序返回的结果,获得某些想知道的数据,这就是所谓的SQL注入。SQL注入攻击源于英文“SQL Injection Attack” 。目前还没有一种标准的定义,常见的是对这种攻击形式、特点的描述。微软技术中心从两个方面进行了描述:,15.2.4 SQL注入攻击,(1) 脚本注入式的攻击。 (2) 恶意用户输入用来影响被执行的SQL脚本。 由于SQL注入攻击利用了SQL的语法,其针对的是基于数据的应用程序当中的漏洞,这使得SQL注入攻击具有广泛性。理论上说,对于所有基于SQL语言标准的数据库

15、软件都是有效的。一个简单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

16、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也有各自的扩展。而且不同的数据有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号