Migrasikan pemberitahuan CBN ke notifikasi aturan deteksi YARA-L

Dokumen ini memberikan detail tentang cara memigrasikan Configuration Based Normalization (CBN) pemberitahuan deteksi YARA-L. Sebagai seorang analis keamanan, dengan bantuan teknologi dokumen ini, Anda bisa terus mendapatkan notifikasi pemberitahuan dari sistem pihak ketiga menggunakan Pemberitahuan dan IOC.

Memigrasikan pemberitahuan CBN ke mesin deteksi YARA-L

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

Dengan menggunakan opsi penelusuran UDM, Anda dapat menampilkan 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

Download pemberitahuan CBN default menggunakan Tools API dan tinjau secara manual

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

Anda dapat mentransfer notifikasi CBN ke notifikasi 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 Peristiwa Log Mentah / 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
    }
    

Pemberitahuan CBN tampaknya menggunakan kolom yang tidak diuraikan menjadi UDM

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

Misalnya, pemberitahuan Corelight CBN menggunakan kolom notice dan memberi tahu bersyarat 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 parser ekstensi Grok sebagai berikut untuk menambahkan nilai tersebut sebagai kolom UDM 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"
                }
            }
        }
    }
}

Anda kemudian dapat menggunakannya dalam aturan mesin pendeteksi 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.