Memigrasikan pemberitahuan CBN ke pemberitahuan aturan deteksi YARA-L

Dokumen ini memberikan detail tentang cara memigrasikan pemberitahuan Normalisasi Berbasis Konfigurasi (CBN) ke pemberitahuan deteksi YARA-L. Sebagai analis keamanan, dengan bantuan dokumen ini, Anda dapat terus mendapatkan notifikasi untuk pemberitahuan dari sistem pihak ketiga menggunakan halaman Pemberitahuan dan IOC.

Memigrasikan pemberitahuan CBN ke mesin deteksi YARA-L

Untuk memigrasikan pemberitahuan CBN, Anda dapat memastikan bahwa pemberitahuan CBN sebelumnya tersedia sebagai pemberitahuan aturan deteksi menggunakan opsi berikut.

Dengan menggunakan opsi penelusuran UDM, Anda dapat melihat peristiwa dengan alert_state yang ditetapkan di parser:

security_result.alert_state = "ALERTING"

Dari hasil penelusuran UDM, Anda dapat menjelajahi kolom berikut untuk memahami sumber mana yang menghasilkan pemberitahuan CBN di lingkungan Anda:

  • Metadata > Vendor Name

  • Metadata > Product Name

Mendownload pemberitahuan CBN default menggunakan Tools API dan meninjaunya secara manual

Pendekatan sebelumnya membantu Anda menemukan pemberitahuan yang telah diaktifkan, tetapi tidak mencakup skenario pemberitahuan yang belum pernah Anda lihat sebelumnya. Anda dapat menggunakan metode parser backstory.googleapis.com/v1/tools/cbn untuk mendownload CBN default, pilih, atau semua, dan meninjau logika parser yang diterapkan secara manual untuk menemukan pemberitahuan berbasis is_alert atau alert_state.

Anda dapat melakukan transfer pemberitahuan CBN ke pemberitahuan aturan mesin deteksi YARA-L yang secara aktif Anda gunakan.

Memigrasikan pemberitahuan antivirus Windows Defender yang sebelumnya ditampilkan di Enterprise Insights sebagai pemberitahuan CBN

Contoh berikut menunjukkan cara memigrasikan pemberitahuan antivirus Windows Defender yang sebelumnya ditampilkan di Enterprise Insights sebagai pemberitahuan CBN.

  1. Temukan contoh pemberitahuan menggunakan salah satu pendekatan yang dijelaskan sebelumnya.

  2. Dengan menggunakan penampil Log Mentah / Peristiwa UDM, salin kolom UDM tertentu yang akan memberikan deteksi yang andal. Lihat contoh berikut.

    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. Buat aturan mesin deteksi YARA-L baru.

    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
    }
    

Notifikasi CBN tampaknya menggunakan kolom yang tidak diuraikan ke dalam UDM

Dengan menggunakan opsi ekstensi parser, Anda dapat mengatasi skenario ini dengan cepat.

Misalnya, pemberitahuan CBN Corelight menggunakan kolom notice dan memberi tahu secara kondisional hanya jika benar:

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

Karena nilai ini tidak dinormalisasi ke dalam UDM secara default, Anda dapat menggunakan ekstensi PARSER Grok sebagai berikut untuk menambahkan nilai tersebut sebagai kolom UDM dari jenis Additional:

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"
                }
            }
        }
    }
}

Kemudian, Anda dapat menggunakannya dalam aturan mesin deteksi YARA-L sebagai berikut, dan menggunakan fungsi 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"
    )

Anda harus mengaktifkan dan mengaktifkan aturan yang dibuat untuk pemberitahuan. Untuk informasi selengkapnya, lihat Menjalankan data langsung aturan.