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