Oracle渗透技术和防护策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle渗透技术和防护策略
目录Contents 数据库常见漏洞种类Oracle 常见的攻击方式
Oracle 漏洞利用趋势分析
目前有效的防护策略
作用范围
•远程漏洞
•本地攻击
达成结果
•越权访问
•提权
•拒绝服务(DOS)
•夺取操作系统
•认证绕过
黑客技术
•SQL注入
•缓冲区溢出
•其他
常见漏洞分类维度
常见漏洞分类维度——作用范围
远程漏洞
攻击者可以利用并直接通过网络发起对数据库攻击的漏洞。
这类漏洞危害极大,攻击者能随心所欲的通过此漏洞危害网络上可辨识的数据库。
此类漏洞为黑客利用漏洞的主力。
本地攻击
攻击者必须在本机拥有访问权限的前提下才能发起攻击的漏洞。
比较典型有本地权限提升漏洞,这类漏洞在数据库中广泛存在,能让普通用户获得最高管理员权限。
常见漏洞分类维度——达成结果
越权访问
访问原本不可访问的数据,包括读和写。
这一条通常是攻击者的核心目的,而且可造成非常严重的灾难(如银行数据被人可写)。
提权
通过越权等方式,对一个低权限用户提升权限,一步一步直到提升为DBA权限。
利用提权后的账号窃取数据库中核心数据。
拒绝服务(DOS)
攻击者强制目标数据库停止提供服务,是黑客常用的攻击手段之一。
凡是使数据库服务被暂停甚至所处主机死机,都属于拒绝服务攻击。
夺取操作系统
一般利用缓冲区漏洞,劫持函数返回值,执行shellcode,打开console。
认证绕过
通常利用认证系统的漏洞不用受权就能进入系统。
通常认证绕过都是为权限提升或直接的数据访问服务的。
SQL注入
PL/SQL注入
✓代码注入
多在支持多条SQL语句执行的数据中存在。
它是通过黑客在正常语句中加入恶意EXECUTE命令完成攻击的。
✓函数调用注入
函数调用注入是代码注入的变体,但确是整个SQL注入的核心。
它利用数据库存在漏洞将恶意语句注入其中。
✓具体手法分为:
注入select/delete/insert/update语句
注入函数
注入匿名pl/SQL块
游标注入
利用触发器
lateral提权技术
SQL注入
缓冲区溢出注入
这个缓冲区溢出和下文的缓冲区溢出不是一种。
这种缓冲区溢出是数据库系统函数中某些参数被传入了超过参数长度限制的值,而引发的缓冲区溢出。
针对SQL操作的注入
最常见的是利用where子句修改SQL语句返回不同的结果集,来达到获取数据库敏感信息的目的。
源缓冲区的数据向小于自身位数的缓冲区复制数据时,超越目标缓冲区的位数边界,并且数据库未对存入数据进行边界判断,最终导致目标缓冲区爆满。
目标缓冲区内存改变程序控制流、夺取操作系统、禁止访问等多种结果。
栈溢出
最常见的是利用where子句修改SQL语句返回不同的结果集,来达到获取数据库敏感信息的目的。
堆溢出
由于堆中地址是动态分配的,无法准确定位,所以黑客要利用堆溢出需要通过DWORD SHOOT技术来对堆进行扫描,获取堆溢出中可利用的地址。
静态数据区溢出
静态数据区域存放连续的全局变量和未初始化的静态变量,缓冲区在这发生溢出称为静态数据区溢出。
格式化串
格式化串漏洞最显著的例子,就是在*printf()系列函数中按照一定的格式对数据进行输出。
其他攻击手段
弱口令
通常指容易被别人猜测到或被破解工具破解的口令均为弱口令,其中很大一部分是数据库默认口令,其中有一部分是因为缺省密码产生的。
撞库
通过已收集到的在其他服务中注册的用户名和密码,对目标数据库进行访问尝试。
由于很多人习惯用相同密码和账号,因此成功登陆到目标数据库的可能性大大提高,达成盗取大量敏感信息的目的。
暴力破解
通过数据字典(密码库)对数据库的用户名进行碰撞,最终碰出可以用于访问数据库的用户和密码组合。
目录Contents 数据库常见漏洞种类Oracle 常见的攻击方式
Oracle 漏洞利用趋势分析
目前有效的防护策略
Oracle常见攻击手段
通过SQL注入
vpd是一套强制存取控制及装置,具有各种规则,利用xdb_pitrig_pkg包中pitrig_drop的sql注入漏洞可直接删除规则
权限直接提升
利用create any trigger权限直接提升
缓存区溢出
目录Contents 数据库常见漏洞种类Oracle 常见的攻击方式
Oracle 漏洞利用趋势分析
目前有效的防护策略
近年漏洞统计分析——2012~2016分布情况分析
2012-2016漏洞数量统计
近年漏洞统计分析——2016年数据库种类分布情况分析
2016漏洞分布统计
数据库类型漏洞数Oracle24 MS Sql Server7
mysql102
IBM DB23 PostgreSQL0
2016漏洞危害等级分布统计
2016漏洞危害等级分布统计
●漏洞往往是扎堆被爆出,多个漏洞出现在同一函数、存储过程中。
数据库漏洞中高危
漏洞最为关键,对高危漏洞出现的函数、存储过程进行安全加固,不但有利于防护已爆出的漏洞,更可能提高针对0day漏洞的预防能力。
●2016年高危漏洞集中于数据库Oracle和MySQL中:
●CVE-2016-3609
●CVE-2016-3489
●CVE-2016-3479
●CVE-2016-3454
●CVE-2016-0639
●CVE-2016-3471
CVE-2016-3454CVE-2016-3609
该漏洞为oracle的java vm存在的缓冲区溢出漏洞,不需要获得目标数据库的网络访问权限或者数据库所在操作系统的访问权限,就可以导致目标数据库被完全控制,里面存储的所有敏感信息被盗取、数据库被彻底破坏、数据库服务被停止等。
◆CVE-2016-3454影响版本:11.2.0.4、12.1.0.1的数据库
◆CVE-2016-3609影响版本:12.1.0.2、11.2.0.4、12.1.0.1的数据库
CVE-2016-3489
该漏洞是一个本地漏洞存在于data pump import组件中。
data pump import组件主要是用来处理数据库的数据库文件导入导出的。
不法分子通过某种手段登陆到数据库本地后,可能可以通过该组件导出某些正常渠道无权限访问的数据。
从而盗取某些敏感信息。
CVE-2016-3489影响版本:12.1.0.2、11.2.0.4、12.1.0.1的数据库
CVE-2016-3479
该漏洞是一个远程漏洞位于Portable Clusterware组件中。
该漏洞可能导致入侵者仅有一组低权限账号就可获得数据库的部分表的访问权,获得其中的敏感信息,甚至对数据库稳定行造成一定程度的影响。
CVE-2016-3479影响版本:12.1.0.2、11.2.0.4的数据库
CVE-2016-0639CVE-2016-3471
该漏洞是MySQL的两个安全漏洞前者是远程漏洞后者是本地漏洞都是因为相对应组件中存在的变量限制不严格导致。
在某些条件下可能会导致数据库信息被泄露。
尤其是远程的那个可以无需任何账号密码就能导致Mysql缓冲区溢出,从而获取到敏感信息。
◆CVE-2016-0639影响版本:mysql:5.6.29 、mysql:5.7.11的数据库
◆CVE-2016-3471影响版本:mysql:5.6.26、mysql:5.5.45的数据库
近年漏洞统计分析——数据库漏洞利用趋势
数据库安全发展到现在,权限控制和输入限制是永恒的话题。
今年6个高危漏洞中的3个是缓冲区溢出漏洞。
尤其CVE-2016-0639是通过对协议的破解直接对数据库缓冲区发动进攻。
虽然缓冲区溢出和通讯协议破解的漏洞虽然越来越少,但一旦出现将是数据库的噩梦。
SQL层入侵依旧是漏洞中的主流,基本80%以上的漏洞都属于SQL层入侵范畴。
在SQL层入侵中,今年主要还是利用数据库系统SQL语言漏洞。
大部分还是依赖对低权限用户进行升级权限,来获取更多数据库敏感信息。
作为数据库管理员,请严格分配用户权限,防止分配给用户过高权限;对非必要服务请进行禁用或卸载,防止其中存在的漏洞被黑客利用,对您的数据库造成入侵。
目录Contents 数据库常见漏洞种类Oracle 常见的攻击方式
Oracle 漏洞利用趋势分析
目前有效的防护策略
敏感数据安全产品线数据库准入系统
数据库防水坝
数据库审计系统
数据脱敏系统
数据加密系统
数据库防火墙
数据库审计系统精确审计数据库审计系统全面审计审计管理
精确审计全面审计234516安全事件阅读性增强多层次的安全事件归类日常安全报表、特定主题报表、综合性报表告警分析和追踪,事后事件搜索和分析透过中间件审计分析到B/S 三层终端信息事后事件搜索和分析、基于solr 的搜索引擎、安全事件管理
能审计到数据库内部(绕过交换机)的操作
THANK YOU!。