IoT Edge for Linux on Windows 安全性
適用於: IoT Edge 1.5 IoT Edge 1.4
重要
IoT Edge 1.5 LTS 是 支援的版本。 自 2024 年 11 月 12 日起,IoT Edge 1.4 LTS 已結束生命週期。 如果您是舊版,請參閱更新 IoT Edge。
Azure IoT Edge for Linux on Windows 獲益於在 Windows 用戶端/伺服器主機上執行的所有安全性供應項目,可確保所有額外的元件均保有相同的安全性內部部署。 本文提供依預設啟用的不同安全性內部部署,以及使用者可能啟用的一些選擇性內部部署的相關資訊。
虛擬機器安全性
IoT Edge for Linux (EFLOW) 策展虛擬機器以 Microsoft CBL-Curatr 為基礎。 CBL-Mariner 是 Microsoft 雲端基礎結構與邊緣產品和服務的內部 Linux 發行版本。 CBL-Mariner 旨在為這些裝置和服務提供一致的平台,以及強化 Microsoft 掌握 Linux 更新的能力。 如需詳細資訊,請參閱 CBL-Mariner 安全性。
EFLOW 虛擬機器的建置基礎是完整的四要點安全性平台:
- 服務更新
- 唯讀根檔案系統
- 防火牆鎖定
- DM-Verity
服務更新
有安全性弱點發生時,CBL-Mariner 會透過 ELOW 每月更新提供最新的安全性修補檔和修正程式。 虛擬機器沒有套件管理員,因此無法手動下載並安裝 RPM 套件。 虛擬機器的所有更新都須使用 EFLOW A/B 更新機制來安裝。 如需 EFLOW 更新的詳細資訊,請參閱更新 IoT Edge for Linux on Windows
唯讀根檔案系統
EFLOW 虛擬機器由兩個主要分割區組成:rootfs 和 data。 rootFS-A 或 rootFS-B 分割區可互換,兩者的其中之一會在 /
掛接為唯讀檔案系統,這表示,儲存在此分割區內的檔案不允許任何變更。 另一方面,掛接於 /var
底下的 data 分割區是可讀取和可寫入的,因此允許使用者修改該分割區內的內容。 儲存在此分割區上的資料不會由更新程序操作,因此不會隨著更新而修改。
由於在特定使用案例中,您可能需要對 /etc
、/home
、/root
和 /var
的寫入存取權,藉由將這些目錄重疊到我們的資料分割區上 (具體而言是目錄 /var/.eflow/overlays
),即可對這些目錄進行寫入存取。 最終結果是,使用者可將任何內容寫入先前提及的目錄。 如需關於重疊的詳細資訊,請參閱 overlayfs。
資料分割 | 大小 | 描述 |
---|---|---|
BootEFIA | 8 MB | 用於未來 GRUBless 開機的韌體分割區 A |
BootA | 192 MB | 包含 A 分割區的開機載入器 |
RootFS A | 4 GB | 包含根檔案系統的兩個主動/被動分割區之一 |
BootEFIB | 8 MB | 用於未來 GRUBless 開機的韌體分割區 B |
BootB | 192 MB | 包含 B 分割區的開機載入器 |
RootFS B | 4 GB | 包含根檔案系統的兩個主動/被動分割區之一 |
記錄 | 1 GB 或 6 GB | 掛接於 /logs 下的記錄特定分割區 |
資料 | 2 GB 至 2 TB | 可跨更新儲存持續性資料的具狀態分割區。 可根據部署設定擴充 |
注意
分割區配置代表邏輯磁碟大小,而且不會指出虛擬機在主機 OS 磁碟上佔用的實體空間。
防火牆
根據預設,EFLOW 虛擬機器會使用 iptables 公用程式進行防火牆設定。 iptables 可用來設定、維護及檢查 Linux 核心中的 IP 封包篩選規則資料表。 預設實作僅允許連接埠 22 上的傳入流量 (SSH 服務),而封鎖其他所有流量。 您可以使用下列步驟來檢查 iptables 設定:
開啟提升權限的 PowerShell 工作階段
連線至 EFLOW 虛擬機器
Connect-EflowVm
列出所有 iptables 規則
sudo iptables -L
驗證開機
EFLOW 虛擬機器支援透過內含的 device-mapper-verity (dm-verity) 核心功能進行驗證開機,以提供區塊裝置透明的完整性檢查。 dm-verity 有助於防止可能佔有根權限並入侵裝置的持續性 Rootkit。 此功能可確保虛擬機器基底軟體映像是相同的,且未曾改變。 虛擬機器會使用 dm-verity 功能來檢查特定區塊裝置 (檔案系統的基礎儲存層),並確認是否符合其預期的設定。
依預設會在虛擬機器中停用此功能,您可加以開啟或關閉。 如需詳細資訊,請參閱 dm-verity。
信賴平台模組 (TPM)
信賴平台模組 (TPM) 技術旨在提供硬體的安全性相關功能。 TPM 晶片是一種安全的密碼編譯處理器,其設計目的是執行密碼編譯作業。 此晶片包含多個實體安全性機制,使得它具備防竄改功能,在 TPM 安全性功能的加持下,惡意程式碼軟體便無法進行竄改。
EFLOW 虛擬機器不支援 vTPM。 不過,用戶可以啟用/停用 TPM 傳遞功能,讓 EFLOW 虛擬機能夠使用 Windows 主機 OS TPM。 這可以支援兩個主要案例:
- 對使用裝置佈建服務 (DPS) 的 IoT Edge 裝置佈建使用 TPM 技術。 如需詳細資訊,請參閱使用 TPM 大規模建立和佈建 IoT Edge for Linux on Windows 裝置。
- 對儲存在 TPM 內部的密碼編譯金鑰的唯讀存取權。 如需詳細資訊,請參閱 Set-EflowVmFeature 以啟用 TPM 傳遞。
保護主機與虛擬機器的通訊
EFLOW 藉由公開豐富的 PowerShell 模組實作,提供了多種與虛擬機器互動的方式。 如需詳細資訊,請參閱適用於 IoT Edge for Linux on Windows 的 PowerShell 函式。 此模組需要提升權限的工作階段才能執行,且需使用 Microsoft Corporation 憑證加以簽署。
Windows 主機作業系統與 PowerShell Cmdlet 所需的 EFLOW 虛擬機器之間的所有通訊,都是使用 SSH 通道來完成的。 根據預設,虛擬機器 SSH 服務不允許透過使用者名稱和密碼進行驗證,而僅限使用憑證驗證。 憑證會在 EFLOW 部署程序期間建立,且對每個 EFLOW 安裝而言都是唯一的。 此外,為了防止 SSH 暴力密碼破解攻擊,如果虛擬機每分鐘嘗試連線超過三個連線至 SSH 服務,就會封鎖 IP 位址。
在 EFLOW 連續發行 (CR) 版本中,我們為用來建立 SSH 連線的傳輸通道導入了變更。 原先,SSH 服務執行於 TCP 連接埠 22 上,而相同網路中所有對該連接埠使用 TCP 通訊端的外部裝置,都可存取該連接埠。 基於安全考量,EFLOW CR 會透過 Hyper-V 通訊端執行 SSH 服務,而非一般 TCP 通訊端。 透過 Hyper-V 通訊端的所有通訊都會在 Windows 主機 OS 與 EFLOW 虛擬機器之間執行,而不使用網路。 這會限制 SSH 服務的存取,限定只能連線至 Windows 主機 OS。 如需詳細資訊,請參閱 Hyper-V 通訊端。
下一步
深入了解 Windows IoT 安全性內部部署
隨時掌握最新的 IoT Edge for Linux on Windows 更新。