用于创建 Microsoft Sentinel 自定义连接器的资源
Microsoft Sentinel 提供各种适用于 Azure 服务和外部解决方案的现成可用连接器,还支持从某些来源引入数据,无需使用专用连接器。
如果你无法使用任何可用的现有解决方案将数据源连接至 Microsoft Sentinel,请考虑创建自己的数据源连接器。
有关支持的连接器的完整列表,请参阅查找 Microsoft Sentinel 数据连接器。
自定义连接器方法对比
下表对本文介绍的每种创建自定义连接器的方法的基本详细信息进行对比。 如需每种方法的更多详细信息,请选择表中的链接。
方法说明 | 功能 | 无服务器 | 复杂性 |
---|---|---|---|
Azure Monitor 代理 最适合从本地和 IaaS 源收集文件 |
文件收集,数据转换 | 否 | 低 |
Logstash 最适合用于本地和 IaaS 源、任何有可用插件的源,以及已熟悉 Logstash 的组织 |
支持 Azure Monitor 代理的所有功能 | 否;需要 VM 或 VM 群集才能运行 | 低;支持许多使用插件的方案 |
逻辑应用程序 高成本;避免大量数据 最适合用于低数据量的云源 |
无代码编程可实现有限的灵活性,不支持实现算法。 没有任何可用操作已支持你的需求时,创建自定义操作可能会增加复杂性。 |
是 | 低;简单、无代码的开发 |
PowerShell 最适合用于建立原型和定期文件上传 |
直接支持文件收集。 可以使用 PowerShell 来收集更多的源,但需要编码脚本以及将脚本配置为服务。 |
否 | 低 |
Log Analytics API 最适合用于实现集成的 ISV,以及用于独特的收集需求 |
支持所有通过代码提供的功能。 | 取决于实现 | 高 |
Azure Functions 最适合用于大数据量的云源,以及用于独特的收集需求 |
支持所有通过代码提供的功能。 | 是 | 高;需要编程知识 |
提示
有关将逻辑应用和 Azure Functions 用于同一连接器的比较,请参阅:
- 将 Fastly Web 应用程序防火墙日志引入 Microsoft Sentinel
- Office 365(Microsoft Sentinel GitHub 社区):逻辑应用连接器 | Azure Function 连接器
使用 Azure Monitor 代理进行连接
如果数据源以文本文件的形式交付事件,则建议使用 Azure Monitor 代理创建自定义连接器。
有关详细信息,请参阅使用 Azure Monitor 代理从文本文件收集日志。
有关此方法的示例,请参阅使用 Azure Monitor 代理从 JSON 文件收集日志。
使用 Logstash 进行连接
如果熟悉 Logstash,你可将 Logstash 与适用于 Microsoft Sentinel 的 Logstash 输出插件结合使用,以创建自定义连接器。
利用 Microsoft Sentinel Logstash 输出插件,你可使用任何 Logstash 输入和筛选插件,并将 Microsoft Sentinel 配置为 Logstash 管道的输出。 Logstash 有一个大型插件库,其中的插件支持从各种源(例如,事件中心、Apache Kafka、文件、数据库和云服务)进行输入。 使用筛选插件可以分析事件、筛选不必要的事件、混淆值,等等。
如需使用 Logstash 作为自定义连接器的示例,请参阅:
如需实用 Logstash 插件的示例,请参阅:
提示
利用 Logstash,你还可以使用群集进行大规模数据收集。 有关详细信息,请参阅大规模使用负载平衡的 Logstash VM。
使用逻辑应用进行连接
使用 Azure 逻辑应用创建适用于 Microsoft Sentinel 的无服务器自定义连接器。
注意
使用逻辑应用创建无服务器的连接器可能很方便,但数据量较大时,将逻辑应用用于连接器的成本可能很高。
建议仅将此方法用于低数据量的数据源,或者用于扩充数据上传。
使用以下触发器之一启动逻辑应用:
触发器 说明 重复性任务 例如,编制逻辑应用的计划,定期从特定文件、数据库或外部 API 检索数据。
有关详细信息,请参阅在 Azure 逻辑应用中创建、计划和运行重复性任务与工作流。按需触发 按需运行逻辑应用,以进行手动数据收集和测试。
有关详细信息,请参阅使用 HTTPS 终结点调用、触发或嵌套逻辑应用。HTTP/S 终结点 建议用于流式处理,并在源系统可以启动数据传输的情况下使用。
有关详细信息,请参阅通过 HTTP 或 HTTPS 调用服务终结点。使用任何可读取信息的逻辑应用连接器获取事件。 例如:
提示
用于 REST API、SQL Server 和文件系统的自定义连接器还支持从本地数据源检索数据。 有关详细信息,请参阅安装本地数据网关文档。
准备要检索的信息。
例如,使用分析 JSON 操作可以访问 JSON 内容中的属性,因此在为逻辑应用指定输入时,能够从动态内容列表中选择这些属性。
有关详细信息,请参阅在 Azure 逻辑应用中执行数据操作。
将数据写入 Log Analytics。
有关详细信息,请参阅Azure Log Analytics 数据收集器文档。
有关如何使用逻辑应用为 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 工作区的 ID。 查找工作区 ID 和密钥。 |
WorkspaceKey | 要在其中存储数据的 Microsoft Sentinel 工作区的主密钥或辅助密钥。 查找工作区 ID 和密钥。 |
LogTypeName | 要在其中存储数据的自定义日志表的名称。 后缀 _CL 会自动添加到表名末尾。 |
AddComputerName | 存在此参数时,脚本会将当前计算机名称添加到每条日志记录中名为 Computer 的字段。 |
TaggedAzureResourceId | 存在此参数时,脚本会将所有已上传的日志记录与指定的 Azure 资源关联。 此项关联使上传的日志记录支持资源上下文查询,并遵循以资源为中心、基于角色的访问控制。 |
AdditionalDataTaggingName | 存在此参数时,脚本会在每条日志记录中添加另一个字段,该字段具有配置的名称,并包含你为 AdditionalDataTaggingValue 参数配置的值。 在这种情况下,AdditionalDataTaggingValue 不能为空。 |
AdditionalDataTaggingValue | 存在此参数时,脚本会在每条日志记录中添加另一个字段,该字段包含配置的值,并具有你为 AdditionalDataTaggingName 参数配置的字段名。 如果 AdditionalDataTaggingName 参数为空,但配置了值,则默认字段名为 DataTagging。 |
查找工作区 ID 和密钥
在 Microsoft Sentinel 中查找 WorkspaceID 和 WorkspaceKey 参数的详细信息 :
在 Microsoft Sentinel 中,从左侧选择“设置”,然后选择“工作区设置”选项卡 。
在“开始使用 Log Analytics”>“1 连接数据源”下,选择“Windows 和 Linux 代理管理”。
在“Windows 服务器”选项卡上,找到你的工作区 ID、主密钥和辅助密钥。
使用 Log Analytics API 进行连接
通过使用 Log Analytics 数据收集器 API 直接调用 RESTful 终结点,可以将事件流式传输到 Microsoft Sentinel。
直接调用 RESTful 终结点需要较多的编程,但更加灵活。
有关详细信息,请参阅 Log Analytics 数据收集器 API,尤其是下列示例:
使用 Azure Functions 进行连接
将 Azure Functions 与 RESTful API 和各种编码语言(例如,PowerShell)结合使用,以创建无服务器的自定义连接器。
如需这种方法的示例,请参阅:
- 使用 Microsoft Sentinel 监视 Zoom(博客)
- 部署 Function App 以将 Office 365 管理 API 数据引入 Microsoft Sentinel(Microsoft Sentinel GitHub 社区)
分析自定义连接器数据
若要利用使用自定义连接器收集的数据,请开发高级安全信息模型 (ASIM) 分析程序以使用连接器。 通过使用 ASIM,Microsoft Sentinel 的内置内容可以使用你的自定义数据,使分析师可以更轻松地查询数据。
如果连接器方法允许,可以将部分分析作为连接器的一部分实现,以提高查询时分析性能:
- 如果你已使用 Logstash,请使用 Grok 筛选器插件来分析数据。
- 如果你已使用 Azure 函数,请使用代码分析数据。
你仍然需要实现 ASIM 分析程序,但直接使用连接器实现部分分析可简化分析并提高性能。
后续步骤
利用下列任何过程,使用已引入到 Microsoft Sentinel 的数据来保护环境:
此外,了解一个创建自定义连接器以监视 Zoom 的示例:使用 Microsoft Sentinel 监视 Zoom。