網路資安威脅
使用 gRPC 和 HTTP/2 部署虛擬加密貨幣挖礦程式:一種非傳統作法
本文探討駭客如何利用 Docker 遠端 API 伺服器來部署虛擬加密貨幣挖礦程式 SRBMiner 在 Docker 主機上開採 XRP (瑞波幣)。
摘要
- 趨勢科技研究人員最近發現一個專門攻擊 Docker 遠端 API 伺服器來部署 SRBMiner 虛擬加密貨幣挖礦程式以開採 XRP (瑞波幣) 的駭客集團。
- 在這起攻擊中,駭客利用 gRPC 和 h2c 通訊協定來躲避資安解決方案,在 Docker 主機上進行虛擬加密貨幣挖礦作業。
- 駭客會先檢查是否有 Docker API 可用以及 API 的版本,然後再發出請求升級至 gRPC/h2c 通訊協定,並使用 gRPC 方法來操控 Docker 功能。
- 接著,駭客會從 GitHub 下載 SRBMiner 挖礦程式來植入到 Docker 主機,然後開始挖礦,並指定他們的虛擬加密貨幣錢包和公開的 IP 位址。
最近,我們發現了一個專門利用 Docker 遠端 API 伺服器來從事虛擬加密貨幣挖礦的駭客集團。Docker 是一個有助於開發人員建構、測試、部署及分享應用程式的平台。Docker 提供了一項遠端 API 功能來讓使用者從遠端管理容器、映像和磁卷。然而,如果遠端 API 伺服器的組態設定不當,然後又暴露在網路上的話,這項功能將帶來資安風險,引來駭客入侵或攻擊。
在這起攻擊當中,我們發現駭客利用 gRPC 和 h2c (明碼 HTTP/2) 通訊協定來躲避資安解決方案,將 SRBMiner 虛擬加密貨幣挖礦程式部署到 Docker 主機上來開挖 XRP (瑞波幣),這是一種由美國 Ripple Labs 開發的虛擬加密貨幣。
如圖 1 的攻擊程序所示,駭客一開始會先搜尋是否有 Docker API 可用,以及 API 的版本 (圖 2 和圖 3)。接著,駭客會發出 gRPC/h2c 升級請求 (圖 4)。
然後,駭客會檢查一些 gRPC 方法是否存在 (圖 5),這些方法是設計用來輔助 Docker 內部的各項作業,包括:運作狀況檢查、檔案同步、認證、機密管理,以及 SSH 轉送。這些方法可讓用戶端執行一些必要的 Docker 環境管理與營運工作。如表 1 所示,每一項方法都有其特定用途,對 Docker 工作流程的整體功能與安全性都有貢獻。
方法 | 用途 | 功能 |
/grpc.health.v1.Health/Check | 通常用於檢查服務的運作狀況。 | 可讓用戶端查詢服務的運作狀態。該服務會回應其當前的運作狀態,包括:SERVING (服務中)、 NOT_SERVING (非服務中) 或其他 gRPC 通訊協定所定義的狀態。 |
/grpc.health.v1.Health/Watch | 與 Check 方法類似,但可提供持續的運作狀態更新。 | 用戶端可訂閱運作狀態更新,伺服器會在運作狀態變更時傳送更新。 |
/moby.filesync.v1.FileSync/DiffCopy | 同步主機與 Docker 容器之間的檔案。 | 比較來源與目的地之間的檔案,只複製兩者有差異的檔案,以盡可能減少資料傳送。 |
/moby.filesync.v1.FileSync/TarStream | 將檔案以 tar 串流方式傳輸。 | 以 tar 格式串流檔案,這是 Unix 系統常用的檔案格式。 |
/moby.filesync.v1.Auth/Credentials | 管理認證憑證。 | 可用來儲存、擷取或檢驗認證所使用的登入憑證。 |
/moby.filesync.v1.Auth/FetchToken | 擷取認證金鑰。 | 取得一個可用來驗證後續請求的金鑰。 |
/moby.filesync.v1.Auth/GetTokenAuthority | 擷取有關金鑰核發單位的資訊。 | 提供認證金鑰核發單位的詳細資訊。 |
/moby.filesync.v1.Auth/VerifyTokenAuthority | 檢驗金鑰核發單位。 | 檢查金鑰核發單位的真實性與可信度。 |
/moby.buildkit.secrets.v1.Secrets/GetSecret | 取得機密。 | 取得某項機密,例如 API 金鑰、密碼或其他敏感資訊。 |
/moby.sshforward.v1.SSH/CheckAgent | 檢查 SSH 代理的狀態。 | 可用來確認 SSH 代理 (agent) 是否正在執行並可提供代理轉送功能。 |
/moby.sshforward.v1.SSH/ForwardAgent | SSH 代理轉送。 | 設定 SSH 代理轉送,讓用戶端使用主機上儲存的 SSH 金鑰來與遠端系統進行認證。 |
接下來,駭客會發出連線升級請求,將通訊協定升級至 h2c。當伺服器使用 gRPC 所需的所有參數處理好連線升級請求之後,駭客會發送 gRPC 請求「/moby.buildkit.v1.Control/Solve」來根據「Dockerfile.srb」檔案建立 Docker 映像 (圖 6),該檔案中含有 Docker 容器建構細節並指定合法的 Docker 基礎影像「debian:bookworm-slim」(圖 7)。
我們從 Dockerfile.srb 的內容 (圖 8) 可以看到駭客會從 GitHub 下載 SRBMiner 並解壓縮至「/tmp/.1」目錄,然後將挖礦程式植入「/usr/sbin」目錄。接著,駭客開始挖礦,並指定其虛擬加密貨幣錢包的位址 (以字母「r」為開頭,Ripple 錢包的 ID 通常以這個字母為開頭),並指定虛擬加密貨幣挖礦程式的公開 IP 位址 (並將英文句點「.」替換成底線「_」符號)。
結論
像 Docker 這樣的容器化平台在今日的應用程式開發上扮演了重要角色,但如果未加以嚴格保護,其功能很可能會變成一項資安弱點。如同這起攻擊案例所示,網路犯罪集團可利用遠端管理 API 之類的功能來做壞事,駭客結合了 gRPC 和 h2c 兩種通訊協定,有效避開了多個防護層,將 SRBMiner 虛擬加密貨幣挖礦程式部署到 Docker 主機上,進而非法開挖 XRP 虛擬加密貨幣。
為了防範開發環境遭到針對容器和容器主機的攻擊,我們建議使用 Docker 的企業應採取以下最佳實務原則:
- 務必正確設定容器和 API 的組態設定來降低駭客攻擊的機會。Docker 也提供了一些指南來教導使用者如何強化自己的資安。
- 容器不應以系統管理員 (root) 權限執行,而是應該以應用程式使用者的身分執行。
- 透過組態設定讓容器只開放給信賴的對象存取,例如內部網路。
- 企業應落實建議的最佳實務原則,例如,Docker 便提供了一份完整的最佳實務原則清單,並內建了一些安全功能來讓使用者改善其雲端環境的安全。
- 定期執行資安稽核來檢查是否有任何可疑的容器和映像。
此外,趨勢科技還提供以下資安解決方案來保護 Docker 伺服器:
- Trend Vision One™ – Container Security - 可自動掃描容器映像及登錄,有助於提早偵測威脅。
- Trend Cloud One™ – Workload Security - 採用機器學習與虛擬修補等技巧來保護新增及現有的工作負載,防範未知威脅。
Trend Vision One 威脅情報
要隨時掌握持續演變的威脅,趨勢科技客戶可從 Trend Vision One 內部取得各種情報與威脅洞見。Threat Insights 可幫助客戶在威脅發生之前便提前掌握,並對新興的威脅預先做好準備。這些洞見提供了有關駭客、惡意活動及駭客技巧的完整資訊。善用這些情報,客戶就能主動採取步驟來保護自己的環境、防範風險,並且有效回應威脅。
Trend Vision One Intelligence Reports 應用程式 [IoC 掃描]
使用 gRPC 和 HTTP/2 部署虛擬加密貨幣挖礦程式
Trend Vision One Threat Insights 應用程式
新興威脅: 使用 gRPC 和 HTTP/2 部署虛擬加密貨幣挖礦程式:一種非傳統作法
追蹤查詢
Trend Vision One 應用程式
Trend Vision One 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。
SBRMiner 的 CC 連線:
eventId:3 AND ("src:59.93.45.16*" OR "dst:59.93.45.16*" OR "src:167.71.194.227:3333" OR "dst:167.71.194.227:3333")
除此之外,Vision One 客戶還可啟用 Threat Insights 權利來取得更多追蹤查詢。
入侵指標 (IOC)
雜湊碼
SHA256 雜湊碼 | 偵測名稱 |
0d4eb69b551cb538a9a4c46f7b57906a47bcabb8ef8a5d245584fbba09fc5084 | PUA.Linux.SRBMine.A/277100 |
網址
- https://github[.]com/doktor83/SRBMiner-Multi/releases/download/2.5.8/SRBMiner-Multi-2-5-8-Linux.tar.g
- 167[.]71[.]194[.]227:3333
- 59[.]93[.]45[.]16
MITRE ATT&CK 技巧
手法 | 技巧 | 技巧編號 |
突破防線 | 經由漏洞攻擊企業對外的應用程式 | T1190 |
外部遠端服務 | T1133 | |
執行 | 部署容器 | T1610 |
幕後操縱 | 對內傳輸工具 | T1105 |
應用程式層次的通訊協定:網站通訊協定 | T1071.001 | |
造成衝擊 | 資源挾持 | T1496 |
搜尋 | 系統網路組態搜尋:網際網路連線搜尋 | T1016.001 |