数据库安全知识_第1页
数据库安全知识_第2页
数据库安全知识_第3页
数据库安全知识_第4页
数据库安全知识_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库安全知识培训数据库安全知识培训天津优扬科技有限公司信息安全等级保护测评机构CSPEC-PGWJ09主讲人:主讲人:胡浩强电电 话:话邮 箱:箱:内容提要内容提要v 数据库概述v 数据库安全概述v 数据库安全技术v 典型数据库安全 SQL Server数据库安全 Oracle数据库安全v SQL Injection安全问题数据库发展简史数据库发展简史v 1961年GE开发出第一个数据库系统IDS(Integrated DataStore),是网状数据库系统。IDS具有数据模式和日志的特征,只能在GE主机上运行,并且数据库只有一个文件。v IBM公司在1968年开发

2、的IMS(Information Management System),是一种层次数据库系统v 1970年,IBM的研究员E.F.Codd提出了关系模型的概念,奠定了关系模型的理论基础。并以此开发System R,该项目直到1980年才正式推出。v 1973年加州大学伯克利分校的Michael Stonebraker和Eugene Wong利用System R已发布的信息开始开发自己的关系数据库系统Ingres。v 1976年Honeywell公司开发了第一个商用关系数据库系统Multics Relational Data Store。数据库发展简史数据库发展简史v 1979年Oracle(当

3、时还是RSI)引入了第一个商用SQL关系数据库管理系统Oracle V2。v 1980年Informix公司成立,推出的第一个关系数据库产品是InformixSE(StandardEngine)。v 1983年IBM 推出了DB2数据库产品。v 1984年Sybase公司成立,87年与微软合作开发OS/2平台的数据库,并于89年推出SQLServer1.0v 1996年,MySQL以二进制形式在Internet上发布v 1996年Stonebraker提出面向对象的关系数据库系统理论,99年发表的SQL3标准就引进面向对象的关系型数据库的许多内容。v 随着Internet的发展XML成为标准语

4、言,XML数据库成为发展的新趋势。数据库基础数据库基础v 数据库是按照数据结构来组织、存储和管理数据的仓库。v 数据库通常分为层次式数据库、网络式数据库、关系式数据库和面向对象数据库等。v 目前流行的数据库系统是关系数据库,它也是最有效率的数据组织方式之一,所有数据都按表进行组织和管理。v 数据库管理系统(DBMS)是为建立、使用和维护数据库而设计的数据管理软件。如:DB2、Oracle、SQL Server等。数据库系统构成数据库系统构成v数据库 存取数据v数据库管理系统(DBMS) 为用户及程序提供数据访问,并对数据库进行管理、维护,通常主要包括存储管理器和查询处理器两大部分。内容提要内容

5、提要v 数据库概述v 数据库安全概述v 数据库安全技术v 典型数据库安全 SQL Server数据库安全 Oracle数据库安全v SQL Injection安全问题数据库的重要性数据库的重要性v数据库是电子商务、金融、办公自动化及其他信息化系统等的核心。v数据库保存着敏感的信息资源,如客户信息或个人资料、商业事务、业务帐务等。数据库的安全性数据库的安全性v与系统紧密相关但更难正确配置和保护v一些安全漏洞不仅威胁数据库的安全,也威胁到操作系统和其他可信任的系统v对数据库的安全重视程度远比不上对待操作系统和网络数据库面临的安全威胁数据库面临的安全威胁v凡是对数据库内数据的非授权访问(如读取)或非

6、授权写入(修改、删除、增加等)都对数据库造成了威胁和破坏v在正常需要期间,造成授权用户不能得到数据库服务时也对数据库造成了威胁和破坏数据库的安全威胁形式数据库的安全威胁形式v黑客正在关注数据库安全v蠕虫和病毒开始针对数据库系统v数据库开发和应用存在大量的安全问题v默认口令和配置在数据库中大量存在v增长的业务应用发展典型数据库应用与攻击典型数据库应用与攻击v典型数据库应用与攻击应用服务器应用服务器中间件中间件数据库服务器数据库服务器Internet等等应应用用网络网络Attack数据库的安全要求数据库的安全要求v数据完整性、可用性、机密性v可审计性v用户认证v访问控制数据库的安全需求数据库的安全

7、需求v 对操作系统的安全需求 防止对DBMS的非法访问和修改 保护存储的数据、文件的安全性 对数据库用户的认证v 对数据库系统本身的安全需求 用户认证管理、访问控制、审计 数据库的稳定性 保证数据的安全性与完整性,完善的恢复功能 数据加密v 对数据库应用系统的安全需求 访问控制、认证管理 对数据库的保护防止非法访问和修改 自身的稳定性内容提要内容提要v 数据库概述v 数据库安全概述v 数据库安全技术v 典型数据库安全 SQL Server数据库安全 Oracle数据库安全v SQL Injection安全问题数据库基本安全构架(一)数据库基本安全构架(一)v数据库的安全模型 自主安全模型(DA

8、C) 用户对信息的存取控制是基于用户的鉴别和确定的存取访问控制规则 每个用户都要给予对系统中每个存取对象的存取权限 有权限的用户可自主将权限传授给其他用户 典型代表:存取矩阵模型 强制安全模型(MAC) 主体和客体分配不同的安全属性 只有管理员才能修改安全属性 主要应用在对敏感信息的保护 典型代表:BLP模型(Belll-La Padula)数据库基本安全构架(二)数据库基本安全构架(二)v 信息流控制 对象之间的流动信息或信息流程的监控和管理 防止高级别对象到低级别对象的流动,比如拷贝操作 要求对所有元素、组成成分等都要划分类别和级别v 推理控制 防止通过间接的方式越权获取数据,比如信息窃取

9、v 存取控制 主体是用户、进程等,客体是数据、表、记录、元素、字段等 DAC和MAC数据库加密技术(一)数据库加密技术(一)v库外加密 将数据库的文件作为加密对象v优点: 对DBMS的要求少v缺点: 效率低 数据解密需要很大的时间和空间代价数据库加密技术(二)数据库加密技术(二)v库内加密 加密对象为数据库中存储的数据,比如表、记录、元素、数据等。v优点: 加密的粒度可细化 效率较高v缺点: 针对性较强数据库加密技术(三)数据库加密技术(三)v硬件加密 在物理存储器与数据库系统之间的硬件加密装置 加密解密操作由硬件中间设备完成v缺点: 硬件之间的兼容问题 系统变得更复杂内容提要内容提要v 数据

10、库概述v 数据库安全概述v 数据库安全技术v 典型数据库安全 SQL Server数据库安全 Oracle数据库安全v SQL Injection安全问题SQL ServerSQL Server介绍介绍v 1987年微软与Sybase合作,并使用Sybase的技术开发OS/2平台的数据库v 1989年,SQL Server1.0推出v 1992年,推出OS/2平台的SQLServer4.2v 1993年,发布基于NT平台的SQLServerv 1994年,微软脱离Sybase自行开发数据库,并与95和96年分别发布了SQLServer6.5和7.0版本v 基于关系型数据库的大型数据库系统v 广

11、泛应用于电子商务、金融等行业v 最新产品为SQL Server 2005SQL ServerSQL Server安全特性安全特性v利用了Windows操作系统的集成安全性;v基于角色的服务器、数据库和应用程序配置安全性;v集成的安全性审核工具可以跟踪18个不同的安全事件及其子事件;v文件和网络加密支持,包括SSL、Kerberos及委托;vSQL Server 2000通过C2级安全性认证;主要安全问题主要安全问题v严重的安全漏洞 拒绝服务漏洞 UDP缓冲区溢出漏洞vSQL Slammer蠕虫v默认的sa空口令v“明文”传输问题v数据库应用中存在的SQL InjectionSQL Server

12、SQL Server安全管理要点安全管理要点v账号v资源v系统v审核及日志v数据库应用帐号管理帐号管理v检查数据库账号v检查无用的数据库账号v检查弱口令账号口令检查口令检查v本地账号检查 检查空口令账户:Select name from syslogins where password is null 脚本:audit.sqlv密码破解工具 SQLCracker.exe forceSQL.exe ASI产品 其他漏洞扫描工具口令传输弱加密问题口令传输弱加密问题v登录密码在网络中传输是“加密”的v事实上: 加密是“弱”的 基本等同于明文传输v密码嗅探工具 SQLServerSniffer.exe

13、数据库资源管理数据库资源管理v检查数据库安装目录的文件安全性v检查数据库文件的安全性系统配置管理系统配置管理v补丁安装v安全层次和身份验证模式v数据库的网络配置v扩展存储过程检查数据库补丁数据库补丁v察看数据库版本 执行 xp_msverv最新版本 SQL Server2005:9.00.2153 SQL Server 2000:8.00.2189 SQL Server 7.0: 7.00.1149v在SQL Server安装SP3补丁时,必须在系统中已经安装了SP1或SP2。安全层次和身份验证模式安全层次和身份验证模式v SQL Server支持三级安全层次:第一个层次是,用户必须登录到SQ

14、L Server,或者已经成功登录了一个映射到SQL Server的NT帐号。在SQL Server登录成功并不意味着用户已经可以访问SQL Server上的数据库。第二层次的安全权限允许用户与一个特定的数据库相连接。第三个层次的安全权限允许用户拥有对指定数据库中一个对象的访问权限。例如,可以指定用户有权使用哪些表和视图、运行哪些存储过程。 v Windows 身份验证模式(Windows 身份验证) Windows 身份验证模式使用户得以通过Windows用户帐户进行连接。v 混合模式(Windows身份验证和 SQL Server 身份验证) 混合模式使用户得以使用 Windows 身份验

15、证或 SQL Server 身份验证与 SQL Server 实例连接。网络配置网络配置v审计内容: 默认端口TCP 1433 隐藏服务器 UDP 1434 命名管道v操作 “企业管理器”实例“属性”“网络配置” sqlping.exe网络配置管理要点网络配置管理要点v默认通讯端口是否更改v通讯端口是否限制访问(IP安全策略或防火墙)vUDP 1434端口是否限制(IP安全策略或防火墙)v命名管道是否需要审核和日志审核和日志v审核工具 事件探查器 性能监控器v审核日志扩展存储过程管理扩展存储过程管理v xp_cmdshell可以直接执行系统命令 xp_cmdshell “dir c:” xp_

16、cmdshell “net user TEST /add”v 其他重要扩展存储过程 xp_regdeletekey xp_regdeletevalue xp_regenumvalues xp_regread xp_regwrite xp_loginconfig xp_dirtree 扩展存储过程管理扩展存储过程管理v检查扩展存储过程 sp_helpextendedproc procedure 例sp_helpextendedproc xp_cmdshellv删除扩展存储过程 sp_dropextendedproc procedure 例sp_dropextendedproc xp_cmdshe

17、llv恢复扩展存储过程 sp_addextendedproc procedure DLL 例sp_addextendedproc xp_cmdshell, C:Program FilesMicrosoft SQL ServerMSSQLBinnxplog70.dll数据库应用管理数据库应用管理v SQL Injectionv 设置单独的应用账号v 设置最小的访问权限v 安全的数据库应用编程v 如果一个SQL Server数据库维护人员,需要具有建立测试性的数据库的权限,那么应该指派Database Creators帐号权限。入侵检测和管理入侵检测和管理v入侵检测结合以下资源 数据库本身日志 数

18、据库纪录内容 系统日志 数据库应用日志(比如IIS) 对SQL数据库来说,用户输入的符号对系统的安全威胁最大,需要在数据输入进行数据过滤。需要警惕需要警惕v数据库日志: 多次登录失败纪录v系统日志: 数据库登录日志 数据库服务停止或重新启动 执行扩展存储过程纪录v数据库应用日志: 执行插入的SQL语句SQL ServerSQL Server安全管理最佳实践安全管理最佳实践vSQL Server数据库管理员从以下方面加强的安全性: 查询最新安全补丁包 注册数据库厂商安全通告服务 运行Microsoft Baseline Security Analyzer (MBSA) 删除或修改SA 和系统默认

19、帐号及口令 监控链接,尤其是试图登录数据库的错误告警 内容提要内容提要v 数据库概述v 数据库安全概述v 数据库安全技术v 典型数据库安全 SQL Server数据库安全 Oracle数据库安全v SQL Injection安全问题OracleOracle介绍介绍v近30年的数据库历史v使用最广的大型关系数据库v支持大量多媒体数据v提供分布式数据库能力v最新产品为Oracle 10gOracleOracle安全特性安全特性vVirtual Private Database(虚拟专用数据库)vOracle 标签安全v选择性数据加密vOracle Policy Managerv数据保密性(RSA

20、DES)v数据完整性(MD5、SHA)v多层审核OracleOracle安全问题安全问题vOracle号称“Unbreakable”v但是: Oracle9i Application Server的SQL Injection 漏洞(61号警报2003年11月7日) 文件中受限内容的未授权访问(60号警报2003年10月28日) Database Server Binaries的缓冲区溢出(59号警报2003年11月13日) Oracle9i Database Server的XML Database的缓冲区溢出(58号警报2003年8月18日) OracleOracle数据库基础知识数据库基础知

21、识vOracle 8i及更高版本数据库的版本信息的命令是 cd $ORACLE_HOME/installcat unix.rgsvOracle数据库中,物理磁盘资源包括以下:控制文件 重作日志文件 数据文件 vOracle数据库listener的日志文件$ORACLE_HOME/network/log/listener.log包含以下内容:客户端请求的时间连接方式连接程序,网络协议主机名,网络端口号vOracle数据库的归档日志是在线日志的备份 v在Oracle数据库设置listener口令时,在oracle用户下运行lsnrctl命令为什么为什么UnbreakableUnbreakable?

22、vOracle比Web服务器少很多v多数Oracle受防火墙保护v针对Oracle的攻击技术开放有限v但是 免费下载让更多人开始接触Oracle 攻击技术已经在逐步公开主要安全问题主要安全问题v 严重的缓冲区溢出漏洞v Oracle默认情况下,口令的传输方式是明文v 多个默认账户口令 SYS: CHANGE_ON_INSTALL SYSTEM:MANAGER DBSNMP:DBSNMP SCOTT:TIGERv SQL Injectionv Listener Servicev 错误的角色管理补丁修补补丁修补v在Oracle数据库进行安全补丁升级时,需要关闭所有与Oracle数据库相关的应用和服

23、务。v参考:http:/ 列举可见用户 select username from all_usersv 列举所有用户 select username from dba_usersv 检查用户配置 select username,profile,account_status from dba_usersv 为Oracle数据库安全考虑,在多人共同对数据库进行维护时,应分别重新定义角色。v 若对多个Oracle数据库进行集中管理,对sysdba的管理方式最好选择password文件认证方式。 口令检查口令检查v 口令强度分析 检查是否使用口令验证函数。 SQL select * from dba_

24、profiles where RESOURCE_NAME = PASSWORD_VERIFY_FUNCTION ; 如果LIMIT为NULL,建议设定口令验证函数。 SQL alter profile DEFAULT limit PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION; v 口令有效期 检查口令有效期 SQL select * from dba_profiles where RESOURCE_NAME = PASSWORD_LIFE_TIME; 如果LIMIT为NULL,建议修改口令有效期 SQL ALTER PROFILE DEFAULT LIMIT

25、 PASSWORD_LIFE_TIME 60;限制客户端对数据库的访问v Oracle数据库可通过设置listener.ora文件限制客户端IP地址对数据库的访问,具体操作包括以下步骤:tcp.validnode_checking = YEStcp.excluded_nodes = (list of IP addresses)tcp.invited_nodes = (list of IP addresses)重启listener登录次数限制登录次数限制v失败的登录尝试 检查失败的登录尝试 SQL select * from dba_profiles where RESOURCE_NAME =

26、FAILED_LOGIN_ATTEMPTS; 如果LIMIT为NULL,建议修改失败的登录尝试 ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 3;用户管理用户管理口令安全策略口令安全策略口令加密传输口令加密传输v默认情况下,口令明文传输v通过配置在网络上通过DES加密传输 在Client上将ORA_ENCRYPT_LOGIN 变量设置成TURE 在Server上将DBLINK_ENCRYPT_LOGIN 参数设置成TURE角色安全性角色安全性v创建安全的DBA账户密码v只有DBA能用管理权限连入数据库v限制特定的系统权限授予开发者和应用回收

27、回收PUBLICPUBLIC的权限的权限vUTL_FILE权限 SQL revoke execute on utl_FILE from public; vUTL_HTTP权限 SQL revoke execute on utl_HTTP from public; vUTL_TCP权限 SQL revoke execute on utl_TCP from public;vUTL_SMTP权限 SQL revoke execute on utl_SMTP from public;资源安全审计资源安全审计v设置限制的Oracle安装目录权限v设置数据库文件权限 $ORACLE_HOME/dbs/*.

28、dbf,设置这些文件的使用权限为0600v让DBA才有权限处理数据库目录 设置init.ora(9i控制文件)参数: O7_DICTIONARY_ACCESSIBILITY = FALSE网络安全审计网络安全审计v限制IP地址protocol.ora(Oracle Net配置文件) tcp.validnode_checking = YES tcp.excluded_nodes = list of IP addresses tcp.invited_nodes = list of IP addressesv阻止Listener上的未授权管理listener.ora(Oracle Listener配

29、置文件) ADMIN_RESTRICTIONS_listener_name=ONv限制远程鉴别init.ora (Oracle控制文件) REMOTE_OS_AUTHENT = FALSEv通过防火墙等保护通讯端口(TCP1521)启用审计启用审计v 在初始化配置文件中设置参数: AUDIT_TRAIL=DB 需要重起数据库实例v 指定审计 例:审计所有数据库连接和断开连接 AUDIT SESSION 例:审计以下不成功操作 AUDIT select table, delete table, execute procedure BY ACCESS WHENEVER NOT SUCCESSFULv 察看审计 select * from SYS.AUD$保护审计保护审计v只为管理员授予SYS.AUD$ 的DELETE、INSERT、

温馨提示

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

最新文档

评论

0/150

提交评论