駭客使用新的 Linux 惡意程式攻擊 Huawei Cloud

本文討論 Linux 惡意程式的一項最新發展趨勢,駭客利用惡意程式碼來移除 Huawei Cloud 的應用程式和服務。

趨勢科技觀察到 Linux 威脅又出現另一波演變,專門瞄準一些新興的雲端服務供應商 (CSP),並使用虛擬加密貨幣挖礦惡意程式來從事挖礦( coinmining )攻擊。本文討論 Linux 惡意程式的一項最新發展趨勢,駭客利用惡意程式碼來移除 Huawei Cloud (華為雲) 的應用程式和服務。惡意程式碼會停用 hostguard 服務,這是 Huawei Cloud Linux 代理程式的處理程序,負責「偵測資安問題、保護系統並監控代理程式」。此外,惡意程式碼還含有  cloudResetPwdUpdateAgent 這個開放原始碼外掛代理程式,可讓 Huawei Cloud 使用者重設  Elastic Cloud Service (ECS) 執行個體的密碼,這是 其公用映像預設會安裝的一個代理程式。由於駭客的指令列腳本 (shell script) 當中含有這兩項服務,因此我們判斷駭客應該是專門攻擊 Huawei  Cloud 內 ECS 執行個體的漏洞。 

 

Malicious code that disables hostguard and resets the password to ECS instance using the includes cloudResetPwdUpdateAgent plugin agent
圖 1:停用「hostguard」並利用其內含的 cloudResetPwdUpdateAgent 外掛代理程式來重設 ECS 密碼的惡意程式碼。

攻擊行動演進


當我們在搜尋有關這波攻擊的資訊時,我們在 Tencent (騰訊) 一篇 2020 年的部落格中看到一些舊的樣本。這些樣本來自一些針對容器環境的攻擊行動。它們有兩項行為可以支持這項發現:首先,這起攻擊會在系統植入一個網路掃描工具來發掘網路上含有容器 API 常用連接埠的主機。其次,它們有一個函式會建立防火牆規則來確保這些容器 API 連接埠維持開啟。在我們發現到的新樣本中,這個建立防火牆規則的程式碼還殘存著,只不過程式碼已經被標示成註解,所以就不會建立規則。我們發現新的樣本只會攻擊雲端環境。 

另一個我們之前沒看過的有趣功能是,在這波攻擊中,駭客會特別搜尋某個公開金鑰以便將競爭對手的惡意程式清除,然後安裝他們自己的金鑰。這波攻擊在清除作業系統方面做得比其他攻擊行動和樣本都更為徹底。它會搜尋系統上已感染的惡意程式還有可能妨礙它運作的資安工具。不僅如此,還會使用一些簡單但有效的指令來清除自己在感染系統後所遺留的痕跡。

Code showing SSH keys sanitization
圖 2:清除 SSH 金鑰的程式碼。


我們蒐集到的大多數樣本都會宣告一些相同的函式 (順序不固定)。在呼叫這些函式的檔案末端,它會依序執行以下動作:首先進行初步的連線檢查,確定能夠對外連線,然後檢查  DNS 伺服器是否為公開的伺服器 (8.8.8.8 與 1.1.1.1)。這些動作通常是為了確保當它試圖連上惡意網址時不會被偵測,以及 DNS 防護拒絕轉譯的網址確實存在。 

在初步的連線檢查之後,接著會呼叫一組函式來將系統備妥。它會先清除任何競爭對手所感染的惡意程式以避免運算資源被其他駭客瓜分。這樣的行為我們之前就看過、也探討過,但這一波攻擊做得更徹底,目的是要獨占被感染系統的資源。

The specific order of function that the campaign’s routine follows in order to avoid detection
圖 3:這波攻擊會依序執行一系列的函式來避免被偵測。


經過進一步分析之後,我們發現了一件有趣的事:駭客也非常熟悉他們的競爭對手,知道競爭對手會透過什麼使用者名稱來連上系統。這就是為何他們可以先清除競爭對手的使用者,然後再建立自己的使用者。 

 

Malicious actors check for and remove their competitors’ users in the system
圖 4:駭客會檢查並清除競爭對手在系統上建立的使用者。


清除了不要的使用者之後,下一步就是為自己建立幾個使用者。這是另一個我們曾經在某些攻擊雲端環境的行動當中看過的行為。不過這波攻擊不同之處是它會建立更多使用像「system」和「logger」這類通用名稱的使用者以免讓人起疑。這類名稱可以騙過一些較缺乏經驗的 Linux 分析人員,讓他們誤以為這些是系統合法的使用者。 

在建立使用者時還有一個特殊的地方是,駭客的腳本會將這些名稱加入「sudoers」設定檔內,好讓這些使用者獲得系統管理權限。

The malicious actors create generic users to avoid detection and add them to the sudoers list
圖 5:駭客會建立一些通用名稱的使用者來躲避偵測,並將他們加入「sudoers」設定檔。


此外,駭客也將他們自己的 SSH-RSA 金鑰加入系統,好讓他們可以不斷進出被感染的系統。在系統變更完成之後,駭客會在這些檔案加入一些特殊權限來防止檔案被進一步修改,確保他們建立的使用者無法被移除或修改。  

The malicious actors add their own ssh-rsa key to enable them to repeatedly log in on the infected system
圖 6:駭客將他們自己的 SSH-RSA 金鑰加入系統,好讓他們可以不斷進出被感染的系統。

這波攻擊另一個值得注意的情況是,它會安裝洋蔥路由器  (Tor) 代理器 (proxy) 服務,這是為了讓惡意程式後續可以用匿名方式對外連線。  

The campaign installs and uses the Tor proxy service to anonymize malicious connections
The campaign installs and uses the Tor proxy service to anonymize malicious connections  圖 7:這波攻擊會使用 Tor 代理器 (proxy) 服務來將惡意程式的對外連線匿名化。


攻擊行動的惡意程式與強化功能

惡意腳本會在系統植入兩個 ELF 格式的二進位檔案,分別為「 linux64_shell」及「xlinux」。

A diagram that shows the malicious script deploying two ELF binaries, linux64_shell and xlinux
圖 8:惡意腳本會在系統上植入 linux64_shell 和 xlinux 這兩個 ELF 格式的二進位檔案。


linux64_shell

這個檔案本身已經過壓縮和加密編碼,駭客使用的是 Ultimate Packer for Executables  (UPX)  壓縮軟體,不過壓縮後的檔案又經過了修改,好讓它更不容易被分析,而且還可騙過一些自動化工具。

UPX header present in the binary
圖 9:二進位檔案中的 UPX 標頭。


在進一步研究之後,我們發現檔案末端還附著了另一個二進位檔案,裡面含有一些額外資料。  

Another binary appended to the file
圖 10:檔案末端附著了另一個二進檔案。


這個額外的二進位檔案在編譯時加入了  CrossC2 通訊程式庫,因此可以直接經由以下函式與  CobaltStrike 的模組通訊: 

  • cc2_rebind_http_get_recv
  •  cc2_rebind_http_post_send
  •  cc2_rebind_post_protocol
  •  cc2_rebind_http_get_send

在解壓縮之後,該執行檔會繼續執行其程式流程,但這流程在設計上刻意加入大量的分支條件讓分析人員不易理解。

 

Obfuscated control flow full of (conditional) jumps
圖 11:加入了大量分支條件的程式流程。


此時,惡意程式會嘗試與其幕後操縱 (C&C) 伺服器連線 (IP 位址: 45[.]76[.]220[.]46,連接埠 40443),目的是要為駭客提供指令列介面。

xlinux

第二個二進位檔是一個編譯過的 Go 語言檔案,裡面實做了多個 Kunpeng  Framework (鯤鵬框架) 的模組。這是一個漏洞掃描工具,會攻擊系統漏洞並植入起始的惡意腳本。

  1. 二進位檔案會發送有關被感染電腦的資訊,將  HTTP POST 請求發送至以下網址: 103[.]209[.]103[.]16:26800/api/postip
  • 將自己複製到「 /tmp/iptablesupdate」目錄,然後植入一個用來讓自己常駐的腳本。
The binary notifies malicious actors about the infected machine  by sending an HTTP POST request to following URL 103[.]209[.]103[.]16:26800/api/postip
圖 12:植入一個腳本來讓 Go 二進位檔案常駐系統內。


  • 二進位檔案開始執行「安全」掃描,一旦發現漏洞,就會攻擊該漏洞並植入惡意檔案。
An example of an integrated exploit
圖 13:整合式漏洞攻擊範例。


圖 13:整合式漏洞攻擊範例。

惡意程式會掃描被感染的系統是否含有以下漏洞及資安弱點:

  •  SSH 密碼太弱
  •  Oracle Fusion Middleware 平台的 Oracle WebLogic Server 當中的漏洞 (CVE-2020-14882)
  •  Redis 未經授權的存取,或密碼太弱
  •  PostgreSQL 未經授權的存取,或密碼太弱
  •  SQLServer  密碼太弱
  •  MongoDB 未經授權的存取,或密碼太弱
  •  FTP 密碼太弱 

結論

虛擬加密貨幣挖礦程式是Linux 威脅最常見植入系統的惡意程式。近年來,我們發現一些犯罪集團 (如 TeamTNTKinsing) 都是發動虛擬加密貨幣挖礦攻擊,並且在被感染的系統上植入挖礦惡意程式來爭奪系統運算資源。 

在 2020 和 2021 年當中,我們不斷看到這些犯罪集團瞄準雲端環境發動攻擊,並加入以雲端為主的功能,例如:搜刮登入憑證以及清除  Alibaba Cloud (阿里雲) 和 Tencent Cloud (騰訊雲) 相關的雲端資安服務。  

雲端服務組態設定不當,是虛擬加密貨幣挖礦攻擊之所以能夠得逞的原因。我們所監控的大部分攻擊案例,都是因為雲端上執行的服務所提供的 API 或 SSH 登入憑證強度太弱,或是權限設定太過寬鬆,導致駭客甚至不需攻擊系統漏洞就能入侵系統。組態設定錯誤是這類系統遭駭客入侵常見的破口,雲端使用者應該將組態設定錯誤看得跟漏洞和惡意程式一樣嚴重。 

趨勢科技團隊已發表了多篇部落格和研究報告來探討駭客如何攻擊某些雲端廠商。本文提出一些證據顯示網路犯罪集團正在攻擊像 Huawei Cloud 這類新興的雲端服務廠商。隨著犯罪集團也開始移轉到雲端,雲端資源的可用性與擴充性就變得更加珍貴,因為除了其他惡意行為之外,大多數攻擊都是植入虛擬加密貨幣挖礦程式。

在發布這篇文章之前,我們已經先經由 Huawei 網站上的聯絡資訊與該公司的媒體團隊取得聯繫,並告知了我們發現的情況,目前正在等待他們確認和回應。 

雲端資安建議 

網路犯罪集團或駭客集團隨時都在提升惡意程式的能力好讓攻擊發揮最大效果。要確保雲端環境安全無虞,企業不能單靠惡意程式掃描與漏洞檢查工具,應該研究一下雲端廠商的資安框架並了解自己應盡的資安義務,才能在推出自己的雲端服務時,採取最有效的資安政策。 

相關的 MITRE ATT&CK 手法與技巧 

MITRE ATT&CK Tactics and Techniques

入侵指標資料

SHA-256檔案 趨勢科技命名
3e38c51510f95643b04a9ba0f884a445f09372721073601abcbf8f12f663bf90 fczyoCoinminer.Linux.XANTHE.B 
6a5a0bcb60944597d61d5311a4590f1850c2ba7fc44bbcde4a81b2dd1effe57cfczyo Coinminer.Linux.XANTHE.A
71f578d122252c7fa67ca343cd29d65ac42d6f7c45bf91f146a1cd04b0446c23 fczyoCoinminer.Linux.XANTHE.B
9849c66d8b6c444904259cda7f3e34ac2c60b00a945d3d5b911b5e290eb2888d fczyoCoinminer.Linux.XANTHE.B
d092b4cbf655d02ad8eae1a66db98e67cf95fa9e0b7c327c4bca33815696bf68 ff.shTrojan.SH.CVE20205902.B 
e8503d6697c61c2c51ca90742b0634ce93710d6fdfb0965e35977e6cab4d039bxlinux Coinminer.Linux.PROCEAN.A
f36d3996245dba06af770d1faf3bc0615e1124fa179ecf2429162abd9df8bbf8 Linux64-shellTrojan.Linux.COBEACON.A
fc614fb4bda24ae8ca2c44e812d12c0fab6dd7a097472a35dd12ded053ab8474ff.sh Trojan.SH.CVE20205902.B

金鑰 

AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVZNrAJ1uzR7d2bm1iUQPAgjuBlyLQQNaEHVmACWtGwwiOKMPiFBfBjuNJIyZFnGkkFgJP5fi8v1eqliaBgqERUDDtW/RZDDIz8DovDrA4/MGlxpCHLeViN+F62W/jgeufiQ7NiPTlPB3Fuh7E7QXXpXqQ6EmVlV0iWdzqRvSiDIB3cIL6E2CrK47pY6Rp6rY2YKYzUhiZRqAMHViMR+2MARL2jERfF3CsG6ZXo/7UVVx+tqoKQDHPmz21mrulOF6RW5hh04dE2q1+/w6xmX8AxUSGmPdpwQa8GuV7NHHZmYO26ndTVi2ES472tJdkXVHmLX8B9Un42JLNVXwPU/H linux@linux.com” >>/opt/autoupdater/.ssh/authorized_keys

C&C 伺服器

  •  103[.]209[.]103[.]16
  •  45[.]76[.]220[.]46

 原文出處:Actors Target Huawei Cloud Using Upgraded Linux Malware 作者:Alfredo Oliveira 與 David Fiser