Tenable Security Center
Versi integrasi: 15.0
Dokumen ini menjelaskan cara mengintegrasikan Tenable Security Center dengan Google Security Operations (Google SecOps).
Sebelum memulai
Untuk mengonfigurasi integrasi Tenable Security Center, Anda harus mendapatkan kredensial koneksi yang diperlukan terlebih dahulu dan mengonfirmasi bahwa Anda memahami metode autentikasi yang diperlukan.
Prasyarat autentikasi
Integrasi ini mendukung dua metode autentikasi yang eksklusif satu sama lain. Anda harus memberikan satu set lengkap kredensial.
Nama pengguna dan sandi: Gunakan kredensial login standar Anda.
Kunci Akses dan Kunci Rahasia (Direkomendasikan): Metode ini menggunakan otorisasi kunci API dan diprioritaskan jika kedua pasangan kredensial diberikan.
Untuk membuat kunci ini, lihat Otorisasi Kunci API.
Verifikasi SSL
Integrasi memverifikasi sertifikat SSL server Tenable Security Center secara default. Jika lingkungan Anda menggunakan sertifikat internal atau yang ditandatangani sendiri, Anda harus menonaktifkan setelan Verify SSL.
Input integrasi
Untuk mengonfigurasi integrasi, gunakan parameter berikut:
| Parameter | |
|---|---|
Server Address |
Wajib Alamat server Tenable Security Center yang akan digunakan dalam integrasi. |
Username |
Opsional Nama pengguna untuk login ke server Tenable Security Center.
|
Password |
Opsional Sandi untuk login ke server Tenable Security Center.
|
Access Key |
Opsional Kunci Akses akun Tenable Security Center.
|
Secret Key |
Opsional Kunci Rahasia akun Tenable Security Center.
|
Verify SSL |
Opsional Jika dipilih, akan memverifikasi bahwa sertifikat SSL untuk koneksi ke server Tenable valid. Dipilih secara default. |
Tindakan
Menambahkan IP ke Aset Daftar IP
Tambahkan aset daftar IP ke IP di Tenable Security Center.
Parameter
| Parameter Display Name | Jenis | Nilai Default | Wajib Diisi | Deskripsi |
|---|---|---|---|---|
| Nama Aset | String | T/A | Ya | Tentukan nama aset daftar IP yang ingin Anda tambahi IP baru. |
Dijalankan pada
Tindakan ini dijalankan pada entity Alamat IP.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
{
"type": "regular",
"response": {
"id": "41",
"name": "api_test_5",
"type": "static",
"description": "",
"tags": "qweqwe",
"context": "",
"status": "0",
"createdTime": "1606129689",
"modifiedTime": "1606129689",
"ioSyncStatus": "Not Synced",
"ioFirstSyncTime": "-1",
"ioLastSyncSuccess": "-1",
"ioLastSyncFailure": "-1",
"ioSyncErrorDetails": null,
"typeFields": {
"definedIPs": "203.0.113.1,203.0.113.10"
},
"repositories": [
{
"ipCount": "-1",
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
}
}
],
"ipCount": -1,
"groups": [],
"assetDataFields": [],
"canUse": "true",
"canManage": "true",
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"targetGroup": {
"id": -1,
"name": "",
"description": ""
},
"template": {
"id": -1,
"name": "",
"description": ""
}
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606129688
}
Repositori kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook:
Jika tidak ada entitas IP: Tidak ada alamat IP yang ditambahkan ke
Aset Daftar IP {0}.format(name)
Jika bukan kode statis 200 (is_success = false): print "Error executing action "Add IP to IP List Asset". Alasan: {0}''.format(error_msg) |
Umum |
Membuat Aset Daftar IP
Buat aset daftar IP di Tenable Security Center. Memerlukan minimal satu entitas IP agar berhasil dieksekusi.
Parameter
| Parameter Display Name | Jenis | Nilai Default | Wajib Diisi | Deskripsi |
|---|---|---|---|---|
| Nama | String | T/A | Ya | Tentukan nama untuk aset daftar IP. |
| Deskripsi | String | T/A | Tidak | Tentukan deskripsi aset daftar IP. |
| Tag | String | T/A | Tidak | Tentukan tag aset daftar IP. |
Dijalankan pada
Tindakan ini dijalankan pada entity Alamat IP.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
{
"type": "regular",
"response": {
"id": "41",
"name": "api_test_5",
"type": "static",
"description": "",
"tags": "qweqwe",
"context": "",
"status": "0",
"createdTime": "1606129689",
"modifiedTime": "1606129689",
"ioSyncStatus": "Not Synced",
"ioFirstSyncTime": "-1",
"ioLastSyncSuccess": "-1",
"ioLastSyncFailure": "-1",
"ioSyncErrorDetails": null,
"typeFields": {
"definedIPs": "203.0.113.1,203.0.113.10"
},
"repositories": [
{
"ipCount": "-1",
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
}
}
],
"ipCount": -1,
"groups": [],
"assetDataFields": [],
"canUse": "true",
"canManage": "true",
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"targetGroup": {
"id": -1,
"name": "",
"description": ""
},
"template": {
"id": -1,
"name": "",
"description": ""
}
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606129688
}
Repositori kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook:
Jika tidak ada entitas IP: cetak "Setidaknya 1 entitas IP harus tersedia untuk membuat Aset Daftar IP".
Jika bukan kode statis 200 (is_success = false): cetak "Error saat menjalankan tindakan "Buat Aset Daftar IP". Alasan: {0}''.format(error_msg) |
Umum |
Memperkaya IP
Dapatkan informasi tentang alamat IP dan lengkapi informasinya.
Parameter
| Parameter | Jenis | Nilai Default | Deskripsi |
|---|---|---|---|
| Nama Repositori | String | T/A | Nama repositori. |
Dijalankan pada
Tindakan ini dijalankan pada entity Alamat IP.
Hasil tindakan
Pengayaan entitas
| Nama Kolom Pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| macAddress | Menampilkan apakah ada di hasil JSON |
| severityLow | Menampilkan apakah ada di hasil JSON |
| link | Menampilkan apakah ada di hasil JSON |
| ip | Menampilkan apakah ada di hasil JSON |
| pemindaian terakhir | Menampilkan apakah ada di hasil JSON |
| severityCritical | Menampilkan apakah ada di hasil JSON |
| total | Menampilkan apakah ada di hasil JSON |
| severityAll | Menampilkan apakah ada di hasil JSON |
| mcafeeGUID | Menampilkan apakah ada di hasil JSON |
| policyName | Menampilkan apakah ada di hasil JSON |
| uuid | Menampilkan apakah ada di hasil JSON |
| lastAuthRun | Menampilkan apakah ada di hasil JSON |
| severityInfo | Menampilkan apakah ada di hasil JSON |
| osCPE | Menampilkan apakah ada di hasil JSON |
| keunikan | Menampilkan apakah ada di hasil JSON |
| dnsName | Menampilkan apakah ada di hasil JSON |
| repositori | Menampilkan apakah ada di hasil JSON |
| ip | Menampilkan apakah ada di hasil JSON |
| deskripsi | Menampilkan apakah ada di hasil JSON |
| nama | Menampilkan apakah ada di hasil JSON |
| lastUnauthRun | Menampilkan apakah ada di hasil JSON |
| biosGUID | Menampilkan apakah ada di hasil JSON |
| tpmID | Menampilkan apakah ada di hasil JSON |
| skor | Menampilkan apakah ada di hasil JSON |
| hasPassive | Menampilkan apakah ada di hasil JSON |
| pluginSet | Menampilkan apakah ada di hasil JSON |
| hasCompliance | Menampilkan apakah ada di hasil JSON |
| severityHigh | Menampilkan apakah ada di hasil JSON |
| netbiosName | Menampilkan apakah ada di hasil JSON |
| severityMedium | Menampilkan apakah ada di hasil JSON |
| os | Menampilkan apakah ada di hasil JSON |
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
[
{
"EntityResult":
{
"macAddress": "",
"severityLow": "0",
"links": [],
"ip": "203.0.113.1",
"lastScan": "1549425224",
"severityCritical": "0",
"total": "2",
"severityAll": "0,0,0,0,2",
"mcafeeGUID": "",
"policyName": "1e2e4247-0de7-56d5-8026-34ab1f3150ef-1130313/Basic Discovery Scan",
"uuid": "",
"lastAuthRun": "",
"severityInfo": "2",
"osCPE": "",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"repository":
{
"id": "1",
"description": "",
"name": "repository"
},
"lastUnauthRun": "1549363419",
"biosGUID": "",
"tpmID": "",
"score": "0",
"hasPassive": "No",
"pluginSet": "201902020242",
"hasCompliance": "No",
"severityHigh": "0",
"netbiosName": "",
"severityMedium": "0",
"os": ""
},
"Entity": "203.0.113.1"
}
]
Mendapatkan Aset Terkait
Mendapatkan aset yang terkait dengan alamat IP.
Parameter
| Parameter | Jenis | Nilai Default | Deskripsi |
|---|---|---|---|
| Nama Repositori | String | T/A | Nama repositori. |
Dijalankan pada
Tindakan ini dijalankan pada entity Alamat IP.
Hasil tindakan
Pengayaan entitas
| Nama Kolom Pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| id | Menampilkan apakah ada di hasil JSON |
| nama | Menampilkan apakah ada di hasil JSON |
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
[
{
"EntityResult":
[
{
"id": "0",
"description": "All defining ranges of the Group in whose context this Asset is being evaluated.",
"name": "All Defined Ranges"
}, {
"id": "2",
"description": "This asset uses the Scan Summary plugin to detect if a host has been scanned by Nessus. The Scan Summary plugin contains the list of tests conducted during the most recent scan.",
"name": "Systems that have been Scanned"
}, {
"id": "13",
"description": "Leverage Nessus plugin 10180 (Ping the remote host) and Nessus plugin 12503 (Host Fully Qualified Domain Name (FQDN) Resolution) to find hosts that don't have a resolvable FQDN in DNS.",
"name": "Scanned Hosts Not in DNS"
}
],
"Entity": "203.0.113.1"
}
]
Dapatkan Laporannya
Mendapatkan konten laporan menurut ID atau nama.
Parameter
| Parameter | Jenis | Nilai Default | Deskripsi |
|---|---|---|---|
| ID Laporan | String | T/A | Nomor ID laporan.Dapat ditemukan di URL laporan. |
Run On
Tindakan ini dijalankan di semua entity.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
{
"pubSites":
[
"https://example.com",
"https://example.net"
]
}
Mendapatkan Hasil Pemindaian
Tunggu hingga pemindaian selesai dan dapatkan hasil pemindaian.
Parameter
| Parameter | Jenis | Nilai Default | Deskripsi |
|---|---|---|---|
| ID Hasil Pemindaian | String |
T/A | ID hasil pemindaian. |
Dijalankan pada
Tindakan ini dijalankan di semua entity.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
{
"severity_summary":
[
{
"count": "0",
"severity":
{
"id": "4",
"name": "Critical",
"description": "Critical Severity"
}
}, {
"count": "0",
"severity":
{
"id": "3",
"name": "High",
"description": "High Severity"
}
}, {
"count": "3",
"severity":
{"id": "2",
"name": "Medium",
"description": "Medium Severity"
}}
],
"results":
[
{
"name": "DNS Server Recursive Query Cache Poisoning Weakness",
"family": "DNS",
"hostTotal": "1",
"pluginID": "10539",
"total": "1",
"severity": "Medium"
}, {
"name": "DNS Server Spoofed Request Amplification DDoS",
"family": "DNS",
"hostTotal": "1",
"pluginID": "35450",
"total": "1",
"severity": "Medium"
}, {
"name": "SSL Medium Strength Cipher Suites Supported",
"family": "General",
"hostTotal": "1",
"pluginID": "42873",
"total": "1",
"severity": "Medium"
}
]
}
Mendapatkan Kerentanan untuk IP
Mendapatkan ringkasan kerentanan dan tingkat keparahan untuk alamat IP.
Parameter
T/A
Dijalankan pada
Tindakan ini dijalankan pada entity Alamat IP.
Hasil tindakan
Pengayaan entitas
| Nama Kolom Pengayaan | Logika - Kapan harus diterapkan |
|---|---|
| macAddress | Menampilkan apakah ada di hasil JSON |
| protokol | Menampilkan apakah ada di hasil JSON |
| uuid | Menampilkan apakah ada di hasil JSON |
| keluarga | Menampilkan apakah ada di hasil JSON |
| pluginInfo | Menampilkan apakah ada di hasil JSON |
| ip | Menampilkan apakah ada di hasil JSON |
| pluginID | Menampilkan apakah ada di hasil JSON |
| tingkat keseriusan, | Menampilkan apakah ada di hasil JSON |
| repositori | Menampilkan apakah ada di hasil JSON |
| keunikan | Menampilkan apakah ada di hasil JSON |
| dnsName | Menampilkan apakah ada di hasil JSON |
| port | Menampilkan apakah ada di hasil JSON |
| netbiosName | Menampilkan apakah ada di hasil JSON |
| nama | Menampilkan apakah ada dalam hasil JSON |
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
[
{
"EntityResult":
[
{
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "Web Servers",
"pluginInfo": "10107 (443/6) HTTP Server Type and Version",
"ip": "203.0.113.1",
"pluginID": "10107",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "HTTP Server Type and Version"
}, {
"macAddress": "",
"protocol": "UDP",
"uuid": "",
"family": "DNS",
"pluginInfo": "10539 (53/17) DNS Server Recursive Query Cache Poisoning Weakness",
"ip": "203.0.113.1",
"pluginID": "10539",
"severity": "Medium",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "exaample.com",
"port": "53",
"netbiosName": "",
"name": "DNS Server Recursive Query Cache Poisoning Weakness"
}, {
"macAddress": "",
"protocol": "TCP",
"uuid": "",
"family": "General",
"pluginInfo": "10863 (443/6) SSL Certificate Information",
"ip": "203.0.113.1",
"pluginID": "10863",
"severity": "Info",
"repository": "repo",
"uniqueness": "repositoryID,ip,dnsName",
"dnsName": "example.com",
"port": "443",
"netbiosName": "",
"name": "SSL Certificate Information"
}
],
"Entity": "203.0.113.1"
}
]
Ping
Uji konektivitas.
Dijalankan pada
Tindakan ini dijalankan di semua entity.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| null | T/A | T/A |
Memindai IP
Mulai pemindaian alamat IP.
Parameter
| Parameter | Jenis | Nilai Default | Deskripsi |
|---|---|---|---|
| Nama pemindaian | String | T/A | Nama pemindaian yang akan dibuat. |
| Nama Kebijakan | String | T/A | Nama kebijakan. |
Dijalankan pada
Tindakan ini dijalankan pada entity Alamat IP.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| scan_result_id | T/A | T/A |
Menjalankan Pemindaian Aset
Jalankan Pemindaian Aset di Tenable Security Center.
Tempat Menemukan ID Kebijakan dan ID Repositori
Untuk ID Kebijakan:
- Buka
https://INSTANCE_IP_ADDRESS/#policies. - Pilih kebijakan yang ingin Anda gunakan dalam tindakan.
- Di URL, Anda akan dapat melihat ID kebijakan tersebut.
Untuk ID Repository:
- Buka
https://INSTANCE_IP_ADDRESS/#repositories. - Pilih repositori yang ingin Anda gunakan dalam tindakan.
- Di URL, Anda akan dapat melihat ID repositori tersebut.
Parameter
| Parameter Display Name | Jenis | Nilai Default | Wajib Diisi | Deskripsi |
|---|---|---|---|---|
| Nama Pemindaian | T/A | Ya | Tentukan nama untuk pemindaian. | |
| Nama Aset | String | T/A | Ya | Tentukan nama aset yang harus dipindai. |
| ID Kebijakan | Bilangan bulat | T/A | Ya | Tentukan ID kebijakan yang harus digunakan dalam pemindaian. |
| ID Repositori | Bilangan bulat | T/A | Ya | Tentukan ID repositori yang harus digunakan dalam pemindaian. |
| Deskripsi | String | T/A | Tidak | Tentukan deskripsi untuk pemindaian. |
Dijalankan pada
Tindakan ini tidak dijalankan pada entitas.
Hasil tindakan
Hasil skrip
| Nama Hasil Skrip | Opsi Nilai | Contoh |
|---|---|---|
| is_success | Benar/Salah | is_success:False |
Hasil JSON
{
"type": "regular",
"response": {
"id": "11",
"name": "Scan Name",
"description": "",
"ipList": "",
"type": "policy",
"dhcpTracking": "false",
"classifyMitigatedAge": "0",
"emailOnLaunch": "false",
"emailOnFinish": "false",
"timeoutAction": "import",
"scanningVirtualHosts": "false",
"rolloverType": "template",
"status": "0",
"createdTime": "1606132784",
"modifiedTime": "1606132784",
"maxScanTime": "3600",
"reports": [],
"assets": [
{
"id": "38",
"name": "api_test_1",
"description": ""
}
],
"credentials": [],
"numDependents": "0",
"schedule": {
"id": -1,
"objectType": -1,
"type": "now",
"start": "",
"repeatRule": "",
"enabled": "true",
"nextRun": -1,
"dependent": {
"id": -1,
"name": "",
"description": ""
}
},
"policy": {
"id": "1000002",
"context": "",
"name": "Host Discovery",
"description": "",
"tags": "",
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
}
},
"policyPrefs": [
{
"name": "MODE|discovery",
"value": "host_enumeration"
},
{
"name": "description",
"value": ""
},
{
"name": "display_unreachable_hosts",
"value": "no"
},
{
"name": "log_live_hosts",
"value": "yes"
},
{
"name": "name",
"value": "Host Discovery"
},
{
"name": "reverse_lookup",
"value": "no"
}
],
"repository": {
"id": "1",
"name": "Example-Repository",
"description": ""
},
"canUse": "true",
"canManage": "true",
"plugin": {
"id": -1,
"name": "",
"description": ""
},
"zone": {
"id": -1,
"name": "",
"description": ""
},
"ownerGroup": {
"id": "0",
"name": "Full Access",
"description": "Full Access group"
},
"creator": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"owner": {
"id": "1",
"username": "security_manager",
"firstname": "Manager",
"lastname": "Security"
},
"scanResultID": "34"
},
"error_code": 0,
"error_msg": "",
"warnings": [],
"timestamp": 1606132783
}
Repositori kasus
| Jenis hasil | Nilai/Deskripsi | Jenis |
|---|---|---|
| Pesan output* | Tindakan tidak boleh gagal atau menghentikan eksekusi playbook:
Tindakan akan gagal dan menghentikan eksekusi playbook
Jika aset tidak ditemukan: cetak "Error executing action "Run Asset Scan". Alasan: Aset {0} tidak ditemukan di Tenable Security Center. ''.format(name) Jika bukan kode statis 200 (is_success = false): print "Error executing action "Run Asset Scan". Alasan:{0}".format(error_msg) |
Umum |
Konektor
Konektor Tenable Security Center
Untuk mendapatkan petunjuk mendetail tentang cara mengonfigurasi konektor di Google SecOps, lihat Mengonfigurasi konektor.
Parameter konektor
Gunakan parameter berikut untuk mengonfigurasi konektor:
| Parameter | Jenis | Nilai Default | Deskripsi |
|---|---|---|---|
| DeviceProductField | String | device_product | Nama kolom yang digunakan untuk menentukan produk perangkat. |
| EventClassId | String | nama | Nama kolom yang digunakan untuk menentukan nama peristiwa (sub-jenis). |
| PythonProcessTimeout | String | 60 | Batas waktu tunggu (dalam detik) untuk proses python yang menjalankan skrip saat ini. |
| Alamat Server | String | null | T/A |
| Nama pengguna | String | null | T/A |
| Sandi | Sandi | null | T/A |
| Kunci Akses | String | null | Opsional Kunci Akses akun Tenable Security Center.
|
| Kunci Rahasia | Sandi | null | Opsional Kunci Rahasia akun Tenable Security Center.
|
| Use SSL | Kotak centang | Tidak dicentang | T/A |
| Maksimum Hari Mundur | Bilangan bulat | 1 | Jumlah hari sebelumnya, dari mana Anda ingin mengambil data. |
| Batas Per Siklus | Bilangan bulat | 10 | Jumlah pemberitahuan yang diserap ke dalam konektor di setiap siklus eksekusi. |
| Alamat Server Proxy | String | null | Alamat server proxy yang akan digunakan. |
| Nama Pengguna Proxy | String | null | Nama pengguna proxy untuk melakukan autentikasi. |
| Sandi Proxy | Sandi | null | Sandi proxy untuk mengautentikasi. |
Aturan konektor
Konektor mendukung proxy.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.