版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、技术创新,变革未来数据安全技术解读什么叫数据安全 政府和企事业单位中,保护电子数据只能是被合法的已经授权过的合法身份的人,机器,或则其他应用访问,而不被恶意的侵入工具盗取或者破坏。一、数据安全概念 再进一步点讲,除了我们的桌面系统里面的文件,数据安全就是政府和企事业单位中业务系统所产生的数据,比如社保系统的所有表格,HIS系统的所有表格,再比如教务系统的所有表格,诸如此类的数据需要对其进行保护,这些数据主要是存在数据库中。近期发生的安全事情:某酒店的数据两千万人记录泄露csdn账户泄露事件产生威胁的主体产生数据威胁的五项关键要素 when,who,what,where,how,就是我们说的5w
2、要素,这个是对防御这些入侵者最关键的5要素。数据威胁五要素内容威胁从何而来1、密码不密2、权限控制3、身份准入4、利用系统漏洞或则代码漏洞恶意侵入5、一些技术人员的误操作二、如何保障数据安全 不仅仅是操作系统用户的密码,还有数据库数据的密码,以及业务系统的密码,专人保存,专人负责。定好周期定期修改用户名和密码。1、增加密码复杂度。并且定期修改密码2、对网络上传输进行hash加密 在网络大量存在着免费的侦听工具,接入主要局域网之后,就有可能获得侦听网络的用户和密码。3、主机堡垒机和网络防火墙 增加堡垒主机和网络防火墙,防止恶意入侵,远程的VPN需要下载证书,生成唯一的机器码才可以通行访问内部网络
3、。4、打补丁和升级到最新版本的操作系统和数据库 4、打补丁和升级到最新版本的操作系统和数据库Oracle 2012年发布的告警,CVE-2012-1675漏洞是Oracle允许攻击者在不提供用户名/密码的情况下,向远程“TNS Listener”组件处理的数据投毒的漏洞。举例:攻击者可以再不需要用户名密码的情况下利用网络中传送的数据消息(包括加密或者非加密的数据),如果结合(CVE-2012-3137漏洞进行密码破解)从而进一步影响甚至控制局域网内的任何一台数据库。/technetwork/topics/security/alert-cve-2012-1675-1608180.htmlReco
4、mmendations for protecting against this vulnerability can be found at:My Oracle Support Note 1340831.1 for Oracle Database deployments that use Oracle Real Application Clusters (RAC).My Oracle Support Note 1453883.1 for Oracle Database deployments that do not use RAC.同时,还提及了一个在和12.1中或者在RAC中的新参数配置解决该
5、问题:Valid Node Checking For Registration (VNCR) (文档 ID 1600630.1)oracle提供的解决方法5、对数据库密码破解演示-普通用户密码破解破解案例一:破解普通用户Step01:创建测试用户 u1SQL create user u1 identified by t5593;用户已创建。SQLStep02:得到用户的加密密码SQL select username,password from dba_users where username=U1;USERNAME PASSWORD- -U1 75789C9844E63228 Step03:根
6、据加密密码破解用户u1的密码C:orabf-v0.7.6orabf 75789C9844E63228:U1orabf v0.7.6, (C)2005 orm-Trying default passwords.doneStarting brute force session using charset:#$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_press q to quit. any other key to see statuscurrent password: F6IPF13656128 passwords tried. elapsed time 00:0
7、0:11. t/s:1153024password found: U1:T559345964574 passwords tried. elapsed time 00:00:41. t/s:1110088快速破解出用户U1的密码是T5593在10g生产库上5、对数据库密码破解演示-普通用户密码破解破解案例一:破解普通用户Step01:创建测试用户 u1SQL create user u1 identified by wzl;用户已创建。SQLStep02:得到用户的加密密码SQL select name,password from user$ where name=U1; NAME PASSWO
8、RD- -U1 75789C9844E63228 Step03:根据加密密码破解用户u1的密码C:orabf-v0.7.6orabf 374D9D72CA06C4F7:C#T1 orabf v0.7.6, (C)2005 orm-Trying default passwords.doneStarting brute force session using charset:#$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_press q to quit. any other key to see statuscurrent password: F6IPF1365612
9、8 passwords tried. elapsed time 00:00:11. t/s:1153024password found: U1:T559345964574 passwords tried. elapsed time 00:00:41. t/s:1110088快速破解出用户U1的密码是T5593在11g生产库上,在dba_users上passwd为空5、对数据库密码破解演示-普通用户密码破解Step02:得到用户的加密密码SQL select name,password from user$ where name=C#T1;USERNAME PASSWORD- -C#T1 374
10、D9D72CA06C4F7 Step03:根据加密密码破解用户u1的密码C:orabf-v0.7.6orabf 374D9D72CA06C4F7:C#T1 orabf v0.7.6, (C)2005 orm-Trying default passwords.doneStarting brute force session using charset:#$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_press q to quit. any other key to see statuscurrent password: F6IPF13656128 passwords
11、 tried. elapsed time 00:00:11. t/s:1153024password found: C#T1:wzl45964574 passwords tried. elapsed time 00:00:41. t/s:1110088快速破解出用户C#T1的密码是wzl在12C生产库上,在dba_users上passwd为空5、对数据库密码破解演示-密码破解的对策Copyright (c) 1982, 2011, Oracle. All rights reserved.连接到:Oracle Database 11g Enterprise Edition Release .0
12、- ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL ?/rdbms/admin/utlpwdmg.sql函数已创建。配置文件已更改函数已创建。执行完utlpwdmg.sql脚本之后就启用了Oracle数据库密码复杂度验证规则。5、对数据库密码破解演示-密码破解的对策执行完utlpwdmg.sql脚本之后就启用了Oracle数据库密码复杂度验证规则,规则如下:1.对于非从低版本数据库导入的用户,密码都严格区分大小写。2.密码长度不能小于8个字符,不能超过30个字符
13、。3.密码不能与用户名相同,也不能是用户名倒着拼写,或者后面追加1-100。4.密码不能与服务器名称相同,也不能是服务器名称后面追加1-100。5.密码不能过于简单,例如:welcome1,DE style=COLOR: rgb(34,34,34); database1DE,DE style=COLOR: rgb(34,34,34); account1DE,DE style=COLOR: rgb(34,34,34); user1234DE,DE style=COLOR: rgb(34,34,34); password1DE,DE style=COLOR: rgb(34,34,34); orac
14、leDE,DE style=COLOR: rgb(34,34,34); oracle123DE,DE style=COLOR: rgb(34,34,34); computer1DE,DE style=COLOR: rgb(34,34,34); abcdefg1DE, orDE style=COLOR: rgb(34,34,34); change_on_install。DE6.密码不能是oracle,或者oracle后面追加1-100。7.密码必须至少包含1个数字和1个字母。8.新密码与老密码必须至少有3个字符不同。9.密码的有效期是180天,延长期是7天。10.如果一个用户连续输入密码10次都
15、不正确,那么该用户将被锁定。11.该策略设定之后,只在新创建用户和修改密码时开始验证,现有用户的密码可继续使用,为了安全起见,建议设置该策略后立即修改SYSTEM用户和所有业务系统用户的密码。12.以上的规则对SYS用户无效(SYS是超级管理员用户,有单独文件保存密码,建议设置最为严格的密码)。5、对数据库密码破解演示-密码破解的对策Step01:得到用户的加密密码SQL select username,password from dba_users where username=SYS; USERNAME PASSWORD- -SYS CEEFED71DA7851B3Step02:根据加密密
16、码破解用户SYS的密码C:orabf-v0.7.6orabf CEEFED71DA7851B3:sys orabf v0.7.6, (C)2005 orm-Trying default passwords.doneStarting brute force session using charset:#$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_press q to quit. any other key to see statuspassword found: SYS:WY921 passwords tried. elapsed time 00:00:00. t
17、/s:1快速破解出用户SYS的密码是WY 5、对数据库密码破解演示-sys密码破解这个操作只限于10g5、对数据库密码破解演示-远程获取密码在获取到高权限的用户的密码以后,就可以利用工具获取所有的在线数据库用户名和密码了。5、对数据库密码破解演示-远程获取密码在10g生产库上在获取到高权限的用户的密码以后,就可以利用工具获取所有的在线数据库用户名和密码了5、对数据库密码破解演示-远程获取密码在11g生产库上密码并不是坚不可破的在普通的笔记本上可以超过1000w password 每秒的速度进行破解。6位纯字符密码仅仅需要26s就完成破解。7位纯字符密码仅仅需要11分钟完成破解8位纯字符密码也仅
18、仅需要5小时多即可。8位纯数字密码仅仅需要30秒就完成破解。即使是8位长度的混合密码也在2.5天之内完成破解有效的密码字典文件总是可以在几秒之内完成密码破解。有效密码策略:密码长度需要大于8位,采用字符数字和特殊字符混合的方式组成,依据密码长度制定合适的密码生存周期。6、针对密码破解的厂家的做法和建议Oracle 10g+的缺省密码错误次数为10次,该设置会导致业务灾难,对于业务账务必须设置为unlimited。Oracle 11g+的缺省密码生命周期为180天,必须注意可能由此带来的业务问题。Oracle 12c已经认识到了SYS账户的在线密码破解问题,增加了_sys_logon_delay
19、参数来延迟密码破解。6、针对密码破解的厂家的做法和建议 在数据库上面增加一个闸,设定最多登录密码输错的阈值,让尝试密码者,最后试出来密码以后也不能登录成功。三、身份管理 身份管理就是如何证明我就是我,比如本人身份证,本人户口本,本人相貌,更进一步讲本人指纹,本人血型,本人基因序谱,概况的说来就是身份识别和身份认证两块。1、身份识别的方法 生物统计学,目前最流行最热门的身份识别方式,包括脸部识别,虹膜扫描,手掌图纹,指纹识别。以及非常先进的步态识别。1、身份识别的方法 机器识别,包括主机ip地址,主机名,mac地址,登录的数据库用户名,VPN软件生成的唯一机器码等等。1、身份识别的方法 数字识别
20、,当前正在使用的一个例子就是公开秘钥体系(Public Key Infrastructure PKI)中的数字证书技术。PKI可以提供很多的安全保护功能。 如果一个系统允许空无身份的主机,用户或则数字证书登录该系统的,那会是一种什么情况,如果系统和数据库不能知道你是谁,他就无法授予你合适的权限,在一定程度上,数据库安全就是建立在身份识别之上。2、身份识别的必要性3、身份识别-多因素识别 单一的身份识别对生产库操作系统和数据库而言是危险的,因为容易伪造,如果在此基础上加上其他身份的识别,会是很有必要的,如果这个数据库用户的登录时间,IP地址,以及主机名等等,再多重因素的身份识别,对伪造的身份难度
21、加大。4、身份识别-数据库身份识别技术的简单应用 oracle数据库为每一次数据库会话提供默认的应用上下文,即USERENV命令空间。数据库会预先定义好大部分的USERENV属性,也就是每个会话连接的身份识别信息,IP,主机名,还有时间等等。4、身份识别-数据库身份识别技术的简单应用create or replace trigger logon_ip_controlafter logon on databasedeclare ip STRING(30); user STRING(30);beginSELECT SYS_CONTEXT(USERENV,SESSION_USER) into use
22、r from dual;SELECT SYS_CONTEXT(USERENV,IP_ADDRESS) into ip from dual;if user=EPAY_USER THEN IF ip not in (0,2) THEN raise_application_error(-20001,User |user| is not allowed to connect from |ip); END IF;END IF;end;/创建一个控制IP地址登录范围的身份控制触发器4、身份识别-数据库身份识别技术的简单应用下面看几个例子测试一下:1)从非允许IP地址登陆 (1),连接失败复制代码 代码如下
23、:oraclelxdb2 $ sqlplus epay_userpriSQL*Plus: Release .0 Production on Wed Jul 3 19:23:48 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Enter password: ERROR:ORA-00604: error occurred at recursive SQL level 1ORA-20001: User EPAY_USER is not allowed to connect from 1ORA-06512: at line 102)
24、从允许IP地址登陆(2),连接成功复制代码 代码如下:oraclelxdb1 $ sqlplus epay_userSQL*Plus: Release .0 Production on Wed Jul 3 11:24:25 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Enter password: Connected to:Oracle Database 11g Enterprise Edition Release .0 - 64bit ProductionWith the Partitioning, OLAP, Data
25、 Mining and Real Application Testing options4、身份识别-数据库身份识别技术的简单应用5、身份验证的必要性 按规定定向系统提交身份识别信息就是已经得到授权了,就可以得到对数据库数据的访问权限了,但是不幸的是,伪造者也可以很容易得到这些信息,就如上面的数据库准入的IP地址,MAC地址,主机名等等,这些稍微改动下计算机配置就可以获得,所以还需要进一步需要其他东西来与身份识别信息一起证明用户的身份是合法的。为了达到这个目的,需要有一个过程来证明用户就是他所宣称的人-这个过程就是认证。6、身份验证的几种方法第一种最常用的用户标识号认证(Personal Id
26、entifiecation Number),简称PIN码认证,就是跟银行U盾产品差不多性质的产品。第二种对合法应用生成唯一识别码,在管理的客户端上安装安全客户端,对应用进行MD5校验。第三种跟合法应用进行手机绑定,登录业务系统的时候,都要求输入手机验证码。6、身份验证的几种方法-U盾认证 对一些外来人员和第三方开发公司来说,他们很多人都知道数据库用户名和密码,只要连接到局域网,通过工具直接可以访问到数据库里面的数据,甚至可以直接修改数据,不经过任何人的同意和批准,这样就需要U盾对这些人员进行限制。6、身份验证的几种方法-业务系统的MD5校验 在很多医院里面,目前大部分使用的都是CS架构的应用,
27、应用取得名字都比较简单容易记。 比如HIS.EXE,PACS.EXE,LIS.EXE,MZZJ.EXE,诸如此列的,很多第三方公司伪造了跟这些业务系统同样的名字,采用直接连入数据库的方式,就可以获得所有的业务数据,而不需要输入业务系统的用户名和密码的方式练上来。6、身份验证的几种方法-业务系统的MD5校验 我们对此类应用采用MD5安全校验的方式,在医院所有的客户端安装我们的安全客户端,对所有业务系统学习的模式,计算出所有的MD5值,这个学习过程结束以后就可以把这些MD5值进行分析加入到管理软件当中,然后通过下发,全部下发到所有的安全客户端,然后启动杀进程模式,对在客户端发现的非法的程序进行查杀
28、,就像杀毒软件杀病毒一样。7、身份验证的几种方法-手机密码验证 现在比较流行的身份验证办法,主要应用在互联网上,比如网上付费的业务系统中,大量使用。8、身份识别和身份验证的关系 身份识别是进入数据大门的钥匙,而身份验证就是开锁之前所必须输入那串密码,是对数据保护的深度防御,身份识别和身份验证就是证明整个防御体系是行之有效的,让用户不仅仅单单依靠一种方法就可以获取数据,保证了数据的安全。四、数据库权限管理 当用户在数据库中或在数据库做任何操作的时候,数据库就会验证该用户是否有执行该操作的权利或者许可,这些权利以及许可就叫做权限。权限管理非常重要,大量的入侵或则非法授权都是权限管理不当造成的。1、
29、和权限有关的一些定义-访问控制,授权,角色,回收 访问控制,就是这些权限是否具备对一些资产进行操作的权利,包括访问,增删改;授权,当需要一些新的权限的时候,需要大权限的角色进行授权;角色就是数据库中存在一些配置好权限的授权集,包括系统角色,自定义角色等;回收就是对这些角色或则权限从用户手里收回来。2、维持最低权限的重要性 所有业务系统或则相关的数据库用户,必须尽量的给予它最低的权限,一般的来说给予她连接和对其schema有操作权限即可,不要授权一些大权限,比如DBA或者SYSDBA等权限,这样做了,非常不利于用户管理。3、大权限用户和大权限角色主要的大权限用户:sys system sysau
30、x主要的大权限角色:sysdbadba拥有任意any权限的角色:例如Grant any role ;GRANT ANY PRIVILEG ;Select any tableUpdate any tableDelete any tableInsert any tableCreate any triggerCreate any tableCreate any indexCreate any viewCreate any procedureAnalyze anyCreate any directory 4、入侵以后如何提升自己的权限当入侵数据库成功后,几乎在自己不是DBA的时候总是会想办法让自己成为
31、DBA。每个Oracle版本都存在些漏洞让一个普通用户成为DBA。下面的命令让hr用户成为DBA:grant sysdba to hr grant dba to hr;利用账户管理权限成为DBAAlter user:通过变更DBA口令成为DBABecome user:可以成为任意用户GRANT ANY ROLE:可以授予任何角色(DBA)GRANT ANY PRIVILEGE:可以授予任何系统权限GRANT ANY OBJECT PRIVILEGE:可以授予任何对象权限。账户管理者可以轻松成为DBA,这也是为什么说账户创建,账户授权和DBA三者必须分离设置岗位的基本原因。安全措施: 账户创建、
32、账户授权和DBA需要分离设置岗位。 监视任意的用户创建,密码改变和授权变更行为。利用any权限成为 DBA极度危险any权限Select any tableUpdate any tableDelete any tableInsert any tableCreate any triggerCreate any tableCreate any indexCreate any viewCreate any procedureAnalyze anyCreate any directoryAny权限的一个最大危险在于在于允许在高权限账户下放置钩子和代理,让钩子和代理运行自己的恶意代码。安全措施: 一般来
33、说,除了DBA之外任何人都不需要any权限。 严密监视any权限操作。Create any Trigger和DBACreate any Trigger意味着可以在任意账户下建立触发器代码。Oracle 10g之后对于sys账户做了缺省保护。Create any Trigger权限可以轻松的让一个普通账户变成DBA账户。Create any Trigger权限可以任意修改除SYS账户意外的任意触发器,10g以下版本SYS账户的任意触发器都可以任意修改。Create any procedure和DBACreate any Procedure可以任意创建除了SYS账户以外的包和存储过程,10g以下版
34、本SYS账户的存储过程也可以任意创建。个别版本中甚至存在create any procedure可以任意修改除了SYS账户意外的任意包和过程。只要获得这个在高权限账户下过程的执行权限,就可以获得DBA权限。Create any procedure和Execute any procedure结合等同于DBA。Execute any procedure获得执行任意非SYS账户下包和过程的能力。Execute any Procedure和DBAExecute any Procedure等同于DBA,Oracle具有大量接受对象名为参数或者SQL语句为参数的包和过程。只要可以发现系统中存在可以注入的包
35、和过程,就可以让自己升级为DBA。我们创建一个常见的用户验证过程:Userverify来演示。Userverify中的SQL语句依据输入拼接而成,存在着SQL注入漏洞。Execute any Procedure和DBA利用在mdsys.reset_inprog_index上的PLSQL注入漏洞使Execute any procedure成为DBACreate any View和DBACreate any View和Create any Procedure一样,只要具有这个创建的视图的查询权限即可。最简单而言,select any table权限和create any view权限结合就可以升级
36、为DBA。Create or replace system.grantView as select * from dual where scott.grant_dba=1;一旦查询了该视图就会运行包含恶意代码的scott.grant_dba函数。Create any Index和DBACreate any Index权限即使在没有其他权限的辅助之下也很容易成为DBA。Create index system.idx$1 on system.abc(scott.grant_dba(id);在高权限表格下建立一个函数索引,只要有人往该表格更新数据或者利用该索引查询数据,scott账户将自动升级为DB
37、A。Analyze any权限和DBAAnalyze any权限通过收集在system账户下面的表格获得DBA权限Create any directory权限和DBACreate any Directory权限是用户具备了访问操作系统的能力。一旦用户可以访问操作系统就可以升级用户为DBA和SYSDBA。利用OS访问成为DBA和SYSDBA通过OS过渡成为DBA只要具有操作系统访问能力,就可以让自己成为DBA。Oracle提供了丰富的访问操作系统的能力,主要包含下面的列表:ExtProcJavaUtl_fileDbms_schedulerDbms_javaDbms_java_testdbms_f
38、ile_transferOracle TextCreate tablePLSQL Native(9i)PLSQL Native(10g)Alter System(session) set eventOradebug具体内容参见后续的访问操作系统部分,这里仅仅提供一个create table的演示案例。利用自动化脚本成为DBA利用自动运行脚本获得DBAGlogin.sql和login.sql即使入侵者没有进入数据库也可能借助于其他人获得DBA权限。Glogin.sql和login.sql在运行SQLPLUS的任何语句之前会自动这行。不仅是SQLPLUS,PLSQLDEV,Toad等主要的SQL工
39、具都具有该能力。入侵者可以通过修改DBA用户的客户端中的glogin.sql和login.sql来获取DBA权限。入侵者如果可以入侵Oracle Listener,还可以通过Listener来修复服务器上的glogin.sql来获得DBA权限。修改DBA客户端的glogin.sql和login.sql在glogin.sql中增加以下语句: grant dba to liuzl identified by liuzl;等待DBA从该客户端登陆数据库Liuzl将具有DBA权限。通过DBA的管理性任务成为DBADBA经常会做些管理性任务,生成些脚本,然后运行这些脚本以简化工作。入侵者可以让恶意代码注
40、入到DBA的生成脚本中去。比如: create table “dual where scott.grant_dba=1 -” (id number);当DBA通过对象名来执行查询语句的时候,scott.grant_dba将会被执行。Select select count(*) from |owner|.|table_name|; from all_tables;恶意的语句将会被变更为: select count(*) from scott.dual where scott.grant_dba=1 -;不知不觉中DBA运行了恶意代码从而完成入侵者的权限提升工作。利用数据库漏洞成为DBAOracl
41、e PLSQL注入和漏洞Oracle在每一个版本中都存在着PLSQL注入漏洞和缓冲区溢出漏洞。Oracle 10gR2以后版本相对缓冲区溢出(Buffer overflow)的漏洞比较少发生。Oracle的安全漏洞主要由以下几点构成: PLSQL注入 PLSQL Buffer Overflow TNS Buffer Overflow 验证阶段漏洞 缺省权限不当我们主要讲述PLSQL注入漏洞,PLSQL漏洞很容易被SQL注入攻击者所利用。Oracle和PLSQLOracle提供了大量的PLSQL包来提供管理性功能,不仅Oracle内部使用也提供给外部使用。PLSQL注入漏洞主要发生在一些辅助组件
42、上,比如全文搜索,空间数据库,开发多版本管理,XMLDB,高级队列等等。Oracle每季度发布一次安全修复包,1月份,4月份,7月份和10月份。虽然Oracle会定期发布安全漏洞修复,但绝大部分用户的安全修复包处于严重滞后状态。安全漏洞是入侵者最主要的数据库攻击手段,特别是0day的漏洞攻击更是就是及时跟踪安全修复包也无法消除风险。Oracle 10.2开始发布了一个PLSQL注入检查包(dbms_assert),使在10.2之后版本的注入漏洞大幅度减少。部分高度危险的漏洞包案例演示DBMS_EXPORT_EXTENSIONSYS.LT或者wmsys.ltdbms_cdc_impdpDbms_
43、cdc_subscribeDbms_cdc_isubscribeIndextype ctxsysMdsys.reset_inprog_index触发器:sys.cdc_drop_ctable_before触发器:mdsys.sdo_drop_user_beforeDBMS_EXPORT_EXTENSION这个包在漏洞注入方面非常著名,Oracle从8i开始修复,一直到才完全修复。SYS.LT或者wmsys.lt包SYS.LT.findricset包在前存在着SQL注入漏洞,SYS.lT包也是属于著名的漏洞包,被攻击者广泛的使用。依据版本的不同该包在SYS或者WMSYS账户下,其中wmsys.d
44、bms_wm是这个包的同义词。该包广泛存在着注入漏洞,除了findricset之外,rollbackworkspace,removeworkspace, MERGEWORKSPACE, COMPRESSWORKSPACETREE均存在注入漏洞。dbms_cdc_impdp包包dbms_cdc_impdp存在着注入漏洞,漏洞函数为:bump_sequence和validate_import。在之前存在漏洞。Dbms_cdc_subscribe包这个包实现cdc的发布,存在着众多的注入漏洞,修复了多次之后依然存在漏洞,直到才完全修复。漏洞函数: dbms_cdc_subscribe.create_
45、subscription dbms_cdc_subscribe.subscribeDbms_cdc_isubscribe包漏洞特征基本同dbms_cdc_subscribe类似,在中修复。主要的漏洞函数: dbms_cdc_isubscribe.create_subscription dbms_cdc_isubscribe.extend_window_list dbms_cdc_isubscribe.prepare_unbounded_viewdbms_cdc_publish包在该包中的create_change_set过程中存在注入漏洞,可以使入侵者升级为DBA。该包缺省不为PUBLIC所拥
46、有,但是EXECUTE_CATALOG_ROLE角色具有执行权限。相对来说,execute_catalog_role的权限级别比较高,该包的漏洞相对风险比较小。Indextype ctxsysIndextype ctxsys存在着漏洞注入,在中修复和中修复。Mdsys.reset_inprog_index过程Mdsys.reset_inprog_index可以被注入,mdsys具有create any trigger权限,通过在system下面创建触发器,获得DBA权限。在和之前存在。DBMS_JVM_EXP_PERMS包DBMS_JVM_EXP_PERMS是一个Java管理包,缺省为Publ
47、ic所拥有。该包存在漏洞,使任意执行者可以授予自身或者其他人java io权限,并进一步通过java io权限控制服务器,升级自身为DBA或者SYSDBA。如何利用Java权限控制服务器,升级为DBA和SYSDBA参见后续的通过数据库访问操作系统。Ctxsys.drvxtabcCtxsys.drvxtabc存在注入漏洞,但该包在10.2中已经从public中收回,而且10.2中ctxsys的权限已经很小,所以相对风险比较低。一些其他低风险的漏洞包SYS.KUPP$PROC.CREATE_MASTER_PROCESSYS.DBMS_REPCAT_RPC.VALIDATE_REMOTE_RC这些包
48、缺省只有DBA可以执行,相对风险比较小。触发器漏洞定义在高权限账户下的触发器出现注入漏洞自然会导致权限提升以及其他各类问题。触发器注入主要发生在用户名、对象名和列上。只要触发器缺乏对用户名,对象名和列的严格检查就可以触发漏洞。Dbms_assert包基本可以解决这些漏洞,但很多旧PLSQL包和过程的存在使漏洞总是会不停的被发现。触发器sys.cdc_drop_ctable_before该触发器在删除表格的时候被触发,存在着注入漏洞,只要我们创建一个包含恶意代码的表格名并且删除它就会以SYS账户执行恶意代码。通过注入触发器获得SYS账户的Hash Password以及其他敏感数据。在中修复。触发
49、器:mdsys.sdo_drop_user_beforeMdsys拥有create any trigger权限,可以通过注入该触发器在system账户下创建触发器,从而升级为DBA权限。同时mdsys还具有delete any table权限,通过触发这个触发器执行可以删除任意数据。修复:无所不在的注入和漏洞Create Public synonym to DBA.漏洞无所不在,作为使用必须承认数据库系统是一个大型软件,必然存在各种各样的bug和漏洞,区别只是在于修复的及时性而已。作为使用者,安全违反导致的损失由自己承担,必须考虑在客观漏洞存在前提下的安全保护。并不是所有的漏洞都会被修复,0d
50、ay攻击是黑客攻击的主要手段之一。只要存在着语句拼接,就存在着注入的可能性。任意充满想象力的钩子事实上,只要我们的恶意代码可以被DBA所运行,自然就可以借助于DBA的执行或者具有DBA能力的代码完成任何事情。授权如何管控,DBA用户如何管控,危险操作如何管控事实上在研发开发中,很多研发部门经常就是把自己的用户提升到DBA,这样利于自己的开发方便,这样做给以后的安全维护带来难题,如果去掉DBA权限,势必会引起大量的问题,其他用户的数据的权限控制问题,以及DBA的数据库运维功能问题等等。授权dba以及高权限用户或者高级权限这些授权管控在数据库用户本身就是dba角色的用户下面变得苍白无力,即该用户他
51、可以任意做这类操作。防止危险的误操作,也是DBA用户的一个问题,比如DROP 其他用户的表格,修改其他用户的视图等等授权如何管控,DBA用户如何管控,危险操作如何管控首先我们要看到该用户到底是否需要具备dba权限的必要性。1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users;2.查看用户或角色系统权限: select * from dba_sys_privs; select * from user_sys_privs;3.查看用户对象权限: select * from dba_t
52、ab_privs; select * from all_tab_privs; select * from user_tab_privs;4.查看所有角色: select * from dba_roles;5.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs;如果用户不需要DBA权限的用户权限,建议收回,只给他两个角色即可,connectresource授权如何管控,DBA用户如何管控,危险操作如何管控如果这个用户必须要有dba权限的,那就把这些dba权限进行限制。通过CAPAA安全管理系统,你可
53、以对dba权限的用户权利进行限制。授权如何管控,DBA用户如何管控,危险操作如何管控演示说明限制大权限用户,如dba权限用户访问敏感数据和访问非本用户所有的敏感数据演示方法和步骤在栏目中,将两个DBA用户身份加入进来演示结果HIS用户只能访问自己的敏感表格,而不能访问HIS1的敏感数据 授权如何管控,DBA用户如何管控,危险操作如何管控授权如何管控,DBA用户如何管控,危险操作如何管控授权如何管控,DBA用户如何管控,危险操作如何管控授权如何管控,DBA用户如何管控,危险操作如何管控用HIS用户访问非本用户的敏感数据授权如何管控,DBA用户如何管控,危险操作如何管控用HIS用户访问本用户的敏感
54、数据授权如何管控,DBA用户如何管控,危险操作如何管控演示说明对重要的权限授权进行控制演示方法和步骤在中安全策略为启用,登录到生产库的操作系统上,用 sqlplus/as sysdba”来链接生产库,授权sysdba和dba权限给其他用户,被拦截 演示结果用sys或者相关有sysdba的用户授权sysdba和dba权限给其他用户,开启安全策略以后,授权被拦截。将安全策略关闭或者授权给其他用户,授权被放行。授权如何管控,DBA用户如何管控,危险操作如何管控授权如何管控,DBA用户如何管控,危险操作如何管控大权限用户对大权限角色授权被拦截授权如何管控,DBA用户如何管控,危险操作如何管控演示说明控
55、制ORACLE内部具有CREATE ANY、DROP ANY、TRUNCATE ANY等大权限的用户特权访问敏感数据演示方法和步骤开启数据库访问控制 ZJTFTEST Schema对象中的DDL操作控制和开启数据库访问控制 ZJTFTEST 敏感对象中的DDL操作控制,做DDL操作如CREATE或者DROP或者TRUNCATE全部拒绝;授权TFD_MC用户权限,再做DDL操作,全部通过。演示结果通过演示,跟要求一致授权如何管控,DBA用户如何管控,危险操作如何管控 开启数据库的敏感对象DDL控制授权如何管控,DBA用户如何管控,危险操作如何管控 开启数据库的SCHEMA对象DDL控制授权如何管
56、控,DBA用户如何管控,危险操作如何管控 DROP某一张表格时候,拦截掉危险的PUBLIC1、对PUBLIC用户授权以后等同于对所有的用户授权了,因为PUBLIC用户的权限是可以公用的。2、建立PUBLIC DBLINK访问以后,等同于,所有的用户通过这条链路访问其他库。危险的默认用户oracle 11g默认安装带来的用户名和密码五、数据库加密技术1、函数,存储过程代码,包等代码加密。1、函数,存储过程代码,包等代码加密。2、利用数据库秘钥算法对数据进行加密。create or replace function f_Encrypt_number(number_in in varchar2) return raw is number_in_raw RAW(128):=UTL_I18N.STRING_TO_RAW(number_in,AL32UTF8); key_number number(32):=32432432343243279898; key_raw RAW(128):=UTL_RAW.cast_from_number(key_number); encrypted_raw RAW(128); begin encrypted_raw:=dbms_crypto.Enc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢材板材课件
- 2027年备考二建工程施工管理 题库测验试题(备用卷)附答案
- 2027年备考VIP押题班.初级实务能力测验试题(备用卷)附答案
- 工程安全课件
- 干部职称答辩课件
- 工笔诗句课件
- 干部任职介绍课件
- 锅包肉的英文介绍课件
- 干部培养汇报课件
- 2026事业单位财会岗面试历年真题强化训练试卷及解析
- (2025年)零售药店医保培训试题(+答案)
- 初中语文《春》课件
- 4.1 多变的天气 课件2026-2027学年人教版初中地理七年级上册
- 期中复习(1-3单元)分层作业2025-2026学年四年级数学上册新人教版(含答案)
- 2026年其他知识竞赛-国家电网规划发展策划知识竞赛历年参考题库含答案解析
- 2026年护士长竞聘质量控制测试题含答案
- 2026中国光纤配线设备智能化管理需求增长研究报告
- 2025年国开学位英语统考押题试题及答案完整版
- CAR-T细胞治疗慢性感染
- 制药厂现场QA培训课件
- 概念验证中心运营细则
评论
0/150
提交评论