将 CBN 提醒迁移到 YARA-L 检测规则提醒

本文档详细介绍了如何将基于配置的标准化 (CBN) 提醒迁移到 YARA-L 检测提醒。作为安全分析师,借助本文档,您可以继续使用提醒和 IOC 页面接收来自第三方系统的提醒通知。

将 CBN 提醒迁移到 YARA-L 检测引擎

如需迁移 CBN 提醒,您可以使用以下选项确保之前的 CBN 提醒可用作检测规则提醒。

使用 UDM 搜索选项,您可以查看在解析器中设置了 alert_state 的事件:

security_result.alert_state = "ALERTING"

在 UDM 搜索结果中,您可以浏览以下字段,了解您的环境中哪些来源在生成 CBN 提醒:

  • Metadata > Vendor Name

  • Metadata > Product Name

使用 Tools API 下载默认的 CBN 提醒并手动进行审核

上述方法可帮助您查找已触发的提醒,但不涵盖您之前未见过的提醒场景。您可以使用 backstory.googleapis.com/v1/tools/cbn 解析器方法下载默认的、所选的或所有 CBN,并手动检查应用的解析器逻辑,以查找基于 is_alertalert_state 的提醒。

您可以将 CBN 提醒转移到您正在使用的 YARA-L 检测引擎规则提醒。

迁移之前在企业数据洞察中显示为 CBN 提醒的 Windows Defender 杀毒提醒

以下示例展示了如何将之前显示在企业数据分析中的 Windows Defender 杀毒软件提醒迁移为 CBN 提醒。

  1. 使用前面介绍的任一方法查找示例提醒。

  2. 使用原始日志 / UDM 事件查看器,复制可提供可靠检测结果的部分 UDM 字段。请参阅以下示例。

    metadata.vendor_name = "Microsoft"
    metadata.product_name = "Windows Defender AV"
    metadata.product_event_type = "MALWAREPROTECTION_STATE_MALWARE_DETECTED"
    principal.asset.hostname = "client02.example.local"
    security_result.action = "BLOCK"
    security_result.severity = "MEDIUM"
    
  3. 创建新的 YARA-L Detection Engine 规则。

    rule windows_defender_av_monitored_events {
        meta:
        author = "Chronicle"
        description = "Migration of CBN alerts to Google Security Operations YARA-L detection engine rule alert."
        // Severity is set at the Outcome level via security_result.severity
        severity = "INFORMATIONAL"
        priority = "INFORMATIONAL"
    events:
            $windows_defender_av.metadata.vendor_name = "Microsoft"
            $windows_defender_av.metadata.product_name = "Windows Defender AV"
            $windows_defender_av.metadata.product_event_type = "MALWAREPROTECTION_STATE_MALWARE_DETECTED"
            $windows_defender_av.principal.asset.hostname = $host
            // optionally tune to only detection on ALLOW, i.e., failure to BLOCK
            //$windows_defender_av.security_result.action = "ALLOW"
            // optionally tune on severity of detection
            //$windows_defender_av.security_result.severity != "LOW"
    outcome:
            $risk_score = max(
            if ($windows_defender_av.security_result.severity = "UNKNOWN_SEVERITY", 0) +
            if ($windows_defender_av.security_result.severity = "LOW", 25) +
            if ($windows_defender_av.security_result.severity = "MEDIUM", 50) +
            if ($windows_defender_av.security_result.severity = "HIGH", 75) +
            if ($windows_defender_av.security_result.severity = "CRITICAL", 100)
            )
    $severity = array_distinct($windows_defender_av.security_result.severity)
        condition:
        $windows_defender_av
    }
    

CBN 提醒似乎使用了未解析为 UDM 的字段

您可以使用解析器扩展程序选项快速解决此问题。

例如,Corelight CBN 提醒使用 notice 字段,并且仅在该字段为 true 时才会基于条件发出提醒:

if [notice] == "true" {
  mutate {
    replace => {
      "is_significant" => "true"
      "is_alert"       => "true"
    }
  }
}

由于此值默认不会规范化为 UDM,因此您可以使用解析器扩展 Grok 按如下方式将该值添加为类型为 Additional 的 UDM 字段:

filter {
    mutate {
        replace => {
            "notice" => ""
        }
    }
    grok {
        match     => { "message" => [ "(?P<message>\{.*\})$" ] }
        on_error  => "_grok_not_syslog"
        overwrite => [ "message" ]
    }
    json {
        on_error       => "not_json" 
        source         => "message"
        array_function => "split_columns"
    }
    if ![not_json] {
        if [notice] != "" {
            mutate {
                convert => {
                    "notice" => "string"
                }
            }
            mutate {
                replace => {
                    "additional_notice.key" => "notice"
                    "additional_notice.value.string_value" => "%{notice}"
                }
            }
            mutate {
                merge => {
                    "event1.idm.read_only_udm.additional.fields" => "additional_notice"
                }
            }
            mutate {
                merge => {
                    "@output" => "event1"
                }
            }
        }
    }
}

然后,您可以使用 Maps 函数,在 YARA-L 检测引擎规则中使用该函数,如下所示:

events:
    // Corelight : Weird Log
    (
        $corelight.metadata.vendor_name = "Corelight" and
        $corelight.metadata.product_name = "Zeek" and
        // this requires a custom parser extension to extract notice
        $corelight.metadata.product_event_type = "weird" and
        $corelight.additional.fields["notice"] = "true"
    )

您必须启用和开启自定义规则,才能收到提醒。如需了解详情,请参阅运行规则实时数据