適用於儲存體的 Defender 中的惡意程式碼掃描
適用於儲存體的 Defender 中的惡意程式碼掃描可透過使用 Microsoft Defender 防毒軟體功能,針對上傳的內容執行幾乎即時的完整惡意程式碼掃描,以協助保護您的 Azure Blob 儲存體免於惡意內容。 其設計目的是為了協助滿足處理不受信任內容的安全性與合規性需求。
惡意程式碼掃描功能是無代理程式 SaaS 解決方案,可大規模進行簡單的設定,且零維護,並支援大規模自動回應。
惡意程式碼上傳是雲端儲存空間最大的威脅
上傳至雲端儲存體的內容可能是惡意程式碼。 儲存體帳戶可以是組織的惡意程式碼進入點和惡意程式碼發佈點。 若要保護組織免受此威脅,雲端儲存體中的內容必須先掃描惡意程式碼,才能存取。
適用於儲存體的 Defender 中的惡意程式碼掃描,可協助保護儲存體帳戶免受惡意內容影響
- 內建的 SaaS 解決方案,允許零維護大規模啟用簡單功能。
- 使用 Microsoft Defender 防毒軟體 (MDAV) 的 完整反惡意程式碼功能,攔截多型和變質惡意程式碼。
- 掃描每個檔案類型 (包括 zip 檔案的封存),並對每次掃描傳回結果。 檔案大小限制為 2 GB。
- 支援大規模回應 - 根據 blob 索引標籤或事件方格事件,刪除或隔離可疑檔案。
- 當惡意程式碼掃描識別惡意檔案時,會產生詳細的適用於雲端的 Microsoft Defender 安全性警示。
- 旨在協助滿足安全性與合規性需求,掃描上傳至儲存體的不受信任內容,包括記錄每次掃描結果的選項。
常見的使用案例
適用於儲存體的 Defender 中惡意程式碼掃描的常見使用案例,包括:
Web 應用程式:許多雲端 Web 應用程式允許使用者上傳內容至儲存體。 這讓稅務應用程式、CV 上傳 HR 網站和收據上傳等應用程式,得以低維護且儲存體可調整。
內容保護:影片和相片等資產常常在內部和外部合作對象之間大規模共用與發布。 CDN (內容傳遞網路) 和內容中樞是傳統惡意程式碼發佈機會。
合規性需求:遵守合規性標準的資源如NIST、SWIFT、GDPR 等,需要強固的安全性做法,其中包含惡意程式碼掃描。 這對於在受管制產業或區域中營運的組織而言至關重要。
第三方整合:第三方資料可能來自各種不同的來源,例如企業合作夥伴、開發人員和承包商,且並非所有資料都會有強固的安全性做法。 掃描惡意程式碼有助於確保此資料不會對您的系統帶來安全性風險。
共同作業平台:類似檔案共用,小組使用雲端儲存來進行持續的內容共用,並跨小組與組織共同作業。 掃描惡意程式碼以確保安全的共同作業。
資料管線:資料透過 ETL (擷取、移轉、載入) 流程移動,可能來自各種來源,且包含惡意程式碼。 掃描惡意程式碼有助於確保這些管線的完整性。
機器學習訓練資料:訓練資料的品質與安全性對於有效的機器學習模型來說至關重要。 請務必確保這些資料集是乾淨且安全的,特別是如果包含來自外部來源的使用者產生的內容或資料。
注意
惡意程式碼掃描是近乎即時服務的。 掃描時間可能有所不同,端視掃描的檔案大小或檔案類型以及服務或儲存體帳戶的負載而定。 Microsoft 正持續努力減少整體掃描時間,不過,在設計以服務為基礎的使用者體驗時,您應該將掃描時間的變化納入考慮。
必要條件
若要啟用和設定惡意程式碼掃描,您必須為擁有者角色 (例如訂用帳戶擁有者或儲存體帳戶擁有者) 或具有必要資料動作的特定角色。 深入了解必要的權限。
您可以針對您的訂用帳戶大規模啟用和設定惡意程式碼掃描,同時針對個別儲存體帳戶的功能設定維持細微控制。 有數種方法可以啟用和設定惡意程式碼掃描:Azure 內建原則 (建議方法),以程式設計方式使用基礎結構作為程式碼範本,包括 Terraform、Bicep 和 ARM 範本,使用 Azure 入口網站或直接使用 REST API。
惡意程式碼掃描如何運作
上傳時惡意程式碼掃描
上傳時觸發程式
任何導致 BlobCreated
事件的作業都會在受保護的儲存體帳戶中觸發惡意程式碼掃描功能,如 Azure Blob 儲存體作為事件方格來源 頁面中指定的那樣。 這些作業包括新 Blob 的初始上傳、覆寫現有的 Blob,以及透過特定作業完成 Blob 的變更。 完成作業可能牽涉到 PutBlockList
,這會從多個區塊或組合區塊 Blob,或者 FlushWithClose
,以提交附加到 Azure Data Lake Storage Gen2 中 Blob 的資料。
注意
Azure Data Lake Storage Gen2 中的 AppendFile
和 Azure BlockBlob 中的 PutBlock
等累加作業,可允許在不立即完成的情況下新增資料,請勿自行觸發惡意程式碼掃描功能。 只有在正式提交這些新增項目時,才會起始惡意程式碼掃描功能:FlushWithClose
提交並完成 AppendFile
作業、觸發掃描,以及在 BlockBlob 中 PutBlockList
提交區塊,起始掃描。 了解這項區別對於有效管理掃描成本來說十分重要,因為每個提交都可能導致新的掃描,並可能會因為多次掃描累加更新的資料而增加費用。
掃描區域和資料保留
使用 Microsoft Defender 防毒軟體技術的惡意程式碼掃描服務會讀取 Blob。 惡意程式碼掃描在「記憶體內」掃描內容,並在掃描後立即刪除掃描的檔案。 不會保留內容。 掃描會在儲存體帳戶的相同區域內進行。 在某些情況下,當檔案可疑且需要更多資料時,惡意程式碼掃描可能會與適用於端點的 Microsoft Defender 共用掃描區域以外的檔案中繼資料,包括分類為客戶資料的中繼資料 (例如 SHA-256 摘要)。
存取客戶資料
惡意程式碼掃描服務需要存取您的資料,才能掃描您的資料是否存在惡意程式碼。 服務啟用期間,會在您的 Azure 訂用帳戶中建立名為 StorageDataScanner 的新資料掃描器資源。 此資源會被授與儲存體 Blob 資料擁有者角色指派,以存取和變更您的資料,以進行惡意程式碼掃描和敏感資料探索。
支援現成的私人端點
適用於儲存體的 Defender 中的惡意程式碼掃描在儲存體帳戶中獲得支援,在使用私人端點的同時,維持資料的隱私權。
私人端點為您的 Azure 儲存體服務提供安全的連線,並排除公用網路暴露,並被視為最佳做法。
惡意程式碼掃描的設定
啟用惡意程式碼掃描時,您的環境會自動執行下列動作:
針對您啟用惡意程式碼掃描的每個儲存體帳戶,會在儲存體帳戶的相同資源群組中建立事件方格系統主題資源,由惡意程式碼掃描服務用來接聽 Blob 上傳觸發程式。 去除此資源會中斷惡意程式碼掃描功能。
若要掃描您的資料,惡意程式碼掃描服務需要存取您的資料。 在服務啟用期間,會在您的 Azure 訂用帳戶中建立名為
StorageDataScanner
的新資料掃描器資源,並使用系統指派的受控識別來指派。 此資源會獲授與儲存體 Blob 資料擁有者角色指派,允許其存取您的資料,以供惡意程式碼掃描和敏感資料探索之用。
如果您的儲存體帳戶 [網路設定] 設為 [啟用所選虛擬網路的公用網路存取] 和 [IP 尋址],StorageDataScanner
資源會新增至儲存體帳戶 [網路設定] 底下的 [資源實例] 區段,以允許存取並掃描您的資料。
如果您要在訂用帳戶層級啟用惡意程式碼掃描,則會在您的 Azure 訂用帳戶中建立名為 StorageAccounts/securityOperators/DefenderForStorageSecurityOperator
的新安全性操作員資源,並指派系統管理的身分識別。 此資源可用來在現有的儲存體帳戶上啟用和修復適用於儲存體的 Defender 以及惡意程式碼掃描設定,並檢查建立於啟用之訂用帳戶中的新儲存體帳戶。 此資源具有角色指派,其中包含啟用惡意程式碼掃描所需的特定權限。
注意
惡意程式碼掃描取決於特定資源、身分識別和網路設定,才能正常運作。 如果您修改或刪除其中任何一項,惡意程式碼掃描將會停止運作。 若要還原其正常作業,您可以再次將其關閉並開啟。
提供掃描結果
惡意程式碼掃描的掃描結果可透過四種方法取得。 設定之後,針對儲存體帳戶中每個上傳和掃描的檔案,您會看到掃描結果以 blob 索引標籤顯示,而當檔案識別為惡意時,會以適用於雲端的 Microsoft Defender 安全性警示顯示。
您可以選擇設定額外的掃描結果方法,例如事件方格和 Log Analytics;這些方法需要額外的設定。 在下一節中,您將學習不同的掃描結果方法。
掃描結果
Blob 索引標籤
Blob 索引標籤是 Blob 上的中繼資料欄位。 其使用索引鍵/值標記屬性,將儲存體帳戶中的資料分類。 這些標記會自動編製索引,並公開為可搜尋的多維度索引,以便輕鬆地尋找資料。 掃描結果精簡,顯示 Blob 中繼資料中惡意程式碼掃描的掃描結果和惡意程式碼掃描的掃描時間 UTC。 其他結果類型 (警示、事件、記錄) 提供有關惡意程式碼類型和檔案上傳作業的詳細資訊。
應用程式可以使用 Blob 索引標籤來自動化工作流程,但無法防止竄改。 深入了解設定回應。
注意
索引標籤的存取需要權限。 如需詳細資訊,請參閱擷取、準備和更新 Blob 索引標籤。
適用於雲端的 Defender 安全性警示
偵測到惡意檔案時,適用於雲端的 Microsoft Defender 會產生適用於雲端的 Microsoft Defender 安全性警示。 若要查看警示,前往適用於雲端的 Microsoft Defender 安全性警示。 安全性警示包含檔案的詳細資料和內容、惡意程式碼類型,以及建議的調查和補救步驟。 若要使用這些警示進行補救,您可以:
- 瀏覽至適用於雲端的 Microsoft Defender>安全性警示,在 Azure 入口網站中檢視安全性警示。
- 根據這些警示設定自動化。
- 將安全性警示匯出至 SIEM。 您可以使用 Microsoft Sentinel 連接器,或您選擇的另一個 SIEM,持續匯出安全性警示 Microsoft Sentinel (Microsoft 的 SIEM)。
深入了解回應安全性警示。
事件方格事件
事件方格有助於事件驅動的自動化。 這是以事件形式取得結果且最小延遲的最快方法,您可以將其用於自動化回應。
來自事件方格自訂主題的事件可由多個端點類型取用。 惡意程式碼掃描案例最有用的是:
- 函數應用程式 (先前稱為 Azure 函式) 使用無伺服器函式來執行自動回應的程式碼,例如行動、刪除或隔離。
- Webhook-與應用程式連線。
- 事件中樞和服務匯流排佇列 - 通知下游消費者。
了解如何設定惡意程式碼掃描,讓每個掃描結果自動傳送至事件方格主題以進行自動化。
記錄分析
您可能會想要記錄掃描結果,以取得合規性證明或調查掃描結果。 藉由設定 Log Analytics 工作區目的地,您可以將每個掃描結果儲存在易於查詢的集中式記錄存放庫中。 您可以瀏覽至 Log Analytics 目的地工作區並尋找StorageMalwareScanningResults
資料表,以檢視結果。
深入了解為惡意程式碼掃描設定記錄。
提示
我們邀請您透過實作教室,探索適用於儲存體的 Defender 中的惡意程式碼掃描功能。 請遵照忍者訓練 (英文) 指示,以取得有關如何設定和測試惡意程式碼掃描端對端的詳細逐步指南,包含設定掃描結果的回應。 這是「實驗室」專案的一部分,可協助客戶熟悉適用於雲端的 Microsoft Defender,並提供其功能的實際操作體驗。
成本控制
惡意程式碼掃描會按每 GB 掃描計費。 為了提供成本可預測性,惡意程式碼掃描支援每個儲存體帳戶在單月掃描的 GB 數量上設定上限。
重要
適用於儲存體的 Defender 中的惡意程式碼掃描並非免費包含在前 30 天試用期內,而且會根據適用於雲端的 Defender 定價頁面上提供的定價方案,從第一天開始收費。
「上限」機制旨在為每個儲存體帳戶設定每月掃描限制,以 GB 為單位,作為有效的成本控制方式。 如果儲存體帳戶已為單一日曆月份建立了預先定義的掃描限制,則掃描作業會在達到此閾值後自動停止 (最多 20 GB 誤差),不再掃描檔案是否有惡意程式碼。 每個月結束時會在 UTC 午夜重設上限。 更新端點通常需要一小時才會生效。
如果未定義特定的上限機制,則預設為建立 5 TB (5,000 GB) 的限制。
提示
您可以在個別儲存體帳戶或整個訂用帳戶上設定上限機制 (訂用帳戶上的每個儲存體帳戶都會配置訂用帳戶層級上定義的限制)。
請依照下列步驟設定上限機制。
惡意程式碼掃描的其他成本
惡意程式碼掃描使用其他 Azure 服務作為其基礎。 這表示當您啟用惡意程式碼掃描時,也會因其所需的 Azure 服務而向您收費。 這些服務包括 Azure 儲存體讀取作業、Azure 儲存體 Blob 索引編製以及 Azure 事件方格通知。
處理可能的誤判為真和誤判為否
如果您懷疑一個檔案可能是惡意程式碼,但未偵測到 (誤判為否) 或未正確偵測 (誤判為真),則您可以透過樣本提交入口網站提交檔案以進行分析。 選取 [適用於儲存體的 Microsoft Defender] 作為來源。
適用於雲端的 Defender 可讓您隱藏誤判為真的警示。 請務必使用惡意程式碼名稱或檔案摘要來限制歸併規則。
惡意程式碼掃描不會自動封鎖對上傳 Blob 的存取或變更權限,即使它是惡意的。
限制
不支援的功能和服務
不支援的儲存體帳戶:惡意程式碼掃描不支援舊版 v1 儲存體帳戶。
不支援的服務:惡意程式碼掃描不支援 Azure 檔案儲存體。
不支援的用戶端:使用網路文件系統 (NFS) 3.0 通訊協定上傳的 Blob 將不會在上傳時掃描是否有惡意程式碼。
不支持的區域:Jio 印度西部、南韓南部、南非西部。
適用於儲存體的 Defender 所支援的區域,但並非惡意程式碼掃描支援。 深入了解適用於儲存體的 Defender 可用性。
不支援的 Blob 類型:惡意程式碼掃描不支援附加和分頁 Blob。
不支援的加密:由於無法在服務掃描之前進行解密,故不支援用戶端加密的 Blob。 不過,支援由客戶管理密鑰 (CMK) 加密待用的數據。
不支援的索引標籤結果:已啟用階層命名空間的儲存體帳戶不支援索引標籤掃描結果 (Azure Data Lake Storage Gen2)。
事件方格:適用於儲存體的 Defender 中的惡意程式碼掃描,並不支援未啟用公用網路存取 (亦即私人端點連線) 的事件方格主題。
輸送量容量和 Blob 大小限制
- 掃描輸送量速率限制:每個儲存體帳戶的惡意程式碼掃描每分鐘最多可以處理 2 GB。 如果儲存體帳戶的檔案上傳速率暫時超過這個閾值,系統會嘗試以超過的速率限制來掃描檔案。 如果檔案上傳的速率一直超過此閾值,則不會掃描某些 Blob。
- Blob 掃描限制:每個儲存體帳戶的惡意程式碼掃描每分鐘最多可處理 2,000 個檔案。 如果儲存體帳戶的檔案上傳速率暫時超過這個閾值,系統會嘗試以超過的速率限制來掃描檔案。 如果檔案上傳的速率一直超過此閾值,則不會掃描某些 Blob。
- Blob 大小限制:掃描單一 Blob 的大小上限為 2 GB。 不會掃描大於限制的 Blob。
Blob 上傳和索引標籤更新
將 Blob 上傳至儲存體帳戶時,惡意程式碼掃描會啟動額外的讀取作業,並更新索引標記。 在大部分案例中,這些作業不會產生大量負載。
對存取和儲存體 IOPS 的影響
儘管掃描流程在進行,但不影響上傳資料的存取,而且對儲存體每秒輸入/輸出作業 (IOPS) 的影響也是最小。
與適用於端點之 Microsoft Defender 相比的限制
適用於儲存體的 Defender 會使用與適用於端點之 Defender 相同的反惡意程式碼引擎和最新簽章來掃描惡意程式碼。 不過,當檔案上傳至 Azure 儲存體時,它們缺少反惡意程式碼引擎相依的特定中繼資料。 與適用於端點的 Defender 偵測到的情況相比,缺少中繼資料可能會導致 Azure 儲存體中遺漏的偵測率較高,稱為「誤判」。
以下是遺漏中繼資料的一些範例:
Web 標記 (MOTW):MOTW 是一項 Windows 安全性功能,可追蹤從網際網路下載的檔案。 不過,當檔案上傳至 Azure 儲存體時,不會保留此中繼資料。
檔案路徑內容:在標準作業系統上,檔案路徑可以提供額外內容以進行威脅偵測。 例如,嘗試修改系統位置的檔案 (例如 C:\Windows\System32) 會標示為可疑,並會進行更深入的分析。 在 Azure 儲存體中,無法以相同方式使用 Blob 內特定檔案路徑的內容。
行為資料:適用於儲存體的 Defender 會分析檔案內容,而不執行檔案。 它會檢查檔案,並可能模擬其執行來檢查惡意程式碼。 不過,此方法可能不會偵測某些類型的惡意程式碼,這些惡意程式碼只會在執行期間顯示其惡意性質。
下一步
深入了解如何設定惡意程式碼掃描結果的回應。