Duo Security

Collect authentication logs from your Duo Security account to monitor user authentication events and multi-factor authentication activities.

Duo Security logs allow you to view authentication events from your Duo account. RunReveal will poll the Duo Admin API to retrieve your authentication logs every 5 minutes.

Duo Security Source

Setup

To setup your Duo Security source, you will need API credentials from your Duo account with the appropriate permissions.

Duo API Credentials

  1. Log in to your Duo Admin Panel
  2. Navigate to ApplicationsApplication Catalog
  3. Find Admin API and click + Add to create a new Admin API application

Duo API Credentials

  1. When configuring the Admin API application, ensure it has Read logs permission enabled

  2. Copy the following credentials from the application details:

    • Integration key
    • Secret key
    • API hostname (e.g., api-xxxxx.duosecurity.com)

Duo Admin API Configuration

  1. In RunReveal, create a new Duo Security source
  2. Enter the credentials from step 5:
    • Integration key: Your Duo integration key
    • Secret key: Your Duo secret key
    • API hostname: Your Duo API hostname
⚠️

Firewall Rules: If your Duo account has firewall rules or IP restrictions that limit API access, you may need to whitelist RunReveal’s outbound IP addresses. See Network Connectivity and IP Whitelisting for the IP addresses to add to your firewall allowlist.

Verify It’s Working

Once added, the source logs should begin flowing within a minute.

You can validate we are receiving your logs by running the following SQL query.

SELECT * FROM runreveal.logs WHERE sourceType = 'duo' LIMIT 1

Schema

The following columns are exposed for this source. RunReveal applies schema normalization across all sources, ensuring uniform field names and data types for cross-source queries and reusable detection logic.

Table: duo_logs (89 columns)

ColumnType
workspaceIDString
sourceIDString
sourceTypeString
sourceTTLUInt32
receivedAtDateTime
idString
eventTimeDateTime
eventNameString
eventIDString
srcIPString
srcASCountryCodeString
srcASNumberUInt32
srcASOrganizationString
srcCityString
srcConnectionTypeString
srcISPString
srcLatitudeFloat64
srcLongitudeFloat64
srcUserTypeString
dstIPString
dstASCountryCodeString
dstASNumberUInt32
dstASOrganizationString
dstCityString
dstConnectionTypeString
dstISPString
dstLatitudeFloat64
dstLongitudeFloat64
dstUserTypeString
actorMap(String, String)
tagsMap(String, String)
resourcesArray(String)
serviceNameString
enrichmentsArray(Tuple(data Map(String, String), name String, provider String, type String, value String))
readOnlyBool
rawLogString
duoTxIdString
duoTimestampDateTime
duoIsoTimestampString
duoResultString
duoReasonString
duoFactorString
duoEventTypeString
duoEmailString
duoAliasString
ColumnType
duoTrustedEndpointStatusString
duoOodSoftwareNullable(String)
duoPassportIsSupportedBool
duoPassportReasonString
duoTrustedSessionUUIDString
duoApplicationKeyString
duoApplicationNameString
duoUserKeyString
duoUserNameString
duoUserGroupsArray(String)
duoAccessDeviceIPString
duoAccessDeviceBrowserString
duoAccessDeviceBrowserVersionString
duoAccessDeviceEpkeyString
duoAccessDeviceFlashVersionString
duoAccessDeviceHostnameNullable(String)
duoAccessDeviceIsEncryptionEnabledString
duoAccessDeviceIsFirewallEnabledString
duoAccessDeviceIsPasswordSetString
duoAccessDeviceJavaVersionString
duoAccessDeviceOSString
duoAccessDeviceOSVersionString
duoAccessDeviceSecurityAgentsArray(String)
duoAccessDeviceCityString
duoAccessDeviceCountryString
duoAccessDeviceStateString
duoAuthDeviceIPString
duoAuthDeviceKeyString
duoAuthDeviceNameString
duoAuthDeviceCityString
duoAuthDeviceCountryString
duoAuthDeviceStateString
duoMoreSecureAuthTrustLevelString
duoMoreSecureAuthReasonString
duoMoreSecureAuthPolicyEnabledBool
duoMoreSecureAuthFeaturesVersionString
duoMoreSecureAuthModelVersionString
duoMoreSecureAuthDetectorsArray(String)
duoRememberMeTrustLevelString
duoRememberMeReasonString
duoRememberMePolicyEnabledBool
duoRememberMeFeaturesVersionString
duoRememberMeModelVersionString
duoRememberMeDetectorsArray(String)

For more information about Duo Security and the Admin API, see these resources: