Cisco Duo Security
Overview
Cisco Duo Security offers solutions for strong authentication.
Related Built-in Rules
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
RYUK Ransomeware - martinstevens Username
Detects user name "martinstevens". Wizard Spider is used to add the user name "martinstevens" to the AD of its victims. It was observed in several campaigns; in 2019 and 2020.
- 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 | event |
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",
"kind": "event",
"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",
"kind": "event",
"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",
"kind": "event",
"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",
"kind": "event",
"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",
"kind": "event",
"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",
"kind": "event",
"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",
"kind": "event",
"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.kind |
keyword |
The kind of the event. The highest categorization field in the hierarchy. |
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
- Sign up for a Duo account.
- Log in to the Duo Admin Panel and navigate to Applications.
- 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.
- Check Grant read log permission
- 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:
- Go to the playbooks page and create a new playbook with the Fetch new logs from Duo trigger
- 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
- Start the playbook and enjoy your events