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:
- Buka halaman parameter konfigurasi integrasi.
- Tempel string berenkode Base64 ke kolom CA Certificate File.
- Pilih kotak centang Verifikasi SSL.
- 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, |
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.
Penelusuran ES Lanjutan
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,
Nilai defaultnya adalah |
Query |
Opsional. Kueri penelusuran yang akan dilakukan menggunakan sintaksis Lucene (misalnya,
Nilai defaultnya adalah |
Limit |
Opsional. Jumlah maksimum dokumen yang akan ditampilkan. Tetapkan nilai ini ke
Nilai defaultnya adalah |
Display Field |
Opsional. Daftar kolom tertentu yang dipisahkan koma untuk ditampilkan. Nilai defaultnya adalah |
Search Field |
Opsional. Kolom tertentu yang akan ditelusuri jika Nilai defaultnya adalah |
Timestamp Field |
Opsional. Nama kolom yang digunakan untuk pemfilteran berbasis waktu. Jika Nilai defaultnya adalah |
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 ( Nilai defaultnya adalah |
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 ( Nilai defaultnya adalah |
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 |
Penelusuran DSL
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,
Nilai defaultnya adalah |
Query |
Opsional. Kueri penelusuran yang akan dilakukan menggunakan sintaksis Lucene (misalnya,
Nilai defaultnya adalah |
Limit |
Opsional. Jumlah maksimum dokumen yang akan ditampilkan. Tetapkan nilai ini ke
Nilai defaultnya adalah |
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 |
Penelusuran ES Sederhana
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,
Nilai defaultnya adalah |
Query |
Opsional. Kueri penelusuran yang akan dilakukan menggunakan sintaksis Lucene (misalnya,
Nilai defaultnya adalah |
Limit |
Opsional. Jumlah maksimum dokumen yang akan ditampilkan. Tetapkan nilai ini ke
Nilai defaultnya adalah |
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 |
Event Field Name |
Wajib. Nama kolom yang menentukan nama peristiwa (subjenis). Nilai defaultnya adalah
|
Script Timeout (Seconds) |
Wajib. Batas waktu, dalam detik, untuk proses Python yang menjalankan skrip saat ini. Nilai defaultnya adalah |
Server Address |
Wajib. URL endpoint instance OpenSearch, termasuk protokol dan
port (misalnya, |
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,
|
Timestamp Field |
Wajib. Nama kolom yang berisi stempel waktu (misalnya,
|
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 |
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 |
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 |
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, |
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
Gunakan nilai default 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 Nilai defaultnya adalah |
Event Field Name |
Wajib. Nama kolom yang menentukan nama peristiwa (subjenis). Nilai defaultnya adalah |
Script Timeout (Seconds) |
Wajib. Batas waktu, dalam detik, untuk proses Python yang menjalankan skrip saat ini. Nilai defaultnya adalah |
Server Address |
Wajib. URL endpoint instance OpenSearch, termasuk protokol (misalnya, |
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 |
Timestamp Field |
Wajib. Nama kolom yang berisi stempel waktu (misalnya,
|
Alert Field Name |
Wajib. Nama kolom yang berisi nama pemberitahuan (misalnya,
|
Description Field |
Opsional. Nama kolom yang berisi deskripsi pemberitahuan (misalnya,
|
Severity |
Wajib. Tingkat keseriusan statis yang akan ditetapkan ke semua pemberitahuan yang di-ingest. Parameter
ini digunakan jika Nilai defaultnya adalah |
Alert Severity |
Opsional. Tingkat keparahan yang akan ditetapkan untuk notifikasi. Parameter ini memiliki prioritas lebih tinggi daripada
Jika Anda ingin menggunakan pemetaan dinamis menggunakan |
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, |
Alerts Count Limit |
Opsional. Jumlah maksimum pemberitahuan yang akan ditarik dalam satu siklus. Nilai defaultnya adalah |
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
Gunakan nilai default 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 NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription 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":
- Masukkan
event.severitydi parameter Severity Field Name. - 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.