Duo-Aktivitätsprotokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Duo-Aktivitätsprotokolle exportieren und in Google Security Operations einspeisen, indem Sie das in Python geschriebene Datenaufnahme-Script als Cloud Run-Funktion bereitstellen. Außerdem erfahren Sie, wie Protokollfelder den Feldern des Unified Data Model (UDM) von Google SecOps zugeordnet werden.
Weitere Informationen finden Sie unter Datenaufnahme in Google SecOps.
Eine typische Bereitstellung besteht aus Duo-Aktivitäten und dem Datenaufnahme-Script, das als Cloud Run-Funktionen bereitgestellt wird, um Protokolle an Google SecOps zu senden. Jede Kundenimplementierung kann sich unterscheiden und möglicherweise komplexer sein.
Die Bereitstellung umfasst die folgenden Komponenten:
Duo-Aktivität: Die Plattform, von der Sie Protokolle erfassen.
Cloud Run-Funktionen: Das Datenaufnahme-Script, das als Cloud Run-Funktionen bereitgestellt wird, um Protokolle aus Duo-Aktivitäten abzurufen und in Google SecOps zu übernehmen.
Google SecOps: Hier werden die Protokolle aufbewahrt und analysiert.
Hinweis:Ein Aufnahmelabel identifiziert den Parser, der Rohprotokolldaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Datenaufnahmelabel DUO_ACTIVITY
.
Hinweise
- Sie benötigen Zugriff auf das Duo Admin-Dashboard.
- Sie müssen die Duo Admin API-Version 2 oder höher verwenden.
Duo-Aktivitäten konfigurieren
- Melden Sie sich als Administrator im Duo Admin-Steuerfeld an. Weitere Informationen finden Sie unter Duo Administration Admin Panel Overview (Duo Administration Admin-Bereich – Übersicht).
- Klicken Sie auf Anwendungen > Anwendung schützen.
- Klicken Sie in der Liste „Anwendungen“ auf „Admin API“ > Schützen, um den Integrationsschlüssel, den geheimen Schlüssel und den API-Hostnamen abzurufen.
- Wählen Sie die erforderlichen Berechtigungen aus, die Sie der Admin API-Anwendung gewähren möchten. Weitere Informationen zu den erforderlichen Berechtigungen für die jeweiligen Vorgänge finden Sie in der Duo Admin API.
Logaufnahme für Google SecOps konfigurieren
- Erstellen Sie ein Bereitstellungsverzeichnis, um die Dateien für die Cloud Run-Funktionen zu speichern. Dieses Verzeichnis enthält alle für die Bereitstellung erforderlichen Dateien.
- Kopieren Sie alle Dateien aus dem GitHub-Unterverzeichnis „Duo Activity“ im GitHub-Repository von Google SecOps in dieses Bereitstellungsverzeichnis.
- Kopieren Sie den gemeinsamen Ordner und seinen gesamten Inhalt in das Bereitstellungsverzeichnis.
- Bearbeiten Sie die Datei
.env.yml
, um alle erforderlichen Umgebungsvariablen hinzuzufügen. - Konfigurieren Sie die Umgebungsvariablen, die in Secret Manager als Secret gekennzeichnet sind. Weitere Informationen zum Erstellen von Secrets finden Sie unter Secrets erstellen und aufrufen.
- Verwenden Sie den Ressourcennamen des Secrets als Wert für die Umgebungsvariablen.
- Geben Sie den Wert
DUO_ACTIVITY
in die Umgebungsvariable CHRONICLE_NAMESPACE ein. - Wählen Sie im Feld Quellcode die Option ZIP-Datei hochladen aus.
- Klicken Sie im Feld Ziel-Bucket auf Durchsuchen, um einen Cloud Storage-Bucket auszuwählen, in dem der Quellcode als Teil der Bereitstellung hochgeladen werden soll.
- Klicken Sie im Feld ZIP-Datei auf Durchsuchen, um eine ZIP-Datei zum Hochladen aus Ihrem lokalen Dateisystem auszuwählen. Die Quelldateien Ihrer Funktion müssen sich im Stammverzeichnis der ZIP-Datei befinden.
- Klicken Sie auf Bereitstellen.
Weitere Informationen finden Sie unter Aufnahmescripts verwenden, die als Cloud Run-Funktionen bereitgestellt werden.
Referenz für die Feldzuordnung
Feldzuordnung: Ereignis-ID zu Ereignistyp
In der folgenden Tabelle sind dieDUO_ACTIVITY
-Protokolltypen und die zugehörigen UDM-Ereignistypen aufgeführt.
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 |
|
Referenz für die Feldzuordnung: DUO_ACTIVITY
In der folgenden Tabelle sind die Protokollfelder des DUO_ACTIVITY
-Protokolltyps und die zugehörigen UDM-Felder aufgeführt.
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] |
Nächste Schritte
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten