互联网就像空气,彻底的融入我们的生活之中。因此我们愈发习惯把越来越多的数据保存在网上以换取更便捷的服务。不过,随之而来的安全事件无不让人触目惊心。
安华金和数据库安全攻防实验室(DBSecLabs )回忆2015年整年发生的数据泄露事件,2015年一月机锋论坛包括用户名、邮箱、加密密码的2300万用户信息泄漏。随后国内10多家酒店大量客户开房信息泄漏、中国广东人寿10W保单泄漏、大麦网600万用户信息和网易邮箱过亿用户信息泄漏……一连串的信息泄漏事件无不令人提心吊胆。覆巢之下安有完卵,全球第二大比特币交易网站Bitstamp遭到黑客入侵,新型银行木马Emotet盗取德国国民网银证书,就连一直以安全著称的瑞士银行在互联网的世界也难逃被黑客入侵的噩梦。
数据库漏洞研究起源
大数据时代的来临,各个行业数据量成 BT 级增长。 数据库被广泛使用在各种新的场景中,在某些场景下面临的安全威胁是数据库现有安全机制无法防护的。可以看到的是:数据库的优良性能和落后的安全机制成为鲜明的对比。
虽然数据库安全设计最初是按照美国国防部的标准制定而成,不过那些安全标准与现实安全的意义有着很大的差别。纵然大部分商用数据库都通过了安全标准检验,但随着功能的开发和部署在危险的网络环境中,安全短板就成为其“阿克琉斯之踵”。
1996年开始数据库安全进入安全团队视野,同年4月份Oracle被披露出第一个安全漏洞开始,随着新版本和新功能的出现漏洞呈震荡增长趋势。2014年当年被披露的各大数据库漏洞高达129个。
2011-2015主流数据库漏洞数量
今年截止到2015 年12 月份初被确认数据库漏洞一共 76个,比2014年下降了 53 个,减幅达到41%。这与各大数据库公司开发自己的代码审计工具有着密不可分的联系。
2015年漏洞分布
2015年数据库漏洞分布
今年曝出的76个数据库漏洞中,MySQL漏洞数占据全年漏洞总数的62%,共计47个。漏洞主要集中在5.5 和5.6 这两个主流版本中。
安华金和数据库安全攻防实验室通过分析发现MySQL 的47 个漏洞散落在12个MySQL 组件和一个未知组件上。众所周知MySQL 是一款易拆合的轻量级数据库,因此12 个组件中有很多是非必备组件。举个例子来说innoDB存在的6 个漏洞,如果您的业务不需要 innoDB,则建议禁止innoDB的使用。
MySQL漏洞分布组件
因此,安华金和数据库安全攻防实验室建议使用 MySQL 的公司、团体和个人及时对自己的 MySQL 数据库进行补丁升级。有研发能力的单位最好对MySQL源码进行审计,修复其中的问题。关闭与自己业务无关的组件,编译出适合自己应用需求的定制化MySQL。
同样Oracle数据库也被爆出 14 个漏洞,位居其次。这些漏洞集中于 java vm、XDB 和Core RDBMS中。Core RDBMS 是Oracle数据库的最核心组件,在 windows下以一个Oracle.exe进程出现,而Linux下则是分成多个进程,这些进程负责着不同的功能,以此保证 Oracle 数据库的正常运行。Java VM是java 虚拟机负责运行 Oracle中的Java 代码,例如 Oracle图形化安装程序。 XDB 的漏洞往往来自于 XDB, 是负责处理 XML 的组件。 XDB 有2 个对外端口是HTTP和 FTP。这2个端口经常会给数据库带来缓冲区溢出漏洞—一种无需身份验证的高危漏洞。
Oracle漏洞分布组件
不过Oracle数据库漏洞常年居高不下与其自身复杂的逻辑密不可分。
2015年数据库漏洞—按厂商分类
2015年Oracle漏洞数占了总漏洞数的83%。这与它旗下两款数据库占据的市场份额和支持的功能复杂度有着密切关系。我们应该知道,各厂商产品的漏洞数量不仅与产品自身的安全性有关,而且也和厂商的产品数量、产品的复杂度、受研究者关注程度等多种因素有关。因此,我们不能简单地认为公开漏洞数量越多的厂商产品越不安全。其实 Oracle无论是性能还是安全性在同业者中都处于前列。
2015年数据库漏洞威胁类型
将漏洞按照其危害程度分为:高危漏洞,中危漏洞,低危漏洞三大类。2015年7大主流数据库中均存在高危漏洞。
2015年数据库漏洞—按威胁程度分类
其中高危漏洞占漏洞总数的12%,中危漏洞数量最多占据了58%,低威胁漏洞占30%。
威胁等级比例
12%的高危漏洞将是安华金和关注的重点。因此建议:高危漏洞必须及时处理。在某些特定情况下低危、中危漏洞也会达到高危漏洞的危害程度,所以对于低危漏洞也要及时修复。
2015年数据库漏洞利用趋势
数据库安全发展到现在,绕过身份验证依旧是对数据库安全最大的威胁。今年的 9个高危漏洞中的 3 个是针对身份验证绕过的。它们分别采用的是缓冲区溢出、通讯协议破解和默认口令三张种方式。虽然缓冲区溢出和通讯协议破解的漏洞越来越少,一旦出现将是数据库的噩梦。
2015年SQL 注入依旧是漏洞中的主流,80%以上的漏洞都属于SQL注入范畴,利用数据库系统 SQL 语言漏洞,通过对低权限用户进行升级权限来获取更多数据库内的敏感信息。作为数据库管理员应严格分配用户权限,防止分配给用户过高权限,对非必要服务请进行禁用或卸载,防止其中存在的漏洞被黑客利用,对数据库造成入侵。
2016年数据库安全建议
面对日益严峻的数据库安全形式,数据库加固应该从三个方面进行:严格限制弱口令、及时排出配置问题、定期升级补丁。也可以从时间节点上划分为三个阶段:入侵前的检查防护,事中的防御阻断,入侵事后审计追踪。事前防护阶段的重点在于排查,定期对整个网络环境进行弱点扫描,网络中任何一点的漏洞都可能导致最后的数据泄露。可以定期请专人对整个网络做渗透测试,同时通过数据库漏洞扫描器等相关产品对整个环境进行安全检查。
在事中阻断防御时,防御的重点在于准确判断哪些语句属于入侵语句。推荐在 Web 前端部署 WAF 来解决大部分针对 Web 的入侵行为,同时数据库前部署专业的数据库防火墙。
在事后通过对用户访问数据库行为的记录、审计分析,帮助用户事后进行数据泄密行为的追根溯源,提高数据资产安全。
结束语
回顾近年来安华金和数据库安全攻防实验室(DBSecLabs )对数据库漏洞的研究,我们发现任何一款数据库漏洞的出现和防治都会遵循某些特定的规律。虽然每年漏洞出现的数量并非稳定下降,但数据库自身出现漏洞的几率越来越低。漏洞数量不能稳定下降主要有两方面的原因:
1.很多数据库为了方便用户扩展了大量接口和功能,新功能在最初的版本总是受到自身漏洞和兼容性漏洞的双重困扰。
2.黑客利用漏洞的能力越来越强,以前很多被发现的漏洞其实是无法被利用的,黑客逐渐把其中一些无法利用的漏洞变成可利用。同时黑客也会特别关注与某些行业,数据库漏洞攻击往往也集中在这些行业领域。
最后,也是最重要的,大部分数据库漏洞攻击者依然是以获利为目的。数据库跟随业务逐渐从后台走向前台;从内外走向外网;从实体走向虚拟(云)。部署环境的发展给了黑客更多入侵数据库的机会。