分享方式:


將您的 Machine Learning (ML) 帶到 Microsoft Sentinel 中

注意

如需美國政府雲端中功能可用性的相關資訊,請參閱美國政府客戶的雲端功能可用性中的 Microsoft Sentinel 資料表。

Machine Learning (ML) 是 Microsoft Sentinel 的一大基礎,也是讓它與眾不同的一大屬性。 Microsoft Sentinel 以多種體驗來提供 ML:內建於 Fushion 相互關聯引擎、 Jupyter Notebook 和最新推出的自備機器學習 (BYO ML) 平台。

ML 偵測模型可以適應個別的環境和使用者行為變更,以減少誤判為真的錯誤,並識別傳統方法找不到的威脅。 許多安全性組織都明白 ML 對於安全性的價值,但這些組織大多都沒有具備安全性與 ML 專業知識的專家。 我們設計了本文所述的架構,幫助安全性組織和專業人員與我們一起在 ML 探索之旅中成長。 不熟悉 ML 或缺乏必要專業知識的組織,可以透過 Microsoft Sentinel 的內建 ML 功能獲得顯著的保護價值。

machine learning framework

什麼是自備機器學習 (BYO-ML) 平台?

對於具備 ML 資源,而且想要針對自身獨特業務需求建立自訂 ML 模型的組織,我們提供 BYO-ML 平台。 此平台利用 Azure Databricks/Apache Spark 環境和 Jupyter Notebook 來產生 ML 環境。 平台包含以下元件:

  • BYO-ML 套件,其中包含可協助您存取資料並將結果推送回 Log Analytics (LA) 的程式庫,以便您將結果與您的偵測、調查和搜捕整合。

  • ML 演算法範本可供您進行自訂,以應對您組織中的特定安全性問題。

  • 用來定型模型和排程模型評分的 Notebook 範例。

除了這些元件之外,您還可以自備 ML 模型和/或 Spark 環境以和 Microsoft Sentinel 整合。

透過 BYO-ML 平台,您可以開始建立自己的 ML 模型:

  • 包含範例資料的筆記本可幫助您獲得端對端的實作體驗,而不必擔心如何處理生產資料。

  • 與 Spark 環境整合的套件可降低管理基礎結構的挑戰和阻礙。

  • 程式庫可支援資料移動。 訓練和評分筆記本提供端對端的體驗,可作為範本來幫助您適應環境。

使用案例

BYO-ML 平台和套件可大幅減少您建置自己的 ML 偵測所需的時間和精力,並充分發揮解決 Microsoft Sentinel 中特定安全性問題的功能。 此平台支援下列使用案例:

將 ML 演算法定型以取得自訂模型:您可以用現有的 ML 演算法 (由 Microsoft 或使用者社群分享),以自己的資料將 ML 演算法輕鬆定型,以取得更符合您資料和環境的自訂 ML 模型。

修改 ML 演算法範本以取得自訂模型:您可以修改 ML 演算法範本 (由 Microsoft 或使用者社群分享),然後用自己的資料將修改過的演算法定型,藉此產生自訂模型以應對您的特定問題。

建立您自己的模型:利用 Microsoft Sentinel 的 BYO-ML 平台和公用程式從頭開始建立您自己的模型。

整合 Databricks/Spark 環境:將您現有的 Databricks/Spark 環境整合到 Microsoft Sentinel 中,然後使用 BYO-ML 程式庫和範本以根據其個別情況建立 ML 模型。

匯入您自己的 ML 模型:您可以匯入自己的 ML 模型,並使用 BYO-ML 平台和公用程式將模型與 Microsoft Sentinel 整合。

分享 ML 演算法:分享 ML 演算法,讓社群使用並進行調整。

利用 ML 來強化 SecOps:利用您的自訂 ML 模型和結果來進行搜捕、偵測、調查和回應。

本文會介紹 BYO-ML 平台的元件,並說明如何利用平台和異常資源存取演算法,以透過 Microsoft Sentinel 提供自訂的 ML 偵測。

Azure Databricks/Spark 環境

Apache Spark 提供統一的架構來建置資料管線,可大簡化幅巨量資料。 Azure Databricks 則透過提供以 Spark 為基礎建立的零管理雲端平台,進一步發揮這項功能。 針對 BYO-ML 平台,建議您使用 Databricks,以便您專心尋找對企業產生立竿見影之效的解方,而無需分心解決資料管線和平台問題。

如果您已擁有 Databricks 或其他 Spark 環境,而且比較想使用現有的設定,一樣可以搭配 BYO-ML 套件使用。

BYO-ML 套件

在安全性方面,BYO ML 套件包含 Microsoft 在 ML 前端的最佳做法和研究。 在此套件中,我們針對安全性問題提供下列公用程式、筆記本和演算法範本。

檔案名稱 描述
azure_sentinel_utilities.whl 包含可從 Azure 讀取 Blob 並寫入 Log Analytics 的公用程式。
AnomalousRASampleData 示範如何在 Microsoft Sentinel 中,利用生成的定型和測試範例資料來使用異常資源存取模型的筆記本。
AnomalousRATraining.ipynb 用來定型演算法、建立並儲存模型的筆記本。
AnomalousRAScoring.ipynb 用來安排模型執行、將結果視覺化,並將分數寫回 Microsoft Sentinel 的筆記本。

我們所提供的第一個 ML 演算法範本適用於異常資源存取偵測。 此範本以協同篩選演算法為基礎,並利用 Windows 檔案共用存取記錄進行定型 (事件識別碼為 5140 的安全性事件)。 針對此記錄中的模型,您所需要的關鍵資訊,是使用者與已存取資源的配對。

範例逐步解說:異常檔案共用存取偵測

既然您已熟悉 BYO-ML 平台的主要元件,以下範例會告訴您如何使用平台和元件來傳遞自訂 ML 偵測。

設定 Databricks/Spark 環境

如果您還沒有 Databricks 環境,必須先自行設定該環境。 如需指示,請參閱 Databricks 快速入門文件。

自動匯出指令

若要在 Microsoft Sentinel 中以自己的資料建立自訂 ML 模型,您必須將資料從 Log Analytics 匯出至 Blob 儲存體或事件中樞資源,以便 ML 模型透過 Databricks 進行存取。 學習如何將資料內嵌至 Microsoft Sentinel

在此範例中,您的 Azure Blob 儲存體中必須要有檔案共用存取記錄的定型資料。 資料的格式會記錄在筆記本和程式庫中。

您可以使用 Azure CLI 以從 Log Analytics 自動匯出資料。

您必須在您的 Log Analytics 工作區、儲存體帳戶和 EventHub 資源中獲指派為參與者的角色,才能執行命令。

以下是設定自動匯出所需的命令集範例:


az –version

# Login with Azure CLI
az login

# List all Log Analytics clusters
az monitor log-analytics cluster list

# Set to specific subscription
az account set --subscription "SUBSCRIPTION_NAME"
 
# Export to Storage - all tables
az monitor log-analytics workspace data-export create --resource-group "RG_NAME" --workspace-name "WS_NAME" -n LAExportCLIStr --destination "DESTINATION_NAME" --enable "true" --tables SecurityEvent
 
# Export to EventHub - all tables
az monitor log-analytics workspace data-export create --resource-group "RG_NAME" --workspace-name "WS_NAME" -n LAExportCLIEH --destination "DESTINATION_NAME" --enable "true" --tables ["SecurityEvent","Heartbeat"]

# List export settings
az monitor log-analytics workspace data-export list --resource-group "RG_NAME" --workspace-name "WS_NAME"

# Delete export setting
az monitor log-analytics workspace data-export delete --resource-group "RG_NAME" --workspace-name "WS_NAME" --name "NAME"

匯出自訂資料

針對 Log Analytics 自動匯出功能不支援的自訂資料,您可以使用邏輯應用程式或其他解決方案來移動這些資料。 您可以參考將 Log Analytics 資料匯出至 Blob 存放區部落格和指令碼。

與 Microsoft Sentinel 外部的資料相互關聯

您也可以將資料從 Microsoft Sentinel 外部帶入 Blob 儲存體或事件中樞,並將其與 Microsoft Sentinel 的資料相互關聯以建立 ML 模型。

從上文所述的 Microsoft Sentinel GitHub 存放庫中,將 BYO-ML 套件複製到 Databricks 環境中。 接下來,開啟筆記本,並根據筆記本內的指示,在叢集上安裝必要的程式庫。

模型定型和評分

遵循兩個筆記本中的指示以根據自己的環境與資源變更設定,遵循定型和建立模型的步驟,然後安排該模型為傳入的檔案共用存取記錄進行評分。

將結果寫入 Log Analytics

安排評分之後,您可以使用評分筆記本中的模組,將評分結果寫入與 Microsoft Sentinel 執行個體相關聯的 Log Analytics 工作區。

在 Microsoft Sentinel 中查看結果

若要查看評分結果和相關的記錄詳細資訊,請返回您的 Microsoft Sentinel 入口網站。 在 [記錄]>[自訂記錄] 中,您會看到 AnomalousResourceAccessResult_CL (或您的自訂資料表名稱) 資料表中的結果。 您可以使用這些結果來加強調查和搜捕的體驗。

anomalous resource access logs

利用 ML 結果建立自訂分析規則

確定 ML 結果位於自訂記錄資料表中,並且對分數的忠實度感到滿意後,您就可以根據結果來建立偵測。 從 Microsoft Sentinel 入口網站移至 [分析],然後建立新的偵測規則。 以下範例顯示用來建立偵測的查詢。

create custom analytics rule for B Y O M L detections

檢視和回應事件

根據 ML 結果設定分析規則之後,如果查詢的結果超過您設定的閾值,就會在 Microsoft Sentinel 的 [事件] 頁面上產生並呈現一個事件。

下一步

在本文件中,您已了解如何使用 Microsoft Sentinel 的 BYO-ML 平台來建立或匯入您自己的機器學習演算法,以分析資料並偵測威脅。