摘要: 黑客不再满足于对个人信息的攻击,而是将目标瞄准到数据库服务。近日,以数据库为目标的勒索软件(database for ransom)在世界范围内快速传播,从oracle、sqlserver等商业数据库到开源数据库,包括MongoDB、Elasticsearch...
黑客不再满足于对个人信息的攻击,而是将目标瞄准到数据库服务。近日,以数据库为目标的勒索软件(database for ransom)在世界范围内快速传播,从oracle、sqlserver等商业数据库到开源数据库,包括MongoDB、Elasticsearch、MySQL、Informix、Redis等主流开源数据库,并已开始蔓延到CouchDB servers和Hadoop Servers。
黑客攻击数据库的主要两种方式:
第一种,通过所谓的绿色运维软件(实际已经被篡改),诱骗运维人员下载,在运维人员使用运维工具登录数据库的过程中,将勒索代码注入到数据库内部。这种攻击方式更像是一种社会工程学的手段
第二种,利用数据库的漏洞黑进数据库之后,进行恶意代码嵌入这种更为普遍的做法。这是因为开源数据库的安全性较商业数据库弱很多,且开源数据库更多的是面向互联网开放,自然成为了黑客攻击的主要目标。
本文,主要针对第二种攻击方式进行说明(第一种,你懂的)。以MongoDB为例分析黑客如何利用数据库漏洞攻击的一般过程。其他数据库基本类似,主要的不同在于安全漏洞的类型。
MongdoDB有一个著名的“未授权安全漏洞”,MongoDB 默认安装是既没有密码也没有绑定IP,这就导致了外网可以直接访问MongoDB数据库,同时由于无需授权即可直接进行未授权访问,黑客便利用此漏洞进行勒索攻击,大致流程如下:
在明确需要利用的漏洞种类和相关数据库类型为MongoDB的未授权漏洞后,首先,黑客要先探测MongoDB的服务器,也就是探测端口27017 开放的服务器(MongoDB 服务默认端口为 27017 ,28017 等情况也有可能。黑客在尝试时可能不止探测 27017 这个端口),然后进一步的探测是否符合漏洞利用条件,也就是,需要存在未授权访问的情况,即不需要密码并且可远程连接。登入后通过攻击脚本发动攻击。攻击脚本的功能大致如下:
细化到具体的探测目标和 Exp 的功能,探测目标主要是探测互联网上开放了 27017 端口的目标,然后进一步探测是否可以未授权直接连接目标。
黑客的攻击是通过脚本直接根据不同的漏洞对 43 亿 IPv4 或者其他已知目标列表进行探测,然后进行自动化的攻击。一个再小的漏洞,基于43亿这个基数,得到的可攻击目标就不是一个小数字。
利用数据库漏洞进行勒索攻击的一般流程如上所示。
那么,如何有效地保护数据库免受勒索软件的攻击?
1) 明确限制不同工具的使用场景,明确规定工具的准确来源,或者通过堡垒机等来限制数据库访问。
2) 尽可能的选择一些靠谱的组件,多关注安全,加强漏洞和安全的应急响应方案。
3) 往往一些漏洞被发布之后,没多久就马上会爆发出漏洞的PoC和Exp,及时关注CVE漏洞并第一时间进行补丁安全加固。
4) 使用绑定IP,限制只能通过本地IP进行服务器登录的行为。
5) 增强数据库本地安全策略,如编辑MongoDB的配置文件,添加配置auth = true。
6) 加强数据库口令管理,排查生产库上容易被攻击的弱口令用户。
) 数据库勒索的加密过程通常会伴随有危险sql的产生,这些sql会明显有别于正常业务程序发起的sql,如对数据库基表的增删操作,数据的drop命令等,建议增加sql审计工具,通过黑名单及机器学习的方式对危险sql进行拦截。
8) 一些通用的漏洞是非常棘手的问题,没法事先知道,只能在漏洞爆发的时候第一时间去修复漏洞。通过完善的容灾和备份策略,即使数据库被加密或破坏,通过容灾和备份策略把数据库还原到被加密之前的状态。