近期oneinstack供應鏈投毒事件分析
事件概述
近日,奇安信威脅情報中心注意到一起oneinstack供應鏈投毒事件,於是對這起事件進行了分析和關聯。經分析,此次投毒事件與2023年4月份oneinstack供應鏈投毒事件、2023年9月份LNMP供應鏈投毒事件屬於同一攻擊者所為。
OneinStack是PHP/JAVA環境一鍵部署工具,其提供了簡單、快速的方式來部署和管理網站,目前官方的github星標已達2.3k。在2023年10月6號,有網友發現Oneinstack最新的安裝包被投毒,並提了一條Issue:

該網友稱Oneinstack官方安裝包(http://mirrors.oneinstack.com/oneinstack-full.tar.gz)被植入惡意程式碼,具體投毒的檔案為/src/pcre-8.45.tar.gz/pcre-8.45/configure,這是oneinstack今年發生的第二起程式碼投毒事件。
細節分析
投毒原理
具體投毒的檔案為/src/pcre-8.45.tar.gz/pcre-8.45/configure,pcre是一個支持正規表示式的函數庫,configure檔案是其自動配置構建環境的腳本檔案,裡面包含的是Shell程式碼,這些程式碼在使用者編譯安裝Oneinstack時便會被執行,相比正常的configure檔案,投毒檔案多了一行下載執行的惡意程式碼:

在configure檔案被執行後,將開始整個攻擊流程,其可分為如下幾個階段:

將此次供應鏈事件與Oneinstack四月份的供應鏈事件、LNMP供應鏈事件對比,可以發現惡意程式碼均來源同一攻擊元件,以下是細節方面分析。
階段一
/src/pcre-8.45.tar.gz/pcre-8.45/configure 程式碼如下,可以看到首先configure中會使用wget命令下載偽裝成圖片jpg的tar包,然後將其解壓到/var/local目錄下,接著刪除下載回來的jpg(tar包),最終使用特殊參數執行解壓出來的可執行檔案。

階段二
第一階段的jpg檔案為包含了惡意ELF檔案的tar包,解包後名為load(/var/local/cron/load)(在LNMP供應鏈事件中叫做lnmp.sh),此ELF檔案實際是一個載入器,當運行後,首先通過對應的/proc/%d/status檔案查找TracerPid欄位來判斷是否被調試。

再使用RC4解密程式碼並從記憶體對映載入第二階段的真正惡意ELF。

內嵌的惡意ELF被記憶體載入後,首先檢測及其是否為redhat系統,再從硬編碼的URL下載第三階段的偽裝成jpg圖片的tar包,並解壓執行。

階段三
階段三會有兩個落地檔案cr.jpg以及install檔案,jpg同樣為tar包,而install正如其名,為惡意軟體的安裝程序。install檔案同樣對程式碼進行了加密,並使用記憶體動態載入技術進行載入執行,直接對其進行反編譯無法獲得有效資訊,載入部分的程式碼如下:

載入後的payload主要實現下面兩個功能:
-
使用crond服務持久化
-
釋放白利用的宿主程序以及後門動態連結庫so檔案

在本次供應鏈事件中,使用tar包中的cro替換了crond檔案,替換後的crond是一個白檔案,僅作為白利用的宿主程序。而在本機植入的連結庫檔案/usr/lib/libstdc++.so.2.0.0,為真正落戶磁碟的後門程序。
階段四
此階段的後門程序既上面提到的/usr/lib/libstdc++.so.2.0.0,大小僅13.95KB,在VT的檢出率為0

後門程序利用白程序crond載入,其內嵌了一個URL,通過循環異或得方式加密。從URL成功下載ELF資源後,直接通過記憶體載入的方式運行,並無檔案落地。


目前此回連URL(http://oneinstack.oneinstack.site/cron.log)仍然存活,但是經下載解密後,除ELF頭為正常,其餘部分均為異常資料,無法正常載入,猜測是攻擊者知道事情已經被人曝光,所以關閉了最終payload的下發。至此, 樣本細節分析完畢。
同源性分析
前面提到,2023年4月份oneinstack就發生過一次供應鏈投毒事件,2023年9月份LNMP也發生過供應鏈投毒事件,這裡對此次投毒事件與前兩次進行同源性分析。
首先,三次攻擊事件的攻擊流程基本一致,見前文【細節分析】中的流程圖。
其次,oneinstack的兩次供應鏈事件中攻擊者除了不同的執行參數,其餘程式碼大體一致,以下為惡意程式碼對比:

而在LNMP供應鏈事件中,下一階段的ELF檔案直接集成在了安裝包內,第一階段僅有一行程式碼,但是出現了與本次事件同樣的木馬運行參數「linhkkngf@QWE」

另外在階段三,三次供應鏈事件的程式碼有些偏差,但是核心功能都是在實現同樣的功能:
-
使用crond服務持久化
-
釋放白利用的宿主程序以及後門動態連結庫so檔案。
只是前面兩次供應鏈投毒事件中,後門程序的落地檔案名(libseaudit.so.2.4.6)稍微有點不一樣,但是手法基本一致,同樣也是白利用手法載入帶後門的so動態連結庫檔案。

在這幾次供應鏈投毒事件中,除開技術細節上的相同性,其它方面的巧合也直指同一攻擊者:

總結
經分析,此次投毒事件與2023年4月份oneinstack供應鏈投毒事件、2023年9月份LNMP供應鏈投毒事件屬於同一攻擊者所為。針對本次事件,大家可通過檢查/usr/sbin/crond檔案完整性,以及檢查在/usr/lib/目錄下有無異常的so檔案(libstdc++.so.2.0.0、libseaudit.so.2.4.6)檔案來進行自查。
目前,基於奇安信威脅情報中心的威脅情報資料的全線產品,包括奇安信威脅情報平臺(TIP)、天擎、天眼高級威脅檢測系統、奇安信NGSOC、奇安信態勢感知等,都已經支持對此類攻擊的精確檢測。
IOC
URL
http://download.oneinstack.club/osk.jpg
http://download.oneinstack.club/s.jpg
http://download.oneinstack.club/t.jpg
http://download.cnoneinstack.club/oneinstack.jpg
http://download.cnoneinstack.club/s.jpg
http://download.cnoneinstack.club/t.jpg
http://download.lnmp.life/s.jpg
http://download.lnmp.life/t.jpg
http://oneinstack.oneinstack.site/cron.log
MD5
52448a6b782d12adc7b9ce2e54a11802 (oneinstack.jpg)
06ac624660ce9c6d95df0dc6b78c9b93 (osk.jpg)
dea9eaf41ceded95e367b816c9bd83ff (t.jpg)
點選閱讀原文至ALPHA 6.0
即刻助力威脅研判