Mengumpulkan log Okta

Didukung di:

Dokumen ini menjelaskan cara menyerap log Okta ke Google Security Operations menggunakan Okta API. Parser mengekstrak log sistem, yang menangani peristiwa tunggal dan peristiwa dalam batch dalam array JSON. Alat ini akan menormalisasi data ke dalam format UDM, memetakan kolom Okta ke kolom UDM yang setara, memperkaya data dengan agen pengguna yang diuraikan, informasi geografis, dan detail autentikasi, serta menghasilkan peristiwa hasil keamanan berdasarkan hasil dan informasi risiko.

Sebelum memulai

  • Pastikan Anda memiliki instance Google SecOps.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Okta.

Mengonfigurasi Okta

Untuk mengonfigurasi SSO Okta, selesaikan tugas berikut:

Membuat pengguna Administratif Okta dengan hak istimewa hanya baca

  1. Login ke konsol administrator Okta.
  2. Buat Pengguna Standar.

    • Buka Direktori > Orang.
    • Klik Tambahkan orang dan lengkapi kolom yang wajib diisi.
  3. Pilih Keamanan > Administrator.

  4. Klik Tambahkan Administrator.

  5. Di kolom Administrator assignment by admin, temukan Pengguna Standar.

  6. Di bagian roles, pilih Read-Only Administrator dari daftar.

  7. Logout dari akun administrator.

Mendapatkan Kunci API

  1. Login ke Konsol Administrator Okta dengan pengguna administrator hanya baca.
  2. Buka Keamanan > API > Token.
  3. Klik Create Token.
  4. Berikan nama yang bermakna untuk token.
  5. Berikan zona IP tempat API akan digunakan (Anda dapat memilih IP apa pun jika tidak yakin).
  6. Klik Create Token.
  7. Salin kunci API.
  8. Klik OK, got it.

Mengonfigurasi feed di Google SecOps untuk menyerap log Okta

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan baru.
  3. Di kolom Feed name, masukkan nama untuk feed (misalnya, Okta Logs).
  4. Pilih Third party API sebagai Source type.
  5. Pilih Okta sebagai Jenis log.
  6. Klik Berikutnya.
  7. 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.
  8. Klik Berikutnya.
  9. Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
actor.alternateId principal.user.email_addresses Diekstrak dari actor.alternateId jika merupakan 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 langsung, dengan kunci authenticationProvider.
authenticationContext.credentialProvider security_result.detection_fields.value Dipetakan 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 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. Setiap perilaku diekstrak dan ditambahkan sebagai kolom deteksi.
debugContext.debugData.changedAttributes security_result.detection_fields.value Dipetakan langsung, dengan kunci changedAttributes.
debugContext.debugData.clientAddress principal.ip, principal.asset.ip Dipetakan 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 langsung, dengan kunci dtHash.
debugContext.debugData.factor security_result.detection_fields.value Dipetakan langsung, dengan kunci factor.
debugContext.debugData.factorIntent security_result.detection_fields.value Dipetakan langsung, dengan kunci factorIntent.
debugContext.debugData.logOnlySecurityData.risk.reasons security_result.detection_fields.value Dipetakan 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 langsung, dengan kunci pushOnlyResponseType.
debugContext.debugData.pushWithNumberChallengeResponseType security_result.detection_fields.value Dipetakan langsung, dengan kunci pushWithNumberChallengeResponseType.
debugContext.debugData.requestUri extensions.auth.auth_details Dipetakan secara langsung.
debugContext.debugData.suspiciousActivityEventId security_result.detection_fields.value Dipetakan langsung, dengan kunci suspiciousActivityEventId.
debugContext.debugData.suspiciousActivityEventType security_result.detection_fields.value Dipetakan langsung, dengan kunci suspiciousActivityEventType.
debugContext.debugData.threatDetections security_result.detection_fields.value Dipetakan 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 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 Diurai menjadi 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 langsung, dengan kunci asNumber.
securityContext.asOrg security_result.detection_fields.value Dipetakan langsung, dengan kunci asOrg.
securityContext.domain security_result.detection_fields.value Dipetakan langsung, dengan kunci domain.
securityContext.isp security_result.detection_fields.value Dipetakan langsung, dengan kunci isp.
securityContext.isProxy security_result.detection_fields.value Dipetakan langsung, dengan kunci anonymized IP.
target.n.alternateId target.user.email_addresses/target.user.userid Jika merupakan 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 langsung, dengan kunci methodTypeUsed jika jenis target adalah AuthenticatorEnrollment.
target.n.detailEntry.methodUsedVerifiedProperties target.resource_ancestors.attribute.labels.value Dipetakan langsung, dengan kunci methodUsedVerifiedProperties jika jenis target adalah AuthenticatorEnrollment.
target.n.detailEntry.policyType target.resource_ancestors.attribute.labels.value Dipetakan langsung, dengan kunci Policy Type.
target.n.detailEntry.signOnModeType security_result.detection_fields.value Dipetakan 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.
T/A is_alert Tetapkan ke true untuk peristiwa security.threat.detected dan user.account.report_suspicious_activity_by_enduser.
T/A is_significant Tetapkan ke true untuk peristiwa security.threat.detected dan user.account.report_suspicious_activity_by_enduser.

Perubahan

2024-05-16

  • Jika is_alert bernilai benar dan is_significant bernilai benar, tetapkan security_result.alert_state sebagai ALERTING.

2024-03-05

  • Memperbarui kolom security_result.action untuk menunjukkan apakah traffic diizinkan atau diblokir.

2024-02-16

Perbaikan bug:

  • Jika target.0.type adalah User atau AppUser, maka pemetakan target.0.alternateId ke target.user.userid.
  • Jika target.1.type adalah User atau AppUser, maka pemetakan target.1.alternateId ke target.user.userid.

2023-12-14

  • Memetakan securityContext.asNumber ke security_result.detection_fields.
  • Memetakan legacyEventType ke security_result.detection_fields.
  • Menambahkan conditional_check sebelum menyetel metadata.event_type.

2023-06-28

  • Memetakan nilai lengkap debugContext.debugData.suspiciousActivityEventType ke security_result.detection_fields.
  • Memetakan nilai lengkap debugContext.debugData.logOnlySecurityData.behaviors.New Device ke security_result.detection_fields.

2023-06-09

  • Kolom debugContext.debugData.deviceFingerprint dipetakan ke target.asset.asset_id.
  • Memetakan nilai lengkap debugContext.debugData.risk.reasons ke security_result.detection_fields.

2023-05-17

  • Kolom 'authenticationContext.externalSessionId' dipetakan ke 'network.parent_session_id'.
  • Kolom 'debugContext.debugData.pushOnlyResponseType' dipetakan ke 'security_result.detection_fields.key/value'.
  • Kolom 'debugContext.debugData.factor' dipetakan ke 'security_result.detection_fields.key/value'.
  • Kolom 'debugContext.debugData.factorIntent' dipetakan ke 'security_result.detection_fields.key/value'.
  • Kolom 'debugContext.debugData.pushWithNumberChallengeResponseType' dipetakan ke 'security_result.detection_fields.key/value'.
  • Kolom 'debugContext.debugData.dtHash' dipetakan ke 'security_result.detection_fields.key/value'.
  • Kolom 'client.userAgent.rawUserAgent' dipetakan ke 'network.http.user_agent'.
  • Mengubah pemetaan dari 'ALLOW_WITH_MODIFICATION' menjadi nilai enum 'CHALLENGE' di bagian 'security_result.action'.
  • Untuk eventType 'system.api_token.create', mengubah metadata.event_type dari 'USER_UNCATEGORIZED' menjadi 'RESOURCE_CREATION'.

2023-04-28

Perbaikan bug:

  • Pemetaan yang diubah untuk security_result.threat_status ke ACTIVE jika debugContext.debugData.threatSuspected adalah true, jika tidak, dipetakan ke FALSE_POSITIVE.

24-03-2023

  • Memetakan kolom logOnlySecurityData ke security_result.detection_fields.
  • Selain itu, error penguraian telah diperbaiki dengan menambahkan DEFERRED ke daftar tindakan.

2023-04-11

  • Memetakan ulang kolom yang dipetakan ke http.user_agent ke http.parsed_user_agent.
  • Memetakan target.displayName ke target.resource_ancestors.name.
  • Memetakan targetfield.detailEntry.methodTypeUsed ke target.resource_ancestors.attribute.labels.
  • Memetakan targetfield.detailEntry.methodUsedVerifiedProperties ke target.resource_ancestors.attribute.labels.

2023-02-20

  • Mengubah metadata.event_type dari USER_LOGIN menjadi STATUS_UPDATE dengan eventType adalah user.authentication.auth_via_AD_agent

2022-12-14

  • Memetakan debugContext.debugData.changedAttributes ke security_result.detection_fields.
  • Menambahkan pemeriksaan null untuk detail.actor.alternateId.

2022-11-17

  • Kolom target[n].alternateId dipetakan ke target.resource.attribute.labels.
  • Kolom detail.target.0.alternateId dipetakan ke target.resource.attribute.labels.

2022-11-08

Perbaikan bug:

  • Menambahkan kondisi untuk pemeriksaan email yang tepat untuk kolom user_email.
  • Menambahkan pemeriksaan untuk kolom Action1 yang tidak ada di RATE_LIMIT.
  • Menambahkan pemeriksaan null, tidak diketahui untuk actor.displayName.

2022-11-04

  • Menambahkan dukungan untuk log yang memiliki beberapa peristiwa.

2022-10-15

  • signOnModeType dipetakan ke security_result.detection_fields.
  • authenticationProvider dipetakan ke security_result.detection_fields.
  • credentialProvider dipetakan ke security_result.detection_fields.
  • device dipetakan ke additional.fields.
  • zone dipetakan ke additional.fields.
  • type dipetakan ke additional.fields.

2022-10-14

Perbaikan bug:

  • Menambahkan pemeriksaan bersyarat untuk 'principal.user.email_addresses' dan 'target.user.email_addresses'.
  • Menambahkan grok untuk memeriksa ip_address yang valid untuk kolom 'request.ipChain.0.ip' yang dipetakan ke 'principal.ip'.
  • Menambahkan kondisi on_error untuk kolom 'debugContext.debugData.url' yang dipetakan ke 'target.url'.

2022-10-03

  • Memetakan client.userAgent.os ke principal.platform.
  • Memetakan client.device ke principal.asset.type.
  • Memetakan anonymized IP (string hardcode) ke security_result.detection_fields.key dengan nilai 'securityContext.isProxy' ke security_result.detection_fields.value yang sesuai.

16-09-2022

  • 'securityContext.asOrg' dipetakan ke 'security_result.category_details'.
  • 'securityContext.isProxy' dipetakan ke 'security_result.detection_fields'.
  • 'securityContext.domain' dipetakan ke 'security_result.detection_fields'.
  • 'securityContext.isp' dipetakan ke 'security_result.detection_fields'.
  • 'debugContext.debugData.risk.level' dipetakan ke 'security_result.severity'.
  • 'debugContext.debugData.risk.reasons' dipetakan ke 'security_result.detection_fields'.

2022-08-12

  • log yang baru ditransfer telah diuraikan dan dipetakan ke kolom berikut:
  • 'detail.uuid' dipetakan ke 'metadata.product_log_id'.
  • 'detail.eventType' dipetakan ke 'metadata.product_event_type'
  • 'detail.actor.id' dipetakan ke 'principal.user.product_object_id'.
  • if 'detail.actor.alternateId' mapped to 'principal.user.userid' else
  • 'detail.actor.alternateId' dipetakan ke 'principal.user.email_addresses'.
  • 'detail.actor.displayName' dipetakan ke 'principal.user.user_display_name'.
  • 'detail.actor.type' dipetakan ke '.principal.user.attribute.roles'.
  • 'detail.client.ipChain.0.ip' dipetakan ke 'principal.ip'.
  • 'detail.client.ipChain.0.geographicalContext.state' dipetakan ke 'principal.location.state'.
  • 'detail.client.ipChain.0.geographicalContext.city' dipetakan ke 'principal.location.city'.
  • 'detail.client.ipChain.0.geographicalContext.country' dipetakan ke 'principal.location.country_or_region'.
  • 'detail.debugContext.debugData.requestUri' dipetakan ke 'target.url'.
  • 'detail.target.0.type' dipetakan ke 'target.resource.resource_subtype'.
  • 'detail.target.0.id' dipetakan ke 'target.resource.resource.product_object_id'.
  • 'detail.target.0.displayName' dipetakan ke 'target.resource.resource_subtype'.
  • 'detail.target.0.detailEntry.policyType' dipetakan ke 'target.resource_ancestors.attribute.labels'.
  • 'detail.outcome.reason' dipetakan ke 'security_result.category_details'.
  • 'detail.debugContext.debugData.threatSuspected' dipetakan ke 'security_result.detection_fields'.
  • 'detail.displayMessage' dipetakan ke 'security_result.summary'.
  • 'detail.outcome.result' dipetakan ke 'security_result.action'.
  • 'detail.severity' dipetakan ke 'security_result.severity'.
  • 'detail.transaction.id' dipetakan ke 'network.session_id'.
  • 'detail.debugContext.debugData.requestUri' dipetakan ke 'extensions.auth.auth_details'.

2022-07-08

  • Pemetaan yang diubah untuk actor.type dari principal.user.role_name menjadi principal.user.attribute.roles.
  • Pemetaan yang diubah untuk target.0.type dari target.user.role_name menjadi target.user.attribute.roles.
  • Pemetaan yang diubah untuk target.1.type dari target.user.role_name menjadi target.user.attribute.roles.

2022-06-15

Peningkatan:

  • untuk target.0.type == Token.
  • Memetakan target.0.detailEntry.clientAppId ke target.asset_id.
  • Menambahkan pemeriksaan bersyarat untuk kolom 'transaction.id' yang dipetakan ke kolom UDM 'network.session_id'.

2022-06-03

Peningkatan:

  • Memetakan debugContext.debugData.privilegeGranted ke target.user.attribute.roles.name secara tambahan.
  • Memetakan debugContext.debugData.requestUri ke extensions.auth.auth_details.
  • Memetakan debugContext.debugData.suspiciousActivityEventId, debugContext.debugData.threatDetections, debugContext.debugData.threatSuspected ke security_result.detection_fields.

2022-03-22

Peningkatan:

  • debugContext.debugData.behaviors dipetakan ke security_result.description.
  • debugContext.debugData.threatSuspected dipetakan ke security_result.threat_status.
  • debugContext.debugData.risk dipetakan ke security_result.severity.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.