Mengintegrasikan OpenSearch dengan Google SecOps

Dokumen ini menjelaskan cara mengintegrasikan OpenSearch dengan Google Security Operations.

Kasus penggunaan

Integrasi OpenSearch menangani kasus penggunaan orkestrasi dan investigasi keamanan berikut:

  • Perburuan ancaman otomatis: Telusuri secara berkala di semua indeks OpenSearch untuk menemukan Indikator Penyusupan (IoC) tertentu atau pola yang mencurigakan menggunakan kueri Lucene dan DSL.

  • Penyerapan pemberitahuan terpusat: Serap dokumen dari OpenSearch sebagai pemberitahuan yang dapat ditindaklanjuti ke Google SecOps, sehingga memastikan bahwa peristiwa keamanan dari data lake Anda diprioritaskan dan diselidiki.

  • Pengambilan data kontekstual: Memperkaya kasus keamanan yang ada dengan otomatis mengambil log atau data historis terkait dari OpenSearch untuk memberikan konteks yang lebih mendalam kepada analis selama investigasi.

  • Pemetaan data yang fleksibel: Memetakan tingkat keparahan dan tag lingkungan secara dinamis dari dokumen OpenSearch ke standar Google SecOps untuk menjaga konsistensi di berbagai sumber log.

Sebelum memulai

Sebelum mengonfigurasi integrasi di platform Google SecOps, pastikan Anda memiliki hal berikut:

  • File Sertifikat CA: File Certificate Authority yang valid untuk mengamankan koneksi.

  • Versi integrasi terbaru: Pastikan Anda menggunakan versi terbaru integrasi OpenSearch.

  • Sertifikat berenkode Base64: Konten file sertifikat CA Anda harus dikonversi menjadi string Base64 sebelum konfigurasi.

Untuk mengonfigurasi integrasi dengan sertifikat CA, selesaikan langkah-langkah berikut:

  1. Buka halaman parameter konfigurasi integrasi.
  2. Tempelkan string berenkode Base64 ke kolom CA Certificate File.
  3. Centang kotak Verify SSL.
  4. Klik Test untuk memverifikasi bahwa integrasi berhasil dikonfigurasi.

Parameter integrasi

Integrasi OpenSearch memerlukan parameter berikut:

Parameter Deskripsi
Server Address

Wajib.

URL endpoint instance OpenSearch, termasuk protokol dan port (misalnya, https://10.0.0.1:9200).

Username

Opsional.

Nama pengguna yang digunakan untuk melakukan autentikasi dengan instance OpenSearch.

Password

Opsional.

Sandi yang terkait dengan nama pengguna yang ditentukan.

API Token

Opsional.

Token API yang digunakan untuk autentikasi sebagai alternatif untuk nama pengguna dan sandi.

Authenticate

Opsional.

Jika dipilih, integrasi akan mengautentikasi koneksi ke server OpenSearch menggunakan kredensial yang diberikan.

Verify SSL

Opsional.

Jika dipilih, integrasi akan memvalidasi sertifikat SSL saat terhubung ke server OpenSearch.

CA Certificate File

Opsional.

Konten file sertifikat Certificate Authority (CA) dalam format PEM, yang digunakan untuk memverifikasi sertifikat SSL server.

Untuk mendapatkan petunjuk tentang cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.

Anda dapat melakukan perubahan pada tahap selanjutnya, jika diperlukan. Setelah mengonfigurasi instance integrasi, Anda dapat menggunakannya dalam playbook. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi dan mendukung beberapa instance, lihat Mendukung beberapa instance.

Tindakan

Untuk mengetahui informasi selengkapnya tentang tindakan, lihat Merespons tindakan yang tertunda dari meja kerja Anda dan Menjalankan tindakan manual dalam kasus Anda.

Gunakan tindakan Advanced ES Search untuk menjalankan kueri penelusuran yang telah dikonfigurasi sebelumnya di server OpenSearch dan mengambil hasilnya dalam format kamus.

Tindakan ini tidak berjalan di entity Google SecOps.

Input tindakan

Tindakan Advanced ES Search memerlukan parameter berikut:

Parameter Deskripsi
Index

Opsional.

Pola penelusuran untuk indeks OpenSearch (misalnya, smp_playbooks-2019.06.13). Anda dapat menggunakan karakter pengganti untuk menelusuri beberapa indeks (misalnya, smp_playbooks-*).

Nilai defaultnya adalah *.

Query

Opsional.

Kueri penelusuran yang akan dijalankan menggunakan sintaksis Lucene (misalnya, level:error OR level:warning).

Nilai defaultnya adalah *.

Limit

Opsional.

Jumlah dokumen maksimum yang akan ditampilkan. Tetapkan nilai ini ke 0 untuk tidak ada batas.

Nilai defaultnya adalah 100.

Display Field

Opsional.

Daftar kolom tertentu yang dipisahkan koma untuk ditampilkan.

Nilai defaultnya adalah * dan menampilkan semua kolom.

Search Field

Opsional.

Kolom tertentu yang akan ditelusuri saat Query tidak menyertakan nama kolom target. Ini berfungsi sebagai target penelusuran default untuk kueri teks bebas.

Nilai defaultnya adalah _all, yang menelusuri semua kolom yang diindeks.

Timestamp Field

Opsional.

Nama kolom yang digunakan untuk pemfilteran berbasis waktu.

Jika Earliest Date dan Oldest Date kosong, tindakan tidak akan melakukan pemfilteran berbasis waktu.

Nilai defaultnya adalah @timestamp.

Oldest Date

Opsional.

Tanggal mulai penelusuran. Tindakan ini menampilkan data yang terjadi pada atau setelah stempel waktu ini.

Anda dapat memberikan stempel waktu UTC yang tepat (YYYY-MM-DDTHH:MM:SSZ) atau penghitungan tanggal relatif (misalnya, now-1d).

Nilai defaultnya adalah now-1d.

Earliest Date

Opsional.

Tanggal akhir penelusuran. Tindakan ini menampilkan data yang terjadi pada atau sebelum stempel waktu ini.

Anda dapat memberikan stempel waktu UTC yang tepat (YYYY-MM-DDTHH:MM:SSZ) atau penghitungan tanggal relatif (misalnya, now).

Nilai defaultnya adalah now.

Output tindakan

Tindakan Advanced ES Search memberikan output berikut:

Jenis output tindakan Ketersediaan
Lampiran repositori kasus Tidak tersedia
Link repositori kasus Tidak tersedia
Tabel repositori kasus Tidak tersedia
Tabel pengayaan Tidak tersedia
Hasil JSON Tidak tersedia
Pesan output Tersedia
Hasil skrip Tersedia
Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Advanced ES Search:

Nama hasil skrip Nilai
results RESULTS

Gunakan tindakan DSL Search untuk melakukan penelusuran komprehensif di semua indeks OpenSearch dan mengambil hasil dalam format kamus.

Tindakan ini tidak berjalan di entity Google SecOps.

Input tindakan

Tindakan DSL Search memerlukan parameter berikut:

Parameter Deskripsi
Index

Opsional.

Pola penelusuran untuk indeks OpenSearch (misalnya, smp_playbooks-2019.06.13). Anda dapat menggunakan karakter pengganti untuk menelusuri beberapa indeks (misalnya, smp_playbooks-*).

Nilai defaultnya adalah *.

Query

Opsional.

Kueri penelusuran yang akan dijalankan menggunakan sintaksis Lucene (misalnya, level:error OR level:warning).

Nilai defaultnya adalah *.

Limit

Opsional.

Jumlah dokumen maksimum yang akan ditampilkan. Tetapkan nilai ini ke 0 untuk tidak ada batas.

Nilai defaultnya adalah 100.

Output tindakan

Tindakan DSL Search memberikan output berikut:

Jenis output tindakan Ketersediaan
Lampiran repositori kasus Tidak tersedia
Link repositori kasus Tidak tersedia
Tabel repositori kasus Tidak tersedia
Tabel pengayaan Tidak tersedia
Hasil JSON Tersedia
Pesan output Tersedia
Hasil skrip Tersedia
Hasil JSON

Contoh berikut menunjukkan output hasil JSON yang diterima saat menggunakan tindakan DSL Search:

[
    {
        "_score": 0.2876821,
        "_type": "person",
        "_id": "2",
        "_source": {
            "lastname": "Smith",
            "name": "John",
            "job_description": "Systems administrator"
        },
        "_index": "accounts"
    }, {
        "_score": 0.28582606,
        "_type": "person",
        "_id": "1",
        "_source":
        {
            "lastname": "Doe",
            "name": "John",
            "job_description": "Systems administrator and Linux specialist"
        },
        "_index": "accounts"
    }
]
Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan DSL Search:

Nama hasil skrip Nilai
results RESULTS

Ping

Gunakan tindakan Ping untuk menguji konektivitas ke OpenSearch.

Tindakan ini tidak berjalan di entity Google SecOps.

Input tindakan

Tidak ada.

Output tindakan

Tindakan Ping memberikan output berikut:

Jenis output tindakan Ketersediaan
Lampiran repositori kasus Tidak tersedia
Link repositori kasus Tidak tersedia
Tabel repositori kasus Tidak tersedia
Tabel pengayaan Tidak tersedia
Hasil JSON Tidak tersedia
Pesan output Tersedia
Hasil skrip Tersedia
Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Ping:

Nama hasil skrip Nilai
is_success true atau false

Gunakan tindakan Simple ES Search untuk melakukan penelusuran dasar di semua kolom yang diindeks di OpenSearch dan mengambil hasilnya dalam format kamus.

Tindakan ini tidak berjalan di entity Google SecOps.

Input tindakan

Tindakan Simple ES Search memerlukan parameter berikut:

Parameter Deskripsi
Index

Opsional.

Pola penelusuran untuk indeks OpenSearch (misalnya, smp_playbooks-2019.06.13). Anda dapat menggunakan karakter pengganti untuk menelusuri beberapa indeks (misalnya, smp_playbooks-*).

Nilai defaultnya adalah *.

Query

Opsional.

Kueri penelusuran yang akan dijalankan menggunakan sintaksis Lucene (misalnya, level:error OR level:warning).

Nilai defaultnya adalah *.

Limit

Opsional.

Jumlah dokumen maksimum yang akan ditampilkan. Tetapkan nilai ini ke 0 untuk tidak ada batas.

Nilai defaultnya adalah 100.

Output tindakan

Tindakan Simple ES Search memberikan output berikut:

Jenis output tindakan Ketersediaan
Lampiran repositori kasus Tidak tersedia
Link repositori kasus Tidak tersedia
Tabel repositori kasus Tidak tersedia
Tabel pengayaan Tidak tersedia
Hasil JSON Tersedia
Pesan output Tersedia
Hasil skrip Tersedia
Hasil JSON

Contoh berikut menunjukkan output hasil JSON yang diterima saat menggunakan tindakan Simple ES Search:

[{
    "_score": 0.2876821,
    "_type": "person",
    "_id": "2",
    "_source":
        {
          "lastname": "Smith",
          "name": "John",
          "job_description": "Systems administrator"
         },
     "_index": "accounts"
 },
 {
     "_score": 0.28582606,
     "_type": "person",
     "_id": "1",
     "_source":
       {
         "lastname": "Doe",
         "name": "John",
         "job_description": "Systems administrator and Linux specialist"
       },
    "_index": "accounts"
  }
 ]
Hasil skrip

Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Simple ES Search:

Nama hasil skrip Nilai
results RESULTS

Konektor

Untuk mempelajari lebih lanjut cara mengonfigurasi konektor di Google SecOps, lihat Menyerap data (konektor).

Konektor OpenSearch

Gunakan OpenSearch Connector untuk menelusuri indeks OpenSearch yang ditentukan dengan kueri Lucene yang disediakan dan menyerap dokumen sebagai pemberitahuan ke Google SecOps.

Input konektor

Konektor OpenSearch memerlukan parameter berikut:

Parameter Deskripsi
Product Field Name

Wajib.

Nama kolom tempat nama produk disimpan.

Nama produk terutama memengaruhi pemetaan. Untuk menyederhanakan dan meningkatkan proses pemetaan untuk konektor, nilai default di-resolve ke nilai pengganti yang direferensikan dari kode. Setiap input yang tidak valid untuk parameter ini akan di-resolve ke nilai penggantian secara default.

Nilai defaultnya adalah Product Name.

Event Field Name

Wajib.

Nama kolom yang menentukan nama peristiwa (subjenis).

Nilai defaultnya adalah name.

Script Timeout (Seconds)

Wajib.

Batas waktu tunggu, dalam detik, untuk proses Python yang menjalankan skrip saat ini.

Nilai defaultnya adalah 180.

Server Address

Wajib.

URL endpoint instance OpenSearch, termasuk protokol dan port (misalnya, https://10.0.0.1:9200).

Username

Opsional.

Nama pengguna yang digunakan untuk melakukan autentikasi dengan instance OpenSearch.

Password

Opsional.

Sandi yang terkait dengan nama pengguna yang ditentukan.

Authenticate

Opsional.

Jika dipilih, integrasi akan mengautentikasi koneksi ke server OpenSearch menggunakan kredensial yang diberikan.

API Token

Opsional.

Token API yang digunakan untuk autentikasi sebagai alternatif untuk nama pengguna dan sandi.

Verify SSL

Opsional.

Jika dipilih, integrasi akan memvalidasi sertifikat SSL saat terhubung ke server OpenSearch.

Alert Name Field

Wajib.

Nama kolom yang berisi nama pemberitahuan (misalnya, _source_alert_info_alert).

Timestamp Field

Wajib.

Nama kolom yang berisi stempel waktu (misalnya, _source_@timestamp).

Environment Field Name

Opsional.

Nama kolom tempat nama lingkungan disimpan.

Jika kolom lingkungan tidak ada, konektor akan menggunakan nilai default.

Nilai defaultnya adalah "".

Indexes

Opsional.

Pola indeks yang akan ditelusuri. Gunakan * untuk menelusuri semua indeks.

Query

Opsional.

Kueri penelusuran yang akan dijalankan menggunakan sintaksis Lucene.

Alerts Count Limit

Wajib.

Jumlah maksimum pemberitahuan yang akan ditarik dalam satu siklus.

Nilai defaultnya adalah 20.

Max Days Backwards

Wajib.

Jumlah hari sebelum sekarang untuk mengambil pemberitahuan.

Parameter ini dapat berlaku untuk iterasi konektor awal setelah Anda mengaktifkan konektor untuk pertama kalinya, atau nilai pengganti untuk stempel waktu konektor yang sudah tidak berlaku.

Nilai defaultnya adalah 1.

Severity Field Name

Opsional.

Nama kolom yang digunakan untuk mengekstrak nilai tingkat keparahan untuk pemberitahuan.

Jika kolom berisi nilai numerik (bilangan bulat atau float), konektor akan otomatis memetakannya ke tingkat keparahan Google SecOps (misalnya, 100 adalah Critical). Jika kolom berisi nilai string, Anda harus menentukan aturan pemetaan dalam file severity_map_config.json.

Proxy Server Address

Opsional.

Alamat server proxy yang akan digunakan.

Proxy Username

Opsional.

Nama pengguna yang digunakan untuk melakukan autentikasi dengan server proxy.

Proxy Password

Opsional.

Sandi yang digunakan untuk mengautentikasi dengan server proxy.

Environment Regex Pattern

Opsional.

Pola ekspresi reguler yang akan dijalankan pada nilai yang ditemukan di kolom Environment Field Name. Parameter ini memungkinkan Anda memanipulasi kolom lingkungan menggunakan logika ekspresi reguler.

Gunakan nilai default .* untuk mengambil nilai Environment Field Name mentah yang diperlukan.

Jika pola ekspresi reguler null atau kosong, atau nilai lingkungan null, hasil lingkungan akhir adalah lingkungan default.

Konektor DSL OpenSearch

Gunakan OpenSearch DSL Connector untuk menyerap dokumen sebagai pemberitahuan ke Google SecOps dengan melakukan panggilan REST API menggunakan kueri Domain Specific Language (DSL).

Input konektor

Konektor DSL OpenSearch memerlukan parameter berikut:

Parameter Deskripsi
Product Field Name

Wajib.

Nama kolom tempat nama produk disimpan.

Nama produk terutama memengaruhi pemetaan. Untuk menyederhanakan dan meningkatkan proses pemetaan untuk konektor, nilai default di-resolve ke nilai pengganti yang direferensikan dari kode. Setiap input yang tidak valid untuk parameter ini akan di-resolve ke nilai penggantian secara default.

Nilai defaultnya adalah Product Name.

Nilai defaultnya adalah device_product.

Event Field Name

Wajib.

Nama kolom yang menentukan nama peristiwa (subjenis).

Nilai defaultnya adalah name.

Script Timeout (Seconds)

Wajib.

Batas waktu tunggu, dalam detik, untuk proses Python yang menjalankan skrip saat ini.

Nilai defaultnya adalah 60.

Server Address

Wajib.

URL endpoint instance OpenSearch, termasuk protokol (misalnya, https://10.0.0.1).

Port

Wajib.

Port yang digunakan untuk terhubung ke server OpenSearch API.

Query

Wajib.

Kueri DSL yang digunakan untuk penelusuran dalam format JSON.

Untuk meningkatkan stabilitas konektor, sebaiknya sertakan kunci stempel waktu pengurutan dalam urutan menaik dalam kueri Anda.

Index

Wajib.

Indeks yang digunakan untuk penelusuran. Gunakan _all untuk menelusuri semua indeks.

Timestamp Field

Wajib.

Nama kolom yang berisi stempel waktu (misalnya, _source_@timestamp).

Alert Field Name

Wajib.

Nama kolom yang berisi nama pemberitahuan (misalnya, _source_info_alertname).

Description Field

Opsional.

Nama kolom yang berisi deskripsi pemberitahuan (misalnya, _source_alert_info_description).

Severity

Wajib.

Tingkat keparahan statis yang akan ditetapkan ke semua pemberitahuan yang diserap. Parameter ini digunakan jika Alert Severity dan Severity Field Name kosong.

Nilai defaultnya adalah Medium.

Alert Severity

Opsional.

Tingkat keparahan yang akan ditetapkan ke pemberitahuan. Parameter ini memiliki prioritas lebih tinggi daripada Severity Field Name.

Jika Anda ingin menggunakan pemetaan dinamis menggunakan Severity Field Name, kosongkan kolom ini.

Severity Field Name

Opsional.

Nama kolom yang digunakan untuk mengekstrak nilai tingkat keparahan untuk pemberitahuan.

Jika kolom berisi nilai numerik (bilangan bulat atau float), konektor akan otomatis memetakannya ke tingkat keparahan Google SecOps (misalnya, 100 adalah Critical). Jika kolom berisi nilai string, Anda harus menentukan aturan pemetaan dalam file severity_map_config.json.

Alerts Count Limit

Opsional.

Jumlah maksimum pemberitahuan yang akan ditarik dalam satu siklus.

Nilai defaultnya adalah 100.

Authenticate

Opsional.

Jika dipilih, konektor akan mengautentikasi koneksi menggunakan kredensial yang diberikan.

Username

Opsional.

Nama pengguna yang digunakan untuk melakukan autentikasi dengan instance OpenSearch.

Password

Opsional.

Sandi yang digunakan untuk melakukan autentikasi dengan instance OpenSearch.

Use SSL

Opsional.

Jika dipilih, konektor akan mengaktifkan koneksi SSL/TLS ke server.

Proxy Server Address

Opsional.

Alamat server proxy yang akan digunakan untuk koneksi.

Proxy Username

Opsional.

Nama pengguna yang digunakan untuk melakukan autentikasi dengan server proxy.

Proxy Password

Opsional.

Sandi yang digunakan untuk mengautentikasi dengan server proxy.

Environment Field Name

Opsional.

Nama kolom tempat nama lingkungan disimpan.

Jika kolom lingkungan tidak ada, konektor akan menggunakan nilai default.

Nilai defaultnya adalah "".

Environment Regex Pattern

Opsional.

Pola ekspresi reguler yang akan dijalankan pada nilai yang ditemukan di kolom Environment Field Name. Parameter ini memungkinkan Anda memanipulasi kolom lingkungan menggunakan logika ekspresi reguler.

Gunakan nilai default .* untuk mengambil nilai Environment Field Name mentah yang diperlukan.

Jika pola ekspresi reguler null atau kosong, atau nilai lingkungan null, hasil lingkungan akhir adalah lingkungan default.

Nilai defaultnya adalah .*.

Dukungan notasi

Konektor mendukung tiga notasi berbeda untuk pemetaan kolom. Misalnya, untuk memetakan event.type, Anda dapat memberikan _source_event_type, event_type, atau event.type.

Hal ini berlaku untuk parameter berikut:

  • Product Field Name
  • Event Field Name
  • Severity Field Name
  • Environment Field Name
  • Timestamp Field
  • Alert Field Name
  • Description Field (khusus konektor DSL)

Cara memetakan tingkat keparahan di konektor

Jika Severity Field Name berisi nilai numerik (bilangan bulat atau float), konektor akan memetakannya sebagai berikut:

  • Penting: 100
  • Tinggi: 80 ≤ x < 100
  • Sedang: 60 ≤ x < 80
  • Rendah: 40 ≤ x < 60
  • Informasional: x < 40

Untuk nilai string, Anda harus memperbarui file severity_map_config.json di folder skrip konektor.

Contoh konfigurasi

Untuk memetakan kolom event.severity yang berisi "Malicious", "Unknown", atau "Benign":

  1. Masukkan event.severity di parameter Severity Field Name.
  2. Update severity_map_config.json:
{
    "event.severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.