2019年上半年数据库漏洞 安全威胁报告

释放双眼,带上耳机,听听看~!
一. 报告摘要北京安华金和科技有限公司(简称安华金和)长期致力于帮助客户应对数据库安全领域的威胁。为了提高数据库用户的安全意识,快速反馈最新数据库漏洞被利用方向,安华金和最新发布《2019年上半年数据库漏洞安全威胁报告》。该报告用于快速跟踪及反馈数据库安全的发展态势。二. 报

一.  报告摘要

北京安华金和科技有限公司(简称安华金和)长期致力于帮助客户应对数据库安全领域的威胁。为了提高数据库用户的安全意识,快速反馈最新数据库漏洞被利用方向,安华金和最新发布《2019年上半年数据库漏洞安全威胁报告》。该报告用于快速跟踪及反馈数据库安全的发展态势。

二.  报告正文

2.1  2019年数据库安全形式综述

2.1.1  数据安全现状概述

如今云计算、大数据、移动互联网、物联网、智慧城市正成为我国信息化建设的主要方向,信息化的发展正改变着我们的生活。作为信息化的核心,数据正逐步成为各类企业、政府部门关注的重点。毫无疑问,在信息时代下数据已经成为一种无形的资产。而数据库作为存储核心数据的重要手段,在企业IT架构中的重要性也变得不言而喻。

随着大数据时代的到来,各行业的数据量成TB甚至PB级增长,数据规模不断扩大,数据库的重要性也更加突出。在云计算产业的不断发展下,各类公有云、私有云的数量也在不断增长,随之而来的是,原本在内网环境中使用的数据库管理系统也在云环境下得到广泛使用,数据库的使用场景发生了变化。在《云计算发展三年行动计划(2017-2019年)》的推动下,各类云的数量将持续增长。

系统架构、使用场景、网络环境的变化,导致一些旧的安全体系已不再适用。无论是企业还是客户都必须考虑数据库的安全问题。为了对数据库进行合理有效的安全建设,研究数据库潜在的安全风险并寻找切实可行的应对措施已经迫在眉睫。

2.1.2  数据库自身的安全缺憾

凭借能够快速、高效管理数据的特点,数据库成为了信息系统的核心。无论是大数据、云计算还是物联网等热点技术都离不开数据库的身影。从传统内网到云环境,从世界500强公司到各国政府机关,数据库在各式各样的业务系统中扮演了重要的角色,存放了包括财务信息、公民身份信息、银行账户密码、政府机密资料在内的等各类重要数据。核心数据的价值在不断提升,数据库的安全性也更加重要。

随着云计算、大数据时代的到来,全球的数据量呈爆发式增长。为了适应新的用户需求,企业的IT架构也在随之变化,正在从传统的内网环境演变到现在的云平台上。数据库作为管理数据的核心系统,在得到人们广泛使用的同时,也不断遇到新的应用场景,面临着新的安全挑战。

传统环境下,数据库位于企业的内网环境中,封闭的局域网为数据库提供了一个相对安全的使用环境,有效避免了来自外部的黑客攻击。然而从目前的发展情况来看,内外网融合是大势所趋,越来越多的用户在向云上迁移,数据库系统正在脱离保守的内网环境,运行环境正变得更加开放。与之相对的是,数据库的安全机制并没有进一步发展,与产品面对海量数据所表现出的优异性能相比,数据库在安全性方面表现得相对落后。因此,数据库安全所面临的首要问题就是如何加强某些场景下的安全防护能力,避免潜在安全隐患。

2.2  数据库安全威胁分析

作为一套复杂而周密的软件,其实数据库在设计之初就考虑到了安全问题,有的甚至依据美国国防部的标准而来。应该说当今市场上大部分商用数据库都能满足安全标准,是符合安全要求的。然而即使是符合安全标准的数据库,在实际使用的过程中所表现出的安全性仍会有所欠缺,令人大失所望。根本原因在于技术的发展总是领先于标准的制定。因此,在研究数据库安全时,要更多地从实际情况出发,寻找切实有效的解决办法。

图1 数据库安全威胁分析统计图

根据今年对数据库攻击的统计分析,我们绘制了“数据库安全威胁分析统计图”。从上图中可以看出,在目前的安全形势下,数据库所面临的安全威胁主要有三大类:第三方恶意组件、人为因素和数据库系统安全,三者共占总体的93%。由此可见,这三大威胁的存在严重影响了数据库的安全性。寻找它们的应对之道,是建设数据库安全的必经之路。

2.2.1  人为因素

要想全面、透彻的研究安全问题,必然要考虑安全事件中的人为因素。无论是攻击者也好,数据库管理员也罢,从本质上看,安全问题可以归结为人与人之间的博弈。攻击者考虑的是如何利用各种方法绕过用户的防御措施,进而完成攻击;管理员要考虑的是黑客将如何攻击系统,如何进行有效防御。在矛与盾的博弈之下,安全水平在不断提升。因此,研究数据库安全中的人为因素是十分必要的。

提到人为因素就离不开数据库管理员,提到数据库管理员就离不开身份认证和安全配置。对此,本文将以弱口令配置、离线暴力破解、错误配置三个方面为切入点,分析人为因素对数据库安全的影响。

2.2.1.1  弱口令或默认口令的安全问题    

之所以会出现弱口令或默认口令问题,往往与数据库管理员的安全意识不足有关。弱口令问题并不复杂,只要修改默认密码,并满足密码复杂度要求就能轻松解决。然而看似简单的问题如果不及时处理,就可能会演变成更大的隐患。事实上,攻击者希望自己的攻击过程快捷高效,因此大多数情况下会避免执行复杂的操作,而通过正确的口令登录数据库是最为直接有效的方式,因此弱口令攻击成为了攻击者常用的入侵手段。之前就曾出现云端的MySQL服务器大范围遭受勒索攻击的事件,而黑客就是利用了数据库的root用户采用了“1”这个弱口令来完成的攻击。

弱口令问题不容小觑,一旦存在将为攻击者打开通往核心数据的大门。要彻底解决弱口令问题,关键在于管理员如何在“安全”和“方便”之间进行取舍。当因系统测试而需要提供数据库密码时,如何确保密码不会外泄?当用户较多需要长期维护时,能否记得定期修改密码?当数据库安装完毕后,是否会主动调整安全设置?这都是对管理员安全意识的考验。

此外,一般行业内人士都有较为流行、通用的账号密码,这类密码被称为线下弱口令。虽然大部分数据库在身份验证时都进行了加密,但被加密的只是口令,数据库账号仍然以明文的方式存在。因此线下弱口令也是数据库安全的一大隐患。只有定期更换安全的密码,才能有效避免弱口令攻击。因此提高管理员的安全意识,依据安全要求进行系统管理是十分必要的。

2.2.1.2  离线暴力破解

目前的主流数据库为了保证用户身份验证时的安全性,一般会采用口令加密、密码错误次数限制等手段。为了应对这种安全措施,黑客另辟蹊径采取了离线破解的方法。通过网络抓包的方式捕获含有身份验证信息的数据包,此时会获得加密后的口令。之后再采取暴力破解的方式进行口令爆破,从而绕过数据库安全机制,实现对数据库密码的攻击。

由于早期硬件性能不足,使用CPU进行暴力破解往往会耗费大量的时间。而随着GPU技术的发展,支持大规模并发运算的特性使其成为了暴力破解的新手段,大大减少了破解时间。目前GPU的运算效率非常高,每秒甚至能产生80亿次密码碰撞。

针对暴力破解,最为有效的解决方法仍然是定期修改密码,并且修改后的密码要满足复杂度要求。这样即使黑客成功破解了密码,随着密码的更新,之前的工作都会化为无用功,从而避免数据库被入侵。

2.2.1.3  错误配置的安全问题

数据库的错误配置问题一般比较隐蔽。从以往的经验来看,数据库的错误配置往往源自默认配置,很多时候与产品的性能、易用性、兼容性等问题有关。一旦被攻击者发现,可能被长期利用,安全威胁十分严重。

以Oracle数据库为例,常见的错误配置是没有对数据库的监听部分设置管理口令,从而引起TNS劫持问题。比如CVE-2012-1675,它能实现远程把同名实例注册到目标TNS,进行数据库劫持攻击。最有效的解决办法就是对目标TNS加设管理密码,防止注册不可信实例。可见对数据库进行正确的安全配置是十分有必要的。

要确保数据库的安全性,有两个方面的相关配置是必须要考虑的,即身份验证和用户权限。

为了提高数据库身份验证过程中的安全性,一般会采取禁止数据库远程访问、禁止数据库采用系统身份认证等措施。禁止远程访问,是为了避免黑客从内网中的其他主机登录数据库,窃取数据。禁止系统身份验证,可以有效避免当黑客入侵了数据库服务器的操作系统时,利用系统身份认证登录数据库。

合理的划分用户权限对提升数据库的安全性是十分重要的,通常会对数据库账号进行降权操作。一方面是降低数据库账号在操作系统中的权限,防止黑客利用数据库对操作系统发起入侵。此类问题在SQL Server中较为明显,因为SQL Server安装后的SA账号默认具有系统管理员权限,而利用数据库攻击操作系统的事件已经出现过多次,因此必须做降权处理。另一方面是针对不同角色的用户进行权限划分,防止越权操作。对于数据库账号,建议遵循最小权限原则,以满足用户实际需要为基础,为每一个数据库账号赋予最小特权。比如在进行第三方开发测试期间,要注意账号的权限管理满足测试开发需求即可。在大多数利用Web应用实现的SQL注入攻击中,之所以能攻击成功靠的就是Web访问数据库时的账号权限。因此应谨记最小权限原则,降低数据库被入侵的风险。

经过上述操作,可以保证数据库的最高用户权限不会随着操作系统、局域网被入侵而泄露。除了考虑最基本的身份验证和用户权限以外,影响数据库安全的配置问题还体现在多个方面。

数据库所在的操作系统和网络环境也是影响数据库安全的重要因素。例如运行在Windows平台上的Oracle进程有一个安全隐患:每一个Windows系统上的用户都可以通过空用户(sqlplus / nolog)程序化的打开Oracle.exe进行越权访问。对于这类问题,需要管理员在操作系统中进行相关设置才能解决。

数据库内置的存储过程也会影响安全性。因为某些数据库自带的存储过程或函数可以与操作系统进行交互,如Oracle的UTL_FILE_DIR 和SQL SERVER的XP_cmdshell函数。它们可以对操作系统进行操作,当数据库被入侵后利用这些函数影响操作系统。所以如果不需要这种扩展存储过程或函数请将它们彻底删除。否则这些扩展函数和存储过程很可能成为数据库给操作系统留下的后门。删除危险的函数,禁止数据库对OS文件完全访问对于提升数据库的安全性而言是很有必要的。

2.2.2  数据库本身系统安全分析

要研究数据库本身系统安全,离不开它的三大基本组件:网络监听组件、关系型数据库管理系统和SQL编程组件(例如pl/sql)。网络监听组件主要负责数据库的网络通讯,包括端口监听、身份验证等功能。关系型数据库管理系统是数据库最核心的组件,它的存在确保了数据库高效、稳定的运行。SQL编程组件提升了数据库的扩展能力和灵活性。针对用户的实际需求,软件厂商还会在数据库的基础上开发上层应用,因此数据库漏洞大体上可以划分为两类:数据库软件漏洞和应用程序逻辑漏洞。

数据库软件漏洞属于产品自身的缺陷,由数据库厂商对其修复,通常以产品补丁的形式出现。

应用程序逻辑漏洞主要出现在以数据库为核心开发的应用程序中,如HIS系统、财务系统等。虽然漏洞出现在应用程序上,但数据库中的数据才是黑客的最终目标。出现这种问题,很大程度上与软件开发的复杂度有关。一套数据库软件不仅有繁复的逻辑结构,还要有大量的代码支撑。面对纷繁复杂的产品,在软件实现的过程中,数据库设计开发人员难免出现纰漏。攻击者往往会利用这些漏洞攻陷目标数据库,典型的攻击方式有SQL注入、提权、缓冲区溢出等。

由于关注的重点不同,本文中所涉及的数据库漏洞仅限于数据库软件自身的漏洞,不涉及应用程序逻辑方面。下面将从三个基本组件出发,根据数据库被入侵的方式分析数据库所面临的安全问题。

2.2.2.1  网络攻击的安全问题

在实际应用中,数据库通常会作为Server与各个Client进行网络通讯,产生数据交互,因此监听组件必不可少。当然,在不同的数据库软件中,监听的存在方式有所不同,例如,在Oracle中以一个可执行文件的形式存在;在SQL Server中,监听则成为了数据库引擎进程的一部分。

监听组件在编码时应更加重视代码的逻辑规范,避免出现缓冲区溢出漏洞。无论是SQL Server还是Oracle,这些知名的数据库都曾出现过网络端口漏洞。对于Oracle主要表现在TNS上,例如CVE-2002-0965、CVE-2002-0965、CVE-2007-5507、CVE-2012-0072都是可以直接夺取操作系统权限的缓冲区漏洞,涵盖了Oracle9i到11g的所有版本。

2.2.2.2  数据库引擎的安全问题

此类问题中,较为有代表性的是2007年7月Oracle的一个错误授权验证漏洞。该漏洞允许被篡改的SQL语句绕过执行用户被授权的权限,能够在没有相应权限的情况下,对数据表执行更新、插入和删除操作。

Creat view em_em as
Select e1.ename,e1.empno,e1.deptno
From scott.emp e1,scott.emp e2
Where e1.empno=e2.empno;
Delete from em_em;

作为数据库软件的核心部分,数据库引擎不仅要实现与用户的数据交互,还要保证数据库高效、稳定的运行,因此其内部结构相当复杂。既包括语法分析器、优化器、PL/SQL等功能组件,还含有大量的逻辑结构。软件的复杂程度越高,出现逻辑错误的概率越大,对于数据库这个高复杂度的软件更是如此。一个细微的逻辑错误就有可能演变成安全漏洞,因此非常难以防护。值得庆幸的是,很多漏洞的利用条件较为苛刻,难以形成实际威胁。

2.2.2.3  内建存储对象的安全问题

数据库提供内建的存储对象,本意是为用户和开发人员提供便利,利用存储对象可以实现访问操作系统文件、管理XML对象、发送HTTP请求等功能。然而一个善意的功能在面对入侵者时可能带来意想不到的后果。尤其是当这些功能都需要监听对应的端口进行网络通讯时,带来的安全隐患更为严重。据了解,这些漏洞涵盖了SQL注入、缓冲区溢出、应用程序逻辑问题等多个方面。

2.2.2.4  SQL编程组件的安全问题

对于SQl编程组件,各个数据库厂商的实现方式有所不同,如微软SQL Server使用的是T_SQL,甲骨文Oracle数据库使用的是PL/SQL。为了便于理解,下面以PL/SQL为例进行说明。

PL/SQL是Oracle对SQL语句的扩展,用户使用PL/SQL可以实现复杂的功能或计算,能够实现比较复杂的业务逻辑。对于安全研究者来讲,PL/SQL最大的问题在便于攻击者提权。

例如当通过Web拿到数据库的一组低权限用户后,可以利用PL/SQL中的一些方法进行提权,最终控制整个数据库。诸如

DBMS_METADATA、CTXSYS DRILOAD、CTXSYS DRILOAD、
DBMS_CDC_SUBSCRIBE、DBMS_METADATA、MDSYS、SYS.LT、LT_CTX_PKG、
USER_SDO_LRS_METADATA、DBMS_EXPORT_EXTENSION、DBMS_SQL

等都出现过让低权限账号提权到DBA权限的漏洞。

2.2.3  第三方恶意组件

就目前的情况来看,针对数据库攻击的第三方恶意组件主要包括数据库后门、挖矿木马和数据库勒索三大类。

当黑客攻破数据库后,往往会留下针对数据库的后门程序,便于长期、持续地窃取数据。起初后门攻击的主要目标是操作系统,但是随着数据库的重要性逐渐提升,专门针对数据库的后门数量也在日渐增加。

由于比特币、莱特币、以太坊等加密数字货币的兴起,各类挖矿木马如雨后春笋般出现。挖矿木马可以利用数据库漏洞入侵数据库服务器,并进行内网扩散,构建僵尸网络。与数据库后门不同的是,挖矿木马主要是窃取服务器的硬件资源,通过挖矿行为获利。

数据库勒索的主要目的是通过妨碍用户使用数据库对其进行敲诈勒索,实现非法获利。进行数据库勒索的方式大致可分为两种,一种是先向数据库工具、数据库组件插入恶意的SQL语句,再通过被感染的数据库工具、组件向用户的数据库中插入恶意的SQL语句和触发器。在合适的时机会自动执行恶意SQL语句,从而以阻断合法用户访问数据库、隐藏数据库关键表、删除数据等方式实现妨碍用户正常使用进行敲诈勒索的目的。另一种方式是直接攻击数据库文件,对其进行加密,影响数据库功能的正常使用。

对于防护第三方恶意组件,使用正版软件是较为有效的途径。一些绿色版、破解版软件中很可能存在恶意程序,从而影响数据库安全。保护数据库安全,不仅要考虑数据库本身,还要从整体出发,保证数据库系统的安全性。

2.2.4  数据库勒索攻击分析

自勒索病毒出现以来,勒索攻击一跃成为数据库安全的最大威胁。数据库服务器中存放的大量敏感数据对于企业级用户至关重要,因此黑客会直接攻击数据库服务器,挟持核心数据非法获利。针对核心数据的攻击方式主要有两种,一种是入侵数据库服务器,植入后门软件,长期盗取数据,通过倒卖数据获利;另一种是利用勒索病毒进行数据勒索,通过敲诈用户获利。由于目前数据库勒索的攻击手段日趋成熟,攻击方法越来越自动化、傻瓜化,导致攻击门槛降低,使其成为数据库的首要威胁。下面将分别介绍不同场景下的数据库勒索攻击,并讨论应对措施。

2.2.4.1  数据库勒索攻击现状

通过分析近年来的攻击事件可以发现,勒索攻击已经从个人用户转向企业级用户,金融、医疗、教育等行业成为重点关注对象。有迹象表明,大部分贩卖勒索软件的黑客团体在探索更加多样的攻击手段。如何应对勒索攻击成功数据库安全的新挑战。

图2 各类勒索事件统计-按数据文件类型

据统计,2019年上半年出现的勒索攻击中,针对数据库文件的共76起,占总数的28.4%;针对SQL文件的攻击共61起,占总数的22.8%,二者共占总数的51.2%,由此可见针对数据库相关文件的攻击已成为黑客进行数据库勒索的重要手段。

除了直接对各类数据文件进行加密勒索外,我们也发现了大量直接针对数据库的比特币勒索攻击。具体的攻击方式在不同场景下有较大区别。

2.2.4.2  云上数据库的比特币勒索

从2016年12月27日至今,云环境上的Mongodb、ElasticSearch、Cassandra、Redis、Hadoop、CounchDB、MySQL等数据库开始被陆续攻击,甚至有的数据库服务器被多个黑客团队重复勒索。对于云环境下的数据库,黑客采用大范围广撒网的方式,直接对43亿个IP地址进行全面扫描,从中筛选目标进行攻击。这种方法虽然较为笨拙,效率不高,单笔勒索费用不高,但是用户基数大,目标机器数量多,给黑客带来了巨大的收益。

以Mongodb数据库为例,云上的Mongodb曾在2016年底至2017年初遭遇了大范围的攻击,全球大约2.6万台服务器被勒索病毒入侵。至2019年上半年,针对Mongodb的勒索攻击仍时有发生。从总体上看,攻击流程大致如下图所示。

图3 MangoDB数据库勒索事件的攻击路径还原

黑客的攻击可以分为准备阶段和攻击阶段。

在准备阶段中,黑客通过对43亿个IP地址进行批量扫描,结合指纹识别探测主机是否存在Mongodb,如果存在则尝试登录,记录下能够成功登录的服务器的IP地址,准备在第二阶段开始攻击。

在实际攻击的过程中,黑客使用自动化脚本向第一阶段中筛选后的目标发起攻击,通过pymongo登录数据库。接着,利用Mongodbdurp将目标数据库下载到自己的服务器上,最后将原有数据删除,并向数据库中插入勒索信息索要赎金。如下图所示。

图4 勒索攻击的现场还原截图-入侵登陆

这种攻击方式之所以能成功,还是与数据库的默认配置有关,正是因为Mongodb默认情况下不需要进行身份验证,才导致大规模勒索事件的发生。

2.2.4.3  内网数据库的比特币勒索

在云端服务器遭受勒索病毒攻击的同时,内网环境下的数据库服务器也未能幸免。虽然相比云端而言受被勒索的机器数量较少,但是勒索费用更加高昂,造成的影响更为恶劣。

针对内网数据库,攻击者的实现思路有所不同,由于内网环境相对封闭,批量扫描的方式不再适用。对此,攻击者将目光转向了数据库工具上。

图6 内网数据库勒索攻击流程示意图

以Oracle数据库为例,黑客向Oracle PL/SQL DEV中捆绑了恶意代码(位于Afterconnet.sql文件),并将其以破解版或绿色版的形式发布。恶意代码的攻击过程如上图所示。当用户连接数据库时,如果具有dba权限,工具会自动执行Afterconnet.sql中的恶意代码在用户的数据库中创建多个存储器和触发器,同时会判断数据库的创建时间。如果创建时间大于等于1200天,那么数据库重启后会触发病毒触发器,加密并删除sys.tab$,导致用户无法访问数据库中所有的数据库对象集合(schema), 出现“你的数据库已经被SQL RUSH Team锁死,请发送5个比特币到XXX….”等信息,还会设置定时任务,如果用户没有在规定期限内交付赎金,将会删除数据库中的所有表。

这种手术刀式的攻击方法目的性极强,通过判断数据库的创建时间来筛选有价值的目标。这不仅能明确攻击目标,还可以在一定程度上还能隐藏自己,具有极大的破坏力。

2.2.4.4  数据库勒索攻击应对措施

面对越来越多的勒索攻击,寻找行之有效的应对措施显得迫在眉睫。通过对勒索攻击分析,我们可以发现一次成功的攻击取决于两个方面,一是数据库系统自身的安全因素,二是攻击者的技术手段,两者相结合才能实施一次成功的攻击。对此我们可以从预先防护、定期检查、数据备份三方面入手,建立简单有效的安全保障措施。

即:构建预先防护+定期安全探查+数据定期备份的三重安全保障。

1.预先防护

预先防护的目的在于防范攻击者的恶意行为,主要通过对SQL语句进行语法分析来实现,常见产品是数据库防火墙。这就要求数据库防火墙具备能够读懂SQL语句,能够对数据库进行加密解密的能力。

加解密数据库是为了获得明文的SQL语句。在使用过程中数据库与第三方工具之间往往以密文的形式传输数据包,如果不对其进行解密,就无法获得原始的SQL语句,那么进行语法分析更无从谈起。数据库的加密过程可以通过数据库提供的函数完成,但解密方法数据库并不一定提供需要产品掌握破解密文的能力。

语法分析的目的是判断存储过程中是否存在恶意行为。在unwrap的支撑下数据库防火墙能把所有去向数据库的加密存储过程明文化,通过语法分析器对sql语句进行分析,判断是否存在恶意行为。数据库防火墙的sql语法分析器不能单纯的就单句sql进行分析,而是要根据上下文环境对sql行为进行分析。当整个sql语句包中存在命中安全规则的多个必要点时,则可以判断该语句包存在恶意行为,会主动阻断该语句包,并向相关人员进行危险告警,形成有效的针对勒索攻击的主动防护。

2. 定期安全探查

定期安全检查的意义在于查漏补缺,避免出现漏网之鱼。虽然主动防御能够阻挡大部分攻击,但是由于攻击手段的变化、产品性能等原因难免会有所纰漏,而定期进行安全检查就是为了弥补主动防御在细节上的不足。通过安全检查,将潜伏的勒索病毒,勒索攻击产生的触发器、存储过程统统清除,避免安全隐患。

3. 数据定期备份

数据备份是数据安全的最后一道保障,因此务必要对关键数据定期备份。只要有备份的数据的存在,即使出现最坏的情况防御措施完全失效数据被完全加密,也可以通过备份数据进行找回,尽量避免丢失数据。

2.2.5  数据库挖矿木马攻击分析

虽然目前数据库勒索攻击仍是影响数据库安全的首要威胁,但是随着安全形势的变化,挖矿木马隐隐呈现出赶超趋势。作为一种新的攻击手段,挖矿木马不像勒索病毒一般直接攻击数据,而是潜伏在生产服务器中,长期窃取系统资源。通过传播挖矿木马,黑客组建了一个大规模的僵尸网络,形成了一个庞大的计算集群,利用窃取的硬件资源进行挖矿,从而获获取非法收益。

目前黑客所挖的数字货币以门罗币为主。一方面这类数字货币无法追踪交易记录,有关部门无法根据货币流向追踪攻击者的身份,从而为攻击者隐藏身份提供了便利;另一方面由于采用了CryptoNight算法,使得这类数字货币可以用CPU进行挖矿,这意味着绝大多数服务器都可以用来挖矿,因而更受黑客青睐。

据统计,目前全球受挖矿木马影响的机器已超过3千万台,黑客仅通过门罗币获取的收益就在2亿美元以上,由此可见挖矿木马对用户造成了巨大的损失,如何对其进行有效防御成为了信息系统管理员必须面对的问题。对此我们必须了解挖矿木马的攻击手段,剖析其攻击原理,才能找到行之有效的应对方法。

2.2.5.1  挖矿木马常见攻击手段

针对不同类型的用户,黑客采用的攻击方式有所不同。对于个人用户,主要是通过互联网传播挖矿木马,常见的有网页挂马、游戏外挂等方式。比如著名的挖矿木马“tlMiner”,它就是潜藏在游戏外挂中进行传播,利用PC机进行挖矿。在进行挖矿的同时还会进行自我保护,当CPU使用率超过50%或者运行大型软件时会暂停挖矿,从而避免被用户察觉。目前该木马背后的犯罪团伙已被警方逮捕,截至案发时累计控制电脑主机389万台、挖矿主机100多万台,非法获利1500余万元。

对于企业级用户,入侵者主要是通过Web进行攻击,具体手段大致可分成三类:一类是针对Web应用进行攻击,主要是利用Weblogic、Apache、Dupal等前端应用存在的漏洞。第二类是攻击Web中的数据库,利用数据库进行提权,为后续攻击做好准备。第三类是直接攻击操作系统,获取管理员权限。比如著名的挖矿木马“PhotoMiner”,就是通过直接攻击服务器的方式进行传播。自2016年发现至今,已累计挖取门罗币8万枚以上,使黑客累计获得了近9千万人民币的收益。由此可见挖矿行为能为黑客带来巨大收益,因此挖矿木马攻击深受黑客青睐。

其实无论采用哪种手段,黑客都是为了窃取受害者的硬件资源搭建挖矿集群,在用户不知情的情况下进行非法挖矿。由于挖矿需要进行大量复杂的运算,因此会使硬件设备处于高负荷的运行状态,不仅会影响用户正常使用,还会严重影响硬件使用寿命导致硬件损坏。对于企业级用户,挖矿木马在影响业务系统正常运行的同时,更多的是带来了潜在的安全隐患,使得企业用户完全暴露在黑客攻击的威胁之下,随时面临着被进一步攻击的风险。因此提升信息系统安全性,保障数据安全已经刻不容缓。

2.2.5.2  针对数据库的挖矿攻击分析

一般情况下,企业级用户的服务器具有更加适合大规模运算的CPU、更大容量的内存,而且处于24小时稳定运行的状态。对于黑客而言,这意味着可以长期挖矿不断获得收益。因此通常情况下企业级用户是黑客进行挖矿木马攻击的首选。

而之所以会出现针对数据库服务器的攻击,主要有两个原因。一是黑客进行攻击时,大多以前端应用服务器(如Weblogic、Jboss等)为突破口,而用户环境中存在应用服务器的同时往往也会存在数据库。所以当攻击Web失败时,就可以利用数据库发起攻击,此时的数据库相当于一个替罪羊。二是黑客直接针对数据库进行弱口令爆破,这种情况在云环境下较为常见。从目前的情况来看,针对数据库的挖矿木马攻击过程与勒索攻击类似,为了便于研究,将其概括为 3个步骤,如下图所示。

图7  数据库挖矿木马攻击流程示意图

第一步,黑客入侵打开缺口。黑客通过弱口令爆破或其他漏洞攻击数据库,利用数据库进行提权,打开通向内网的缺口,为后续攻击做好准备。

第二步,下载木马开始攻击。在第一步成功后,黑客就能够利用Shell、CMD、PowerShell等系统内置工具与C&C服务器通信,从C&C上下载恶意工具。不同的黑客使用的恶意工具有所不同。一般会有挖矿木马,用于控制机器进行挖矿;还会有嗅探工具和漏洞利用工具,方便木马在内网传播。为了避免被杀毒软件查杀,有的木马会进行伪装,比如伪装成其他格式的文件,或者将恶意代码藏在图片中,更有甚者采用了“无文件攻击”技术,通过驻留内存的方式来隐藏自身。

第三步,内网扩散横向移动。利用第二步中下载的恶意工具,对内网中的其他机器进行横向移动攻击,控制更多机器。攻击成功后,会从数据库服务器向目标机器复制恶意工具,从而控制机器进行挖矿。据了解,在目前流行的漏洞工具中,使用最多的是出现了很长时间的“永恒之蓝”漏洞攻击武器。

经过上述操作后,攻击者就完成了对内网环境的入侵,形成了一个初具规模的僵尸网络。为了能够长期挖矿,有的挖矿木马还会监视系统进程,一旦发现存在其他木马的相关进程就将其杀死,确保独占系统资源。

对攻击者来说,成功入侵一台数据库服务器能带来诸多便利。一是数据库服务器硬件性能好,挖矿效率高。数据库服务器往往承载了核心系统的运行,与其他服务器相比硬件配置更加突出,一般是整个业务系统中配置最好的设备之一。强悍的硬件配置意味着强大的计算能力,因此数据库服务器更受黑客青睐。二是数据库服务器易于攻击。现在仍有大量的数据库存在各种安全漏洞,黑客攻击起来更加方便。三是利用数据库便于提权。在SQL Server、MySQL、PostgreSQL等数据库中都可以通过SQL语句执行系统Shell,攻击者提权更加方便。四是黑客可以直接接触敏感数据。在数据库服务器中,可能会存有各个服务器的账号密码、公司员工内部资料、财务信息等机密信息。黑客可以利用它们扩大攻击范围入侵其他机器,还可以倒卖敏感信息造成数据泄露,甚至实施数据勒索,造成恶劣影响。

因此,要想保障信息系统的数据安全,保护数据库服务器就成为了重中之重。一旦被黑客接触核心数据,信息系统的数据安全也就无从谈起。加强防御措施,保护数据库的安全性已势在必行。

2.2.5.3  数据库挖矿木马的应对措施

数据库挖矿木马的存在会不断的窃取服务器的硬件资源,既会减少硬件寿命,也会影响业务系统的正常运行。潜藏的木马犹如定时炸弹一般为信息系统带来了安全隐患,使得用户的信息系统时刻暴露在黑客的威胁之下。对此我们提出了一些应对方法,希望能有所帮助。

对于安全问题,首先要考虑如何防御,挖矿木马也是如此。从攻击流程来看,挖矿木马在入侵数据库时仍然以弱口令爆破和漏洞攻击为主,因此可以从这两个方面进行应对。弱口令问题依赖于管理员的安全意识,关键在于设置满足安全要求的密码,并定期修改。还可以借助数据库防火墙,及时阻止密码爆破行为并进行预警。对于数据库漏洞,一般情况下厂商都会定期修复并发布漏洞补丁,因此需要及时更新软件补丁。此外,如果不确定是否存在其他未修复的漏洞,可以借助安全厂商的漏洞扫描工具进行检查。扫描工具的漏洞库越全面,扫描效果越好。

在日常维护中,需要将定期杀毒与系统监控相结合。杀毒软件是处理木马病毒等恶意软件必不可少的手段,可以通过定期杀毒的方式清除潜藏的恶意软件。然而由于恶意软件为了保护自身也采取了各种隐藏手段避免被安全软件查杀,此时就需要管理员对系统资源进行监控。一方面要监控系统的运行情况,观察CPU、内存等硬件的使用率,判断是否存在陌生进程对系统资源异常占用的情况。另一方面要观察系统日志、数据库日志,检查系统中是否存在陌生的计划任务,挖矿木马往往会利用计划任务确保自身时刻运行。

当发现数据库服务器感染了挖矿木马时,最简单、彻底的解决方式是备份数据重装系统。这种方法虽然费时费力,但是可以彻底清除木马,而且对操作人员的技术水平也没有太高的要求,操作起来较为方便。当然还可以尝试对木马定点清除,通过系统进程对其进行定位,再直接删除文件将其清理。这种方法对管理员技术水平要求较高,而且删除木马后很有可能被重复感染,因此建议交由专业的安全团队处理。

2.3  数据库系统漏洞的统计分析

信息安全的核心是数据安全。随着网络安全形势变得日趋严峻,各种攻击手段层出不穷,数据库安全问题也日益突出。而数据库漏洞作为数据库自身的产品缺陷,一旦被攻击者利用,将会造成严重影响。一方面,通过数据库漏洞发起的攻击会使攻击者直接接触核心数据,从而导致数据资产被恶意篡改、泄露,造成数据资产损失;另一方面,由于数据库系统往往位于IT架构核心,因此攻击者在破坏数据库系统后,还能以其为跳板向局域网中的其他设备发起攻击,从而扩大攻击范围,造成系统性风险。由于挖掘数据库漏洞需要极高的技术水平,因此,目前能够成功发现并提交数据库漏洞的技术团队以国外为主,国内团队屈指可数。到目前为止,安华金和在国内外漏洞平台上累计提交了30个数据库漏洞,为国内数据库安全研究做出了一定的贡献。与此同时,随着国产数据库的技术水平不断提高,应用范围更加广泛,在CNNVD提交的国产数据库漏洞也在逐步增加。这表明国产数据库正逐渐受到国内数据库安全研究团队的关注,各方面也愈加重视国产数据库的安全性。这有助于促进国内数据库安全水平建设,提升国产数据库的安全性。

数据库漏洞源自数据库本身,是由于编码不规范、软件设计缺陷以及编程语言的局限性等原因造成的产品缺陷,属于软件漏洞的一种。利用数据库漏洞,可以突破系统的安全策略,从而对数据库、数据库所在系统,甚至数据库所在的局域网造成破坏。此外,数据库漏洞具有一定的隐蔽性,需要经过用户的深度使用或者安全团队的深入研究才会被暴露出来,容易形成0Day漏洞造成安全隐患。因此,为了提高数据库的安全性,防护者一方面需要及时更新软件补丁,减少数据库自身的安全风险;另一方面,与其他安全手段相结合,进行合理的安全防御,提升攻击者的入侵难度,从而提高数据库系统的安全性。

2.3.1  按威胁类型分布情况分析

截止2019年4月,CVE发布的被确认的国际主流数据库漏洞共计81个,其中Oracle 9个、MySQL 65个、Postgresql 1个、IBM DB2 4个。其中Oracle被发现的9个漏洞中含1个超危漏洞,5个高危漏洞;MySQL数据库的65个漏洞中含有2个高危漏洞,62个中危漏洞;Postgresql数据库发现1个高危漏洞;DB2数据库发现4个高危漏洞。如图8所示。

图8 2019年上半年各主流数据库的漏洞分布情况

国产数据库漏洞信息会由国内的漏洞平台认证和发布。根据来自CNNVD和CNVD的漏洞信息表明,截止2019年5月共发现2个国产数据库漏洞,均来自达梦数据库,包括1个高危漏洞和1个中危漏洞。

根据对核心数据的机密性、完整性和可用性的影响程度,数据库漏洞可被分为3大类:高危漏洞、中危漏洞和低危漏洞。就严重性而言,高危漏洞会对数据库系统造成严重影响,需及时处理。而中低危漏洞虽然在当前阶段的严重性不及高危漏洞,但是也可能因为技术革新或攻击方式变化而变成高危漏洞,因此同样值得我们关注。,

截止至2019年5月,在被确认的81个漏洞中,包括超危漏洞1个,高危漏洞13个,中危漏洞65个,低危漏洞2个。从总体情况来看,超危漏洞占漏洞总数的1%,高危漏洞占总数的16%,中危漏洞数量最多占到了81%、低威胁漏洞占2%。如图9所示。据统计,超高危漏洞主要集中在Oracle数据库和DB2数据库中,此外MySQL、PostgreSQL、达梦等数据库也有高危漏洞出现。

图9  2019上半年各主流数据库漏洞的危害等级分布

即2019年上半年出现的数据库漏洞以中危漏洞为主,高危漏洞虽然数量不多,但在各个数据库厂商中仍广泛存在。因此数据库用户需要引起重视,及时对自己的数据库系统进行安全加固,防止数据库安全问题的发生。

2.3.2  按受影响组件属性分类情况分析

2019年上半年被发现漏洞最多的数据库是MySQL,高危漏洞最多的数据库是Oracle和DB2。而PostgreSQL、达梦漏洞总数不多,但是也存在高危漏洞。从受影响组件的角度来看,各数据库情况如下:

MySQL数据库因其代码的开源性,并且用户数量较多,因而更容易被黑客攻击,进而曝出较多漏洞,并且以拒绝服务型漏洞为主。

Oracle数据库除了高危漏洞外甚至还存在1个超危漏洞。目前发现的漏洞主要集中于Oracele的Core RDBMS组件。作为Oracle数据库的最核心组件,Core RDBMS保证了数据库的正常运行。在Windows环境下,通常以Oracle.exe服务存在,在Linux环境下,则以多个进程的形式出现。因此,当CoreRDBMS中出现漏洞时,问题极其严重。

IBM DB2可以运行在Linux、UNIX和Windows平台。此次发现的漏洞,主要位于DB2 Connect Server组件,以缓冲区溢出为主。本地攻击者可利用该漏洞在系统上以root用户身份执行任意代码。因此虽然漏洞数据量不多,但是威胁等级较高。

PostgreSQL、达梦等数据库中存在少量高危漏洞,因此仍需警惕。值得注意的是,在传统的内网环境下,大部分漏洞无法被直接利用。而由于云环境具备一定的开放性,导致数据库系统的隐蔽性被降低,从而可能给攻击者利用漏洞提供了便利。MySQL在云平台中占据非常多的份额,云平台的用户和云服务商需要对其进行重点防护。

2.3.3  按漏洞的攻击途径分类情况分析

按照漏洞的攻击途径,数据库漏洞可被划分为两类:远程服务器漏洞和本地漏洞。

远程服务器漏洞是指位于提供网络服务的进程中的漏洞。攻击者可以通过网络在另一台电脑上直接进行攻击,而无需用户进行任何操作。

本地漏洞是指必须登录到安装数据库软件的计算机上才能利用的漏洞。该类漏洞因利用条件苛刻,威胁也最小。

图10  各主流数据库漏洞的攻击途径分布

如图10所示,截至2019年5月底所被发现的数据库漏洞中,本地漏洞占11%,远程漏洞占89%。鉴于本地攻击要求较高,远程攻击较为灵活,因此对于数据库系统而言,远程漏洞较多意味着更容易受到恶意攻击,数据库系统会面临较高的风险。

在远程漏洞中,从攻击方式来看,常见的有拒绝服务、缓冲区溢出、非法访问等。其中,拒绝服务类漏洞占78%,主要出现在MySQL数据库中;缓冲区溢出类漏洞占3%,以DB2数据库为主;非法访问类漏洞出现在Oracle和MySQL数据库中,占5%,如图11所示。对于这三类漏洞,最好的解决方法是及时更新软件补丁,从根本上防止漏洞的出现。

图11  数据库漏洞攻击发生的网络架构分布

2.3.4  从数据库漏洞分布谈防护建议

目前数据库安全漏洞主要集中在拒绝服务、远程代码执行等方面,缓冲区溢出漏洞虽然数量很少,但仍然存在。通过对漏洞分析可以发现,拒绝服务类漏洞大多与用户权限有关,攻击者需要获得较高的用户权限,才能触发漏洞形成恶意攻击。而远程代码执行漏洞需要攻击者与数据库系统进行数据交互,对此可通过数据验证进行防范。缓冲区溢出则较为隐蔽,一般不易察觉。

在此情形下,要确保数据库系统的安全性,首先要做到用户权限的合理分配,避免普通用户具有过高的权限,形成安全隐患。其次,要对系统服务进行管控,停止或卸载非必要的服务,降低潜在漏洞存在的可能性;最后,要对数据库系统及时更新升级,防止因存在已知漏洞而造成的安全风险。

2.4  数据库系统的安全建议

数据库安全发展到现在,权限的控制和输入的限制是永恒的话题。直至今年主流4大数据中依旧被发现了14个高超危漏洞,其中缓冲区溢出漏洞3个。虽然缓冲区溢出和通讯协议破解的漏洞的总数越来越少,但一旦出现将是数据库的噩梦。不法分子可以通过网络在不知道数据库任何账号的情况下对数据库发起攻击,导致数据库服务宕机甚至操作系统被控制。数据库引擎中的越权访问、账号提权、敏感信息泄露侵依旧是漏洞中的主流,基本80%以上的漏洞都属于数据库引擎范畴。在数据库引擎层的漏洞中,今年最常见的漏洞是拒绝服务。大部分引擎层的漏洞想要实施,需要被盗取的数据库账号具备一定的权限。(例如创建存储过程、触发器等)。所以用户可以有针对性的对数据库进行加固。

针对数据库漏洞攻击的数据库加固方式可以采用购买第三方产品。但更重要的是要遵循以下原则:

1. 用户权限最小化原则。90%的漏洞攻击都是需要账号具备一定的权限。所以请用户配置数据库帐号时,给能满足应用系统使用的最小权限的账号。任何额外的权限都可能是潜在的攻击点

2. 定期安装数据库厂商提供的漏洞补丁。根据多年经验发现95%以上数据库被黑客入侵。黑客使用的漏洞并不是0day,而是数据库厂商早已发布过,已经有补丁可用的漏洞。即使由于各种原因无法及时打补丁,也请通过虚拟补丁等技术暂时或永久加固数据库。

3. 安全配置。70%的数据库漏洞能被利用的条件除了一定的权限外,还需要数据库未开启某些安全配置。数据库默认安装下并不会开启所有安全配置。在充分考虑对应用的影响后,尽可能开启数据库自身提供的安全设置将会极大降低被不法分子攻击的成功率。例如著名的TNS投毒漏洞,其实开启TNS密码就可以简单杜绝。

4. 数据库功能最小化原则。数据库本身为了适应足够多的场景,设计了各种各样的功能组件。但对于用户来说,大部分功能组件根本不会使用。建议在综合应用和运维后,划定一个使用组件的最小范围。删除数据库中不用的组件。减少数据库组件可以有效的减少用户面对的风险面。在一定程度可以规避某些特定组件存在的漏洞攻击。

三.  结束语

信息技术的不断发展不仅改变了我们的生活,也改变了安全的发展方向。回顾安华金和近年来的研究情况,我们发现数据库安全问题虽然无法杜绝,但整体情况在逐渐好转。数据库漏洞的整体数量呈现下降趋势,数据库的安全性有所提升。究其原因主要是以下几点:一是各行各业对信息安全的认识水平在逐渐提高,用户的安全意识在逐步增强;二是各大数据库厂商更加注意安全规范,从源头减少了数据库漏洞的出现;三是安全研究人员的关注,在专业安全研究员的协助下,数据库安全研究水平不断提升,漏洞发掘能力有所提高,减少了潜在的安全风险。

在利益的驱使下,网络攻击不会消失,攻防对抗仍将继续出现。对抗的舞台也从内网走向了外网,从本地走向了云端,数据库安全也将不断面临新的风险和挑战。数据库安全研究任重而道远。

相信本文的这些观点对大家预测未来的数据库攻防的形式,以及进一步完善企业及组织的解决方案是有价值的。今年请特别注意MySQL数据库的安全防护工作。

给TA买糖
共{{data.count}}人
人已赞赏
数据库安全

话说!您真的了解数据库加密的应用价值吗?

2019-4-15 1:44:36

数据库安全

MSSQL注入 突破不能堆叠的限制执行系统命令

2020-6-9 8:25:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索