用戶資產評估器資料收集與安全性

本文將說明在資料中心安裝 Migration Center 探索用戶端時,可能會遇到的問題和疑慮。並強調在高度管制環境中,從客戶 IT 資產探索及收集資料時,安全性、法規遵循和效能的重要性。

資料收集方式

用戶資產評估器會使用多種方法,從目標電腦收集資料。收集的資料會因方法而異。在客層級,資料是透過收集指令碼收集;在管理程序層級,資料是透過基礎平台 API 收集。

用戶資產評估器服務和程序

探索用戶端會以名為 GoogleMCDC 的服務形式執行,並在名為 mcdc_service.exe 的程序下運作。

收集指令碼

探索用戶端使用的所有訪客層級收集方法,都會在目標電腦上執行收集指令碼。如要查看實際用於收集資料的指令碼,請點選下列連結:

收集指令碼會將結果儲存在封存檔案 (zip 或 tar) 中,探索用戶端隨後會擷取該檔案。

收集機制

探索用戶端可能會使用下列章節所述的一或多個收集機制,從目標機器收集資料。

SSH (Linux)

收集 SSH 記錄時,會發生下列情況:

  1. 系統會在收集器機器和目標伺服器之間啟動 SSH 工作階段。
  2. 系統會在 ~/.mcdc-temp/ 下建立臨時目錄。
  3. 收集指令碼會複製到該目錄。
  4. 執行收集指令碼。
  5. 結果封存檔會使用 SCP 擷取。
  6. 臨時目錄已清理完畢。

WMI (Windows)

根據預設,用戶端探索工具會使用遠端 WMI 呼叫,從目標 Windows 電腦收集資料。或者,如果您啟用指令碼式收集功能,探索用戶端會複製並執行目標電腦上的指令碼。

在以指令碼為基礎的 WMI 收集作業期間,會發生下列程序:

  1. 系統會啟動與目標機器的 WMI 連線。
  2. 系統會在目標電腦的 HKLM:\SOFTWARE\Google\Collector\data 下方建立暫時 (揮發性) 登錄機碼。
  3. 收集指令碼會複製到登錄機碼。
  4. 系統會在 C:\temp 下建立臨時目錄。
  5. 收集指令碼會寫入暫時目錄。
  6. 執行收集指令碼。
  7. 收集結果會寫入揮發性登錄機碼。
  8. 結果會複製到收集器電腦。

VMware Guest Tools (Linux 和 Windows)

在 Linux 和 Windows 的 VMware 收集作業期間,會發生下列程序:

  1. 系統會使用 VMware 客戶端工具建立臨時目錄。
  2. 收集指令碼會複製到該目錄。
  3. 執行收集指令碼。
  4. 結果封存檔會使用 VMware 客戶端工具擷取。
  5. 臨時目錄已清理完畢。

定期收集資料

用戶資產評估器會定期從所有已設定的伺服器收集資料。收藏內容分為兩種:

  • 完整收集:每部伺服器每天執行一次。這個集合會執行完整的集合指令碼,收集 VM 的各種資訊,例如硬體、環境、已安裝的軟體、正在執行的程序等。
  • 效能收集:每 10 分鐘在每部伺服器上執行一次。這個集合會執行效能收集指令碼,收集 CPU、記憶體、網路和磁碟使用率的資料。

我們會蒐集哪些資料

收集指令碼會收集目標 VM 的資料,瞭解 VM 的設定方式和使用的資源。這有助於評估及規劃遷移至雲端的作業。

以下列出收集的資料:

  • 系統資訊:這項基本資訊對於判斷 VM 的大小、效能需求,以及對特定硬體或驅動程式的依附元件至關重要。該指南的內容包括:
    • 作業系統 (版本和發布)
    • 硬體 (CPU、記憶體、BIOS 詳細資料)
    • 網路設定 (網路介面、IP 位址、路由表)
    • 儲存空間 (磁碟機、磁碟分割區、掛接點)
  • 已安裝的軟體和服務:指令碼會收集已安裝套件和執行中服務的清單,瞭解 VM 的軟體堆疊及其角色。該指南的內容包括:
    • 網路伺服器 (Apache、Tomcat、JBoss)
    • 資料庫 (Windows 指令碼中會收集 SQL Server 的證據)
    • 其他應用程式,可能需要在遷移期間進行特定設定。
  • 應用程式設定:指令碼也會收集網路伺服器 (IIS、Apache、Tomcat、JBoss、WordPress) 的設定檔。這有助於瞭解這些應用程式的特定設定和依附元件,確保順利轉換至雲端環境。
  • 偵測 VMware 和雲端環境:Linux 和 Windows 指令碼都會嘗試偵測 VM 是否已在雲端環境 (AWS 或 Google Cloud) 或 VCenter 叢集中執行。方法是向這些雲端供應商的中繼資料伺服器發出要求。如果 VM 已在雲端中,指令碼會收集相關中繼資料,例如執行個體 ID、執行個體類型和其他詳細資料。
  • 成效指標:成效收集指令碼會評估資源用量。包括:
    • CPU
    • 記憶體
    • I/O 作業
    • 網路
  • 網路連線:指令碼會收集開放連線,協助瞭解網路資源的各種依附元件。

對目標機器的效能影響

資源使用率評估

目標電腦上收集指令碼的資源用量取決於多項參數,例如執行的程序數量、部署的應用程式數量、有效的網路連線數量等。

在 Windows 上,收集指令碼會使用 Threading API 提供的最低優先順序執行。在 Linux 上,nice 值為 5,可盡量減少對生產工作負載的干擾,並確保這些工作負載的優先順序高於收集指令碼。

在未負載的機器上,一般收集作業可能會導致單一核心 CPU 使用率在 5 到 20 秒內達到高點。如果還有其他工作負載,可能需要較長時間,因為這些工作負載的優先順序較高。

緩解策略

探索用戶端提供一種機制,可防止在特定時段收集特定伺服器的資料。這項功能可避免在尖峰時段,從執行重要工作負載的伺服器收集資料。

安全性考量

驗證及授權

與目標電腦通訊

  • 探索用戶端會使用安全通道,驗證目標電腦並與其通訊。包括 SSH、WMI、VMware 工具和 VCenter 連線。探索用戶端會使用這些通訊協定內建的安全措施。
  • 在 SSH 中,探索用戶端允許使用者名稱/密碼和金鑰驗證。如需支援的金鑰配對類型完整清單,請參閱目標資產規定

與 Google Cloud的通訊

  • 註冊的用戶資產評估器會在正常運作期間與 Google Cloud Migration Center 通訊。通訊是透過具有 roles/migrationcenter.discoveryClient 角色繫結的服務帳戶進行。服務帳戶會在註冊程序中自動建立,或由使用者提供。
  • 服務帳戶私密金鑰會在探索用戶端電腦上加密,加密機制如下一節所述。
  • 所有與 Google Cloud 的通訊都會使用這個服務帳戶進行驗證,並透過 SSL/TLS 加密。

資料加密

  • 傳輸中:所有探索用戶端通訊管道都會使用加密機制,保護傳輸中的資料。包括使用不同通訊協定 (SSH/WMI) 與目標電腦通訊,以及使用 HTTPS 與 Google Cloud 通訊。
  • 靜態:探索用戶端 PII、SPII 和密鑰都會使用 AES128_GCM 演算法加密,並使用 Windows DPAPI 安全地儲存加密金鑰。

入侵偵測與防範

由於探索用戶端用於連線至貴機構中的多部 VM 並在這些 VM 上執行指令碼,因此可能會觸發 EDR 或 xDR 快訊。這很大程度上取決於您設定安全工具的方式,以及您使用的特定工具。請注意,並考慮為特定快訊和裝置建立例外狀況。

記錄和支援

探索用戶端會在運作期間收集記錄,以利進行偵錯和支援。系統會使用兩種機制收集用戶端探索記錄:

  • 本機記錄:記錄會寫入 C:\ProgramData\Google\mcdc\logs 下的檔案。記錄檔會輪替並壓縮。
  • 雲端記錄:註冊的用戶端也會將記錄傳送至 Google Cloud ,以便客戶回報問題時, Google Cloud 支援團隊使用。