Mengumpulkan log Okta
Dokumen ini menjelaskan cara menyerap log Okta ke Google Security Operations menggunakan Okta API. Parser mengekstrak log sistem, menangani peristiwa tunggal dan peristiwa batch dalam array JSON. Proses ini menormalisasi data ke dalam format UDM, memetakan kolom Okta ke kolom yang setara di UDM, memperkaya data dengan agen pengguna yang diuraikan, informasi geografis, dan detail autentikasi, serta menghasilkan peristiwa hasil keamanan berdasarkan hasil dan informasi risiko.
Sebelum memulai
- Instance Google SecOps
- Akses istimewa ke Okta
Cara mengonfigurasi Okta
Untuk mengonfigurasi SSO Okta, selesaikan tugas berikut:
Membuat pengguna Administratif Okta dengan hak istimewa hanya baca
- Login ke konsol administrator Okta.
Buat Pengguna Standar.
- Buka Direktori > Orang.
- Klik Tambahkan orang dan lengkapi kolom yang wajib diisi.
Pilih Keamanan > Administrator.
Klik Tambahkan Administrator.
Di kolom Penetapan administrator oleh admin, temukan Pengguna Standar.
Di bagian roles, pilih Read-Only Administrator dari daftar.
Logout dari akun administrator.
Mendapatkan Kunci API
- Login ke Konsol Administrator Okta dengan pengguna administrator hanya baca.
- Buka Keamanan > API > Token.
- Klik Create Token.
- Berikan nama yang bermakna untuk token.
- Berikan zona IP tempat API akan digunakan (Anda dapat memilih IP apa pun jika tidak yakin).
- Klik Create Token.
- Salin kunci API.
- Klik OK, got it.
Menyiapkan feed
Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:
- Setelan SIEM > Feed
- Hub Konten > Paket Konten
Menyiapkan feed dari Setelan SIEM > Feed
Untuk mengonfigurasi beberapa feed untuk berbagai jenis log dalam keluarga produk ini, lihat Mengonfigurasi feed menurut produk.
Untuk mengonfigurasi satu feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, Okta Logs.
- Pilih Third party API sebagai Source type.
- Pilih Okta sebagai Log type.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Header HTTP autentikasi: Masukkan Kunci API Okta dalam format berikut:
Authorization:<API_KEY>
. - Nama Host API: Tentukan nama domain host Okta Anda (misalnya,
<your-domain>.okta.com
). - Namespace aset: Namespace aset.
- Label penyerapan: Label yang diterapkan ke peristiwa dari feed ini.
- Header HTTP autentikasi: Masukkan Kunci API Okta dalam format berikut:
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Header HTTP autentikasi: digunakan untuk mengautentikasi terhadap SentinelOne Alerts/Threats & static-indicator API dalam format
key:value
. - Nama Host API: Nama domain SentinelOne API yang sepenuhnya memenuhi syarat.
Opsi lanjutan
- Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
- Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
- Namespace Aset: Namespace yang terkait dengan feed.
- Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
actor.alternateId |
principal.user.email_addresses |
Diekstrak dari actor.alternateId jika berupa alamat email. Jika bukan alamat email, digunakan sebagai principal.user.userid . |
actor.displayName |
principal.user.user_display_name |
Dipetakan secara langsung. |
actor.id |
principal.user.product_object_id |
Dipetakan secara langsung. |
actor.type |
principal.user.attribute.roles.name |
Dipetakan secara langsung. |
authenticationContext.authenticationProvider |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci authenticationProvider . |
authenticationContext.credentialProvider |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci credentialProvider . |
authenticationContext.credentialType |
extensions.auth.mechanism |
Digunakan untuk mendapatkan mekanisme autentikasi (OTP, USERNAME_PASSWORD, LOCAL). |
authenticationContext.externalSessionId |
network.parent_session_id |
Dipetakan secara langsung. |
client.device |
principal.asset.type /additional.fields.value.string_value |
Dipetakan ke principal.asset.type (WORKSTATION, MOBILE, ROLE_UNSPECIFIED) berdasarkan nilai. Juga dipetakan sebagai nilai string dengan kunci device di additional.fields . |
client.geographicalContext.city |
principal.location.city |
Dipetakan secara langsung. |
client.geographicalContext.country |
principal.location.country_or_region |
Dipetakan secara langsung. |
client.geographicalContext.geolocation.lat |
principal.location.region_latitude |
Dipetakan secara langsung. |
client.geographicalContext.geolocation.lon |
principal.location.region_longitude |
Dipetakan secara langsung. |
client.geographicalContext.postalCode |
additional.fields.value.string_value |
Dipetakan langsung sebagai nilai string dengan kunci Postal code di additional.fields . |
client.geographicalContext.state |
principal.location.state |
Dipetakan secara langsung. |
client.ipAddress |
principal.ip , principal.asset.ip |
Dipetakan secara langsung. |
client.userAgent.browser |
target.resource.attribute.labels.value |
Dipetakan secara langsung, dengan kunci Browser . |
client.userAgent.os |
principal.platform |
Dipetakan ke platform (LINUX, WINDOWS, MAC) berdasarkan nilai. |
client.userAgent.rawUserAgent |
network.http.user_agent , network.http.parsed_user_agent |
Dipetakan dan diuraikan secara langsung. |
client.zone |
additional.fields.value.string_value |
Dipetakan langsung sebagai nilai string dengan kunci zone di additional.fields . |
debugContext.debugData.behaviors |
security_result.description , security_result.detection_fields |
Dipetakan langsung ke deskripsi. Perilaku individu diekstrak dan ditambahkan sebagai kolom deteksi. |
debugContext.debugData.changedAttributes |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci changedAttributes . |
debugContext.debugData.clientAddress |
principal.ip , principal.asset.ip |
Dipetakan secara langsung jika request.ipChain dan client.ipAddress tidak ada. |
debugContext.debugData.deviceFingerprint |
target.asset.asset_id |
Dipetakan langsung, diawali dengan device_finger_print: . |
debugContext.debugData.dtHash |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci dtHash . |
debugContext.debugData.factor |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci factor . |
debugContext.debugData.factorIntent |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci factorIntent . |
debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci Risk Reasons . |
debugContext.debugData.privilegeGranted |
target.user.attribute.roles |
Dibagi menjadi hak istimewa individual dan ditambahkan sebagai peran dengan nama dan deskripsi. |
debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci pushOnlyResponseType . |
debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci pushWithNumberChallengeResponseType . |
debugContext.debugData.requestUri |
extensions.auth.auth_details |
Dipetakan secara langsung. |
debugContext.debugData.suspiciousActivityEventId |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci suspiciousActivityEventId . |
debugContext.debugData.suspiciousActivityEventType |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci suspiciousActivityEventType . |
debugContext.debugData.threatDetections |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci threatDetections . |
debugContext.debugData.threatSuspected |
security_result.detection_fields.value , security_result.threat_status |
Dipetakan sebagai kolom deteksi dengan kunci threatSuspected . Digunakan untuk mendapatkan status ancaman (ACTIVE atau FALSE_POSITIVE). |
debugContext.debugData.url |
target.url |
Dipetakan secara langsung. |
displayMessage |
security_result.summary |
Dipetakan secara langsung. |
eventType |
metadata.product_event_type , metadata.event_type |
Dipetakan langsung ke product_event_type . Digunakan untuk mendapatkan event_type (USER_LOGIN, USER_LOGOUT, USER_CHANGE_PASSWORD, USER_CHANGE_PERMISSIONS, USER_DELETION, GROUP_MODIFICATION, SETTING_MODIFICATION, SCHEDULED_TASK_ENABLE, RESOURCE_CREATION, USER_UNCATEGORIZED). |
legacyEventType |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci legacyEventType . |
outcome.reason |
security_result.category_details |
Dipetakan secara langsung. |
outcome.result |
security_result.action |
Dipetakan ke tindakan (ALLOW, CHALLENGE, BLOCK) berdasarkan nilai. |
published |
metadata.event_timestamp |
Diuraikan ke stempel waktu. |
request.ipChain.n.geographicalContext |
intermediary.location |
Konteks geografis IP perantara dalam rantai permintaan. |
request.ipChain.n.ip |
intermediary.ip |
Alamat IP perantara dalam rantai permintaan. |
securityContext.asNumber |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci asNumber . |
securityContext.asOrg |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci asOrg . |
securityContext.domain |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci domain . |
securityContext.isp |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci isp . |
securityContext.isProxy |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci anonymized IP . |
target.n.alternateId |
target.user.email_addresses /target.user.userid |
Jika berupa alamat email, dipetakan ke target.user.email_addresses . Jika bukan alamat email, digunakan sebagai target.user.userid . |
target.n.detailEntry.clientAppId |
target.asset_id |
Dipetakan langsung, diawali dengan Client_app_id: . |
target.n.detailEntry.methodTypeUsed |
target.resource_ancestors.attribute.labels.value |
Dipetakan secara langsung, dengan kunci methodTypeUsed saat jenis target adalah AuthenticatorEnrollment. |
target.n.detailEntry.methodUsedVerifiedProperties |
target.resource_ancestors.attribute.labels.value |
Dipetakan secara langsung, dengan kunci methodUsedVerifiedProperties saat jenis target adalah AuthenticatorEnrollment. |
target.n.detailEntry.policyType |
target.resource_ancestors.attribute.labels.value |
Dipetakan secara langsung, dengan kunci Policy Type . |
target.n.detailEntry.signOnModeType |
security_result.detection_fields.value |
Dipetakan secara langsung, dengan kunci signOnModeType . |
target.n.displayName |
target.user.user_display_name / target.application / target.resource.name |
Dipetakan berdasarkan jenis target. |
target.n.id |
target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id |
Dipetakan berdasarkan jenis target. |
target.n.type |
target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype |
Dipetakan berdasarkan jenis target. |
transaction.id |
network.session_id |
Dipetakan secara langsung. |
transaction.type |
additional.fields.value.string_value |
Dipetakan langsung sebagai nilai string dengan kunci type di additional.fields . |
uuid |
metadata.product_log_id |
Dipetakan secara langsung. |
T/A | metadata.vendor_name |
Tetapkan ke Okta . |
T/A | metadata.product_name |
Tetapkan ke Okta . |
T/A | extensions.auth.type |
Tetapkan ke SSO . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.