Kobalos:專(zhuān)門(mén)攻擊超級(jí)計(jì)算機(jī)的Linux惡意軟件
近日,ESET研究人員發(fā)現(xiàn)了一個(gè)專(zhuān)門(mén)攻擊超級(jí)計(jì)算機(jī)的惡意軟件——Kobalos,該惡意軟件2019年以來(lái)一直在攻擊全球各地的超級(jí)計(jì)算機(jī)——高性能計(jì)算機(jī)(HPC)集群,目標(biāo)包括亞洲的大型互聯(lián)網(wǎng)ISP、歐洲大學(xué)高性能計(jì)算網(wǎng)絡(luò)、北美終端安全廠商、私有服務(wù)器和政府機(jī)構(gòu)。
研究者指出,Kobalos是一個(gè)很“小巧”但很復(fù)雜的程序,可以在其他UNIX平臺(tái)(FreeBSD、Solaris)上執(zhí)行。在分析過(guò)程中發(fā)現(xiàn)AIX和Windows操作系統(tǒng)也可能存在Kobalos的變體。
過(guò)去的一年中發(fā)生了多起涉及HPC集群的安全事件,其中最受媒體關(guān)注的莫過(guò)于去年5月安全牛報(bào)道過(guò)的席卷全球的超級(jí)計(jì)算機(jī)感染門(mén)羅幣挖礦軟件事件,根據(jù)歐洲網(wǎng)格基礎(chǔ)設(shè)施(EGI)CSIRT公布的報(bào)告,包括波蘭、加拿大、德國(guó)、西班牙和中國(guó)的多個(gè)超算重心都受到了影響。同樣在5月,英國(guó)ARCHER超級(jí)計(jì)算機(jī)被入侵竊取SSH憑證。
與已經(jīng)報(bào)告的超級(jí)計(jì)算機(jī)網(wǎng)絡(luò)的攻擊事件不同,被感染系統(tǒng)的管理員沒(méi)有發(fā)現(xiàn)Kobalos有任何嘗試挖掘加密貨幣或運(yùn)行計(jì)算量大的任務(wù)的嘗試。
事實(shí)上,最新曝光的Kobalos惡意軟件比去年的其他重大超算中心安全事件發(fā)生得更早(始于2019年)。
“人小鬼大”
ESET在周二發(fā)布的一份分析報(bào)告中表示,研究人員之所以用Kobalos命名該惡意軟件,是因?yàn)椤捌浯a量雖小但高度復(fù)雜,包含很多高級(jí)技巧”。Kobalos的名字源于希臘神話(huà)。Kobalos是狄俄尼索斯(Dionysus)的同伴,狄俄尼索斯是一堆調(diào)皮的精靈,以欺騙和恫嚇?lè)踩硕劽?/p>
“我們之所以稱(chēng)這種惡意軟件為Kobalos,是因?yàn)樗拇a量很小且有許多技巧。”調(diào)查該惡意軟件的Marc-EtienneLéveillé解釋說(shuō):“必須承認(rèn),這種復(fù)雜程度在Linux惡意軟件中很少見(jiàn)。”
Kobalos的32/64位樣本的大小只有24KB,但是采用了高度定制化的混淆和檢測(cè)逃避技術(shù),此外在小小“身軀”中整合了很多其他功能,例如,由于C2服務(wù)器IP地址和端口被硬編碼到可執(zhí)行文件中,惡意軟件操作員只需要發(fā)送一條命令,就可以把任何感染Kobalos的服務(wù)器變?yōu)镃2服務(wù)器。
此外,Kobalos還可以用作連接其他受感染服務(wù)器的代理,這意味著攻擊者可以利用多臺(tái)感染Kobalos的機(jī)器來(lái)達(dá)到目的。
如上所述攻擊者,可通過(guò)三種方式與后門(mén)和被感染機(jī)器互動(dòng)(直接、通過(guò)代理和C2服務(wù)器):
Kobalos還有一個(gè)“出彩”的功能是:根據(jù)分析,Kobalos代碼緊密綁定在一個(gè)函數(shù)中,該函數(shù)采用非線性控制流程“遞歸調(diào)用自身以執(zhí)行多達(dá)37個(gè)子任務(wù)”,其中一個(gè)子任務(wù)是將所有被感染機(jī)器變成C2服務(wù)器。
這種緊湊的體系結(jié)構(gòu)與其他惡意軟件特性相結(jié)合,使其難以被分析和發(fā)現(xiàn)。
報(bào)告還指出,所有字符串均已加密,“因此,與靜態(tài)查看樣本相比,查找惡意代碼更加困難”。操作后門(mén)需要一個(gè)私有的512位RSA密鑰和一個(gè)32字節(jié)長(zhǎng)的密碼。一旦兩個(gè)都通過(guò)驗(yàn)證,Kobalos將使用RSA-512公共密鑰生成并加密兩個(gè)16字節(jié)密鑰,并將其發(fā)送給攻擊者。這兩個(gè)密鑰用于RC4加密后續(xù)的入站和出站流量。
最后,ESET研究人員對(duì)這種小而復(fù)雜的惡意軟件進(jìn)行了反向工程,發(fā)現(xiàn)它可移植到許多操作系統(tǒng)(包括Linux、BSD、Solaris,甚至可能是AIX和Windows)中。
種種跡象表明,Kobalos背后的攻擊者“知識(shí)淵博,顯然是個(gè)高級(jí)攻擊者”。
竊取SSH憑據(jù)
Kobalos后門(mén)程序包含廣泛的指令,且沒(méi)有特定的有效載荷,因此無(wú)法確定攻擊者的真實(shí)意圖。
但是,在大多數(shù)感染Kobalos的系統(tǒng)中,用于安全通信(SSH)的客戶(hù)端被竊取了憑據(jù)。
研究者在調(diào)查中發(fā)現(xiàn)了不同的賬戶(hù)竊取程序變體,包括Linux和FreeBSD實(shí)例。所有變體的主要功能包括從受感染的主機(jī)竊取用于建立SSH連接的主機(jī)名、端口、用戶(hù)名和密碼,這些主機(jī)名、端口、用戶(hù)名和密碼均保存在加密文件中。
“找到的所有樣本都使用相同的簡(jiǎn)單密碼來(lái)存儲(chǔ)文件的內(nèi)容。它只會(huì)在要保存的每個(gè)字節(jié)數(shù)據(jù)中加上123。對(duì)于FreeBSD版本,將使用相同的格式和密碼。但是,在實(shí)現(xiàn)上還存在一些細(xì)微的差異,例如使用單字節(jié)XOR加密惡意軟件中的文件路徑?!毖芯咳藛T解釋說(shuō)。
根據(jù)變體的不同,保存被盜的SSH憑據(jù)的文件位置也會(huì)有所不同,但是所有示例都會(huì)在/var/run下創(chuàng)建一個(gè)看起來(lái)合法的“.pid”擴(kuò)展名的文件。
較新版本的憑證竊取器包含加密的配置,并添加了通過(guò)UDP將憑證泄漏到配置中指定的遠(yuǎn)程主機(jī)的功能。
“使用受感染計(jì)算機(jī)的SSH客戶(hù)端的任何人的憑據(jù)都會(huì)被竊取。然后,攻擊者可以使用這些憑據(jù)在新發(fā)現(xiàn)的服務(wù)器上安裝Kobalos。”Léveillé補(bǔ)充說(shuō)。
這也可以解釋為什么許多學(xué)術(shù)網(wǎng)絡(luò)在這次攻擊中遭到破壞,因?yàn)槌阆到y(tǒng)的SSH客戶(hù)端往往被來(lái)自多所大學(xué)的學(xué)生或研究人員使用。
威脅緩解
連接到SSH服務(wù)器時(shí)啟用雙因素身份驗(yàn)證可以緩解威脅,因?yàn)槭褂帽槐I憑據(jù)似乎是Kobalos傳播到不同系統(tǒng)的主要方法。
對(duì)Kobalos的檢測(cè)并不困難,可以通過(guò)在歸屬于SSH服務(wù)器的端口上查找非SSH流量來(lái)檢測(cè)Kobalos。
參考資料:
ESET的白皮書(shū)中提供了有關(guān)Kobalos惡意軟件IoC和YARA規(guī)則的更多技術(shù)詳細(xì)信息:
??https://www.welivesecurity.com/wp-content/uploads/2021/01/ESET_Kobalos.pdf??
【本文是51CTO專(zhuān)欄作者“安全牛”的原創(chuàng)文章,轉(zhuǎn)載請(qǐng)通過(guò)安全牛(微信公眾號(hào)id:gooann-sectv)獲取授權(quán)】