原文鏈接:Watch Your Containers: Doki Infecting Docker Servers in the Cloud
譯者:知道創宇404實驗組翻譯組
主要發現
-
Ngrok Mining Botnet是一個活躍的活動,目標是AWS、Azure和其他云平臺中公開的Docker服務器,它已經活躍了至少兩年。
-
我們檢測到了最近的一次攻擊,其中包括使用區塊鏈錢包生成C&C域名的完全未檢測到的Linux惡意軟件和以前未記錄的技術。
-
任何具有公開開放的Docker API訪問權限的人都有可能在短短幾個小時內被黑客入侵。這很可能是由于黑客對脆弱的受害者進行了自動且連續的全互聯網掃描所致。
-
自2020年1月14日首次分析以來,VirusTotal的60個惡意軟件檢測引擎中尚未檢測到被稱為“ Doki ”的新惡意軟件。
-
攻擊者正在使用受感染的受害者搜索其他易受攻擊的云服務器。
介紹
Linux威脅變得越來越普遍。造成這種情況的一個因素是,對云環境的轉移和依賴日益增加,而云環境主要基于Linux基礎架構。因此,攻擊者已經采用了專門為此基礎結構設計的新工具和技術。
一種流行的技術是濫用配置錯誤的Docker API端口,攻擊者在其中掃描可公開訪問的Docker服務器,并利用它們來設置自己的容器并在受害者的基礎設施上執行惡意軟件。
Ngrok僵尸網絡是利用Docker API端口進行的持續時間最長的攻擊活動之一,之前由Netlab和Trend Micro的研究人員報道過。作為攻擊的一部分,攻擊者濫用Docker配置功能,以逃避標準容器限制并從主機執行各種惡意負載。他們還部署了網絡掃描儀,并使用它掃描云提供商的IP范圍,以查找其他潛在的易受攻擊目標。我們的證據表明,從新配置錯誤的Docker服務器上線到感染此活動僅需幾個小時。
最近,我們檢測到一種新的惡意軟件有效負載,該負載與通常在此攻擊中部署的標準加密礦工不同。該惡意軟件是一個完全未被發現的后門,我們將其命名為Doki。
Doki使用一種以前未記錄的方法,以一種獨特的方式濫用狗狗幣加密貨幣區塊鏈來聯系其運營商,以便動態生成其C2域名地址。盡管VirusTotal公開提供了樣本,但該惡意軟件已成功躲藏了六個月以上。
在本文中,我們將介紹攻擊并提供對未檢測到的Doki后門實施的技術的詳細分析。
攻擊
威脅針對的是云中配置錯誤的容器化環境。攻擊者掃描可公開訪問的Docker API端口并加以利用,以設置自己的容器并在受害者的基礎設施上執行惡意軟件。在此攻擊過程中,攻擊者正在生成并刪除許多容器。
攻擊期間創建的每個容器均基于安裝了curl的高山圖像。該映像在Docker Hub上可用。該圖像不是惡意的,而是被濫用以進行惡意活動。通過使用包含curl軟件的映像,可以在容器啟動并運行后立即執行curl命令。
使用公開可用映像的優勢在于,攻擊者無需將其隱藏在Docker Hub或其他托管解決方案上。相反,攻擊者可以使用現有映像,并在其上運行自己的邏輯和惡意軟件。
如上所述,攻擊者可以創建任何容器,但是要從托管計算機執行代碼,攻擊者必須使用容器轉義方法。該技術基于新容器的創建,該新容器通過發布“創建”?API請求來完成。請求的主體包含容器的配置參數。其中一個參數是bind,它使用戶可以配置主機上要掛載到容器中的文件或目錄。
攻擊期間創建的容器被配置為將/ tmpXXXXXX目錄綁定到托管服務器的根目錄。這意味著可以從容器內部以正確的用戶權限訪問甚至修改服務器文件系統上的每個文件。
Ngrok是一項提供安全隧道的服務,可在本地服務器和公共Internet之間建立連接。攻擊者濫用Ngrok來設計壽命短的唯一URL,并在攻擊過程中將它們傳遞給基于curl的圖像,從而使用它們下載有效載荷。下載的有效內容保存在容器的/ tmpXXXXXX目錄中。
如在受攻擊服務器的系統日志上所示,創建容器的命令
通過使用綁定配置,攻擊者可以控制主機的cron實用程序。?攻擊者修改主機的cron,以每分鐘執行一次下載的有效負載。我們觀察到兩種類型的有效負載,一種是網絡掃描器腳本,另一種是下載器腳本。
網絡掃描儀使用zmap、zgrap和jq掃描與Redis、Docker、SSH和HTTP相關的端口。
使用一系列硬編碼的IP地址范圍的列表,該范圍主要屬于云服務器,例如AWS和國外的本地云提供商(我們已經看到來自中國、奧地利和英國的提供商),該腳本收集信息并將其上傳到另一個Ngrok URL。
下載腳本負責下載和安裝各種惡意軟件二進制文件,這些二進制文件通常是幾種眾所周知的加密礦工之一。我們已經注意到,它也可以安裝完全未檢測到的惡意軟件組件。我們將該惡意軟件命名為Doki,并將在下一部分中提供技術分析。
攻擊者可以完全控制自己創建的容器的配置以及放入容器的文件。通過使用合法的API命令,攻擊者可以從他創建的容器中逃脫,并從服務器本身內部執行任何代碼。
Doki惡意軟件
Doki是Linux的后門程序,其功能是執行從其操作員接收到的代碼。該惡意軟件利用DynDNS服務和基于Dogecoin加密貨幣區塊鏈的獨特域生成算法(DGA)來實時查找其C2的域。 該惡意軟件是一個完全未被檢測到的后門。盡管它已于?2020年1月14日上載到VirusTotal,并自此進行了多次掃描,但六個月以來一直未被發現。

Doki是多線程的,并使用embedTLS庫進行加密功能和網絡通信。執行后,惡意軟件將創建一個單獨的線程以處理所有C2通信。
該惡意軟件首先使用其獨特的DGA生成C2域。為了構造C2地址,惡意軟件執行以下步驟:
-
查詢dogechain.info?API,以獲取從攻擊者控制的硬編碼錢包地址發送(花費)的值。查詢格式為:https?:?//dogechain.info/api/v1/address/sent/{address}
-
對“sent”下返回的值執行SHA256
-
保存SHA256值的十六進制字符串表示形式的前12個字符,用作子域。
-
通過將子域附加到ddns.net來構造完整地址。一個示例域是:6d77335c4f23 [.]ddns [.] net
攻擊者使用此技術,通過從其錢包中轉移一定量的狗狗幣來控制將與惡意軟件聯系的地址。由于只有攻擊者才能控制錢包,因此只有他可以控制何時以及要轉移多少個狗幣,從而相應地切換域。此外,由于區塊鏈既是不可變的又是分散的,因此這種新穎的方法可以證明對執法部門的基礎設施拆除和安全產品的域過濾嘗試具有相當的彈性。
值得注意的是,一旦生成了域,惡意軟件便會確保它不是“ 46927e019820”,即“ 0.000000”生成的內容,這意味著從未從錢包中轉移過狗狗幣。在生成該域的情況下,惡意軟件將退出而無需繼續進行操作。

否則,惡意軟件將繼續使用URL?
然后它將解析當前進程的PID和用作腳本參數的路徑,并通過運行以下命令繼續執行腳本:/ bin / sh -c?./update.sh

同時,惡意軟件的主線程從STDIN讀取數據,期望從該Shell腳本接收二進制數據。參數被傳遞到腳本,以便允許它以這種方式與惡意軟件通信并接收要執行的代碼。
如果通過STDIN接收到數據,則該惡意軟件會將自身保存為/ tmp下的文件,并從預定義的Linux內核模塊列表中隨機選擇其名稱。

盡管這是一種非常基本的欺騙方法,但在Linux惡意軟件中卻不常見,該惡意軟件通常不會偽裝成系統文件。
最終,惡意軟件繼續進行分叉,因此子進程執行文件,并且主進程循環以重復惡意軟件的邏輯流程。
底線
Ngrok僵尸網絡活動已經進行了兩年多,并且非常有效,在數小時內即可感染任何配置錯誤的Docker API服務器。獨特且未檢測到的Doki惡意軟件的合并表明操作正在繼續發展。
由于攻擊者使用容器逃逸技術來完全控制受害者的基礎結構,因此此攻擊非常危險。我們的證據表明,從新配置錯誤的Docker服務器上線到感染此活動僅需幾個小時。
容器服務器所有者需要立即采取的措施
在云中擁有容器服務器的公司和個人都必須立即修復配置以防止暴露。這包括:檢查是否有任何暴露的端口,驗證現有容器中是否沒有多余或未知的容器,以及監視資源的過度使用。 我們建議您閱讀我們的文章,“保護Docker運行時環境的最佳實踐”。您還可以在云服務器上運行我們的YARA規則,以檢查您是否已被此系列廣告感染。
被Intezer Protect檢測
我們使用Cloud Workload Protection Platform(CWPP)Intezer Protect檢測到了這種威脅。Intezer Protect安裝在Linux機器上,可以在服務器內存中執行識別的未知代碼。經過基因分析,該平臺得出的結論是該代碼從未在野外發現過,這意味著它是全新的,因此該惡意軟件很可能是完全從頭編寫的。這是業界采用零信任執行來保護云工作負載的原因之一。
IOCs
4aadb47706f0fe1734ee514e79c93eed65e1a0a9f61b63f3e7b6367bd9a3e63b
6d77335c4f23 [.] ddns [.] net
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1278/
暫無評論