最近,部分黑客组织针对几款特定产品展开了勒索攻击。截止到上周,已有至少34000多台MongoDB数据库被黑客组织入侵,数据库中的数据被黑客擦除并索要赎金。

事件综述

最近,部分黑客组织针对几款特定产品展开了勒索攻击。截止到上周,已有至少34000多台MongoDB数据库被黑客组织入侵,数据库中的数据被黑客擦除并索要赎金。随后,在2017年1月18日当天,又有数百台ElasticSearch服务器受到了勒索攻击,服务器中的数据被擦除。安全研究人员Niall Merrigan表示,截止到目前,受攻击的ElasticSearch服务器已经超过了2711台。紧随上述两次攻击事件,目前已经有黑客将目标瞄准了Hadoop集群。这些勒索攻击的攻击模式都较为相似,在整个攻击过程中并没有使用任何勒索软件,也没有涉及常规漏洞,而是利用相关产品的不安全配置,使攻击者有机可乘,轻而易举地对相关数据进行操作。

Hadoop简介

Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架由Java语言实现,以计算机集群的形式实现对海量数据的分布式计算,可编写和运行分布式应用、处理大规模数据。Hadoop框架的两个核心设计是HDFS(Hadoop Distributed File System)和MapReduce。HDFS是一个分布式文件系统,具有高容错性的特点,并且被设计用来部署在廉价的硬件上;而且它能够以高吞吐量来访问应用程序的数据,尤其适合那些有着超大数据集的应用程序。MapReduce是一个使用简易的软件框架,基于它编写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。

勒索攻击模式

最近出现的针对MongoDB、ElasticSearch和Hadoop的勒索攻击模式都较为相似。在攻击过程中并没有涉及勒索软件和常规漏洞,而是利用相关产品不安全的配置,这为攻击者打开了方便之门。以MongoDB为例,这些受攻击的数据库没有采取任何身份验证,直接暴露在Internet公网上,一旦攻击者登录到这些开放的数据库就可以对其中的数据进行删除等恶意操作了;而针对ElasticSearch服务器的勒索攻击手段也是类似,ElasticSearch的TCP访问模式的默认端口为9300,HTTP访问模式的默认端口为9200,如果这些端口不做任何保护措施地暴露在公网上,那么对它的访问将没有任何身份认证,任何人在建立连接之后,都可以通过相关API对ElasticSearch服务器上的数据进行增删查改等任意操作。

而黑客针对Hadoop的勒索攻击,也是利用了暴露在公网上的端口。Hadoop集群的使用者往往出于便利或者本身安全意识不强的缘故,会将Hadoop的部分端口,比如HDFS的Web端口50070直接在公网上开放。攻击者可以简单使用相关命令来操作机器上的数据,比如:

 

 

使用上图格式中的命令可以递归删除test目录下的所有内容。

根据shodan.io的统计结果显示,在中国有8300多个Hadoop集群的50070端口暴露在公网上,如下图所示:

 

 

(该图片来自shodan.io)

防护措施

  • 关闭不必要的端口。Hadoop所使用的端口见下表:
HDFS NameNode默认端口:50070
SecondNameNode默认端口:50090
DataNode默认端口:50075
Backup/Checkpoint Node默认端口:50105
YARN ResourceManager默认端口:8088
JobTracker默认端口:50030
TaskTracker默认端口:50060
Hue Hue默认端口:8080

列表中的端口如果用户并不需要,建议将其关闭或者添加防火墙策略阻断相应数据包。

  • 启用Kerberos。在Hadoop1.0.0或者CDH3(CDH是Cloudera公司对Hadoop源码修改后的商业发行版)版本之前,Hadoop并不存在安全认证。在Hadoop1.0.0或者CDH3版本后,加入了Kerberos认证机制。集群内的节点需使用密钥进行认证,只有经过认证的节点才能正常使用。