FortiSIEM Fortinet
Versi integrasi: 5.0
Mengonfigurasi integrasi Fortinet FortiSIEM di Google Security Operations
Untuk mendapatkan petunjuk mendetail terkait cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.
Parameter integrasi
Gunakan parameter berikut untuk mengonfigurasi integrasi:
| Nama Tampilan Parameter | Jenis | Nilai Default | Wajib | Deskripsi |
|---|---|---|---|---|
| Root API | String | https://x.x.x.x:port | Ya | Tentukan root API untuk penginstalan FortiSIEM target. |
| Nama pengguna | String | T/A | Ya | Tentukan nama pengguna yang akan digunakan untuk penginstalan FortiSIEM target. |
| Sandi | Sandi | T/A | Ya | Tentukan sandi yang akan digunakan untuk penginstalan FortiSIEM target. |
| Verifikasi SSL | Kotak centang | Dicentang | Tidak | Jika diaktifkan, server Google SecOps akan memeriksa apakah sertifikat dikonfigurasi untuk root API. |
Kasus Penggunaan Produk
- Menyerap pemberitahuan dari SIEM ke Google SecOps.
- Menggunakan data dari SIEM untuk pengayaan pemberitahuan Google SecOps.
- Menyinkronkan status yang diproses dengan pemberitahuan Google SecOps kembali di sisi SIEM.
Tindakan
Ping
Deskripsi
Uji konektivitas ke FortiSIEM dengan parameter yang diberikan di halaman konfigurasi integrasi di tab Google Security Operations Marketplace.
Parameter
T/A
Run On
Tindakan tidak berjalan pada entity, dan tidak memiliki parameter input wajib.
Hasil Tindakan
Hasil Skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success=False |
Hasil JSON
N/A
Pengayaan Entity
T/A
Insight
T/A
Repositori Kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook: Jika berhasil: "Successfully connected to the FortiSIEM installation with the provided connection parameters!" (Berhasil terhubung ke penginstalan FortiSIEM dengan parameter koneksi yang diberikan.) Tindakan akan gagal dan menghentikan eksekusi playbook: >Jika tidak berhasil: "Gagal terhubung ke penginstalan FortiSIEM! Error adalah {0}".format(exception.stacktrace)" |
Umum |
Memperkaya Entitas
Deskripsi
Memperkaya entitas menggunakan informasi dari CMDB Fortinet FortiSIEM. Entitas yang didukung: Nama Host, Alamat IP.
Parameter
| Nama Tampilan Parameter | Jenis | Nilai Default | Wajib | Deskripsi |
|---|---|---|---|---|
| Organisasi Target | String | T/A | Tidak | Tentukan nama organisasi target opsional untuk mencari informasi pengayaan hanya di organisasi ini. |
Run On
Tindakan ini berjalan di entity berikut:
- Hostname
- Alamat IP
Hasil Tindakan
Hasil Skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success=False |
Hasil JSON
[
{
"Entity": "centos-xxx",
"EntityResult": {
"device": {
"organization": {
"@id": "1xx",
"@name": "Super"
},
"accessIp": "172.30.xxx.xxx",
"approved": "true",
"components": null,
"creationMethod": "LOG",
"deviceType": {
"accessProtocols": "TELNET,SSH",
"jobWeight": "10",
"model": "Unix",
"vendor": "Generic",
"version": "ANY"
},
"discoverMethod": "LOG",
"discoverTime": "1640008485000",
"eventParserList": null,
"interfaces": null,
"ipToHostNames": null,
"luns": null,
"name": "centos-xxx",
"naturalId": "centos%2dxxx",
"processors": null,
"properties": {
"customproperty": [
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Importance",
"groupKey": "false",
"propertyName": "importance",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "importance",
"propertyValue": "Normal",
"updated": "false"
},
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Location Name",
"groupKey": "false",
"propertyName": "locationName",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "locationName",
"updated": "false"
}
]
},
"raidGroups": null,
"sanControllerPorts": null,
"softwarePatches": null,
"softwareServices": null,
"status": "2",
"storageGroups": null,
"storages": null,
"unmanaged": "false",
"updateMethod": "LOG",
"version": "ANY",
"winMachineGuid": null
}
}
},
{
"Entity": "172.30.xxx.xxx",
"EntityResult": {
"device": {
"organization": {
"@id": "1xx",
"@name": "Super"
},
"accessIp": "172.30.xxx.xxx",
"applications": null,
"approved": "true",
"components": null,
"creationMethod": "LOG",
"deviceType": {
"accessProtocols": "TELNET,SSH",
"jobWeight": "10",
"model": "Unix",
"vendor": "Generic",
"version": "ANY"
},
"discoverMethod": "LOG",
"discoverTime": "1640070721000",
"eventParserList": {
"eventparser": {
"deviceType": {
"category": "Appliance",
"jobWeight": "10",
"model": "Generic",
"vendor": "Generic",
"version": "ANY"
},
"enabled": "true",
"name": "SyslogNGParser",
"parserXml": "<patternDefinitions><pattern>..."
}
},
"interfaces": null,
"ipToHostNames": null,
"luns": null,
"name": "centos-xxx",
"naturalId": "centos",
"primaryContactUser": "0",
"processors": null,
"properties": {
"customproperty": [
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Importance",
"groupKey": "false",
"propertyName": "importance",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "importance",
"propertyValue": "Mission Critical",
"updated": "false"
},
{
"matched": "false",
"propertyDef": {
"displayInCMDB": "false",
"displayName": "Location Name",
"groupKey": "false",
"propertyName": "locationName",
"subValueType": "STRING",
"valueType": "STRING"
},
"propertyName": "locationName",
"updated": "false"
}
]
},
"raidGroups": null,
"sanControllerPorts": null,
"secondaryContactUser": "0",
"softwarePatches": null,
"softwareServices": null,
"status": "2",
"storageGroups": null,
"storages": null,
"unmanaged": "false",
"updateMethod": "MANUAL",
"version": "ANY",
"winMachineGuid": null
}
}
}
]
Pengayaan Entity
| Nama Kolom Pengayaan | Sumber (Kunci JSON) | Logika - Kapan harus diterapkan |
|---|---|---|
| accessIp | accessIp | Jika tersedia dalam XML |
| nama | nama | Jika tersedia dalam XML |
| aplikasi | CSV "applications/name" | Jika tersedia dalam XML |
| creationMethod | creationMethod | Jika tersedia dalam XML |
| deviceType_model | deviceType_model | Jika tersedia dalam XML |
deviceType_accessProtocols deviceType_vendor |
deviceType_accessProtocols deviceType_vendor |
Jika tersedia dalam XML |
| discoverMethod | discoverMethod | Jika tersedia dalam XML |
| discoverTime | discoverTime | Jika tersedia dalam XML |
Insight
T/A
Repositori Kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook: Jika data tersedia untuk satu entity (is_success=true): "Berhasil memperkaya entity berikut menggunakan informasi dari FortiSIEM: {entity.identifier}." Jika data tidak tersedia untuk satu entitas (is_success=true): "Tindakan tidak dapat memperkaya entitas berikut menggunakan informasi dari FortiSIEM: {entity.identifier}." Jika data tidak tersedia untuk semua entitas (is_success=false): "Tidak ada entitas yang disediakan yang diperkaya." Tindakan akan gagal dan menghentikan eksekusi playbook: Jika error fatal, seperti kredensial salah, tidak ada koneksi ke server, atau error lainnya dilaporkan: "Error saat menjalankan tindakan "Perkaya Entitas". Alasan: {0}''.format(error.Stacktrace) |
Umum |
| Tabel Repositori Kasus | Judul Tabel: {entity.identifier} Kolom Tabel:
|
Entity |
Jalankan Kueri Sederhana
Deskripsi
Menjalankan kueri peristiwa FortiSIEM berdasarkan parameter yang diberikan.
Parameter
| Nama Tampilan Parameter | Jenis | Nilai Default | Wajib | Deskripsi |
|---|---|---|---|---|
| Jenis Acara | CSV | T/A | Tidak | Tentukan jenis peristiwa yang harus diambil kueri. Parameter menerima beberapa nilai sebagai string yang dipisahkan koma. |
| Tingkat Keparahan Minimum yang Akan Diambil | Bilangan bulat | T/A | Tidak | Tentukan tingkat keparahan peristiwa minimum yang akan diambil ke Google SecOps dalam angka. Contoh: 5 atau 7 |
| Kategori Peristiwa | CSV | T/A | Tidak | Menentukan kueri kategori peristiwa yang harus diambil. Parameter menerima beberapa nilai sebagai string yang dipisahkan koma. |
| ID Acara | CSV | T/A | Tidak | Tentukan ID peristiwa yang tepat yang opsional yang harus diambil oleh kueri. Parameter menerima beberapa nilai sebagai string yang dipisahkan koma. |
| Kolom yang Akan Ditampilkan | CSV | T/A | Tidak | Tentukan kolom yang akan ditampilkan. Jika tidak ada yang diberikan, tindakan akan menampilkan semua kolom. |
| Kolom Pengurutan | String | phRecvTime | Tidak | Tentukan parameter yang harus digunakan untuk pengurutan. |
| Tata Urutan | DDL | DESC Nilai yang Mungkin:
|
Tidak | Tentukan urutan penyortiran. |
| Jangka Waktu | DDL | Sejam Terakhir Nilai yang Mungkin:
|
Tidak | Tentukan jangka waktu untuk hasil. Jika "Kustom" dipilih, Anda juga perlu memberikan parameter "Waktu Mulai". |
| Waktu Mulai | String | T/A | Tidak | Tentukan waktu mulai untuk hasil. Parameter ini wajib diisi, jika "Kustom" dipilih untuk parameter "Rentang Waktu". Format: ISO 8601 Contoh: 2021-04-23T12:38Z |
| Waktu Berakhir | String | T/A | Tidak | Tentukan waktu berakhir untuk hasil. Jika tidak ada yang diberikan dan "Khusus" dipilih untuk parameter "Rentang Waktu", parameter ini akan menggunakan waktu saat ini. Format: ISO 8601 |
| Jumlah Hasil Maksimum yang Akan Ditampilkan | Bilangan bulat | 50 | Tidak | Tentukan jumlah hasil yang akan ditampilkan. |
Run On
Tindakan ini tidak dijalankan di entity.
Hasil Tindakan
Hasil Skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success=False |
Hasil JSON
[
{
"custId": "1",
"attributes": {
"eventType": "Unknown_EventType",
"eventSeverity": "3",
"eventAction": "0 (Permit)",
"phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
"relayDevIpAddr": "172.30.20xxx",
"reptDevIpAddr": "172.30.20xxx",
"destIpAddr": "172.30.20xxx",
"destName": "HOST-172.30.20xxx",
"reptDevName": "centos-xxx",
"reptVendor": "Unknown",
"customer": "Super",
"reptModel": "Unknown",
"rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
"collectorId": "1",
"eventId": "4242813061460978xxx",
"phEventCategory": "0 (External)",
"count": "1",
"eventName": "Unknown event type",
"eventParsedOk": "0",
"parserName": "SyslogNGParser"
},
"dataStr": null,
"eventType": "Unknown_EventType",
"id": "4242813061460978xxx",
"index": "0",
"nid": "4242813061460978xxx",
"receiveTime": "2021-12-29T00:36:55+02:00"
}
]
Pengayaan Entity
T/A
Insight
T/A
Repositori Kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook: Jika setidaknya beberapa data ditemukan (is_success=true): "Berhasil mengambil hasil untuk kueri yang dibuat "{query}" di FortiSIEM.". Jika tidak ada hasil yang ditemukan (is_success=false): "Tidak ada hasil yang ditemukan untuk kueri yang dibuat "{Query}" di FortiSIEM." Tindakan akan gagal dan menghentikan eksekusi playbook: Jika error fatal, seperti kredensial salah, tidak ada koneksi ke server, atau error lainnya dilaporkan: "Error saat menjalankan tindakan "Simple Query". Alasan: {0}''.format(error.Stacktrace) Jika parameter "Waktu Mulai" kosong dan parameter "Rentang Waktu" disetel ke "Kustom" (gagal): "Error saat menjalankan tindakan "". Alasan: "Waktu Mulai" harus diberikan, jika "Kustom" dipilih dalam parameter "Rentang Waktu"." Jika nilai parameter "Waktu Mulai" lebih besar daripada nilai parameter "Waktu Berakhir" (gagal): "Error saat menjalankan tindakan "". Alasan: "Waktu Berakhir" harus lebih lambat daripada "Waktu Mulai". |
Umum |
| Tabel | Nama Tabel: Hasil Kueri Sederhana Kolom Tabel: Semua kolom dari respons |
Umum |
Jalankan Kueri Kustom
Deskripsi
Jalankan kueri kustom di FortiSIEM.
Parameter
| Nama Tampilan Parameter | Jenis | Nilai Default | Wajib | Deskripsi |
|---|---|---|---|---|
| Kueri | Kolom input multi-baris string | (Atribut = Nilai ATAU Nilai) DAN (Nilai Atribut ATAU Nilai) | Ya | Tentukan kueri yang digunakan untuk mengambil informasi tentang peristiwa. Contoh: (relayDevIpAddr = 172.30.202.1 OR 172.30.202.2) AND (reptDevName = HOST1) |
| Kolom yang Akan Ditampilkan | CSV | Tidak | Tentukan kolom yang akan ditampilkan. Jika tidak ada yang diberikan, tindakan akan menampilkan semua kolom. |
|
| Kolom Pengurutan | String | phRecvTime | Tidak | Tentukan parameter yang harus digunakan untuk pengurutan. |
| Tata Urutan | DDL | DESC Nilai yang Mungkin:
|
Tidak | Tentukan urutan penyortiran. |
| Jangka Waktu | DDL | Sejam Terakhir Nilai yang Mungkin:
|
Tidak | Tentukan jangka waktu untuk hasil. Jika "Kustom" dipilih, Anda juga perlu memberikan parameter "Waktu Mulai". |
| Waktu Mulai | String | T/A | Tidak | Tentukan waktu mulai untuk hasil. Parameter ini wajib diisi, jika "Kustom" dipilih untuk parameter "Rentang Waktu". Format: ISO 8601 Contoh: 2021-04-23T12:38Z |
| Waktu Berakhir | String | T/A | Tidak | Tentukan waktu berakhir untuk hasil. Jika tidak ada yang diberikan dan "Khusus" dipilih untuk parameter "Rentang Waktu", parameter ini akan menggunakan waktu saat ini. |
| Jumlah Hasil Maksimum yang Akan Ditampilkan | Bilangan bulat | 50 | Tidak | Tentukan jumlah hasil yang akan ditampilkan. |
Run On
Tindakan ini tidak dijalankan di entity.
Hasil Tindakan
Hasil Skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success=False |
Hasil JSON
[
{
"custId": "1",
"attributes": {
"eventType": "Unknown_EventType",
"eventSeverity": "3",
"eventAction": "0 (Permit)",
"phRecvTime": "Wed Dec 29 00:36:55 IST 2021",
"relayDevIpAddr": "172.30.20xxx",
"reptDevIpAddr": "172.30.20xxx",
"destIpAddr": "172.30.20xxx",
"destName": "HOST-172.30.20xxx",
"reptDevName": "centos-xxx",
"reptVendor": "Unknown",
"customer": "Super",
"reptModel": "Unknown",
"rawEventMsg": "<27>Dec 29 00:36:47 centos-xxx aella_flow[5074]: 1902195|aos_afix_json|ERR|Failed to send message: Couldn't connect to server/7",
"collectorId": "1",
"eventId": "4242813061460978xxx",
"phEventCategory": "0 (External)",
"count": "1",
"eventName": "Unknown event type",
"eventParsedOk": "0",
"parserName": "SyslogNGParser"
},
"dataStr": null,
"eventType": "Unknown_EventType",
"id": "4242813061460978xxx",
"index": "0",
"nid": "4242813061460978xxx",
"receiveTime": "2021-12-29T00:36:55+02:00"
}
]
Pengayaan Entity
T/A
Insight
T/A
Repositori Kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook: Jika setidaknya beberapa data ditemukan (is_success=true): "Berhasil mengambil hasil untuk kueri "{query}" yang diberikan di FortiSIEM." Jika tidak ada hasil yang ditemukan (is_success=false): "No results were found for the provided query "{Query}" in FortiSIEM." (Tidak ada hasil yang ditemukan untuk kueri "{Query}" yang diberikan di FortiSIEM.) Tindakan akan gagal dan menghentikan eksekusi playbook: Jika error fatal, seperti kredensial salah, tidak ada koneksi ke server, atau error lainnya dilaporkan: "Error saat menjalankan tindakan "Simple Query". Alasan: {0}''.format(error.Stacktrace) Jika parameter "Waktu Mulai" kosong dan parameter "Rentang Waktu" disetel ke "Kustom" (gagal): "Error saat menjalankan tindakan "". Alasan: "Waktu Mulai" harus diberikan, jika "Kustom" dipilih dalam parameter "Rentang Waktu"." Jika nilai "Waktu Mulai" lebih besar daripada nilai parameter "Waktu Berakhir" (gagal): "Error saat menjalankan tindakan "". Alasan: "Waktu Berakhir" harus lebih lambat daripada "Waktu Mulai". |
Umum |
| Tabel | Nama Tabel: Hasil Kueri Kustom Kolom Tabel: Semua kolom dari respons |
Umum |
Konektor
Konektor Insiden FortiSIEM
Deskripsi Konektor
Konektor dapat digunakan untuk mengambil insiden FortiSIEM. Daftar yang diizinkan untuk konektor dapat digunakan untuk menyerap hanya jenis insiden tertentu berdasarkan nilai atribut "eventType" insiden. SourceGroupIdentifier konektor dapat digunakan untuk mengelompokkan pemberitahuan Google SecOps berdasarkan ID insiden. Konektor memerlukan FortiSIEM versi 6.3 atau yang lebih baru.
Parameter Konektor
| Nama Tampilan Parameter | Jenis | Nilai Default | Wajib | Deskripsi |
|---|---|---|---|---|
| Nama Kolom Produk | String | deviceProduct | Ya | Masukkan nama kolom sumber untuk mengambil nama Kolom Produk. |
| Nama Kolom Peristiwa | String | eventType | Ya | Masukkan nama kolom sumber untuk mengambil nama Kolom Peristiwa. |
| Nama Kolom Lingkungan | String | Tidak | Mendeskripsikan nama kolom tempat nama lingkungan disimpan. Jika kolom lingkungan tidak ditemukan, lingkungan yang digunakan adalah lingkungan default. |
|
| Pola Regex Lingkungan | String | .* | Tidak | Pola regex untuk dijalankan pada nilai yang ditemukan di kolom "Nama Kolom Lingkungan". Defaultnya adalah .* untuk mencakup semua dan menampilkan nilai tanpa perubahan. Digunakan untuk mengizinkan pengguna memanipulasi kolom lingkungan melalui logika regex. Jika pola regex adalah null atau kosong, atau nilai lingkungan adalah null, hasil lingkungan akhir adalah lingkungan default. |
| Waktu Tunggu Skrip | Bilangan bulat | 300 | Ya | Tentukan waktu tunggu konektor untuk dijalankan. |
| Root API | String | https:/x.x.x.x:port | Ya | Tentukan root API untuk penginstalan FortiSIEM target. |
| Nama pengguna | String | T/A | Ya | Tentukan nama pengguna yang akan digunakan untuk penginstalan FortiSIEM target. |
| Sandi | Sandi | T/A | Ya | Tentukan sandi yang akan digunakan untuk penginstalan FortiSIEM target. |
| Verifikasi SSL | Kotak centang | Dicentang | Tidak | Jika diaktifkan, server Google SecOps akan memeriksa sertifikat yang dikonfigurasi untuk root API. |
| Organisasi Target | CSV | T/A | Tidak | Tentukan organisasi yang insidennya harus diambil oleh konektor. Parameter menerima beberapa nilai sebagai string yang dipisahkan koma. |
| Maks. jam mundur | Bilangan bulat | 24 | Ya | Tentukan jangka waktu untuk mengambil insiden dari X jam sebelumnya. |
| Insiden Maks. Per Siklus | Bilangan bulat | 10 | Ya | Tentukan jumlah insiden yang harus diproses selama satu kali menjalankan konektor. |
| Peristiwa Maks. Per Insiden | Bilangan bulat | 100 | Ya | Tentukan jumlah maksimum peristiwa yang harus dilacak konektor untuk insiden. Setelah batas tercapai, peristiwa baru tidak akan ditambahkan ke Google SecOps. |
| Status Insiden yang Akan Diambil | CSV | 0 | Tidak | Tentukan status insiden yang akan diambil ke Google SecOps. Parameter menerima beberapa nilai sebagai string yang dipisahkan koma. 0 adalah insiden dengan status terbuka. |
| Tingkat Keparahan Minimum yang Akan Diambil | Bilangan bulat | T/A | Tidak | Tentukan tingkat keparahan peristiwa insiden minimum yang akan diambil ke Google SecOps dalam angka, misalnya 5 atau 7. |
| Menggunakan daftar yang diizinkan sebagai daftar blokir | Kotak centang | Tidak dicentang | Ya | Jika diaktifkan, daftar yang diizinkan digunakan sebagai daftar yang diblokir. |
| Melacak Peristiwa Baru yang Ditambahkan ke Insiden yang Sudah Di-Ingest | Kotak centang | Dicentang | Ya | Jika diaktifkan, jika peristiwa baru ditambahkan ke insiden FortiSIEM yang sudah diproses, pemberitahuan baru tambahan akan dibuat di Google SecOps yang memiliki peristiwa baru tersebut. |
| Ambang Batas Pelacakan Peristiwa Baru (jam) | Bilangan bulat | 24 | Ya | Jika kotak centang "Lacak Peristiwa Baru yang Ditambahkan ke Insiden yang Sudah Di-ingest" dicentang, tentukan jumlah maksimum jam konektor harus melacak insiden yang sudah di-ingest untuk peristiwa baru. Setelah batas tercapai, peristiwa baru tidak akan ditambahkan ke Google SecOps. |
| Alamat Server Proxy | String | T/A | Tidak | Tentukan alamat server proxy yang akan digunakan. |
| Nama Pengguna Proxy | String | T/A | Tidak | Tentukan nama pengguna proxy untuk melakukan autentikasi. |
| Sandi Proxy | Sandi | T/A | Tidak | Tentukan sandi proxy untuk melakukan autentikasi. |
Aturan Konektor
Dukungan Proxy
Konektor mendukung Proxy.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.