CBN アラートを YARA-L 検出ルールのアラートに移行する
このドキュメントでは、構成ベースの正規化(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 をダウンロードし、適用されたパーサー ロジックを手動で確認して、is_alert
ベースまたは alert_state
ベースのアラートを探すことができます。
CBN アラートは、実際に使用する YARA-L 検出エンジンルールのアラートに移植できます。
以前は Enterprise Insights で CBN アラートとして表示されていた Windows Defender のウイルス対策アラートを移行する
次の例は、以前に Enterprise Insights で CBN アラートとして表示されていた Windows Defender のウイルス対策アラートを移行する方法を示しています。
前述のいずれかの方法を使用してサンプルのアラートを見つけます。
未加工ログ / 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"
新しい YARA-L 検出エンジンルールを作成します。
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"
)
アラート用に作成したルールを有効にする必要があります。詳細については、ルールのライブデータを実行するをご覧ください。