收集 Microsoft Sentinel 日志

支持的语言:

概览

此解析器从 Microsoft Sentinel JSON 日志中提取字段,执行 IP 地址提取和字符串操作等转换,并将提取的数据映射到 UDM,包括正文、目标、security_result 和元数据字段。它还可处理各种数据类型,并将提取的实体合并到 UDM 结构中。

准备工作

确保您满足以下前提条件:

  • Google SecOps 实例。
  • 对 Microsoft Sentinel 的访问权限。

设置 Feed

您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:

  • SIEM 设置 > Feed
  • 内容中心 > 内容包

通过“SIEM 设置”>“Feed”设置 Feed

如需配置 Feed,请按以下步骤操作:

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称,例如 Microsoft Sentinel 日志
  5. 选择 Webhook 作为来源类型
  6. 选择 Microsoft Sentinel 作为日志类型
  7. 点击下一步
  8. 可选:为以下输入参数指定值:
    • 拆分分隔符:用于分隔日志行的分隔符,例如 \n
  9. 点击下一步
  10. 最终确定界面中查看新的 Feed 配置,然后点击提交
  11. 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
  12. 复制并存储密钥,因为您无法再次查看此密钥。您可以再次生成新的密钥,但重新生成密钥会使之前的密钥失效。
  13. 详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。
  14. 点击完成

设置来自内容中心的 Feed

为以下字段指定值:

  • 拆分分隔符:用于分隔日志行的分隔符,例如 \n

高级选项

  • Feed 名称:用于标识 Feed 的预填充值。
  • 来源类型:用于将日志收集到 Google SecOps 中的方法。
  • 资源命名空间:与 Feed 关联的命名空间。
  • 提取标签:应用于相应 Feed 中所有事件的标签。

  • 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。

  • 复制并存储密钥,因为您无法再次查看此密钥。您可以再次生成新的密钥,但重新生成密钥会使之前的密钥失效。

  • 详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。

为 Webhook Feed 创建 API 密钥

  1. 前往 Google Cloud 控制台 > 凭据

    转到“凭证”页面

  2. 点击创建凭据,然后选择 API 密钥

  3. 将 API 密钥访问权限限制为 Google Security Operations API。

指定端点网址

  1. 在客户端应用中,指定 webhook Feed 中提供的 HTTPS 端点网址。
  2. 通过在自定义标头中指定 API 密钥和密钥来启用身份验证,格式如下:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    建议:将 API 密钥指定为标头,而不是在网址中指定。如果您的 Webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

替换以下内容:

  • ENDPOINT_URL:Feed 端点网址。
  • API_KEY:用于向 Google Security Operations 进行身份验证的 API 密钥。
  • SECRET:您生成的用于验证 Feed 的密钥。

为 Microsoft Sentinel 事件配置逻辑应用

如需配置 Microsoft Sentinel 事件的逻辑应用,请按以下步骤操作:

  1. 登录 Azure 门户
  2. 点击创建资源
  3. 搜索逻辑应用。
  4. 点击创建以开始创建流程。
  5. 为以下输入参数指定值:
    • 订阅:选择相应订阅。
    • 资源组:选择资源组。
    • 名称:输入逻辑应用的名称。
    • 地区:选择相应区域。
    • Log Analytics 工作区:选择 Log Analytics 工作区。
  6. 点击 Review + create(检查 + 创建)。
  7. 点击创建
  8. 创建逻辑应用后,点击前往资源
  9. 依次点击开发工具 > 逻辑应用设计器
  10. 点击添加触发器
  11. 搜索 Microsoft Sentinel
  12. 选择 Microsoft Sentinel 事件作为触发器。
  13. 如果您尚未创建与 Microsoft Sentinel 的连接,则需要立即创建。点击创建新账号,然后按照提示进行身份验证。
  14. 点击插入新步骤
  15. 点击添加操作
  16. 搜索并选择 HTTP 作为操作。
  17. 为以下输入参数指定值:
    • URI:Feed 端点网址。
    • 方法:POST
    • 标头:添加以下标头:
      • Content-Type:application/json
      • X-goog-api-key:用于向 Google Security Operations 进行身份验证的 API 密钥。
      • X-Webhook-Access-Key:您生成的用于对 Feed 进行身份验证的密钥。

为 Microsoft Sentinel 警报配置逻辑应用

如需配置 Microsoft Sentinel 警报的逻辑应用,请按以下步骤操作:

  1. 前往 Azure 门户首页
  2. 点击创建资源
  3. 搜索逻辑应用。
  4. 点击创建以开始创建流程。
  5. 为以下输入参数指定值:
    • 订阅:选择相应订阅。
    • 资源组:选择资源组。
    • 名称:输入逻辑应用的名称。
    • 地区:选择相应区域。
    • Log Analytics 工作区:选择 Log Analytics 工作区。
  6. 点击 Review + create(检查 + 创建)。
  7. 点击创建
  8. 创建逻辑应用后,点击前往资源
  9. 依次点击开发工具 > 逻辑应用设计器
  10. 点击添加触发器
  11. 搜索 Microsoft Sentinel
  12. 选择 Microsoft Sentinel 提醒作为触发条件。
  13. 如果您尚未创建与 Microsoft Sentinel 的连接,则需要立即创建。点击创建新账号,然后按照提示进行身份验证。
  14. 点击插入新步骤
  15. 点击添加操作
  16. 搜索并选择 HTTP 作为操作。
  17. 为以下输入参数指定值:
    • URI:Feed 端点网址。
    • 方法:POST
    • 标头:添加以下标头:
      • Content-Type:application/json
      • X-goog-api-key:用于向 Google Security Operations 进行身份验证的 API 密钥。
      • X-Webhook-Access-Key:您生成的用于对 Feed 进行身份验证的密钥。

为 Microsoft Sentinel 配置自动化规则

如需配置 Microsoft Sentinel 的自动化规则,请按以下步骤操作:

  1. 前往 Microsoft Sentinel 工作区
  2. 依次点击配置 > 自动化
  3. 点击创建
  4. 选择自动化规则
  5. 为以下输入参数指定值:
    • 名称:输入自动化规则的名称。
    • 触发条件:选择当创建了突发事件时
    • 操作:依次选择运行 Runbook > 为突发事件创建的逻辑应用
  6. 点击应用
  7. 点击创建
  8. 选择自动化规则
  9. 为以下输入参数指定值:
    • 名称:输入自动化规则的名称。
    • 触发器:选择当突发事件更新时
    • 条件:依次点击添加 > 条件 (And) > 状态 > 已更改
    • 操作:依次选择运行 Runbook > 为突发事件创建的逻辑应用
  10. 点击应用
  11. 点击创建
  12. 选择自动化规则
  13. 为以下输入参数指定值:
    • 名称:输入自动化规则的名称。
    • 触发条件:选择在创建提醒时
    • 操作:依次选择运行 playbook > 为提醒创建的逻辑应用
  14. 点击应用

UDM 映射表

日志字段 UDM 映射 逻辑
AlertGenerationStatus security_result.detection_fields.AlertGenerationStatus 在 JSON 解析后直接从 ExtendedProperties 字段映射。
AlertLink principal.labels.AlertLink 直接映射。
AlertName security_result.rule_name 直接映射。
AlertSeverity security_result.severity 直接映射,转换为大写。如果该值为 HIGH、MEDIUM、LOW、CRITICAL 或 UNKNOWN_SEVERITY 之一,则会映射到 security_result.severity。否则,它会映射到 security_result.severity_details
AlertType security_result.threat_name 直接映射。
Category security_result.detection_fields.Category 在 JSON 解析后直接从 ExtendedProperties 字段映射。
CompromisedEntity principal.resource.attribute.labels.CompromisedEntity 直接映射。
CompromisedEntityId security_result.detection_fields.CompromisedEntityId 在 JSON 解析后直接从 ExtendedProperties 字段映射。
ConfidenceLevel security_result.confidence_details 直接映射。
ConfidenceScore security_result.detection_fields.ConfidenceScore 直接映射。
cribl_pipe additional.fields.cribl_pipe 直接映射。
Description security_result.description 直接映射。
DestinationDevice security_result.detection_fields.DestinationDevicetarget.ip 从 JSON 解析后的 ExtendedProperties 字段映射。如果该值是有效的 IP 地址,则会映射到 target.ip。否则,它会被映射为检测字段。
DestinationDeviceAddress target.ip 从 JSON 解析后的 ExtendedProperties 字段映射,仅当为有效的 IP 地址时。
DeviceId security_result.detection_fields.DeviceId 在 JSON 解析后直接从 ExtendedProperties 字段映射。
DisplayName security_result.summary 直接映射。
EndTime about.labels.EndTime 直接映射。
Entities.Address principal.asset.ip 从 JSON 解析后的 Entities 数组中提取。仅映射 IP 地址。
Entities.HostName principal.asset.hostnameprincipal.asset.ip 从 JSON 解析后的 Entities 数组中提取。如果该值是有效的 IP 地址,则会映射到 principal.asset.ip。否则,它会映射到 principal.asset.hostname
Entities.IoTDevice.DeviceId security_result.detection_fields.IoTDeviceID 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.DeviceType security_result.detection_fields.IoTDeviceType 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.DeviceTypeId security_result.detection_fields.IoTDeviceTypeId 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.Importance security_result.detection_fields.IoTDeviceImportance 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.IoTSecurityAgentId security_result.detection_fields.IoTSecurityAgentId 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.Manufacturer security_result.detection_fields.IoT Manufacturer 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.OperatingSystem principal.asset.platform_software.platform_version 从 JSON 解析后的 Entities 数组中提取,并移除了尾随空格。
Entities.IoTDevice.PurdueLayer security_result.detection_fields.IoT PurdueLayer 从 JSON 解析后的 Entities 数组中提取。
Entities.IoTDevice.Sensor security_result.detection_fields.IoT Sensor 从 JSON 解析后的 Entities 数组中提取。
ExtendedProperties.Protocol security_result.detection_fields.Protocol 在 JSON 解析后直接从 ExtendedProperties 字段映射。
ExtendedProperties.SensorId security_result.detection_fields.SensorId 在 JSON 解析后直接从 ExtendedProperties 字段映射。
ExtendedProperties.SourceDevice principal.ipsecurity_result.detection_fields.SourceDevice 从 JSON 解析后的 ExtendedProperties 字段映射。如果该值是有效的 IP 地址,则会映射到 principal.ip。否则,它会被映射为检测字段。
ExtendedProperties.SourceDeviceAddress principal.ip 从 JSON 解析后的 ExtendedProperties 字段映射,仅当为有效的 IP 地址时。
IsIncident security_result.detection_fields.IsIncident 直接映射,转换为字符串。
ProcessingEndTime about.labels.ProcessingEndTime 直接映射。
ProductComponentName principal.resource.attribute.labels.ProductComponentName 直接映射。
ProductName principal.resource.attribute.labels.ProductName 直接映射。
ProviderName principal.resource.attribute.labels.ProviderName 直接映射。
ResourceId principal.resource.product_object_idtarget.resource.name 直接映射。
SourceComputerId principal.asset.asset_id 直接映射,以“SourceComputerId:”为前缀。
SourceSystem security_result.detection_fields.SourceSystem 直接映射。
StartTime about.labels.StartTime 直接映射。
Status security_result.detection_fields.Status 直接映射。
SystemAlertId metadata.product_log_id 直接映射。
Tactics security_result.attack_details.tactics.name 从 JSON 解析和反斜杠移除后的 Tactics 字段中提取。
Techniques security_result.attack_details.techniques.id 从 JSON 解析和反斜杠移除后的 Techniques 字段中提取。
TenantId additional.fields.TenantId 直接映射。
TimeGenerated about.labels.TimeGenerated 直接映射。
timestamp metadata.event_timestampevents.timestamp 直接映射。
VendorName metadata.vendor_name 直接映射。
VendorOriginalId additional.fields.VendorOriginalId 直接映射。
_time metadata.event_timestampevents.timestamp 解析为使用 UNIX 或 UNIX_MS 格式的时间戳。
(解析器逻辑) metadata.event_type 如果存在主账号、目标和 ResourceId,则设置为“USER_RESOURCE_ACCESS”。否则,请设置为“GENERIC_EVENT”。
(解析器逻辑) metadata.log_type 设置为“MICROSOFT_SENTINEL”。
(解析器逻辑) metadata.product_name 设置为“MICROSOFT_SENTINEL”。

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。