用於建立 Microsoft Sentinel 自訂連接器的資源

Microsoft Sentinel 提供各種適用於 Azure 服務和外部解決方案的內建連接器,也支在不使用專用連接器的狀況下從某些來源擷取資料。

如果您無法利用任何現有且可用的解決方案將資料來源連接到 Microsoft Sentinel,請考慮建立您自己的資料來源連接器。

如需受支援連接器的完整清單,請參閱部落格文章Microsoft Sentinel:連接器大全 (CEF、Syslog、Direct、Agent、Custom 等)

比較自訂連接器方法

下表會比較本文中所述的各種自訂連接器建立方法的基本詳細資訊。 請選取資料表中的連結以取得各方法的詳細資訊。

方法描述 功能 無伺服器 複雜度
無程式碼連接器平台 (CCP)
比起進階開發,最適合較少技術經驗的使用者來設定檔來建立 SaaS 連接器。
支援程式碼可用的所有功能。 低;簡單、無程式碼的開發
Log Analytics 代理程式
最適合從內部部署和 IaaS 來源收集檔案
限檔案集合
Logstash
最適合內部部署和 IaaS 來源、任何可使用外掛程式的來源,以及已經熟悉 Logstash 的組織
可用的外掛程式和自訂外掛程式提供顯著的彈性。 否,需要 VM 或 VM 叢集才能執行 低;支援許多外掛程式案例
Logic Apps
高成本;避免使用大量資料
最適合少量雲端來源
無程式碼程式設計只能提供有限的彈性,而且不支援實作演算法。

如果沒有可以支援您需求的可用動作,建立自訂動作可能會更複雜。
低;簡單、無程式碼的開發
PowerShell
最適用於原型設計和定期檔案上傳
直接支援檔案收集。

PowerShell 可收集更多來源,但需要撰寫程式碼並將指令碼設為服務。
Log Analytics API
最適合 ISV 實作整合和針對特殊的集合需求
支援程式碼可用的所有功能。 取決於實作
Azure Functions
最適合大量雲端來源,以及針對特殊的集合需求
支援程式碼可用的所有功能。 高;需要程式設計知識

秘訣

如需針對相同連接器使用 Logic Apps 和 Azure Functions 的比較,請參閱:

使用無程式碼連接器平台來連線

無程式碼連接器平台 (CCP) 提供設定檔供客戶和合作夥伴使用,以部署到自己的工作區,或作為 Microsoft Sentinel 解決方案資源庫中的解決方案。

使用 CCP 所建立的連接器屬於完全的 SaaS (不需要安裝服務),並且還會包含來自 Microsoft Sentinel 的狀況監控和完整支援。

如需詳細資訊,請參閱為 Microsoft Sentinel 建立無程式碼連接器

使用 Log Analytics 代理程式來連線

如果您的資料來源用檔案來傳遞事件,建議您使用 Azure 監視器 Log Analytics 代理程式來建立自訂連接器。

使用 Logstash 來連線

如果您熟悉 Logstash,建議您使用 Logstash 中適用於 Microsoft Sentinel 的 Logstash 輸出外掛程式來建立自訂連接器。

透過 Microsoft Sentinel Logstash 輸出外掛程式,您可以使用任何 Logstash 輸入和篩選外掛程式,並將 Microsoft Sentinel 設定為 Logstash 管線的輸出。 Logstash 擁有巨大的外掛程式庫,可啟用各種來源的輸入,例如事件中樞、Apache Kafka、檔案、資料庫和雲端服務。 使用篩選外掛程式來剖析事件、篩選不必要的事件、混淆數值等等。

如需使用 Logstash 作為自訂連接器的範例,請參閱:

如需實用的 Logstash 外掛程式範例,請參閱:

秘訣

Logstash 也會使用叢集來啟用縮放資料收集。 如需詳細資訊,請參閱大規模使用負載平衡 Logstash VM

使用 Logic Apps 進行連線

使用 Azure Logic Apps,為 Microsoft Sentinel 建立無伺服器的自訂連接器。

注意

雖然使用 Logic Apps 建立無伺服器連接器很方便,但在使用大量資料的狀況下,針對連接器使用 Logic Apps 的成本可能會很高。

建議您只在使用低量資料來源時使用這個方法,或擴充您的資料上傳。

  1. 使用下列觸發程序之一來啟動 Logic Apps

    觸發程序 描述
    週期性工作 例如,安排邏輯應用程式定期從特定的檔案、資料庫或外部 API 中擷取資料。
    如需詳細資訊,請參閱在 Azure Logic Apps 中建立、排程及執行週期性工作和工作流程
    隨選觸發程序 視需要執行邏輯應用程式以進行手動資料收集和測試。
    如需詳細資訊,請參閱利用 HTTP 端點呼叫、觸發或巢狀邏輯應用程式
    HTTP/S 端點 建議用於串流處理,以及在來源系統可以啟動資料傳輸時使用。
    如需更多資訊,請參閱透過 HTTP 或 HTTPS 呼叫服務端點
  2. 使用任何能讀取資訊的邏輯應用程式連接器來取得事件。 例如:

    秘訣

    REST API、SQL Server 和檔案系統的自訂連接器也支援從內部部署的資料來源擷取資料。 如需詳細資訊,請參閱安裝內部部署資料閘道文件。

  3. 準備您想要擷取的資訊

    例如,使用剖析 JSON 動作來存取 JSON 內容中的屬性,以便在為邏輯應用程式指定輸入時,可以從動態內容清單中選取這些屬性。

    如需詳細資訊,請參閱在 Azure Logic Apps 中執行資料作業

  4. 將資料寫入 Log Analytics

    如需詳細資訊,請參閱 Azure Log Analytics 資料收集器文件。

如需使用 Logic Apps 為 Microsoft Sentinel 建立自訂連接器的範例,請參閱:

使用 PowerShell 連線

Upload-AzMonitorLog PowerShell 指令碼可讓您使用 PowerShell,從命令列中將事件或內容資訊串流至 Microsoft Sentinel。 此串流可在您的資料來源與 Microsoft Sentinel 之間有效地建立自訂連接器。

舉例來說,下列指令碼會將 CSV 檔案上傳至 Microsoft Sentinel:

Import-Csv .\testcsv.csv
| .\Upload-AzMonitorLog.ps1
-WorkspaceId '69f7ec3e-cae3-458d-b4ea-6975385-6e426'
-WorkspaceKey $WSKey
-LogTypeName 'MyNewCSV'
-AddComputerName
-AdditionalDataTaggingName "MyAdditionalField"
-AdditionalDataTaggingValue "Foo"

Upload-AzMonitorLog PowerShell 指令碼會使用下列參數:

參數 描述
WorkspaceId 您將用來儲存資料的 Microsoft Sentinel 工作區識別碼。 尋找您的工作區識別碼和金鑰
WorkspaceKey 您將用來儲存資料的 Microsoft Sentinel 工作區的主要或次要金鑰。 尋找您的工作區識別碼和金鑰
LogTypeName 您要拿來儲存資料的自訂記錄資料表名稱。 您資料表名稱的結尾後方會自動加上尾碼 _CL
AddComputerName 當此參數存在時,指令碼會目前的電腦名稱新增至每個記錄檔記錄中名為 Computer 的欄位。
TaggedAzureResourceId 當此參數存在時,指令碼會將所有上傳的記錄檔記錄與指定 Azure 資源產生關聯。

此關聯可以為資源內容查詢提供已上傳的記錄檔記錄,並遵守以資源為中心的角色型存取控制。
AdditionalDataTaggingName 當此參數存在時,指令碼會將另一個欄位新增至每個記錄檔記錄,其中包含已設定的名稱,以及針對 AdditionalDataTaggingValue 參數設定的值。

在此情況下,AdditionalDataTaggingValue 不得為空白。
AdditionalDataTaggingValue 當此參數存在時,指令碼會將另一個欄位新增至每個記錄檔記錄,其中包含已設定的值,以及針對 AdditionalDataTaggingName 參數設定的欄位名稱。

如果 AdditionalDataTaggingName 參數為空白,但已設定了一個值,則預設欄位的名稱為 DataTagging

尋找您的工作區識別碼和金鑰

在 Microsoft Sentinel 中尋找 WorkspaceIDWorkspaceKey 參數的詳細資料:

  1. 在 Microsoft Sentinel 中,選取左側的 [設定],然後選取 [工作區設定] 索引標籤。

  2. 在 [開始使用 Log Analytics]>[1 連接資料來源] 下方,選取 [Windows 和 Linux 代理程式管理]。

  3. 在 [Windows 伺服器] 索引標籤上尋找您的工作區識別碼、主要金鑰和次要金鑰。

使用 Log Analytics API 進行連線

您可以使用 Log Analytics 資料收集器 API 來直接呼叫 RESTful 端點,以將事件串流至 Microsoft Sentinel。

雖然直接呼叫 RESTful 端點需要更多程式設計,但這麼做可以提供更大的彈性。

如需詳細資訊,請參閱 Log Analytics 資料收集器 API,尤其是以下範例:

使用 Azure Functions 進行連線

搭配 RESTful API 和各種程式語言 (如 PowerShell) 來使用 Azure Functions 以建立無伺服器自訂連接器。

如需此方法的範例,請參閱:

剖析您的自訂連接器資料

若要使用自訂連接器收集到的資料,請開發進階安全性資訊模型 (ASIM) 剖析器來處理您的連接器。 使用 ASIM 可讓 Microsoft Sentinel 的內建內容使用您的自訂資料,讓分析師更能輕鬆查詢資料。

如果您的連接器方法允許,您可以實作部分的剖析作為連接器的一部分,以改善查詢時間剖析的效能:

  • 如果您已使用過 Logstash,請使用 Grok 篩選器外掛程式來剖析您的資料。
  • 如果您已使用過 Azure 函式,請使用程式碼來剖析您的資料。

您仍然需要實作 ASIM 剖析器,但直接使用連接器來實作部分的剖析,可簡化剖析工作並改善效能。

後續步驟

透過以下流程使用內嵌至 Microsoft Sentinel 的資料來保護您的環境:

此外,請深入了解建立自訂連接器以監視 Zoom 的一個範例:使用 Microsoft Sentinel 監視 Zoom