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:
- Buka halaman parameter konfigurasi integrasi.
- Tempelkan string berenkode Base64 ke kolom CA Certificate File.
- Centang kotak Verify SSL.
- 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, |
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.
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 dijalankan menggunakan sintaksis Lucene (misalnya,
Nilai defaultnya adalah |
Limit |
Opsional. Jumlah dokumen maksimum 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 saat 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 data 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 data 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 DSL Search memerlukan parameter berikut:
| Parameter | Deskripsi |
|---|---|
Index |
Opsional. Pola penelusuran untuk indeks OpenSearch (misalnya,
Nilai defaultnya adalah |
Query |
Opsional. Kueri penelusuran yang akan dijalankan menggunakan sintaksis Lucene (misalnya,
Nilai defaultnya adalah |
Limit |
Opsional. Jumlah dokumen maksimum yang akan ditampilkan. Tetapkan nilai ini ke
Nilai defaultnya adalah |
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 |
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 dijalankan menggunakan sintaksis Lucene (misalnya,
Nilai defaultnya adalah |
Limit |
Opsional. Jumlah dokumen maksimum 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 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 |
Event Field Name |
Wajib. Nama kolom yang menentukan nama peristiwa (subjenis). Nilai defaultnya adalah
|
Script Timeout (Seconds) |
Wajib. Batas waktu tunggu, 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 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, |
Timestamp Field |
Wajib. Nama kolom yang berisi stempel waktu (misalnya,
|
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 |
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 |
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 |
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 mengautentikasi dengan server proxy. |
Environment Regex Pattern |
Opsional. Pola ekspresi reguler yang akan dijalankan pada nilai yang ditemukan di kolom Gunakan nilai default 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 Nilai defaultnya adalah |
Event Field Name |
Wajib. Nama kolom yang menentukan nama peristiwa (subjenis). Nilai defaultnya adalah |
Script Timeout (Seconds) |
Wajib. Batas waktu tunggu, 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 keparahan statis yang akan ditetapkan ke semua pemberitahuan yang diserap. Parameter ini digunakan jika Nilai defaultnya adalah |
Alert Severity |
Opsional. Tingkat keparahan yang akan ditetapkan ke pemberitahuan. 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 otomatis memetakannya 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 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 Gunakan nilai default 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 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:
- 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":
- 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.