Okta ログを収集する
このドキュメントでは、Google Security Operations フィードを設定して Okta のログを収集する方法について説明します。
詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル OKTA
が付加されたパーサーに適用されます。
Okta SSO を構成する
Okta SSO を構成するには、次のタスクを完了します。
読み取り専用の管理者ユーザーを作成する
- 管理者として Okta SSO 管理コンソールにログインします。
- 標準ユーザーを作成します。読み取り専用管理者にしたい既存の標準ユーザーがすでにいる場合は、次のステップに進みます。
- [セキュリティ] > [管理者] を選択します。
- [管理者を追加] をクリックします。
- [管理者ロールを付与する] フィールドにユーザー名を入力します。
- [管理者ロール] セクションで、[読み取り専用管理者] チェックボックスをオンにします。
- 管理者アカウントからログアウトします。
API キーを取得
- 前に作成した読み取り専用管理者を使用して、Okta SSO 管理コンソールにログインします。
- [セキュリティ] > [API] を選択します。
- [トークンの作成] をクリックします。
- トークン名を入力し、[トークンを作成] をクリックします。トークンの値が表示されます。
API キーをコピーします。これは、Google Security Operations フィードを構成するときに必要になります。
API キーは後で復元できず、ウィンドウを閉じると暗号化された形式で保存されます。トークンを作成したユーザーまたはそのユーザーの権限に変更があった場合、トークンは有効ではありません。トークンが取り消されたか期限切れになった場合、新しいトークンが構成されるまでログの収集は停止されます。
[OK] をクリックします。
Okta ASA を構成する
Okta システムログ API を使用して Okta Advanced Server Access(ASA)監査イベントを取得するには、Okta ASA 監査イベントを Okta システムログと統合します。この統合を有効にするには、Okta サポートにお問い合わせください。詳しくは、Okta ヘルプセンターをご覧ください。
Okta ログを取り込むように Google Security Operations でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New] をクリックします。
- [フィールド名] に一意の名前を入力します。
- [ソースタイプ] として [サードパーティ API] を選択します。
- [Log Type] で [Okta] を選択します。
- [次へ] をクリックします。
- 次の必須入力パラメータを構成します。
- 認証 HTTP ヘッダー: サーバーに対してユーザー エージェントを認証し、保護されたリソースへのアクセス権を付与する認証情報を指定します。
- API ホスト名: API を提供するホストのドメイン名または IP アドレスを指定します。
- [次へ] をクリックし、[送信] をクリックします。
Google Security Operations フィードの詳細については、Google Security Operations フィードのドキュメントをご覧ください。各フィードタイプの要件については、タイプ別のフィード構成をご覧ください。
フィードの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。
フィールド マッピング リファレンス
このパーサーは、Stackdriver でラップされたログと未加工の Okta ログの両方からフィールドを抽出して、Okta システムログを JSON 形式で処理します。ログイン、ログアウト、権限の変更、セキュリティ脅威など、ID とアクセス管理のイベントに重点を置き、さまざまな認証タイプを処理しながら、地理的なコンテキストとユーザー エージェント情報でデータを拡充し、データを UDM 形式に正規化します。また、リスクの理由、脅威の兆候、不審なアクティビティ情報など、セキュリティ関連の詳細も抽出します。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
actor.alternateId |
principal.user.email_addresses / principal.user.userid |
alternateId フィールドが有効なメールアドレスの場合、ユーザー名の部分は principal.user.userid にマッピングされ、完全なメールアドレスが principal.user.email_addresses リストに追加されます。有効なメールアドレスでない場合は、値全体が principal.user.userid にマッピングされます。 |
actor.displayName |
principal.user.user_display_name |
直接マッピング。 |
actor.id |
principal.user.product_object_id |
直接マッピング。 |
actor.type |
principal.user.attribute.roles.name |
直接マッピング。 |
authenticationContext.authenticationProvider |
security_result.detection_fields.value (key は「authenticationProvider」) |
検出フィールドとしての直接マッピング。 |
authenticationContext.credentialProvider |
security_result.detection_fields.value (key は「credentialProvider」) |
検出フィールドとしての直接マッピング。 |
authenticationContext.credentialType |
extensions.auth.mechanism |
認証メカニズムの導出に使用されます。「OTP」または「SMS」は「OTP」に、「PASSWORD」は「USERNAME_PASSWORD」に、「IWA」または eventType 「user.authentication.auth_via_AD_agent」は「LOCAL」に変更されます。 |
authenticationContext.externalSessionId |
network.parent_session_id |
直接マッピング。 |
client.device |
principal.asset.type / additional.fields.value.string_value (key は「device」) |
値が「モバイル」の場合は「MOBILE」にマッピングされます。[コンピュータ] の場合は「WORKSTATION」にマッピングされます。「不明」の場合は、「ROLE_UNSPECIFIED」にマッピングされます。追加フィールドとして追加されました。 |
client.geographicalContext.city |
principal.location.city |
直接マッピング。 |
client.geographicalContext.country |
principal.location.country_or_region |
直接マッピング。 |
client.geographicalContext.geolocation.lat |
principal.location.region_latitude |
直接マッピング。 |
client.geographicalContext.geolocation.lon |
principal.location.region_longitude |
直接マッピング。 |
client.geographicalContext.postalCode |
additional.fields.value.string_value (key は「郵便番号」) |
追加フィールドとして直接マッピングする。 |
client.geographicalContext.state |
principal.location.state |
直接マッピング。 |
client.ipAddress |
principal.ip / principal.asset.ip |
直接マッピング。存在しない場合、パーサーは request.ipChain.0.ip や debugContext.debugData.clientAddress などの他のフィールドから抽出しようとします。 |
client.userAgent.browser |
target.resource.attribute.labels.value (key は「ブラウザ」) |
ラベルとしての直接マッピング。 |
client.userAgent.os |
principal.platform |
値に「Linux」が含まれている場合は、「LINUX」にマッピングされます。「windows」の場合は「WINDOWS」にマッピングされます。「mac」または「ios」の場合は、「MAC」にマッピングされます。 |
client.userAgent.rawUserAgent |
network.http.user_agent |
直接マッピング。解析され、network.http.parsed_user_agent に保存されます。 |
client.zone |
additional.fields.value.string_value (key は「zone」) |
追加フィールドとして直接マッピングする。 |
debugContext.debugData.behaviors |
security_result.description |
直接マッピング。個々の動作も、個別の検出フィールドとして抽出されます。 |
debugContext.debugData.changedAttributes |
security_result.detection_fields.value (key は「changedAttributes」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.clientAddress |
principal.ip / principal.asset.ip |
client.ipAddress と request.ipChain.0.ip が存在しない場合、代替として使用されます。 |
debugContext.debugData.deviceFingerprint |
target.asset.asset_id |
「device_finger_print:」という接頭辞が付加され、マッピングされます。 |
debugContext.debugData.dtHash |
security_result.detection_fields.value (key は「dtHash」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.factor |
security_result.detection_fields.value (key は「要素」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.factorIntent |
security_result.detection_fields.value (key は「factorIntent」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.detection_fields.value (key は「リスクの理由」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.privilegeGranted |
target.user.attribute.roles.name / target.user.attribute.roles.description |
各権限は、名前と説明の両方が権限値に設定された個別のロールとして追加されます。 |
debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields.value (key は「pushOnlyResponseType」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields.value (key は「pushWithNumberChallengeResponseType」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.requestId |
network.session_id |
直接マッピング。 |
debugContext.debugData.requestUri |
extensions.auth.auth_details / target.url |
直接マッピング。 |
debugContext.debugData.suspiciousActivityEventId |
security_result.detection_fields.value (key は「suspiciousActivityEventId」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.suspiciousActivityEventType |
security_result.detection_fields.value (key は「suspiciousActivityEventType」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.threatDetections |
security_result.detection_fields.value (key は「threatDetections」) |
検出フィールドとしての直接マッピング。 |
debugContext.debugData.threatSuspected |
security_result.detection_fields.value (key は「threatSuspected」) |
検出フィールドとしての直接マッピング。security_result.threat_status の決定にも使用されます。true の場合、ステータスは「ACTIVE」です。それ以外の場合は「FALSE_POSITIVE」です。 |
debugContext.debugData.url |
target.url |
直接マッピング。 |
displayMessage |
security_result.summary |
直接マッピング。 |
eventType |
metadata.product_event_type |
直接マッピング。metadata.event_type の決定にも使用されます(下記のロジックを参照)。 |
legacyEventType |
security_result.detection_fields.value (key は「legacyEventType」) |
検出フィールドとしての直接マッピング。 |
outcome.reason |
security_result.category_details |
直接マッピング。 |
outcome.result |
security_result.action |
「SUCCESS」または「ALLOW」は「ALLOW」に、「CHALLENGE」は「CHALLENGE」、「FAILURE」、「DENY」、「SKIPPED」、「RATE_LIMIT」は「BLOCK」に変更されます。 |
published |
metadata.event_timestamp |
タイムスタンプに変換されます。 |
request.ipChain.0.geographicalContext.* |
principal.location.* |
チェーン内の最初の IP の地理的コンテキストがプリンシパルのロケーションにマッピングされます。 |
request.ipChain.0.ip |
principal.ip / principal.asset.ip |
直接マッピング。 |
request.ipChain.1.geographicalContext.* |
intermediary.location.* |
チェーン内の 2 番目の IP の地理的位置は、中間ロケーションにマッピングされます。 |
request.ipChain.1.ip |
intermediary.ip |
直接マッピング。 |
securityContext.asNumber |
security_result.detection_fields.value (key は「asNumber」) |
検出フィールドとしての直接マッピング。 |
securityContext.asOrg |
security_result.detection_fields.value (key は「asOrg」) |
検出フィールドとしての直接マッピング。 |
securityContext.domain |
security_result.detection_fields.value (key は「domain」) |
値が「.」でない場合、検出フィールドとして直接マッピングします。 |
securityContext.isp |
security_result.detection_fields.value (key は「isp」) |
検出フィールドとしての直接マッピング。 |
securityContext.isProxy |
security_result.detection_fields.value (key は「匿名 IP」) |
検出フィールドとしての直接マッピング。 |
target.0.alternateId |
target.user.email_addresses / target.user.userid |
actor.alternateId に似たロジック。 |
target.0.detailEntry.clientAppId |
target.asset_id |
「Client_app_id:」が接頭辞として付けられ、マッピングされます。 |
target.0.displayName |
target.user.user_display_name / target.application / target.resource.name |
target.0.type に基づいてマッピングされます。 |
target.0.id |
target.user.product_object_id / target.resource.product_object_id |
target.0.type に基づいてマッピングされます。 |
target.0.type |
target.user.attribute.roles.name / target.resource.resource_subtype |
値に基づいてマッピングされます。また、他の target.0 フィールドのマッピングを決定するためにも使用されます。 |
target.1.alternateId |
target.user.email_addresses / target.user.userid |
actor.alternateId に似たロジック。 |
target.1.detailEntry.clientAppId |
target.asset_id |
「Client_app_id:」が接頭辞として付けられ、マッピングされます。 |
target.1.displayName |
target.user.user_display_name / target.resource.name |
target.1.type に基づいてマッピングされます。 |
target.1.id |
target.user.product_object_id / target.resource.product_object_id |
target.1.type に基づいてマッピングされます。 |
target.1.type |
target.user.attribute.roles.name / target.resource.resource_subtype |
値に基づいてマッピングされます。また、他の target.1 フィールドのマッピングを決定するためにも使用されます。 |
target.2.alternateId target.2.displayName target.2.id target.2.type transaction.id |
network.session_id |
直接マッピング。 |
transaction.type |
additional.fields.value.string_value (key は「type」) |
追加フィールドとして直接マッピングする。 |
uuid |
metadata.product_log_id |
直接マッピング。 |
なし | metadata.event_type |
eventType によって決定されます。完全なマッピング ロジックについては、パーサーコードをご覧ください。主なマッピングには、「user.authentication.sso」、「user.authentication.auth_via_mfa」、「user.session.start」が「USER_LOGIN」にマッピングされ、「user.session.end」が「USER_LOGOUT」にマッピングされ、「user.account.reset_password」が「USER_CHANGE_PASSWORD」にマッピングされ、「application.user_membership.update」が「USER_CHANGE_PERMISSIONS」にマッピングされ、「security.threat.detected」が「USER_UNCATEGORIZED」にマッピングされ、「system.import.user.delete」が「USER_DELETION」にマッピングされ、「policy.rule.update」が「SETTING_MODIFICATION」にマッピングされ、「group.user_membership.remove」が「GROUP_MODIFICATION」にマッピングされます。他の多くの eventType 値は「USER_UNCATEGORIZED」にマッピングされます。 |
なし | metadata.log_type |
「OKTA」に設定します。 |
なし | metadata.product_name |
「Okta」に設定します。 |
なし | metadata.vendor_name |
「Okta」に設定します。 |
なし | extensions.auth.type |
「SSO」に設定します。 |
変更点
2024-05-16
- 「is_alert」が true で「is_significant」が true の場合、「security_result.alert_state」を「ALERTING」に設定します。
2024-03-05
- トラフィックが許可されたかブロックされたかを反映するように「security_result.action」フィールドを更新しました。
2024-02-16
- バグの修正:
- 「target.0.type」が「User」または「AppUser」の場合、「target.0.alternateId」を「target.user.userid」にマッピングしました。
- 「target.1.type」が「User」または「AppUser」の場合、「target.1.alternateId」を「target.user.userid」にマッピングしました。
2023-12-14
- 「securityContext.asNumber」を「security_result.detection_fields」にマッピングしました。
- 「legacyEventType」を「security_result.detection_fields」にマッピングしました。
- 「metadata.event_type」の設定前に「conditional_check」を追加しました。
2023-06-28
- 「debugContext.debugData.suspiciousActivityEventType」の完全な値を「security_result.detection_fields」にマッピングしました。
- 「debugContext.debugData.logOnlySecurityData.behaviors.New Device」の完全な値を「security_result.detection_fields」にマッピングしました。
2023-06-09
- フィールド「debugContext.debugData.deviceFingerprint」は「target.asset.asset_id」にマッピングされます。
- 「debugContext.debugData.risk.reasons」の完全な値を「security_result.detection_fields」にマッピングしました。
2023-05-17
- フィールド「authenticationContext.externalSessionId」は「network.parent_session_id」にマッピングされます。
- フィールド「debugContext.debugData.pushOnlyResponseType」は「security_result.detection_fields.key/value」にマッピングされます。
- フィールド「debugContext.debugData.factor」は「security_result.detection_fields.key/value」にマッピングされます。
- フィールド「debugContext.debugData.factorIntent」は「security_result.detection_fields.key/value」にマッピングされます。
- フィールド「debugContext.debugData.pushWithNumberChallengeResponseType」は「security_result.detection_fields.key/value」にマッピングされます。
- フィールド「debugContext.debugData.dtHash」は「security_result.detection_fields.key/value」にマッピングされます。
- フィールド「client.userAgent.rawUserAgent」は「network.http.user_agent」にマッピングされます。
- 「security_result.action」の「ALLOW_WITH_MODIFICATION」のマッピングを列挙型値「CHALLENGE」に変更しました。
- eventType が「system.api_token.create」の場合、metadata.event_type を「USER_UNCATEGORIZED」から「RESOURCE_CREATION」に変更しました。
2023-04-28
- バグの修正:
- 「debugContext.debugData.threatSuspected」が「true」の場合、「security_result.threat_status」のマッピングを「ACTIVE」に変更し、それ以外の場合は「FALSE_POSITIVE」にマッピングしました。
2023-03-24
- 「logOnlySecurityData」フィールドを「security_result.detection_fields」にマッピングしました。
- また、アクション リストに「DEFERRED」を追加して、解析エラーを解決しました。
2023-04-11
- 「http.user_agent」にマッピングされているフィールドを「http.parsed_user_agent」に再マッピングしました。
- 「target.displayName」を「target.resource_ancestors.name」にマッピングしました。
- 「targetfield.detailEntry.methodTypeUsed」を「target.resource_ancestors.attribute.labels」にマッピングしました。
- 「targetfield.detailEntry.methodUsedVerifiedProperties」を「target.resource_ancestors.attribute.labels」にマッピングしました。
2023-02-20
- 「eventType」が「user.authentication.auth_via_AD_agent」の場合、「metadata.event_type」を「USER_LOGIN」から「STATUS_UPDATE」に変更しました
2022-12-14
- 「debugContext.debugData.changedAttributes」を「security_result.detection_fields」にマッピングしました。
- 「detail.actor.alternateId」の null チェックを追加しました。
2022-11-17
- フィールド「target[n].alternateId」が「target.resource.attribute.labels」にマッピングされました。
- フィールド「detail.target.0.alternateId」が「target.resource.attribute.labels」にマッピングされました。
2022-11-08
- バグの修正:
- フィールド「user_email」の適切なメールチェックの条件を追加しました。
- 「RATE_LIMIT」にないフィールド「Action1」のチェックを追加しました。
- 「actor.displayName」の null チェックと不明チェックを追加しました。
2022-11-04
- 複数のイベントを含むログのサポートを追加しました。
2022-10-15
- 「signOnModeType」を「security_result.detection_fields」にマッピングしました。
- 「authenticationProvider」が「security_result.detection_fields」にマッピングされました。
- 「credentialProvider」が「security_result.detection_fields」にマッピングされました。
- 「device」が「additional.fields」にマッピングされました。
- 「zone」を「additional.fields」にマッピングしました。
- 「type」を「additional.fields」にマッピングしました。
2022-10-14
- バグの修正:
- 「principal.user.email_addresses」と「target.user.email_addresses」の条件付きチェックを追加しました。
- 「principal.ip」にマッピングされたフィールド「request.ipChain.0.ip」の有効な ip_address を確認する Grok を追加しました。
- 「target.url」にマッピングされるフィールド「debugContext.debugData.url」に on_error 条件を追加しました。
2022-10-03
- 「client.userAgent.os」を「principal.platform」にマッピングしました。
- 「client.device」を「principal.asset.type」にマッピングしました。
- 「匿名 IP」(ハードコードされた文字列)を security_result.detection_fields.key にマッピングしました。ここで、securityContext.isProxy の値は対応する security_result.detection_fields.value にマッピングされます。
2022-09-16
- 「securityContext.asOrg」を「security_result.category_details」にマッピングしました。
- 「securityContext.isProxy」が「security_result.detection_fields」にマッピングされました。
- 「securityContext.domain」が「security_result.detection_fields」にマッピングされました。
- 「securityContext.isp」が「security_result.detection_fields」にマッピングされました。
- 「debugContext.debugData.risk.level」を「security_result.severity」にマッピングしました。
- 「debugContext.debugData.risk.reasons」を「security_result.detection_fields」にマッピングしました。
2022-08-12
- 新しく取り込まれたログが解析され、次のフィールドにマッピングされています。
- 「detail.uuid」を「metadata.product_log_id」にマッピングしました。
- 「detail.eventType」が「metadata.product_event_type」にマッピングされました
- 「detail.actor.id」を「principal.user.product_object_id」にマッピングしました。
- if 'detail.actor.alternateId' mapped to 'principal.user.userid' else
- 「detail.actor.alternateId」を「principal.user.email_addresses」にマッピングしました。
- 「detail.actor.displayName」を「principal.user.user_display_name」にマッピングしました。
- 「detail.actor.type」を「.principal.user.attribute.roles」にマッピングしました。
- 「detail.client.ipChain.0.ip」を「principal.ip」にマッピングしました。
- 「detail.client.ipChain.0.geographicalContext.state」を「principal.location.state」にマッピングしました。
- 「detail.client.ipChain.0.geographicalContext.city」を「principal.location.city」にマッピングしました。
- 「detail.client.ipChain.0.geographicalContext.country」を「principal.location.country_or_region」にマッピングしました。
- 「detail.debugContext.debugData.requestUri」を「target.url」にマッピングしました。
- 「detail.target.0.type」を「target.resource.resource_subtype」にマッピングしました。
- 「detail.target.0.id」を「target.resource.resource.product_object_id」にマッピングしました。
- 「detail.target.0.displayName」を「target.resource.resource_subtype」にマッピングしました。
- 「detail.target.0.detailEntry.policyType」を「target.resource_ancestors.attribute.labels」にマッピングしました。
- 「detail.outcome.reason」を「security_result.category_details」にマッピングしました。
- 「detail.debugContext.debugData.threatSuspected」が「security_result.detection_fields」にマッピングされました。
- 「detail.displayMessage」が「security_result.summary」にマッピングされました。
- 「detail.outcome.result」を「security_result.action」にマッピングしました。
- 「detail.severity」が「security_result.severity」にマッピングされました。
- 「detail.transaction.id」を「network.session_id」にマッピングしました。
- 「detail.debugContext.debugData.requestUri」を「extensions.auth.auth_details」にマッピングしました。
2022-07-08
- 「actor.type」のマッピングを「principal.user.role_name」から「principal.user.attribute.roles」に変更しました。
- 「target.0.type」のマッピングを「target.user.role_name」から「target.user.attribute.roles」に変更しました。
- 「target.1.type」のマッピングを「target.user.role_name」から「target.user.attribute.roles」に変更しました。
2022-06-15
- Enhancement-
- に置き換えます。
- 「target.0.detailEntry.clientAppId」を「target.asset_id」にマッピングしました。
- UDM フィールド「network.session_id」にマッピングされたフィールド「transaction.id」の条件付きチェックを追加しました。
2022-06-03
- Enhancement-
- debugContext.debugData.privilegeGranted を target.user.attribute.roles.name にマッピングしました。
- debugContext.debugData.requestUri を extensions.auth.auth_details にマッピングしました。
- debugContext.debugData.suspiciousActivityEventId、debugContext.debugData.threatDetections、debugContext.debugData.threatSuspected を security_result.detection_fields にマッピングしました。
2022-03-22
- Enhancement-
- debugContext.debugData.behaviors は security_result.description にマッピングされます。
- debugContext.debugData.threatSuspected は security_result.threat_status にマッピングされます。
- debugContext.debugData.risk が security_result.severity にマッピングされました。