大数据时代的来临,使得各个行业数据量成bt级别增长。数据库被广泛使用在各种新的场景中。数据库本身是被设计在内网之中的,处在相对安全的环境中。而现在发展的趋势是内外网逐渐融合,数据库将面临大量新型场景,由此伴随而来的安全威胁无法靠数据库现有安全机制来进行防护。数据库的优良性能和落后的安全机制成为鲜明的对比。数据库现在首要需要解决的就是有针对的加强某些场景下的安全防护能力。否则安全将成为数据库的“阿喀琉斯之踵”。
为了提高数据库用户的安全意识,快速反馈最新数据库漏洞被利用方向,安华金和数据库攻防实验室(以下简称:dbsec labs)最新发布《2016年数据库漏洞安全威胁报告》。数据选取截至2016年12月,该报告用于快速跟踪及反馈数据库安全的发展态势。该报告回顾了2016年全球超过10万起安全事件和2260起已经确认的数据泄漏事件。根据verizon统计报告,全球数据库泄露事件呈现缓步提高趋势,手段和方式呈现多种变化。分析已确认的2260起数据泄露事件,泄露源7成以上和数据库相关。数据库信息泄露主要是由人为因素、数据库自身安全漏洞和第三方恶意组件造成,三大因素共同成为威胁数据库安全的“三驾马车”。
下面,我们将从该调查报告中截取部分内容,从不同维度对2016年度数据库漏洞加以盘点。
数据库安全威胁主要来自三个方面,其中数据库漏洞威胁依旧是数据库最严重的威胁。本文将从漏洞时间分布、漏洞威胁分布、数据库厂商爆出漏洞比例、受影响组件和漏洞类型分类等5个角度来研究数据库漏洞,最终总结出漏洞的趋势,提醒客户提早应对。(本文的漏洞都取自nvd-美国国家漏洞库。)
1.按发布时间分布情况分析
1996年开始数据库进入安全团队的视野。同年4月份oracle被披露出第一个安全漏洞。从1999年的4个漏洞开始,漏洞数量每年稳步增长,到2012年一年被爆出116个漏洞。本文选取了2012年至今的5个主流数据库(oracle 、mssql、mysql、db2、postgresql)漏洞来进行分析。下面是5年对比图, 2016年截止到12月份初被确认数据库漏洞一共136个。
和去年比,漏洞数量增加了62个,增幅达到81%。这和今年新出的一些新攻击手法以及各家数据库开发了一些新功能密切相关。数据库安全漏洞总数呈下降趋势,但基本属于一年高一年低的状态。数据库安全切莫掉以轻心。
具体细分,今年的136个数据库漏洞来自4个数据库。(postgresql无漏洞)如下图所示:
136个漏洞中, mysql占到102个,占全年漏洞的75%,主要集中在5.5、5.6和5.7这三个主流版本中。所以,使用mysql的公司、团体和个人及时对自己的mysql数据库进行补丁升级。有研发能力的单位最好对mysql源码进行源码审计,修复其中的问题。关闭和自己业务无关的组件,编译出适合自己应用需求的客制化mysql。oracle数据库也被爆出26个漏洞,数量位列第二。各厂商产品的漏洞数量不仅与产品自身的安全性有关,而且也和厂商的产品数量、产品的复杂度、受研究者关注程度等多种因素有关。因此,并不能简单地认为公开漏洞数量越多的厂商产品越不安全。虽然oracle漏洞数量占到93%,但其实oracle无论是性能还是安全性在同业者中都处于前列。
2.按威胁类型分布情况分析
按照对数据库的机密性、完整性和可用性的影响程度漏洞可分成3大类:高威漏洞、中危漏洞和低危漏洞。其中高危漏洞必须及时处理,低危和中危漏洞在某些特定情况下也会达到高危漏洞的危害程度,所以切莫轻视。在2016年被确认的136个漏洞中高危漏洞有6个,中危漏洞有88个低危漏洞有42个。
数据库名称 | oracle | mysql | postgresql | microsoft sql server | ibm db2 |
漏洞数量 | 24个 | 102个 | 0个 | 7个 | 3个 |
高危漏洞数量 | 4个 | 2个 | 0个 | 0个 | 0个 |
其中,最受关注的是高危漏洞,高危漏洞集中分布在oracle和mysql数据库中。高危漏洞占漏洞总数的4%,中危漏洞数量最多占据了65%、低威胁漏洞占据31%的比例。
其中,低危漏洞基本不会对数据库造成真正的伤害。真正能被黑客利用入侵数据库的是高危漏洞和少量中危漏洞。因此,上述6个高危漏洞才是我们需要重点关注的。
3.按受影响组件属性分类情况分析
2016年被爆出漏洞最多的两种数据库,同时也是市场占有率最高的两种数据库(oracle,mysql)。
1)、oracle 的26个漏洞主要集中于java vm、xdb和core rdbms中(这三个占新漏洞的53%)。这3个组件中core rdbms 是oracle数据库的最核心组件。java vm是java 虚拟机负责运行oracle中的java代码。xdb的漏洞往往来自于xdb,是负责处理xml的组件。此外,oracle goldengate 、data pump import 、olap等组件中也发现了一些安全威胁。
2)、mysql今年共有102个漏洞,这和它代码开源,外加平行版本、衍生版本(例如:mariadb、perconadb等)较多不无关系。
3)、postgresql今年表现很好,未出现新的安全漏洞。
今年的数据库安全的防护重点应该集中于mysql和oracle数据库。因此,上云厂商尤其要关注他们的安全。云的环境让数据库过分暴露,很容易成为不法分子的目标。
4.按漏洞的攻击途径分类情况分析
通常漏洞按攻击途径划分为远程服务器漏洞和本地漏洞:
从上图可知:远程漏洞占74%,本地漏洞基本只占17%。而在远程漏洞中,需要登入到数据库在sql层的漏洞远多于协议层的漏洞。除去不确定的漏洞,sql层占据了全部漏洞类型的81%,协议层漏洞则为9%。
5.数据库漏洞利用趋势
漏洞往往是扎堆被爆出,多个漏洞出现在同一函数、存储过程中。数据库漏洞中高危漏洞最为关键,对高危漏洞出现的函数、存储过程进行安全加固,不但有利于防护已爆出的漏洞,更可能提高针对0day漏洞的预防能力。
2016年高危漏洞集中于数据库oracle 和mysql中,分别:
·cve-2016-3609
·cve-2016-3489
·cve-2016-3479
·cve-2016-3454
·cve-2016-0639
·cve-2016-3471
数据库安全发展到现在,权限的控制和输入限制是永恒的话题。尽管缓冲区溢出和通讯协议破解的漏洞越来越少,但一旦出现将是数据库的噩梦。今年6个高危漏洞中的3个是缓冲区溢出漏洞。sql层入侵依旧是漏洞中的主流,基本80%以上的漏洞都属于sql层入范畴。作为数据库管理员请严格分配用户权限,防止分配给用户过高权限;对非必要服务请进行禁用或卸载,防止其中存在的漏洞被黑客利用,入侵数据库。
数据库漏洞影响广、威胁大,防护者除了积极更新补丁外,还可通过合理配置提高入侵难度的特性。对数据库漏洞进行研究探索将有助于预知数据库可能出现0day漏洞的位置,帮助客户对数据库可能被入侵组件进行加固。加固数据库安全要从三个方面进行,严格限制弱口令、及时排出配置问题、定期升级补丁和对第三方恶意sql语句进行审查。
1.入侵事前检查防护
网络中任何一点的漏洞都可能导致数据泄露,定期对整个网络环境进行弱点扫描,定期请专人对整个网络做渗透测试,同时可以通过web安全扫描器、数据库漏洞扫描器等相关产品对整个环境进行安全检查。尤其要注意扫描器需要具备扫描后门、恶意sql痕迹的能力。
2.入侵事中阻断防御
事中防御的重点是准确的判断出哪些语句或行为可能会引发入侵动作。推荐在数据库和应用系统之间串联数据库防火墙:从数据库层防护和阻断sql注入行为;具备虚拟补丁功能,给不打补丁的数据库带来和打补丁一样的安全;对第三方恶意组件中的恶意语句,有解密并阻断效果。
3.入侵事后减小损失
通过对用户访问数据库行为的记录、审计分析,帮助用户事后进行数据泄密行为的追根溯源,提高数据资产安全。
数据库跟随业务逐渐从后台走向前台,从内网走向外网,从实体走向虚拟(云)。数据库处于新的环境之中,给黑客带来了更多入侵的机会。最后,提醒大家遵循一些简单的原则防止或缓解数据库受到的威胁:
·和数据库关联的软硬件,请使用官方正版,防止破解版中被植入后门、恶意sql等内容威胁数据库安全。
·按时安装数据库最新补丁,如果有某种原因无法及时打补丁,也请使用vpatch功能保护数据库安全。
·合理的配置,定期通过工具管理数据库用户名和密码,防止弱口令和错误配置出现。
试用申请