Okta ログを収集する
このドキュメントでは、Okta API を使用して Okta ログを Google Security Operations に取り込む方法について説明します。パーサーはシステムログを抽出し、JSON 配列内の単一のイベントとバッチ イベントの両方を処理します。データを UDM 形式に正規化し、Okta フィールドを UDM の同等のフィールドにマッピングします。また、解析されたユーザー エージェント、地理情報、認証の詳細でデータを拡充し、結果とリスク情報に基づいてセキュリティ結果イベントを生成します。
始める前に
- Google SecOps インスタンス
- Okta への特権アクセス
Okta を構成する方法
Okta SSO を構成するには、次のタスクを完了します。
読み取り専用権限を持つ Okta 管理ユーザーを作成する
- Okta 管理コンソールにログインします。
標準ユーザーを作成します。
- [ディレクトリ] > [ユーザー] に移動します。
- [ユーザーを追加] をクリックし、必須項目を入力します。
[Security] > [Administrators] を選択します。
[管理者を追加] をクリックします。
[管理者による管理者の割り当て] フィールドで、標準ユーザーを見つけます。
[ロール] セクションで、リストから [読み取り専用管理者] を選択します。
管理者アカウントからログアウトします。
API キーの取得
- 読み取り専用管理者ユーザーで Okta 管理者コンソールにログインします。
- [セキュリティ] > [API] > [トークン] に移動します。
- [トークンの作成] をクリックします。
- トークンにわかりやすい名前を付けます。
- API が使用される IP ゾーンを指定します(不明な場合は [任意の IP] を選択できます)。
- [トークンの作成] をクリックします。
- API キーをコピーします。
- [OK] をクリックします。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。
1 つのフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Okta Logs)。
- [ソースタイプ] として [サードパーティ API] を選択します。
- [ログタイプ] として [Okta] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- Authentication HTTP header: Okta API キーを
Authorization:<API_KEY>
形式で入力します。 - API ホスト名: Okta ホストのドメイン名(例:
<your-domain>.okta.com
)を指定します。 - アセットの名前空間: アセットの名前空間。
- Ingestion labels: このフィードのイベントに適用されるラベル。
- Authentication HTTP header: Okta API キーを
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Authentication HTTP headers:
key:value
形式で SentinelOne Alerts/Threats & static-indicator API に対して認証するために使用されます。 - API ホスト名: SentinelOne API の完全修飾ドメイン名。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- Asset Namespace: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
actor.alternateId |
principal.user.email_addresses |
メールアドレスの場合は、actor.alternateId から抽出されます。メールアドレスでない場合は、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 |
直接マッピングされ、キーは authenticationProvider です。 |
authenticationContext.credentialProvider |
security_result.detection_fields.value |
直接マッピングされ、キーは credentialProvider です。 |
authenticationContext.credentialType |
extensions.auth.mechanism |
認証メカニズム(OTP、USERNAME_PASSWORD、LOCAL)の導出に使用されます。 |
authenticationContext.externalSessionId |
network.parent_session_id |
直接マッピングされます。 |
client.device |
principal.asset.type / additional.fields.value.string_value |
値に基づいて principal.asset.type (WORKSTATION、MOBILE、ROLE_UNSPECIFIED)にマッピングされます。また、additional.fields のキー device を持つ文字列値としてもマッピングされます。 |
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 |
additional.fields のキー Postal code を持つ文字列値として直接マッピングされます。 |
client.geographicalContext.state |
principal.location.state |
直接マッピングされます。 |
client.ipAddress |
principal.ip 、principal.asset.ip |
直接マッピングされます。 |
client.userAgent.browser |
target.resource.attribute.labels.value |
直接マッピングされ、キーは Browser です。 |
client.userAgent.os |
principal.platform |
値に基づいてプラットフォーム(LINUX、WINDOWS、MAC)にマッピングされます。 |
client.userAgent.rawUserAgent |
network.http.user_agent 、network.http.parsed_user_agent |
直接マッピングされ、解析されます。 |
client.zone |
additional.fields.value.string_value |
additional.fields のキー zone を持つ文字列値として直接マッピングされます。 |
debugContext.debugData.behaviors |
security_result.description 、security_result.detection_fields |
説明に直接マッピングされます。個々の動作が抽出され、検出フィールドとして追加されます。 |
debugContext.debugData.changedAttributes |
security_result.detection_fields.value |
直接マッピングされ、キーは changedAttributes です。 |
debugContext.debugData.clientAddress |
principal.ip 、principal.asset.ip |
request.ipChain と client.ipAddress が存在しない場合、直接マッピングされます。 |
debugContext.debugData.deviceFingerprint |
target.asset.asset_id |
直接マッピングされ、device_finger_print: の接頭辞が付きます。 |
debugContext.debugData.dtHash |
security_result.detection_fields.value |
直接マッピングされ、キーは dtHash です。 |
debugContext.debugData.factor |
security_result.detection_fields.value |
直接マッピングされ、キーは factor です。 |
debugContext.debugData.factorIntent |
security_result.detection_fields.value |
直接マッピングされ、キーは factorIntent です。 |
debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.detection_fields.value |
直接マッピングされ、キーは Risk Reasons です。 |
debugContext.debugData.privilegeGranted |
target.user.attribute.roles |
個々の権限に分割され、名前と説明を含むロールとして追加されました。 |
debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields.value |
直接マッピングされ、キーは pushOnlyResponseType です。 |
debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields.value |
直接マッピングされ、キーは pushWithNumberChallengeResponseType です。 |
debugContext.debugData.requestUri |
extensions.auth.auth_details |
直接マッピングされます。 |
debugContext.debugData.suspiciousActivityEventId |
security_result.detection_fields.value |
直接マッピングされ、キーは suspiciousActivityEventId です。 |
debugContext.debugData.suspiciousActivityEventType |
security_result.detection_fields.value |
直接マッピングされ、キーは suspiciousActivityEventType です。 |
debugContext.debugData.threatDetections |
security_result.detection_fields.value |
直接マッピングされ、キーは threatDetections です。 |
debugContext.debugData.threatSuspected |
security_result.detection_fields.value 、security_result.threat_status |
キー threatSuspected を持つ検出フィールドとしてマッピングされます。脅威ステータス(ACTIVE または FALSE_POSITIVE)の導出に使用されます。 |
debugContext.debugData.url |
target.url |
直接マッピングされます。 |
displayMessage |
security_result.summary |
直接マッピングされます。 |
eventType |
metadata.product_event_type 、metadata.event_type |
product_event_type に直接マッピングされます。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 |
直接マッピングされ、キーは legacyEventType です。 |
outcome.reason |
security_result.category_details |
直接マッピングされます。 |
outcome.result |
security_result.action |
値に基づいてアクション(ALLOW、CHALLENGE、BLOCK)にマッピングされます。 |
published |
metadata.event_timestamp |
タイムスタンプに解析されます。 |
request.ipChain.n.geographicalContext |
intermediary.location |
リクエスト チェーン内の中間 IP の地理的コンテキスト。 |
request.ipChain.n.ip |
intermediary.ip |
リクエスト チェーン内の中間者の IP アドレス。 |
securityContext.asNumber |
security_result.detection_fields.value |
直接マッピングされ、キーは asNumber です。 |
securityContext.asOrg |
security_result.detection_fields.value |
直接マッピングされ、キーは asOrg です。 |
securityContext.domain |
security_result.detection_fields.value |
直接マッピングされ、キーは domain です。 |
securityContext.isp |
security_result.detection_fields.value |
直接マッピングされ、キーは isp です。 |
securityContext.isProxy |
security_result.detection_fields.value |
直接マッピングされ、キーは anonymized IP です。 |
target.n.alternateId |
target.user.email_addresses / target.user.userid |
メールアドレスの場合は、target.user.email_addresses にマッピングされます。メールアドレスでない場合は、target.user.userid として使用されます。 |
target.n.detailEntry.clientAppId |
target.asset_id |
直接マッピングされ、Client_app_id: の接頭辞が付きます。 |
target.n.detailEntry.methodTypeUsed |
target.resource_ancestors.attribute.labels.value |
ターゲット タイプが AuthenticatorEnrollment の場合、キー methodTypeUsed で直接マッピングされます。 |
target.n.detailEntry.methodUsedVerifiedProperties |
target.resource_ancestors.attribute.labels.value |
ターゲット タイプが AuthenticatorEnrollment の場合、キー methodUsedVerifiedProperties で直接マッピングされます。 |
target.n.detailEntry.policyType |
target.resource_ancestors.attribute.labels.value |
直接マッピングされ、キーは Policy Type です。 |
target.n.detailEntry.signOnModeType |
security_result.detection_fields.value |
直接マッピングされ、キーは signOnModeType です。 |
target.n.displayName |
target.user.user_display_name / target.application / target.resource.name |
ターゲット タイプに基づいてマッピングされます。 |
target.n.id |
target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id |
ターゲット タイプに基づいてマッピングされます。 |
target.n.type |
target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype |
ターゲット タイプに基づいてマッピングされます。 |
transaction.id |
network.session_id |
直接マッピングされます。 |
transaction.type |
additional.fields.value.string_value |
additional.fields のキー type を持つ文字列値として直接マッピングされます。 |
uuid |
metadata.product_log_id |
直接マッピングされます。 |
なし | metadata.vendor_name |
Okta に設定します。 |
なし | metadata.product_name |
Okta に設定します。 |
なし | extensions.auth.type |
SSO に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。