防範加密貨幣挖礦攻擊的最佳做法

Last reviewed 2023-10-20 UTC

加密貨幣挖礦 (又稱比特幣挖礦) 是指建立新加密貨幣和驗證交易的程序。如果攻擊者入侵您的環境,可能會利用您的資源執行自己的挖礦作業,並由您支付相關費用,這就是加密貨幣挖礦攻擊。

根據 2021 年 11 月的威脅趨勢報告,攻擊者入侵您的 Google Cloud環境後,最常利用您的運算資源發動加密貨幣挖礦攻擊。報告也指出,攻擊者通常會在系統遭入侵後 22 秒內,將加密貨幣挖礦軟體下載到您的資源。加密貨幣挖礦會迅速增加費用,而且加密貨幣挖礦攻擊造成的帳單金額,可能遠超出您的預期。由於費用可能快速增加,您必須採取保護、偵測和緩解措施,保護貴機構。

本文件適用對象為安全架構師和管理員。本文說明可採取的最佳做法,協助您防範加密貨幣挖礦攻擊,並在發生攻擊時縮小影響範圍。Google Cloud

如要瞭解如何因應加密貨幣快訊,請參閱「因應濫用通知和警告」。

找出威脅向量

如要判斷貴機構是否容易遭受加密貨幣挖礦攻擊,請找出適用於貴機構的威脅向量。

2021 年 11 月的《威脅趨勢報告》指出,大多數攻擊者會利用下列漏洞:

  • 使用者帳戶的密碼強度較弱或沒有密碼
  • API 驗證強度不足或未驗證 Google Cloud
  • 第三方軟體中的安全漏洞
  • Google Cloud 環境或您在 Google Cloud上執行的第三方應用程式設定錯誤
  • 外洩的憑證,例如發布至公開 GitHub 存放區的服務帳戶金鑰

此外,您也可以訂閱及查看下列文件,瞭解威脅向量清單:

找出適用的威脅向量後,您可以使用本文中其餘的最佳做法來解決問題。

保護帳戶和帳戶憑證

攻擊者可能會利用未受保護或管理不當的帳戶,存取您的 Compute Engine 資源。 Google Cloud 包括可設定管理帳戶和群組的不同選項。

限制雲端環境的存取權

下表說明可用來定義雲端環境存取權的機構政策

機構政策限制 說明
網域限定共用 指定 Cloud Identity 或 Google Workspace 的有效客戶 ID
可在 Cloud IAM 中設定的 AWS 帳戶,用於 Workload Identity 聯盟 在混合雲環境中,定義哪些 AWS 帳戶可以使用 workload identity federation。
獲准連絡的外部識別資訊提供者 在混合式雲端環境中,定義工作負載可使用的身分識別提供者。

設定多重驗證或雙重驗證

Cloud Identity 支援使用各種方法進行多重驗證 (MFA)。設定多重驗證,特別是針對具備權限的帳戶。詳情請參閱「為公司自有資源強制執行一致的 MFA 機制」。

為防範網路釣魚攻擊導致加密貨幣挖礦攻擊,請使用 Titan 安全金鑰進行雙重驗證 (2FA)。

設定最低權限

最低權限原則可確保使用者和服務只具備執行特定工作所需的存取權。最小權限原則可減緩攻擊在機構內擴散的速度,因為攻擊者無法輕易提升權限。

如要滿足貴機構的需求,請使用 Identity and Access Management (IAM) 中的精細政策、角色和權限。此外,請定期使用角色建議工具政策分析工具分析權限。角色建議工具會運用機器學習技術分析您的設定,並提供建議,確保角色設定符合最低權限原則。透過 Policy Analyzer,您可以查看哪些帳戶有權存取雲端資源。

監控帳戶

如果您使用群組指派 IAM 政策,請監控群組記錄,確保未新增非公司帳戶。此外,您也可以根據 Cloud Identity 或 Google Workspace 網域,限制可存取資源的身分。詳情請參閱「依照網域設定身分限制」。

請確保離職程序包含停用帳戶和重設權限的流程,以因應員工離職或變更角色。詳情請參閱「撤銷存取權 Google Cloud」。

如要稽核使用者和群組,請參閱「Google Workspace 稽核記錄」。

減少 Compute Engine 和 GKE 資源的網際網路曝光度

減少網路曝光次數,代表攻擊者找到並利用安全漏洞的機會減少。本節說明有助於保護 Compute Engine VM 和 Google Kubernetes Engine (GKE) 叢集免於暴露於網際網路的最佳做法。

限制外部流量

請勿為 VM 指派外部 IP 位址。您可以使用「停用虛擬私有雲外部 IPv6 用量」機構政策限制,拒絕所有 VM 的外部 IP 位址。如要查看哪些 VM 具有可公開存取的 IP 位址,請參閱「查看執行個體的網路設定」。如果架構需要 VM 的外部 IP 位址,請使用「為 VM 執行個體定義允許的外部 IP」機構政策,定義允許擁有外部 IP 位址的執行個體名稱清單。

將 GKE 節點限制為僅使用內部 IP 位址。詳情請參閱建立私人叢集

限制專案中所有資源的網際網路傳入 (Ingress) 和傳出 (Egress) 流量。詳情請參閱虛擬私有雲防火牆規則階層式防火牆政策

如要進一步瞭解如何限制外部流量,例如設定 Cloud NAT,允許沒有外部 IP 位址的 VM 進行傳出通訊,或使用 Proxy 負載平衡器進行傳入通訊,請參閱「安全地連線至 VM 執行個體」。

使用服務範圍

使用 VPC Service Controls 為 Compute Engine 和 GKE 資源建立服務範圍。VPC Service Controls 可讓您控管從範圍外部到 Compute Engine 資源的通訊。服務範圍可允許範圍內的自由通訊、封鎖資料外洩,以及封鎖來自範圍外的服務通訊。使用 IP 位址和使用者身分等情境感知存取權屬性,進一步控管網際網路對Google Cloud 服務的存取權。

設定零信任安全機制

使用 Chrome Enterprise 進階版設定零信任安全防護。Chrome Enterprise Premium 提供威脅與資料保護存取權控制項。如果工作負載位於內部部署環境和 Google Cloud,請設定 Identity-Aware Proxy (IAP)。設定 TCP 轉送,控管誰能從公開網際網路存取Google Cloud 資源上的管理服務,例如 SSH 和遠端桌面協定。TCP 轉送功能可避免這些服務明確暴露在網際網路下。

確保 Compute Engine 和 GKE 資源安全無虞

加密貨幣挖礦需要存取 Compute Engine 和 GKE 資源。本節說明有助於保護 Compute Engine 和 GKE 資源的最佳做法。

保護 VM 映像檔

設定受防護的 VM,使用經過強化及妥善管理的 VM 映像檔。受防護的 VM 旨在防止在啟動週期載入惡意程式碼,例如核心層級的惡意軟體或 Rootkit。受防護的 VM 提供啟動安全防護、監控完整性,並使用虛擬信任平台模組 (vTPM)

如要限制可部署的映像檔,可以實作可信映像檔政策。「定義可信映像檔專案」機構政策會定義哪些專案可以儲存映像檔和永久磁碟。確保這些專案中只有受信任且維護的映像檔。

在 GKE 中,請確保容器使用基本映像檔,這些映像檔會定期更新安全修補程式。此外,也請考慮使用不含作業系統的容器映像檔,只包含應用程式和執行階段依附元件。

安全地透過 SSH 存取 VM

設定 OS 登入,管理在 Compute Engine 中執行的 VM 的 SSH 存取權。OS 登入可將管理員的 Linux 使用者帳戶連結至 Google 身分,因而能簡化 SSH 存取權管理。OS 登入功能可與 IAM 搭配使用,方便您定義管理員的權限。

如要進一步瞭解如何保護 VM 和容器,請參閱使用經過強化的認證基礎架構和服務

限制服務帳戶

服務帳戶是工作負載用來呼叫服務的 Google API 的 Google Cloud 帳戶。

請勿允許 Google Cloud 在建立資源時,將預設服務帳戶角色指派給資源。詳情請參閱限制服務帳戶使用

如果應用程式在 Google Cloud以外的位置執行,但需要存取 Google Cloud 資源,請勿使用服務帳戶金鑰。請改為實作工作負載身分聯盟,管理外部身分和您與其建立關聯的權限。在 GKE 中,您可以實作工作負載身分。詳情請參閱「根據用途選擇合適的驗證方法」。

如要進一步瞭解如何保護服務帳戶,請參閱使用服務帳戶的最佳做法

監控服務帳戶和服務帳戶金鑰的使用情形

設定監控,追蹤貴機構中服務帳戶和服務帳戶金鑰的使用情形。如要瞭解顯著的使用模式,請使用服務帳戶洞察資料。舉例來說,您可以運用服務帳戶洞察資料,追蹤專案中權限的使用情形,並找出未使用的服務帳戶。如要查看服務帳戶和金鑰上次用於呼叫 Google API 進行驗證活動的時間,請查看服務帳戶和服務帳戶金鑰的近期使用情形

監控及修補 VM 和容器

如要發起加密貨幣挖礦攻擊,攻擊者通常會利用設定錯誤和軟體安全漏洞,取得 Compute Engine 和 GKE 資源的存取權。

如要深入瞭解環境中的安全漏洞和設定錯誤,請使用安全狀態分析掃描資源。特別是如果您使用 Security Command Center 進階版,請查看任何 Compute Engine 執行個體發現項目容器發現項目,並設定程序來快速解決這些問題。

使用 Artifact Analysis 檢查儲存在 Artifact Registry 或 Container Registry 中的容器映像檔是否有安全漏洞。

確保貴機構能在修補程式發布後立即部署。您可以對 Compute Engine 使用 OS 修補程式管理服務。Google 會自動修補 GKE 中的安全漏洞。詳情請參閱「使用經過強化的認證基礎架構和服務」。

使用 WAF 保護應用程式

攻擊者可能會在您部署的應用程式中尋找第 7 層安全漏洞,試圖存取您的網路。為協助防範這類攻擊,請設定 Google Cloud Armor。這項服務是網頁應用程式防火牆 (WAF),採用第 7 層篩選和安全政策。Google Cloud Armor 可為託管於 Google Cloud、地端部署環境或其他雲端的應用程式和服務,提供阻斷服務 (DoS) 和 WAF 防護。

Google Cloud Armor 包含網路應用程式防火牆規則,有助於解決 Apache Log4j 安全漏洞。攻擊者可利用 Log4j 漏洞植入惡意軟體,進行未經授權的加密貨幣挖礦活動。詳情請參閱「Cloud Armor 網路應用程式防火牆規則有助於降低 Apache Log4j 安全漏洞的風險」。

保護供應鏈

持續整合及持續推送軟體更新 (CI/CD) 提供機制,可讓您快速將最新功能提供給客戶。為防範針對管道的加密貨幣挖礦攻擊,請執行程式碼分析,並監控管道是否遭到惡意攻擊。

導入二進位授權,確保所有映像檔在開發過程中都由受信任的單位簽署,並在部署映像檔時強制執行簽章驗證程序。

盡可能將安全檢查移至 CI/CD 流程的早期階段 (有時稱為「向左移」)。詳情請參閱「改用安全機制:確保軟體供應鏈安全無虞」。如要瞭解如何使用 GKE 設定安全的供應鏈,請參閱「軟體供應鏈安全」。

管理密鑰和金鑰

未經授權的加密貨幣挖礦攻擊主要會透過不安全或外洩的密鑰發動。本節說明如何運用最佳做法,保護密鑰和加密金鑰。

定期輪替加密金鑰

請務必定期輪替所有加密金鑰。如果加密金鑰是由 Cloud KMS 管理,您可以自動輪替加密金鑰

如果您使用具有 Google-owned and Google-managed encryption keys的服務帳戶,系統也會自動輪替金鑰。

避免下載私密內容

暴露的密碼是攻擊者的主要攻擊媒介。請盡量不要下載加密金鑰或其他私密資訊,包括服務帳戶金鑰。如果必須下載金鑰,請確保貴機構已建立金鑰輪替程序。

如果您使用 GitHub 或其他公開存放區,請務必避免洩漏憑證。導入密鑰掃描等工具,在 GitHub 存放區中發現外洩密鑰時發出警告。如要避免將金鑰提交至 GitHub 存放區,建議使用 git-secrets 等工具。

使用 Secret ManagerHashicorp Vault 等密鑰管理解決方案儲存密鑰、定期輪替密鑰,並套用最低權限。

偵測異常活動

如要監控異常活動,請設定 Google Cloud 和第三方監控工具,並設定快訊。舉例來說,您可以根據Compute Engine 稽核記錄資訊GKE 稽核記錄中的管理員活動設定快訊。

此外,您也可以在 Security Command Center 中使用 Event Threat Detection,根據管理員活動、Google 群組變更和 IAM 權限變更,找出相關威脅。在 Security Command Center 中使用 Virtual Machine Threat Detection,找出與 Compute Engine VM 相關的威脅。如要進一步瞭解 Security Command Center 服務,請參閱「Security Command Center 服務層級」。

如要協助偵測惡意軟體等網路威脅,請設定 Cloud IDS

參與 Security Command Center 加密貨幣挖礦防護計畫

如果您是 Security Command Center Premium 客戶,且使用 Compute Engine,可以參加 Security Command Center 加密貨幣挖礦防護計畫。這項計畫可協助您抵銷 Compute Engine VM 環境中,未偵測到和未經授權加密貨幣挖礦攻擊所產生的 Compute Engine VM 費用。您必須實作加密貨幣挖礦偵測最佳做法,其中有些做法與本頁說明的其他最佳做法重疊。

更新事件應變計畫

確保事件應變計畫和應對手冊提供明確的指引,說明貴機構如何因應加密貨幣挖礦攻擊。舉例來說,請確保企劃書包含下列資訊:

  • 如何向 Cloud Customer Care 提出支援案件,以及如何與Google 客戶技術顧問 (TAM) 聯絡。如果您沒有支援帳戶,請查看可用的支援方案,然後建立帳戶。
  • 如何區別正當的高效能運算 (HPC) 工作負載和加密貨幣挖礦攻擊。舉例來說,您可以標記已啟用 HPC 的專案,並設定快訊,在費用意外增加時收到通知。
  • 如何處理遭盜用 Google Cloud 的憑證
  • 如何隔離受感染的系統,並從正常的備份還原。
  • 貴機構中必須收到通知,以調查及回應攻擊的人員。
  • 需要記錄哪些資訊,才能回溯活動。
  • 如何確認補救活動已有效移除挖礦活動,並解決導致攻擊的初始安全漏洞。
  • 如何回覆 Cloud Customer Care 傳送的快訊。詳情請參閱「違反政策常見問題」。

詳情請參閱「回應及復原攻擊」。

實施災難復原計畫

為防範加密貨幣挖礦攻擊,請完成營運持續性災難復原計畫、建立事件回應教戰手冊,並執行桌面演練。

如果發生未經授權的加密貨幣挖礦活動,請務必找出導致初始入侵的威脅途徑,並從已知的良好狀態重建環境。您的災難復原計畫必須提供判斷已知良好狀態的能力,讓攻擊者無法重複利用相同漏洞來攻擊您的資源。

後續步驟