Hadoop黑客赎金事件解读及防范,年关将至,Mongodb数据丢失的事情还在眼前,数以千计的Mongodb数据库已经被删除或者被黑客勒索,参考:MongoDB黑客赎金事件解读及防范。就在最近一段时间,黑客也在攻击Hadoop,有不少Hadoop集群的数据全部丢失,这些数据甚至有上TB的数据量,对企业造成了巨大的损失。 本文讲述这个问题及后续的预防方案。
希望看到文章的同学及时修复问题,避免数据丢失。也欢迎转发,让更多的同学知晓。
攻击手段
一般使用者为了方便或者不注意,在电信IDC机房或者云上直接开放了HDFS的50070 web端口。那么黑客可以通过简单的几个命令,比如:
操作:curl -i -X DELETE "http://ip:50070/webhdfs/v1/tmp?op=DELETE&recursive=true"curl -i -X PUT "http://ip:50070/webhdfs/v1/NODATA4U_SECUREYOURSHIT?op=MKDIRS"
黑客可以把tmp(可以其它目录)下的数据删除;也可以看到很多日志信息获取敏感数据;或者不断写,把HDFS写满;更加有一些黑客把数据备份走,再把HDFS删除,直接发送勒索邮件。
最后界面如图,一般黑客还提醒如下:

其实这个不是HDFS的漏洞,是HDFS提供的webhdfs功能,不过很多同学没有意识到数据可以通过此途径删除。
目前在 https://www.shodan.io 上查询50070端口,如下图

在中国有 8,500+ hadoop集群的50070端口是对公网开放的,这些集群理论都存在风险。这个只是此网站公布的,真实的数据远比这个多得多,安全形势不容乐观。
防护手段基本的:
最好的处理方式是,把所有直接开放的端口,包括50070端口在内的所有端口对公网全部禁止。这些端口包括:
Hadoop默认情况开放了很多端口提供WebUI, 下面列举了相关端口信息:
HDFS NameNode 默认端口 50070 SecondNameNode 默认端口 50090 DataNode 默认端口 50075 Backup/Checkpoint node 默认端口 50105- YARN(JobTracker) ResourceManager 默认端口8088 JobTracker 默认端口 50030 TaskTracker 默认端口 50060 Hue 默认端口 8080
等等
如果不清楚,则按照最小化原则,开放最小化端口,如果实在需要访问这些端口:
1、如果是云环境,可以在云上购买一台带界面的环境(win、linux等,这个机器就是跳板机),再最小化打通此机器跟Hadoop环境的通道。
2、即使要开通公网的端口,可以到ecs的安全组中,开通到你本地环境的公网ip的端口,不要全网开通。
PS:一些客户说我这个是测试环境,不是生产环境,丢失了没有关系。但是需要注意的是,如果客户攻击了你此台机器,此台机器沦为黑客的肉机不说,如果别的机器跟这些机器在一个安全组,则很有可能会攻击其他机器的。
高级的 关闭webhdfs的功能,dfs.webhdfs.enabled设置为false 开启类似kerberos功能(比较复杂,不过多表述) 及时备份重要数据,比如云上备份到OSS中E-MapReduce
如果目前在ECS自建,或者想自建的同学,欢迎使用E-MapReduce产品:https://www.aliyun.com/product/emapreduce。 目前E-MapReduce产品购买集群后
默认会禁止所有大数据组件的所有端口。 yarn ui、ganglia等通过80端口访问,设置账号、密码访问机制,保证安全,无需直接开放50070端口。

后续会探求更强大安全保护机制,提供给客户选择,比如E-MapReduce层面的账号密码机制,E-MapReduce团队会一直关注数据安全问题。
特别需要注意的是, E-MapReduce已经做好了安全防护,但是一些客户打开公网的端口,最后导致数据丢失,是非常悲剧的事情。
写在最后
希望看到文章的同学及时修复问题,避免数据丢失。也欢迎转发,让更多的同学知晓。
黑客技术官网地址:http://www.hackdig.com/
解密使用谷歌云消息服务的Android锁屏恶意软件。上个月,我们发现了一个新的Android锁屏恶意软件,它会启动勒索软件,在设备上显示锁定屏幕,并勒索用户提交他们的银行卡信息以解锁设备。 这个勒索软件变种的有趣的变化是,它利用谷歌云消息(GCM)平台,推送通知服务,发送消息到注册的客户端,作为其C2基础设施的一部分。 它还在受感染设备和C2服务器之间的通信中使用AES加密。 在这个博客中,我们对这个恶意软件做了详细的分析。
恶意软件快速浏览
用户启动受感染的应用程序后,它会请求设备管理员权限,如下所示。

一旦用户授予管理员权限, 恶意软件的显示以下屏幕截图。

锁定屏幕如下所示。它要求用户的赎金高达545000Rub (约9000美元)用于解锁设备。

恶意软件如何工作
以下是有关此恶意软件变体如何工作的详细技术分析。以下是恶意软件开始启动时使用的关键代码段。

接下来,我们分析了这三个关键类。
1.Jfldnam Class
这是用于GCM注册的服务类。关键代码段如下所示。

通过我们的分析,类“Yzawsu”是类“GCMRegistrar”。您可以参考https://chromium.googlesource.com/android_tools/+/master/sdk/extras/google/gcm/gcm-client/src/com/google/android/gcm/GCMRegistrar.java
它用于GCM注册,v8.efjmaqtnlsph()返回sender_id。

AndroidManifest文件中的GCM广播接收器声明如下所示。

在AndroidManifest文件中有三个服务声明。

类kbin.zqn.smv.Ewhtolr是GCM服务类。以下是Ewhtolr类的代码片段

在子类Hkpvqnb中,以下代码用于处理与GCM相关的intent的操作。 如果操作等于“com.google.android.c2dm.intent.REGISTRATION”,则表示GCM注册已成功。 恶意软件处理来自GCM服务器的响应。

函数xmrenoslft如下所示。它将registration_id存储在本地存储中。

registration_id存储在com.google.android.gcm.xml中。

在GCM注册成功后,恶意软件将RegId发送到C2服务器。


从上面的图中,我们可以看到恶意软件使用AES加密存储reg_id的json数据,然后将加密的数据发送到其C2服务器。 这里,我们修改了原来的加密的类名和函数名,以便于理解。 捕获的流量如下所示。

http请求正文中的原始json数据如下所示。

http响应中的解密数据如下所示。

2.locker类
用来获得设备的管理员权限
3.Omnpivk 类
这用于显示要求用户提交其信用卡信息以解锁设备的锁屏信息。 Omnpivk类的代码段如下所示。


锁定屏幕从资产文件夹加载。它看起来像这样。

以下是Google翻译翻译的英文版本。

一旦设备被此恶意软件锁定,锁定屏幕将覆盖在系统窗口的顶部。 在提供银行卡信息之前,用户无法在设备上执行任何操作。 一旦用户输入其信用卡信息,恶意软件将其发送到C2服务器。 捕获的流量如下所示。

HTTP post请求和响应中的数据都使用AES加密。解密后的请求的主体数据如下所示。

解密的响应如下所示。

总而言之,下图说明了恶意软件的工作原理,以及从恶意软件执行的C2服务器发送命令的过程。

C2服务器通过GCM发送命令
C2服务器首先通过HTTP或XMPP向GCM服务器发送命令,然后GCM服务器将命令推送到受感染的设备。
在上面的部分中,我们显示GCM服务类Ewhtolr用于与GCM服务器通信。 一旦它从GCM服务器收到命令,它调用类Auepniow中的函数cibuwlvohd。 类Auepniow用于处理从C2服务器传递的命令。 这些命令也使用AES加密。
黑客技术官网地址:http://www.hackdig.com/
没有评论:
发表评论