Duo アクティビティ ログを収集する

以下でサポートされています。

このドキュメントでは、Python で記述された取り込みスクリプトを Cloud Run 関数としてデプロイして Duo アクティビティ ログをエクスポートし、Google Security Operations に取り込む方法と、ログフィールドが Google Security Operations の統合データモデル(UDM)フィールドにマッピングされる方法について説明します。

詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。

一般的なデプロイは、Duo アクティビティと、Cloud Run 関数としてデプロイされ、Google Security Operations にログを送信する取り込みスクリプトで構成されています。お客様のデプロイはそれぞれ異なり、より複雑になる場合もあります。

デプロイには次のコンポーネントが含まれます。

  • Duo アクティビティ: ログを収集するプラットフォーム。

  • Cloud Run functions: Cloud Run functions としてデプロイされた取り込みスクリプト。Duo アクティビティからログを取得し、Google Security Operations に取り込みます。

  • Google Security Operations: ログを保持して分析します。

取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル DUO_ACTIVITY が付加されたパーサーに適用されます。

始める前に

  • Duo 管理パネルにアクセスできることを確認します。
  • Duo Admin API バージョン 2 以降を使用していることを確認します。

Duo アクティビティを構成する

  1. 管理者として Duo 管理パネルにログインします。
  2. [Applications] > [Protect an Application] をクリックします。
  3. [アプリケーション] リストで、[Admin API] > [保護] をクリックして、統合キー、シークレット キー、API ホスト名を取得します。

Google Security Operations のログ取り込みを構成する

  1. Cloud Run 関数のファイルを保存するデプロイ ディレクトリを作成します。これには、デプロイに必要なすべてのファイルが含まれます。
  2. Google Security Operations の GitHub リポジトリにある Duo Activity の GitHub サブディレクトリから、このデプロイ ディレクトリにすべてのファイルをコピーします。
  3. 共通フォルダとすべてのコンテンツをデプロイ ディレクトリにコピーします。
  4. .env.yml ファイルを編集して、必要な環境変数をすべて追加します。
  5. Secret Manager で [Secret] としてマークされた環境変数を構成します。シークレットの作成方法については、シークレットの作成とアクセスをご覧ください。
  6. 環境変数の値としてシークレットのリソース名を使用します。
  7. CHRONICLE_NAMESPACE 環境変数に値 DUO_ACTIVITY を入力します。
  8. [ソースコード] フィールドで [ZIP アップロード] を選択します。
  9. [転送先バケット] フィールドで [参照] をクリックして、デプロイでソースコードをアップロードする Cloud Storage バケットを選択します。
  10. [ZIP ファイル] フィールドで [参照] をクリックして、ローカル ファイル システムからアップロードする ZIP ファイルを選択します。関数のソースファイルは ZIP ファイルのルートに置く必要があります。
  11. [デプロイ] をクリックします。

詳細については、Cloud Functions としてデプロイされた取り込みスクリプトを使用するをご覧ください。

フィールド マッピング リファレンス

フィールド マッピング リファレンス: イベント識別子からイベントタイプへ

次の表に、DUO_ACTIVITY ログタイプと対応する UDM のイベントの種類を示します。
Event Identifier Event Type Security Category
admin_activate_duo_push DEVICE_PROGRAM_DOWNLOAD
admin_factor_restrictions RESOURCE_PERMISSIONS_CHANGE
admin_login USER_UNCATEGORIZED
admin_rectivates_duo_push DEVICE_PROGRAM_DOWNLOAD
admin_reset_password USER_CHANGE_PASSWORD
admin_send_reset_password_email EMAIL_TRANSACTION
bypass_create RESOURCE_CREATION
bypass_delete RESOURCE_DELETION
bypass_view RESOURCE_READ
deregister_devices USER_RESOURCE_DELETION
device_change_enrollment_summary_notification_answered USER_COMMUNICATION
device_change_enrollment_summary_notification_answered_notify_admin USER_COMMUNICATION
device_change_enrollment_summary_notification_send USER_COMMUNICATION
device_change_notification_answered USER_COMMUNICATION
device_change_notification_answered_notify_admin USER_COMMUNICATION
device_change_notification_create RESOURCE_CREATION
device_change_notification_send USER_COMMUNICATION
group_create GROUP_CREATION
group_delete GROUP_DELETION
group_update GROUP_MODIFICATION
hardtoken_create RESOURCE_CREATION
hardtoken_delete RESOURCE_DELETION
hardtoken_resync RESOURCE_WRITTEN
hardtoken_update RESOURCE_WRITTEN
integration_create RESOURCE_CREATION
integration_delete RESOURCE_DELETION
integration_group_policy_add GROUP_UNCATEGORIZED
integration_group_policy_remove GROUP_UNCATEGORIZED
integration_policy_assign USER_UNCATEGORIZED
integration_policy_unassign USER_UNCATEGORIZED
integration_skey_bulk_view RESOURCE_READ
integration_skey_view RESOURCE_READ
integration_update RESOURCE_WRITTEN
log_export_start USER_UNCATEGORIZED
log_export_complete USER_UNCATEGORIZED
log_export_failure USER_UNCATEGORIZED
management_system_activate_device_cache DEVICE_CONFIG_UPDATE
management_system_active_device_cache_add_devices RESOURCE_CREATION
management_system_active_device_cache_delete_devices RESOURCE_DELETION
management_system_active_device_cache_edit_devices RESOURCE_WRITTEN
management_system_add_devices RESOURCE_CREATION
management_system_create RESOURCE_CREATION
management_system_delete RESOURCE_DELETION
management_system_delete_devices RESOURCE_DELETION
management_system_device_cache_add_devices RESOURCE_CREATION
management_system_device_cache_create RESOURCE_CREATION
management_system_device_cache_delete RESOURCE_DELETION
management_system_device_cache_delete_devices RESOURCE_DELETION
management_system_download_device_api_script DEVICE_PROGRAM_DOWNLOAD
management_system_pkcs12_enrollment RESOURCE_CREATION
management_system_sync_failure USER_UNCATEGORIZED
management_system_sync_success USER_UNCATEGORIZED
management_system_update USER_UNCATEGORIZED
management_system_view_password RESOURCE_READ
management_system_view_token RESOURCE_READ
phone_activation_code_regenerated RESOURCE_CREATION
phone_associate RESOURCE_CREATION
phone_create RESOURCE_CREATION
phone_delete RESOURCE_DELETION
phone_disassociate RESOURCE_DELETION
phone_new_sms_passcode RESOURCE_CREATION
phone_update RESOURCE_WRITTEN
policy_create RESOURCE_CREATION
policy_delete RESOURCE_DELETION
policy_update RESOURCE_WRITTEN
u2ftoken_create RESOURCE_CREATION
u2ftoken_delete RESOURCE_DELETION
user_not_enrolled_lockout USER_CHANGE_PERMISSIONS
user_adminapi_lockout USER_CHANGE_PERMISSIONS
user_lockout_cleared USER_CHANGE_PERMISSIONS
webauthncredential_create RESOURCE_CREATION
webauthncredential_delete RESOURCE_DELETION
webauthncredential_rename RESOURCE_WRITTEN

フィールド マッピング リファレンス: DUO_ACTIVITY

次の表に、DUO_ACTIVITY ログタイプのログ フィールドと、対応する UDM フィールドを示します。

Log field UDM mapping Logic
principal.platform If the access_device.os log field value matches the regular expression pattern (?i)Win, then the principal.platform UDM field is set to WINDOWS.

Else, if the access_device.os log field value matches the regular expression pattern (?i)Lin, then the principal.platform UDM field is set to LINUX.

Else, if the access_device.os log field value matches the regular expression pattern (?i)Mac, then the principal.platform UDM field is set to MAC.

Else, if the access_device.os log field value matches the regular expression pattern (?i)ios, then the principal.platform UDM field is set to IOS.

Else, if the access_device.os log field value matches the regular expression pattern (?i)Chrome, then the principal.platform UDM field is set to CHROME_OS.

Else, if the access_device.os log field value matches the regular expression pattern (?i)Android, then the principal.platform UDM field is set to ANDROID.

Else, the principal.platform UDM field is set to UNKNOWN_PLATFORM.
access_device.os_version principal.platform_version
access_device.ip.address principal.ip
access_device.location.country principal.location.country_or_region
access_device.location.state principal.location.state
access_device.location.city principal.location.city
access_device.browser principal.asset.attribute.labels[access_device_browser]
access_device.browser_version principal.asset.attribute.labels[access_device_browser_version]
ts metadata.event_timestamp
activity_id metadata.product_log_id
akey principal.asset.product_object_id
outcome.result security_result.action_details
application.key principal.resource.product_object_id
application.name principal.application
application.type principal.resource.resource_subtype
action.details principal.user.attribute.labels[action_details]
action.name metadata.product_event_type
actor.key principal.user.userid
actor.name principal.user.user_display_name
actor.type principal.user.attribute.labels[actor_type]
target.key target.asset.attribute.labels[target_key]
target.name target.asset.hostname
target.type target.asset.category
target.details target.user.attribute.labels[target_details]
old_target.key about.asset.attribute.labels[old_target_key]
old_target.name about.asset.hostname
old_target.type about.asset.category
old_target.details about.user.attribute.labels[old_target_details]
actor.details.created principal.user.first_seen_time
actor.details.last_login principal.user.last_login_time
actor.details.status principal.user.attribute.labels[status]
actor.details.email principal.user.email_addresses
actor.details.group.key principal.user.attribute.labels[actor_details_group_key]
actor.details.group.name principal.user.attribute.labels[actor_details_group_name]

次のステップ