Skip to content

Cisco Duo Security

Overview

Cisco Duo Security offers solutions for strong authentication.

The following Sekoia.io built-in rules match the intake Cisco Duo Security. This documentation is updated automatically and is based solely on the fields used by the intake which are checked against our rules. This means that some rules will be listed but might not be relevant with the intake.

SEKOIA.IO x Cisco Duo Security on ATT&CK Navigator

Nimbo-C2 User Agent

Nimbo-C2 Uses an unusual User-Agent format in its implants.

  • Effort: intermediate
Potential Bazar Loader User-Agents

Detects potential Bazar loader communications through the user-agent

  • Effort: elementary
Potential Lemon Duck User-Agent

Detects LemonDuck user agent. The format used two sets of alphabetical characters separated by dashes, for example "User-Agent: Lemon-Duck-[A-Z]-[A-Z]".

  • Effort: elementary
SEKOIA.IO Intelligence Feed

Detect threats based on indicators of compromise (IOCs) collected by SEKOIA's Threat and Detection Research team.

  • Effort: elementary

Event Categories

The following table lists the data source offered by this integration.

Data Source Description
Authentication logs Duo Security provides audit logs about authentication sessions

In details, the following table denotes the type of events produced by this integration.

Name Values
Kind ``
Category authentication, iam
Type admin, info

Event Samples

Find below few samples of events and how they are normalized by Sekoia.io.

{
    "message": "{\n  \"eventtype\": \"admin_log\",\n  \"action\": \"admin_login_error\",\n  \"description\": \"{\\\"ip_address\\\": \\\"10.1.23.116\\\", \\\"error\\\": \\\"SAML login is disabled\\\", \\\"email\\\": \\\"narroway@example.com\\\"}\",\n  \"isotimestamp\": \"2020-01-23T16:18:58+00:00\",\n  \"object\": null,\n  \"timestamp\": 1579796338,\n  \"username\": \"\"\n}",
    "event": {
        "action": "admin_login_error",
        "category": [
            "iam"
        ],
        "dataset": "admin_log",
        "type": [
            "admin"
        ]
    },
    "@timestamp": "2020-01-23T16:18:58Z",
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    }
}
{
    "message": "{\n  \"eventtype\": \"admin_log\",\n  \"action\": \"user_update\",\n  \"description\": \"{\\\"notes\\\": \\\"Joe asked for their nickname to be displayed instead of Joseph.\\\", \\\"realname\\\": \\\"Joe Smith\\\"}\",\n  \"isotimestamp\": \"2020-01-24T15:09:42+00:00\",\n  \"object\": \"jsmith\",\n  \"timestamp\": 1579878582,\n  \"username\": \"admin\"\n}",
    "event": {
        "action": "user_update",
        "category": [
            "iam"
        ],
        "dataset": "admin_log",
        "type": [
            "admin"
        ]
    },
    "@timestamp": "2020-01-24T15:09:42Z",
    "duo": {
        "security": {
            "object": "jsmith"
        }
    },
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    },
    "related": {
        "user": [
            "admin"
        ]
    },
    "user": {
        "name": "admin"
    }
}
{
    "message": "{\n  \"eventtype\": \"auth_log\",\n  \"access_device\": {\n    \"browser\": \"Chrome\",\n    \"browser_version\": \"67.0.3396.99\",\n    \"flash_version\": \"uninstalled\",\n    \"hostname\": null,\n    \"ip\": \"169.232.89.219\",\n    \"is_encryption_enabled\": true,\n    \"is_firewall_enabled\": true,\n    \"is_password_set\": true,\n    \"java_version\": \"uninstalled\",\n    \"location\": {\n      \"city\": \"Ann Arbor\",\n      \"country\": \"United States\",\n      \"state\": \"Michigan\"\n    },\n    \"os\": \"Mac OS X\",\n    \"os_version\": \"10.14.1\",\n    \"security_agents\": []\n  },\n  \"adaptive_trust_assessments\": {\n    \"more_secure_auth\": {\n      \"features_version\": \"3.0\",\n      \"model_version\": \"2022.07.19.001\",\n      \"policy_enabled\": false,\n      \"reason\": \"Normal level of trust; no detection of known attack pattern\",\n      \"trust_level\": \"NORMAL\"\n    },\n    \"remember_me\": {\n      \"features_version\": \"3.0\",\n      \"model_version\": \"2022.07.19.001\",\n      \"policy_enabled\": false,\n      \"reason\": \"Known Access IP\",\n      \"trust_level\": \"NORMAL\"\n    }\n  },\n  \"alias\": \"\",\n  \"application\": {\n    \"key\": \"DIY231J8BR23QK4UKBY8\",\n    \"name\": \"Microsoft Azure Active Directory\"\n  },\n  \"auth_device\": {\n    \"ip\": \"192.168.225.254\",\n    \"key\": \"DP5BJ05HI4WRBVI4Q7JF\",\n    \"location\": {\n      \"city\": \"Ann Arbor\",\n      \"country\": \"United States\",\n      \"state\": \"Michigan\"\n    },\n    \"name\": \"My iPhone X (734-555-2342)\"\n  },\n  \"email\": \"narroway@example.com\",\n  \"event_type\": \"authentication\",\n  \"factor\": \"duo_push\",\n  \"isotimestamp\": \"2020-02-13T18:56:20.351346+00:00\",\n  \"ood_software\": null,\n  \"reason\": \"user_approved\",\n  \"result\": \"success\",\n  \"timestamp\": 1581620180,\n  \"trusted_endpoint_status\": \"not trusted\",\n  \"txid\": \"340a23e3-23f3-23c1-87dc-1491a23dfdbb\",\n  \"user\": {\n    \"groups\": [\"Duo Users\", \"CorpHQ Users\"],\n    \"key\": \"DU3KC77WJ06Y5HIV7XKQ\",\n    \"name\": \"narroway@example.com\"\n  }\n}",
    "event": {
        "category": [
            "authentication"
        ],
        "dataset": "auth_log",
        "type": [
            "info"
        ]
    },
    "@timestamp": "2020-02-13T18:56:20.351346Z",
    "host": {
        "os": {
            "name": "Mac OS X",
            "version": "10.14.1"
        }
    },
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    },
    "related": {
        "ip": [
            "169.232.89.219"
        ]
    },
    "source": {
        "address": "169.232.89.219",
        "geo": {
            "city_name": "Ann Arbor",
            "country_name": "United States",
            "region_name": "Michigan"
        },
        "ip": "169.232.89.219"
    },
    "user": {
        "email": "narroway@example.com",
        "id": "DU3KC77WJ06Y5HIV7XKQ",
        "roles": [
            "CorpHQ Users",
            "Duo Users"
        ]
    },
    "user_agent": {
        "name": "Chrome",
        "version": "67.0.3396.99"
    }
}
{
    "message": "{\n  \"eventtype\": \"offline_log\",\n  \"action\": \"o2fa_user_provisioned\",\n  \"description\": \"{\\\"user_agent\\\": \\\"DuoCredProv/4.0.6.413 (Windows NT 6.3.9600; x64; Server)\\\", \\\"hostname\\\": \\\"WKSW10x64\\\", \\\"factor\\\": \\\"duo_otp\\\"}\",\n  \"isotimestamp\": \"2019-08-30T16:10:05+00:00\",\n  \"object\": \"Acme Laptop Windows Logon\",\n  \"timestamp\": 1567181405,\n  \"username\": \"narroway\"\n}",
    "event": {
        "action": "o2fa_user_provisioned",
        "category": [
            "authentication"
        ],
        "dataset": "offline_log",
        "type": [
            "info"
        ]
    },
    "@timestamp": "2019-08-30T16:10:05Z",
    "duo": {
        "security": {
            "object": "Acme Laptop Windows Logon"
        }
    },
    "host": {
        "name": "WKSW10x64"
    },
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    },
    "related": {
        "user": [
            "narroway"
        ]
    },
    "user": {
        "name": "narroway"
    },
    "user_agent": {
        "device": {
            "name": "Other"
        },
        "name": "Other",
        "original": "DuoCredProv/4.0.6.413 (Windows NT 6.3.9600; x64; Server)",
        "os": {
            "name": "Windows",
            "version": "8.1"
        }
    }
}
{
    "message": "{\n  \"eventtype\": \"telephony_log\",\n  \"context\": \"administrator login\",\n  \"credits\": 0,\n  \"phone\": \"+13135559542\",\n  \"telephony_id\": \"5bf1a860-fe39-49e3-be29-217659663a74\",\n  \"ts\": \"2022-10-25T16:07:45.304526+00:00\",\n  \"txid\": \"fb0c129b-f994-4d3d-953b-c3e764272eb7\",\n  \"type\": \"sms\"\n}",
    "event": {
        "category": [
            "authentication"
        ],
        "dataset": "telephony_log",
        "reason": "administrator login",
        "type": [
            "info"
        ]
    },
    "duo": {
        "security": {
            "telephony": {
                "phone_number": "+13135559542",
                "type": "sms"
            }
        }
    },
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    }
}
{
    "message": "{\n  \"eventtype\": \"telephony_log\",\n  \"context\": \"authentication\",\n  \"credits\": 2,\n  \"phone\": \"+17345551311\",\n  \"telephony_id\": \"60799fee-f08f-4ba8-971f-4e53b3473e9a\",\n  \"ts\": \"2023-01-26T20:54:12.573580+00:00\",\n  \"txid\": \"373bd5f3-1e42-4a5d-aefa-b33ae278fac8\",\n  \"type\": \"phone\"\n}",
    "event": {
        "category": [
            "authentication"
        ],
        "dataset": "telephony_log",
        "reason": "authentication",
        "type": [
            "info"
        ]
    },
    "duo": {
        "security": {
            "telephony": {
                "phone_number": "+17345551311",
                "type": "phone"
            }
        }
    },
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    }
}
{
    "message": "{\n  \"eventtype\": \"telephony_log\",\n  \"context\": \"enrollment\",\n  \"credits\": 1,\n  \"phone\": \"+12125556707\",\n  \"telephony_id\": \"220f89ff-bff8-4466-b6cb-b7787940ce68\",\n  \"ts\": \"2023-03-21T22:34:49.466370+00:00\",\n  \"txid\": \"2f5d34d3-053f-422c-9dd4-77a5d58706b1\",\n  \"type\": \"sms\"\n}",
    "event": {
        "category": [
            "authentication"
        ],
        "dataset": "telephony_log",
        "reason": "enrollment",
        "type": [
            "info"
        ]
    },
    "duo": {
        "security": {
            "telephony": {
                "phone_number": "+12125556707",
                "type": "sms"
            }
        }
    },
    "observer": {
        "product": "Duo Security",
        "vendor": "Duo"
    }
}

Extracted Fields

The following table lists the fields that are extracted, normalized under the ECS format, analyzed and indexed by the parser. It should be noted that infered fields are not listed.

Name Type Description
@timestamp date Date/time when the event originated.
duo.security.object keyword The object that was acted on
duo.security.telephony.phone_number keyword The phone number that initiated this event
duo.security.telephony.type keyword The telephony event type. Either 'sms' or 'phone'
event.action keyword The action captured by the event.
event.category keyword Event category. The second categorization field in the hierarchy.
event.dataset keyword Name of the dataset.
event.reason keyword Reason why this event happened, according to the source
event.type keyword Event type. The third categorization field in the hierarchy.
host.name keyword Name of the host.
host.os.name keyword Operating system name, without the version.
host.os.version keyword Operating system version as a raw string.
observer.product keyword The product name of the observer.
observer.vendor keyword Vendor name of the observer.
source.geo.city_name keyword City name.
source.geo.country_name keyword Country name.
source.geo.region_name keyword Region name.
source.ip ip IP address of the source.
user.email keyword User email address.
user.id keyword Unique identifier of the user.
user.name keyword Short name or login of the user.
user.roles keyword Array of user roles at the time of the event.
user_agent.name keyword Name of the user agent.
user_agent.original keyword Unparsed user_agent string.
user_agent.version keyword Version of the user agent.

Configure

Generate Credentials

  1. Sign up for a Duo account.
  2. Log in to the Duo Admin Panel and navigate to Applications.
  3. Click Protect an Application and locate the entry for Admin API in the applications list. Click Protect to the far-right to configure the application and get your integration key, secret key, and API hostname. You'll need this information to complete your setup.
  4. Check Grant read log permission
  5. Click Save changes

More details in Duo documentation

Create the intake in Sekoia.io

Go to the intake page and create a new intake from the format Cisco Duo Security. Copy the intake key.

Pull events

To start to pull events, you have to:

  1. Go to the playbooks page and create a new playbook with the Fetch new logs from Duo trigger
  2. Set up the module configuration with the base URL of your Netskope instance. Set up the trigger configuration with the API token and the intake key
  3. Start the playbook and enjoy your events