Mengintegrasikan Pub/Sub dengan Google SecOps
Dokumen ini memberikan panduan tentang cara mengintegrasikan Pub/Sub dengan Google Security Operations (Google SecOps).
Versi integrasi: 1.0
Sebelum memulai
Untuk menggunakan integrasi Pub/Sub, Anda memerlukan hal berikut:
Akun layanan Google Cloud —Anda dapat menggunakan akun layanan yang ada atau membuat akun layanan baru.
Untuk mendapatkan panduan tentang cara membuat akun layanan, lihat Membuat akun layanan.
Jika Anda menggunakan akun layanan untuk melakukan autentikasi ke Google Cloud, Anda dapat membuat kunci akun layanan dalam JSON dan memberikan konten file JSON yang didownload saat mengonfigurasi parameter integrasi.
Catatan: Untuk alasan keamanan, sebaiknya gunakan alamat email workload identity, bukan kunci akun layanan. Untuk mengetahui informasi selengkapnya tentang identitas beban kerja, lihat Identitas untuk beban kerja.
Konfigurasi peran IAM untuk akun utama Anda.
Pub/Sub menggunakan Identity and Access Management (IAM) untuk kontrol akses dan mengharuskan Anda memberikan peran
Pub/Sub Viewer
kepada prinsipal Anda.
Parameter integrasi
Integrasi Pub/Sub memerlukan parameter berikut:
Parameter | Deskripsi |
---|---|
Workload Identity Email |
Opsional Alamat email klien dari Workload Identity Federation Anda. Anda dapat mengonfigurasi parameter ini atau parameter Untuk meniru identitas akun layanan dengan Workload Identity Federation,
berikan peran |
Service Account JSON File Content |
Opsional Konten file JSON kunci akun layanan. Anda dapat mengonfigurasi parameter ini atau parameter Untuk mengonfigurasi parameter ini, berikan konten lengkap file JSON kunci akun layanan yang Anda download saat membuat akun layanan. Untuk mengetahui informasi selengkapnya tentang penggunaan akun layanan sebagai metode autentikasi, lihat Ringkasan akun layanan. |
Quota Project ID |
Opsional Google Cloud Project ID yang Anda gunakan untuk
Google Cloud API dan penagihan. Parameter ini mengharuskan Anda memberikan
peran Integrasi melampirkan nilai parameter ini ke semua permintaan API. Jika Anda tidak menetapkan nilai untuk parameter ini, integrasi akan mengambil ID project kuota dari akun layanan Google Cloud Anda. |
Project ID |
Opsional Project ID yang akan digunakan dalam integrasi. Jika Anda tidak menetapkan nilai untuk parameter ini, integrasi akan mengambil project ID dari akun layanan Google Cloud Anda. |
Verify SSL |
Wajib Jika dipilih, integrasi akan memverifikasi bahwa sertifikat SSL untuk terhubung ke Pub/Sub valid. Dipilih secara default. |
Untuk mengetahui petunjuk tentang cara mengonfigurasi integrasi di Google SecOps, lihat Mengonfigurasi integrasi.
Anda dapat melakukan perubahan di tahap berikutnya jika diperlukan. Setelah mengonfigurasi instance integrasi, Anda dapat menggunakannya dalam playbook. Untuk mengetahui informasi selengkapnya tentang mengonfigurasi dan mendukung beberapa instance, lihat Mendukung beberapa instance.
Tindakan
Untuk mengetahui informasi selengkapnya tentang tindakan, lihat Merespons tindakan tertunda dari Workdesk Anda dan Melakukan tindakan manual.
Ping
Gunakan tindakan Ping untuk menguji konektivitas ke Pub/Sub.
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 |
Pesan output
Tindakan Ping dapat menampilkan pesan output berikut:
Pesan output | Deskripsi pesan |
---|---|
Successfully connected to the Pub/Sub server with the
provided connection parameters! |
Tindakan berhasil. |
Failed to connect to the Pub/Sub server! Error is
ERROR_REASON |
Tindakan gagal. Periksa koneksi ke server, parameter input, atau kredensial. |
Hasil skrip
Tabel berikut mencantumkan nilai untuk output hasil skrip saat menggunakan tindakan Ping:
Nama hasil skrip | Nilai |
---|---|
is_success |
True atau False |
Konektor
Untuk mengetahui petunjuk mendetail tentang cara mengonfigurasi konektor di Google SecOps, lihat Menyerap data Anda (konektor).
Pub/Sub – Konektor Pesan
Di platform Google SecOps, Pub/Sub – Messages Connector disebut PubSub – Messages Connector.
Gunakan Konektor Pesan – Pub/Sub untuk mengambil pesan dari Pub/Sub.
Pemetaan tingkat keparahan JSON
Untuk memetakan tingkat keparahan pemberitahuan, Anda perlu menentukan kolom yang digunakan oleh
Konektor Pub/Sub – Pesan untuk
mendapatkan nilai tingkat keparahan dalam parameter Severity Mapping JSON
. Respons
konektor dapat berisi jenis nilai, seperti integer
, float
, dan string
.
Pub/Sub – Messages Connector membaca nilai integer
dan float
serta memetakannya sesuai dengan setelan Google SecOps. Tabel berikut menunjukkan pemetaan nilai integer
ke tingkat keparahan di Google SecOps:
Nilai bilangan bulat | Tingkat keparahan yang dipetakan |
---|---|
100 |
Critical |
Dari 80 hingga 100 |
High |
Dari 60 hingga 80 |
Medium |
Dari 40 hingga 60 |
Low |
Kurang dari 40 |
Informational |
Jika respons berisi nilai string
, Pub/Sub – Messages
Connector memerlukan konfigurasi tambahan.
Awalnya, nilai default muncul sebagai berikut:
{
"Default": 60
}
Jika nilai yang diperlukan untuk pemetaan berada di kunci JSON event_severity
, nilai dapat berupa sebagai berikut:
"Malicious"
"Benign"
"Unknown"
Untuk mengurai nilai kunci JSON event_severity
dan memastikan objek JSON memiliki format yang benar, konfigurasikan parameter Severity Mapping JSON
sebagai berikut:
{
"event_severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
Nilai "Default"
wajib diisi.
Jika ada beberapa kecocokan untuk objek JSON yang sama, Pub/Sub – Messages Connector memprioritaskan kunci objek JSON pertama.
Untuk menggunakan kolom yang berisi nilai integer
atau float
, konfigurasikan kunci dan string kosong dalam parameter Severity Mapping JSON
:
{
"Default":"60",
"integer_field": "",
"float_field": ""
}
Input konektor
Pub/Sub – Messages Connector memerlukan parameter berikut:
Parameter | Deskripsi |
---|---|
Product Field Name |
Wajib Nama kolom tempat nama produk disimpan. Nilai defaultnya adalah |
Event Field Name |
Wajib Nama kolom yang digunakan untuk menentukan nama peristiwa (subjenis). Nilai defaultnya adalah |
Environment Field Name |
Opsional
Nama kolom tempat nama lingkungan disimpan. Jika kolom lingkungan tidak ditemukan, lingkungan akan disetel ke lingkungan 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. |
Script Timeout (Seconds) |
Wajib Batas waktu dalam detik untuk proses Python yang menjalankan skrip saat ini. Nilai defaultnya adalah |
Service Account JSON File Content |
Opsional Konten file JSON kunci akun layanan. Anda dapat mengonfigurasi parameter ini atau parameter Untuk mengonfigurasi parameter ini, berikan konten lengkap file JSON kunci akun layanan yang Anda download saat membuat akun layanan. Untuk Pub/Sub – Messages Connector, autentikasi dengan file JSON kunci akun layanan memiliki prioritas lebih tinggi daripada Workload Identity Federation. |
Workload Identity Email |
Opsional Alamat email klien akun layanan Anda. Anda dapat mengonfigurasi parameter ini atau parameter Untuk meniru identitas akun layanan dengan
Workload Identity Federation,
berikan peran |
Project ID |
Opsional Project ID yang akan digunakan di konektor. |
Quota Project ID |
Opsional Google Cloud Project ID yang Anda gunakan untuk
Google Cloud API dan penagihan. Parameter ini mengharuskan Anda memberikan
peran Integrasi melampirkan nilai parameter ini ke semua permintaan API. |
Subscription ID |
Wajib ID langganan Pub/Sub. |
Case Name Template |
Opsional Nama kasus kustom. Saat Anda mengonfigurasi
parameter ini, konektor akan menambahkan kunci baru bernama
Anda dapat memberikan placeholder dalam format berikut:
Contoh: Untuk placeholder, konektor menggunakan peristiwa Google SecOps pertama. Konektor hanya menangani kunci yang berisi nilai string. Untuk mengonfigurasi parameter ini, tentukan kolom peristiwa tanpa awalan. |
Alert Name Template |
Wajib Nama notifikasi kustom. Anda dapat memberikan placeholder dalam format berikut:
Contoh: Untuk placeholder, konektor menggunakan
peristiwa Google SecOps pertama. Konektor hanya menangani
kunci yang berisi nilai string. Jika Anda tidak memberikan nilai apa pun atau menggunakan
template yang tidak valid, konektor akan menggunakan nilai pengganti dalam format
berikut: |
Rule Generator Template |
Wajib Generator aturan khusus. Anda dapat memberikan placeholder dalam format berikut:
Contoh: Untuk placeholder, konektor menggunakan
peristiwa Google SecOps pertama. Konektor hanya menangani
kunci yang berisi nilai string. Jika Anda tidak memberikan nilai apa pun atau menggunakan
template yang tidak valid, konektor akan menggunakan nilai pengganti dalam format
berikut: |
Timestamp Field |
Wajib Nama kolom untuk menentukan stempel waktu pemberitahuan Google SecOps. Jika stempel waktu tidak
menggunakan format waktu epoch Unix, tentukan format stempel waktu dalam
parameter Nilai defaultnya adalah
|
Timestamp Format |
Opsional Format stempel waktu pesan. Konektor memerlukan stempel waktu untuk memproses pesan dengan benar. Jika stempel waktu tidak menggunakan format waktu epoch Unix dan Anda tidak mengonfigurasi format stempel waktu, konektor akan gagal. Nilai defaultnya adalah
|
Severity Mapping JSON |
Wajib Objek JSON yang menentukan cara konektor mengekstraksi tingkat keparahan dari pesan. Nilai defaultnya adalah sebagai berikut: { "Default": "60" } Untuk mengetahui informasi selengkapnya tentang pemetaan tingkat keparahan, lihat Pemetaan tingkat keparahan JSON. |
Unique ID Field |
Opsional Nama kolom untuk mengonfirmasi bahwa pesan tersebut unik. Jika Anda tidak menetapkan nilai, konektor akan membuat hash SHA-256 dan menggunakannya sebagai ID untuk pesan. |
Max Messages To Fetch |
Opsional Jumlah maksimum pesan yang akan diproses untuk setiap iterasi konektor. Jumlah maksimumnya adalah 100. |
Disable Overflow |
Opsional Jika dipilih, konektor akan mengabaikan mekanisme peluapan Google SecOps selama pembuatan pemberitahuan. Dipilih secara default. |
Verify SSL |
Wajib Jika dipilih, integrasi akan memverifikasi bahwa sertifikat SSL untuk terhubung ke Pub/Sub valid. Dipilih secara default. |
Proxy Server Address |
Opsional Alamat server proxy yang akan digunakan. |
Proxy Username |
Opsional Nama pengguna proxy untuk melakukan autentikasi. |
Proxy Password |
Opsional Sandi proxy untuk mengautentikasi. |
Aturan konektor
Pub/Sub – Messages Connector mendukung proxy.
Peristiwa konektor
Contoh berikut menunjukkan output JSON peristiwa Google SecOps yang dihasilkan oleh Pub/Sub – Messages Connector:
{
"notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/soar_connector_toxic_notifications_config",
"finding": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/FIREWALL_ID",
"state": "ACTIVE",
"category": "OPEN_NETBIOS_PORT",
"externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
"sourceProperties": {
"Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
"ExceptionInstructions": "Add the security mark \"allow_open_netbios_port\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
"Explanation": "Firewall rules that allow connections from all IP addresses on TCP ports 137-139 or UDP ports 137-139 may expose NetBIOS services to attackers.",
"ScannerName": "FIREWALL_SCANNER",
"ResourcePath": [
"projects/PROJECT_ID/",
"folders/FOLDER_ID/",
"folders/FOLDER_ID/",
"organizations/ORGANIZATION_ID/"
],
"ExposedService": "NetBIOS",
"OpenPorts": {
"TCP": [
137.0,
138.0,
139.0
],
"UDP": [
137.0,
138.0,
139.0
]
},
"compliance_standards": {
"iso": [
{
"ids": [
"A.13.1.1"
]
}
],
"pci": [
{
"ids": [
"1.2.1"
]
}
],
"nist": [
{
"ids": [
"SC-7"
]
}
]
},
"ReactivationCount": 4.0
},
"securityMarks": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
"marks": {
"peter": "e2e1"
}
},
"eventTime": "2024-08-30T14:44:37.973090Z",
"createTime": "2024-06-24T07:08:54.777Z",
"propertyDataTypes": {
"ResourcePath": {
"listValues": {
"propertyDataTypes": [
{
"primitiveDataType": "STRING"
}
]
}
},
"ReactivationCount": {
"primitiveDataType": "NUMBER"
},
"Explanation": {
"primitiveDataType": "STRING"
},
"ExposedService": {
"primitiveDataType": "STRING"
},
"ScannerName": {
"primitiveDataType": "STRING"
}
}
}
}
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.