Mengintegrasikan OpenSearch dengan Google SecOps

Versi integrasi: 1.0

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: Secara berkala menelusuri semua indeks OpenSearch untuk Indikator Gangguan (IoC) tertentu atau pola 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 secara otomatis menarik log terkait atau data historis 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. Tempel string berenkode Base64 ke kolom CA Certificate File.
  3. Pilih kotak centang Verifikasi SSL.
  4. Klik Uji 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 dari 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 mengetahui petunjuk tentang cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.

Anda dapat melakukan perubahan di 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 tertunda dari Ruang Kerja Anda dan Melakukan tindakan manual.

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 dilakukan menggunakan sintaksis Lucene (misalnya, level:error OR level:warning).

Nilai defaultnya adalah *.

Limit

Opsional.

Jumlah maksimum dokumen yang akan ditampilkan. Tetapkan nilai ini ke 0 jika 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 jika 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 rekaman yang terjadi pada atau setelah stempel waktu ini.

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

Nilai defaultnya adalah now-1d.

Earliest Date

Opsional.

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

Anda dapat memberikan stempel waktu UTC yang tepat (YYYY-MM-DDTHH:MM:SSZ) atau perhitungan 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 Penelusuran DSL 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 dilakukan menggunakan sintaksis Lucene (misalnya, level:error OR level:warning).

Nilai defaultnya adalah *.

Limit

Opsional.

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

Nilai defaultnya adalah 100.

Output tindakan

Tindakan Penelusuran DSL 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 Penelusuran DSL:

[
    {
        "_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 Penelusuran DSL:

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 dilakukan menggunakan sintaksis Lucene (misalnya, level:error OR level:warning).

Nilai defaultnya adalah *.

Limit

Opsional.

Jumlah maksimum dokumen yang akan ditampilkan. Tetapkan nilai ini ke 0 jika 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 mengetahui informasi selengkapnya tentang cara mengonfigurasi konektor di Google SecOps, lihat Menyerap data Anda (konektor).

Konektor OpenSearch

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

Input konektor

OpenSearch Connector 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 penggantian yang dirujuk dari kode. Input yang tidak valid untuk parameter ini akan diselesaikan 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, 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 dari 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 environment 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 dilakukan 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 saat ini untuk mengambil pemberitahuan.

Parameter ini dapat berlaku untuk iterasi konektor awal setelah Anda mengaktifkan konektor untuk pertama kalinya, atau nilai penggantian untuk stempel waktu konektor yang telah berakhir.

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 melakukan autentikasi dengan server proxy.

Environment Regex Pattern

Opsional.

Pola ekspresi reguler untuk dijalankan pada nilai yang ditemukan di kolom Environment Field Name. Dengan parameter ini, Anda dapat memanipulasi kolom lingkungan menggunakan logika ekspresi reguler.

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

Jika pola ekspresi reguler adalah null atau kosong, atau nilai lingkungan adalah 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 Bahasa Khusus Domain (DSL).

Input konektor

OpenSearch DSL Connector 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 penggantian yang dirujuk dari kode. Input yang tidak valid untuk parameter ini akan diselesaikan 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, 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 keseriusan statis yang akan ditetapkan ke semua pemberitahuan yang di-ingest. Parameter ini digunakan jika Alert Severity dan Severity Field Name kosong.

Nilai defaultnya adalah Medium.

Alert Severity

Opsional.

Tingkat keparahan yang akan ditetapkan untuk notifikasi. 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 memetakannya secara otomatis 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 mengautentikasi 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 melakukan autentikasi dengan server proxy.

Environment Field Name

Opsional.

Nama kolom tempat nama lingkungan disimpan.

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

Nilai defaultnya adalah "".

Environment Regex Pattern

Opsional.

Pola ekspresi reguler untuk dijalankan pada nilai yang ditemukan di kolom Environment Field Name. Dengan parameter ini, Anda dapat memanipulasi kolom lingkungan menggunakan logika ekspresi reguler.

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

Jika pola ekspresi reguler adalah null atau kosong, atau nilai lingkungan adalah 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:

  • Kritis: 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 "Berbahaya", "Tidak diketahui", atau "Tidak berbahaya":

  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.