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

Cryptomining

Detection of domain names potentially related to cryptomining activities.

  • Effort: master
Dynamic DNS Contacted

Detect communication with dynamic dns domain. This kind of domain is often used by attackers. This rule can trigger false positive in non-controlled environment because dynamic dns is not always malicious.

  • Effort: master
Exfiltration Domain

Detects traffic toward a domain flagged as a possible exfiltration vector.

  • Effort: master
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
Remote Access Tool Domain

Detects traffic toward a domain flagged as a Remote Administration Tool (RAT).

  • Effort: master
SEKOIA.IO Intelligence Feed

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

  • Effort: elementary
Sekoia.io EICAR Detection

Detects observables in Sekoia.io CTI tagged as EICAR, which are fake samples meant to test detection.

  • Effort: master
TOR Usage Generic Rule

Detects TOR usage globally, whether the IP is a destination or source. TOR is short for The Onion Router, and it gets its name from how it works. TOR intercepts the network traffic from one or more apps on user’s computer, usually the user web browser, and shuffles it through a number of randomly-chosen computers before passing it on to its destination. This disguises user location, and makes it harder for servers to pick him/her out on repeat visits, or to tie together separate visits to different sites, this making tracking and surveillance more difficult. Before a network packet starts its journey, user’s computer chooses a random list of relays and repeatedly encrypts the data in multiple layers, like an onion. Each relay knows only enough to strip off the outermost layer of encryption, before passing what’s left on to the next relay in the list.

  • Effort: master

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