收集 Microsoft Sentinel 日志

支持的平台:

概览

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

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 对 Microsoft Sentinel 的访问权限。

在 Google SecOps 中配置 Feed 以注入 Microsoft Sentinel 日志

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

为该 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. 为以下输入参数指定值:
    • Subscription:选择相应订阅。
    • 资源组:选择资源组。
    • 名称:输入逻辑应用的名称。
    • 区域:选择区域。
    • 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 进行身份验证而生成的 Secret 密钥。

为 Microsoft Sentinel 提醒配置逻辑应用

如需配置适用于 Microsoft Sentinel 提醒的逻辑应用,请按以下步骤操作:

  1. 前往 Azure 门户首页
  2. 点击创建资源
  3. 搜索“逻辑应用”。
  4. 点击创建以开始创建流程。
  5. 为以下输入参数指定值:
    • Subscription:选择相应订阅。
    • 资源组:选择资源组。
    • 名称:输入逻辑应用的名称。
    • 区域:选择区域。
    • 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 进行身份验证而生成的 Secret 密钥。

为 Microsoft Sentinel 配置自动化规则

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

  1. 前往您的 Microsoft Sentinel 工作区
  2. 依次点击配置 > 自动化
  3. 点击创建
  4. 选择自动化操作规则
  5. 为以下输入参数指定值:
    • 名称:为自动化规则输入名称。
    • 触发器:选择创建服务工单时
    • 操作:依次选择运行 Playbook > 为突发事件创建的逻辑应用
  6. 点击应用
  7. 点击创建
  8. 选择自动化操作规则
  9. 为以下输入参数指定值:
    • 名称:输入自动化规则的名称。
    • 触发器:选择突发事件有更新时
    • 条件:依次点击添加 > 条件(与) > 状态 > 已更改
    • 操作:依次选择运行 Playbook > 为突发事件创建的逻辑应用
  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 格式解析为时间戳。
(Parser Logic) metadata.event_type 如果存在主账号、目标和 ResourceId,则设置为“USER_RESOURCE_ACCESS”。否则,请设置为“GENERIC_EVENT”。
(Parser Logic) metadata.log_type 设置为“MICROSOFT_SENTINEL”。
(Parser Logic) metadata.product_name 设置为“MICROSOFT_SENTINEL”。

变化

2023-11-03

  • 将“ResourceId”映射到“target.resource.name”。
  • 如果“ResourceId”为“不为 null”,并且事件的“principal”或“target”之一为“不为 null”,则将“metadata.event_type”映射到“USER_RESOURCE_ACCESS”。

2023-08-31

  • 新创建的解析器。