이 문서에서는 구성 기반 정규화 (CBN) 알림을 YARA-L 감지 알림으로 이전하는 방법을 자세히 설명합니다. 보안 분석가는 이 문서를 참고하여 알림 및 IOC 페이지를 사용하여 서드 파티 시스템의 알림을 계속 받을 수 있습니다.
CBN 알림을 YARA-L 감지 엔진으로 이전
CBN 알림을 이전하려면 다음 옵션을 사용하여 이전 CBN 알림을 감지 규칙 알림으로 사용할 수 있도록 합니다.
UDM 검색 사용
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 또는 모든 CBN을 다운로드하고 is_alert 또는 alert_state 기반 알림을 찾는 데 적용된 파서 로직을 수동으로 검토할 수 있습니다.
CBN 알림을 실제로 사용하는 YARA-L 감지 엔진 규칙 알림으로 포팅할 수 있습니다.
이전에 엔터프라이즈 통계에 CBN 알림으로 표시되었던 Windows Defender 바이러스 백신 알림을 이전합니다.
다음 예에서는 이전에 Enterprise Insights에 CBN 알림으로 표시되었던 Windows Defender 바이러스 백신 알림을 이전하는 방법을 보여줍니다.
앞에서 설명한 방법 중 하나를 사용하여 알림 예시를 찾습니다.
원시 로그 / UDM 이벤트 뷰어를 사용하여 안정적인 감지를 제공하는 일부 UDM 필드를 복사합니다. 아래 예시를 참조하세요.
rulewindows_defender_av_monitored_events{meta:author="Chronicle"description="Migration of CBN alerts to Google SecOps YARA-L detection engine rule alert."// Severity is set at the Outcome level via security_result.severityseverity="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인 경우에만 조건부로 알림을 보냅니다.
그런 다음 다음과 같이 YARA-L 감지 엔진 규칙에서 Maps 함수를 사용하여 이를 활용할 수 있습니다.
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")
알림을 사용하려면 작성된 규칙을 사용 설정하고 사용 설정해야 합니다. 자세한 내용은 실시간 데이터에 대한 규칙 실행을 참고하세요.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-10(UTC)"],[[["\u003cp\u003eCBN (Configuration Based Normalization) alerts and the Enterprise Insights page are deprecated; users should now utilize the Alerts and IOCs page for alerts.\u003c/p\u003e\n"],["\u003cp\u003eMigrating to the YARA-L detection engine is recommended, because it offers better detection logic transparency and tuning compared to CBN alerts.\u003c/p\u003e\n"],["\u003cp\u003eExisting CBN alerts can be found and reviewed using UDM search, which helps identify sources generating alerts by vendor and product names.\u003c/p\u003e\n"],["\u003cp\u003eUsers can download default CBN alerts using the Tools API, allowing for a manual review of parser logic to find \u003ccode\u003eis_alert\u003c/code\u003e or \u003ccode\u003ealert_state\u003c/code\u003e based alerts that have not been previously seen.\u003c/p\u003e\n"],["\u003cp\u003eParser extensions can be used to map non-UDM fields from legacy alerts to YARA-L rules, ensuring a seamless transition and maintaining alert functionality.\u003c/p\u003e\n"]]],[],null,["# Migrate CBN alerts to YARA-L detection rule alerts\n==================================================\n\n| **Caution:** The **Enterprise Insights** page and CBN alerts are deprecated. Use the **Alerts and IOCs** page to view alerts. We recommend that you migrate the existing CBN alerts to the YARA-L detection engine as described in this guide. Google Security Operations's YARA-L detection engine is the preferred option for detection alerts because it offers enhanced transparency in detection logic and robust tuning capabilities. For more information see [Overview of the YARA-L 2.0 language](/chronicle/docs/detection/yara-l-2-0-overview).\n\nThis document provides details on how you can migrate Configuration Based Normalization (CBN)\nalerts to YARA-L detection alerts. As a security analyst, with the help of this\ndocument, you can continue getting notifications for alerts from third-party systems using the\n**Alerts and IOCs** page.\n\nMigrate CBN alerts to the YARA-L detection engine\n-------------------------------------------------\n\nTo migrate CBN alerts, you can ensure that your prior CBN alerts are\navailable as detection rule alerts using the following options.\n\n### Use UDM search\n\nUsing the UDM search option, you can view events with the `alert_state` set in the parsers: \n\n security_result.alert_state = \"ALERTING\"\n\nFrom the UDM search results, you can explore the following fields to understand\nwhich sources are generating CBN alerts in your environment:\n\n- `Metadata` \\\u003e `Vendor Name`\n\n- `Metadata` \\\u003e `Product Name`\n\n### Download default CBN alerts using the Tools API and manually review\n\nThe previous approach helps you to find alerts that have fired, but does not\ncover the scenario of alerts that you have not seen before.\nYou can use the `backstory.googleapis.com/v1/tools/cbn` parsers method to download\ndefault, select, or all CBNs, and manually review the parser logic applied to\nfind `is_alert` or `alert_state` based alerts.\n\nYou can port CBN alerts to YARA-L detection engine rule alerts which you actively\nuse.\n\n#### Migrate Windows Defender antivirus alerts that were previously displayed in Enterprise Insights as CBN alerts\n\nThe following example shows how you can migrate Windows Defender antivirus alerts that were previously displayed in Enterprise Insights as CBN alerts.\n\n1. Find an example alert using any one of the approaches explained previously.\n\n2. Using the Raw Log / UDM Event viewer, copy select UDM fields that will provide reliable detection. See the following example.\n\n metadata.vendor_name = \"Microsoft\"\n metadata.product_name = \"Windows Defender AV\"\n metadata.product_event_type = \"MALWAREPROTECTION_STATE_MALWARE_DETECTED\"\n principal.asset.hostname = \"client02.example.local\"\n security_result.action = \"BLOCK\"\n security_result.severity = \"MEDIUM\"\n\n3. Create a new YARA-L detection engine rule.\n\n rule windows_defender_av_monitored_events {\n meta:\n author = \"Chronicle\"\n description = \"Migration of CBN alerts to Google SecOps YARA-L detection engine rule alert.\"\n // Severity is set at the Outcome level via security_result.severity\n severity = \"INFORMATIONAL\"\n priority = \"INFORMATIONAL\"\n events:\n $windows_defender_av.metadata.vendor_name = \"Microsoft\"\n $windows_defender_av.metadata.product_name = \"Windows Defender AV\"\n $windows_defender_av.metadata.product_event_type = \"MALWAREPROTECTION_STATE_MALWARE_DETECTED\"\n $windows_defender_av.principal.asset.hostname = $host\n // optionally tune to only detection on ALLOW, i.e., failure to BLOCK\n //$windows_defender_av.security_result.action = \"ALLOW\"\n // optionally tune on severity of detection\n //$windows_defender_av.security_result.severity != \"LOW\"\n outcome:\n $risk_score = max(\n if ($windows_defender_av.security_result.severity = \"UNKNOWN_SEVERITY\", 0) +\n if ($windows_defender_av.security_result.severity = \"LOW\", 25) +\n if ($windows_defender_av.security_result.severity = \"MEDIUM\", 50) +\n if ($windows_defender_av.security_result.severity = \"HIGH\", 75) +\n if ($windows_defender_av.security_result.severity = \"CRITICAL\", 100)\n )\n $severity = array_distinct($windows_defender_av.security_result.severity)\n condition:\n $windows_defender_av\n }\n\n#### CBN alert appears to use a field that was not parsed into UDM\n\nUsing the parser extensions option you can quickly address this scenario.\n\nFor example, Corelight CBN alert uses the `notice` field and conditionally alerts only if true: \n\n if [notice] == \"true\" {\n mutate {\n replace =\u003e {\n \"is_significant\" =\u003e \"true\"\n \"is_alert\" =\u003e \"true\"\n }\n }\n }\n\nBecause this value isn't normalized into UDM by default you can use a parser\nextension Grok as follows to add that value as a UDM field of type `Additional`: \n\n filter {\n mutate {\n replace =\u003e {\n \"notice\" =\u003e \"\"\n }\n }\n grok {\n match =\u003e { \"message\" =\u003e [ \"(?P\u003cmessage\u003e\\{.*\\})$\" ] }\n on_error =\u003e \"_grok_not_syslog\"\n overwrite =\u003e [ \"message\" ]\n }\n json {\n on_error =\u003e \"not_json\" \n source =\u003e \"message\"\n array_function =\u003e \"split_columns\"\n }\n if ![not_json] {\n if [notice] != \"\" {\n mutate {\n convert =\u003e {\n \"notice\" =\u003e \"string\"\n }\n }\n mutate {\n replace =\u003e {\n \"additional_notice.key\" =\u003e \"notice\"\n \"additional_notice.value.string_value\" =\u003e \"%{notice}\"\n }\n }\n mutate {\n merge =\u003e {\n \"event1.idm.read_only_udm.additional.fields\" =\u003e \"additional_notice\"\n }\n }\n mutate {\n merge =\u003e {\n \"@output\" =\u003e \"event1\"\n }\n }\n }\n }\n }\n\nYou can then utilize this in a YARA-L detection engine rule as follows, and using the [Maps function](/chronicle/docs/detection/yara-l-2-0-syntax#maps): \n\n events:\n // Corelight : Weird Log\n (\n $corelight.metadata.vendor_name = \"Corelight\" and\n $corelight.metadata.product_name = \"Zeek\" and\n // this requires a custom parser extension to extract notice\n $corelight.metadata.product_event_type = \"weird\" and\n $corelight.additional.fields[\"notice\"] = \"true\"\n )\n\nYou must enable and turn on the authored rules for alerting. For more information, see [Run rule live data](/chronicle/docs/detection/run-rule-live-data)."]]