当前位置:文档之家› 安华金和:数据库虚拟补丁技术说明

安华金和:数据库虚拟补丁技术说明

然而,数据库补丁包虽然能在一定程度上弥补数据库漏洞所带来的危害,降低了数据库 遭受恶意攻击的风险度。但是数据库补丁也存在一些可适用性的问题。主要包括以下三点: 数据库补丁包具有高针对性,修补范围存在局限性。并且补丁包的发布周期冗长,数据
库存在数据泄露的真空期。 数据库利用补丁进行修补的过程中存在兼容性隐患,为数据库造成新的危害。 数据库补丁修补过程中具有一定风险,并且会消耗用户大量资源。
); END;
防护的规则和手段可以为: (1)解析出会话的用户名:证明不是 sys 用户,可能会是一种越权行为。 (2)对语句进行进一步验证:证明语句中包含有常被用来的攻击的字段名: dbms_metadata,并且含有函数 get_ddl。 (3)满足上述条件,可以猜测为攻击行为。 (4)最后验证语句并非查询类型 select ....,排除正常行为。 至此,认为该语句是个攻击语句,存在风险。
© 2015 安华金和
-1-
密级:内部公开
二. 数据库虚拟补丁产生的原因
2.1 数据库漏洞分析
美国 Verizon 就“核心数据是如何丢失的”做过一次全面的市场调查,结果发现,75%的 数据丢失情况是由于数据库漏洞造成的。据 CVE 的数据安全漏洞统计,Oracle、SQL Server、 MySQL 等主流数据库的漏洞逐年上升。
入侵方法分为:
代码注入 代码注入攻击多在支持多条 SQL 语句执行的数据中存在。它是通过黑客在正常语句中加入恶 意 EXECUTE 命令完成攻击的。 函数调用注入 函数调用注入是代码注入的变体,但确实整个 SQL 注入的核心。它利用数据库存在漏洞将恶 意语句注入其中。具体手法分为: 注入 select /delete/insert/update 语句 注入函数 注入匿名 pl/sql 块 游标注入 利用触发器 lateral 提权技术
© 2015 安华金和
-2-
密级:内部公开
利用操作系统环境变量访问文件系统 (4)危害数据库所在网络上的其他平台。
2.1.3 数据库漏洞的归类划分
根据 CVE 最新发布的漏洞统计结果,统计公布的各类数据库漏洞分布如下:
423
203
175
74
92
28
38
8
图 2.2 各类数据库漏洞分布
下图为 CVE 统计的一类 oracle 数据库漏洞,证用户可以通过未知向量影响系统的可用性(属 缓冲区溢出类)。
(2)缓冲区溢出 源缓冲区的数据向小于自身位数的缓冲区复制数据时,超越目标缓冲区的位数边界,并且数 据库未对存入数据进行边界判断,最终导致目标缓冲区爆满。目标缓冲区内存改变程序控制 流、夺取操作系统、禁止访问等多种结果。缓冲区溢出主要可以分成四种:静态数据溢出、 栈溢出、堆溢出和格式化串。
© 2015 安华金和
-7-
密级:内部公开
在正常的 sql 语句中通过嵌入、注释、转义符等手段加入针对数据库漏洞或数据库设置缺
陷的畸形字符串或其他畸形输入。通过单次或多次这种畸形输入逐步获取数据库中更高权限,
最终获取数据库中敏感信息或直接夺取数据库 DBA 权限。进而可能对数据库所在的网络环境
和本地服务器造成危害。
上述虚拟补丁防护方式方法不但提高了执行效率,更有效的降低了误报的频率,虚拟补 丁对数据库漏洞的防护方式大致如此。
安华金和的虚拟补丁技术,基于数据库防护考虑,将数据库漏洞分为了 22 类。本文只列 举下述部分数据库漏洞做分类说明,有利于对虚拟补丁防护方式的理解。 (1)DBMS SQL 注入
这里指的是 DBMS 系统的函数、存储过程中注入漏洞,而不是我们常规说的应用系统的 SQL 注入漏洞,这些漏洞的 SQL 语句完成语句注入。
简单的说,虚拟补丁通过控制受影响的应用程序的输入或输出,来改变或消除漏洞,是 在数据库的前端进行控制或告警的一种技术。它是一种透明的对数据库进行保护的方法,不 需要重启数据库或进行大范围应用系统的回归测试。
3.2 虚拟补丁的防护原理
虚拟补丁技术防护的基本原理就是攻击规则的匹配。根据攻击的方式,我们可以分为两 种:一种是对网络通讯中直接的攻击的防护,比如对 Oracle TNS 协议中的缓冲区溢出漏洞; 一种是对通过 SQL 语句中的攻击行为的防护,比如数据库系统的提权漏洞、注入漏洞。
数据库虚拟补丁技术说明
一. 综述
虚拟补丁技术是通过控制所保护系统的输入输出,防止对系统的漏洞攻击行为的技术。 随着网络黑客的攻击活动方式越来越多,速度越来越快,针对信息系统的漏洞研究和系 统安全漏洞的修补,成为了攻与防永恒的主题。但系统漏洞的修补永远晚于漏洞的发现,系 统设计的缺陷导致漏洞难以修补,现实稳定运行的信息系统难以接受系统的升级等等,这些 原因都造成了现实世界中诸多被暴露了漏洞的系统仍然在持续‘裸奔’中。这如同已经被曝 了安全隐患的汽车,无法召回,人们只能祈祷‘厄运’不要降临在自己身上。 虚拟补丁技术是对已有系统通过外围的方式,针对漏洞攻击的特征进行攻击行为发现和 拦截的安全防御手段。它使针对漏洞防御的实施更为轻量,更为及时。当然这并不是一种彻 底的方式,更彻底的方式依然是系统自身的修复;但它不失为一种简易的解决方法,为彻底 修复赢得了时间;也使在某些特殊情况下无法进行的修复,有了轻便的解决方案。即使不彻 底但简单而有效。这就如同是有了炎症,要吃退烧和消炎药,但体质的增强还需要长久的锻 炼、起居、饮食和精神的调整。 虚拟补丁技术较早的使用是在 web 应用系统上,较早提出这个概念的是趋势科技,近来 绿盟也加入了这个领域,也是在 web 上。数据库的虚拟补丁是近几年的防御技术,较早提出 的是 Mcaffee,国内数据库安全厂商安华金和也是这方面的佼佼者。 虚拟补丁技术较早地应用于 web 应用系统和数据库的原因是,由于这两种系统与应用关 联的很紧密,一旦上线都需要稳定的运行,由于实施补丁升级引起的工程量和系统的下线成 本与代价都很高。同时的协议标准性很差、复杂性很高,传统的防火墙、IPS/IDS、UTM 等都 对此无能为力。 数据库虚拟补丁技术一般是集成在数据库防火墙产品中(一种新的、有效针对数据库进 行主动安全防御的产品)。这种技术,一经面世,就受到了国内外用户的广泛欢迎;除了防 御能力外,国内用户欢迎的一个重要原因还在于,在以极光为代表的网络漏扫工具,每年都 会对数据库主机报告数十个高中危漏洞,被检测单位亟待解决这些数据库漏洞问题,而虚拟 补丁技术,无疑也对这种现实的需求提供了有效的解决方案。 在本文,我们将对数据库的漏洞,以及数据库虚拟补丁技术进行深度的介绍。
数据库漏洞特指数据库软件在设计及开发阶段,因技术性缺陷而产生的不可预期,高隐 秘性的数据库安全漏洞。外部攻击利用这些安全漏洞,对数据库及其存储的大量数据资产可 造成恶意危害。数据库漏洞的种类繁多并且所造成的危害性严重,所以数据库漏洞目前已成 为数据库信息安全领域针对数据库防护的主要研究对象。
图 2.1 数据库漏洞入侵方式
以安华金和数据库防火墙产品(DBF)为例的虚拟补丁技术的防护原理是对数据库和客 户端之间的通信进行通信协议解析,获取到会话信息(包括:数据库用户,操作系统用户等) 和用户实际执行的语句,对会话信息和语句中的攻击特征字符串进行综合分析,判断该语句 是否有攻击意图。
其中语句分析拆取需要的语句信息,如:SQL 语句操作类型,常出现在攻击语句中的关 键词(如用来攻击的包、函数名等)。当语句中包含这些关键词,则判定为是一种漏洞攻击
© 2015 安华金和
-5-
密级:内部公开
三. 虚拟补丁对数据库的防护
3.1 虚拟补丁的产品优势
虚拟补丁的优势所在,就是可以在无需修补 DBMS 内核的情况下保护数据库。虚拟补丁 在数据库外创建了一个安全层,从而无需根据数据库厂商提供的补丁做数据库修复,也不需 要停止服务和回归测试。
虚拟补丁的防护机制,旨在通过监控所有数据库活动,获取通讯信息。利用监控数据与 保护规则相比较,从而发现攻击企图。当比较结果与规则匹配时,就发出告警警报,并根据 防护策略及时的终止可疑会话、操作程序或隔离用户,直到这个可疑的活动被审查通过。
© 2015 安华金和
-6-
密级:内部公开
行为。最后对特征字符串进行进一步验证,结合关键词所在的上下文,甄别语句的行为,排 除正常行为所产生的语句。
例如:攻击语句
图 3.1 防护示例
DECLARE a clob; BEGIN
a := sys.dbms_metadata.get_ddl ( '''|| scott.get_dba() ||''', 'DBMS_METADATA'
2.3 数据库虚拟补丁技术
通过数据库漏洞的高危害性分析和漏洞补丁包的低可用性说明。我们可知,市场亟需一 种数据库漏洞防护方式,在无需对数据库做深度操作的前提下,进行漏洞的修补与防护,以 期达到数据库的安全标准要求。
常规的数据库虚拟补丁技术主要分 2 种: 方案一. 修改数据库程序的运行时代码。如果发现攻击涉及到某些存储敏感信息的数据表,会 创造一个输出补丁,从而改变数据库返回的结果集输出的方向,向某特定地址传输该数据包。 方案二. 在数据库的前端设置某种类型代理,以控制数据库的输入和输出,从而阻止或消除攻 击行为。可以检测对漏洞的尝试利用,并终止可疑的会话。 当前市场上的数据库防护工具,如果具备数据库漏洞防护能力,通常采用第二种虚拟补丁防 护方式,避免对数据库做代码层级的改动。
© 2015 安华金和
-3-
密级:内部公开
数据库漏洞成因,主要分为以下几种: (1)输入验证错误 (2)边界条件错误 (3)缓冲区溢出错误 (4)访问验证错误 (5)意外条件错误 (6)其他错误 通过研究数据库漏洞分类,有助于人们对漏洞的深入理解并加以预防和避免。
2.2 数据库补丁包的缺陷
由于数据库漏洞的不可预期性和高隐蔽性,数据库开发商只能通过事后,周期性,有针 对性的对已发现的数据库漏洞进行安全性处理,并以数据库补丁包的形式进行针对性的漏洞 修复。所以,对数据库打补丁和扩容存储已经成为 DBA 的常规性必处理业务。
相关主题