Detection: Detect web traffic to dynamic domain providers

DEPRECATED DETECTION

This detection has been marked as deprecated by the Splunk Threat Research team. This means that it will no longer be maintained or supported. If you have any questions or concerns, please reach out to us at research@splunk.com.

Description

This search looks for web connections to dynamic DNS providers.

1
2| tstats `security_content_summariesonly` count values(Web.url) as url min(_time) as firstTime from datamodel=Web where Web.status=200 by Web.src Web.dest Web.status 
3| `drop_dm_object_name("Web")` 
4| `security_content_ctime(firstTime)` 
5| `dynamic_dns_web_traffic` 
6| `detect_web_traffic_to_dynamic_domain_providers_filter`

Data Source

No data sources specified for this detection.

Macros Used

Name Value
dynamic_dns_web_traffic `lookup update=true dynamic_dns_providers_default dynamic_dns_domains as url OUTPUTNEW isDynDNS_default
detect_web_traffic_to_dynamic_domain_providers_filter search *
detect_web_traffic_to_dynamic_domain_providers_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Annotations

- MITRE ATT&CK
+ Kill Chain Phases
+ NIST
+ CIS
- Threat Actors
ID Technique Tactic
T1071.001 Web Protocols Command And Control
KillChainPhase.COMMAND_AND_CONTROL
NistCategory.DE_CM
Cis18Value.CIS_13
APT18
APT19
APT28
APT32
APT33
APT37
APT38
APT39
APT41
BITTER
BRONZE BUTLER
Chimera
Cobalt Group
Confucius
Daggerfly
Dark Caracal
FIN13
FIN4
FIN8
Gamaredon Group
HAFNIUM
Higaisa
Inception
Ke3chang
Kimsuky
Lazarus Group
LuminousMoth
Magic Hound
Metador
Moonstone Sleet
MuddyWater
Mustang Panda
OilRig
Orangeworm
Rancor
RedCurl
Rocke
Sandworm Team
Sidewinder
SilverTerrier
Stealth Falcon
TA505
TA551
TeamTNT
Threat Group-3390
Tropic Trooper
Turla
WIRTE
Windshift
Winter Vivern
Wizard Spider

Default Configuration

This detection is configured by default in Splunk Enterprise Security to run with the following settings:

Setting Value
Disabled true
Cron Schedule 0 * * * *
Earliest Time -70m@m
Latest Time -10m@m
Schedule Window auto
Creates Notable Yes
Rule Title %name%
Rule Description %description%
Notable Event Fields user, dest
Creates Risk Event True
This configuration file applies to all detections of type TTP. These detections will use Risk Based Alerting and generate Notable Events.

Implementation

This search requires you to be ingesting web-traffic logs. You can obtain these logs from indexing data from a web proxy or by using a network-traffic-analysis tool, such as Bro or Splunk Stream. The web data model must contain the URL being requested, the IP address of the host initiating the request, and the destination IP. This search also leverages a lookup file, dynamic_dns_providers_default.csv, which contains a non-exhaustive list of dynamic DNS providers. Consider periodically updating this local lookup file with new domains. This search produces fields (isDynDNS) that are not yet supported by ES Incident Review and therefore cannot be viewed when a notable event is raised. These fields contribute additional context to the notable. To see the additional metadata, add the following fields, if not already present, to Incident Review - Event Attributes (Configure > Incident Management > Incident Review Settings > Add New Entry):

  • Label: IsDynamicDNS, Field: isDynDNS Detailed documentation on how to create a new field within Incident Review may be found here: https://docs.splunk.com/Documentation/ES/5.3.0/Admin/Customizenotables#Add_a_field_to_the_notable_event_details Deprecated because duplicate.

Known False Positives

It is possible that list of dynamic DNS providers is outdated and/or that the URL being requested is legitimate.

Associated Analytic Story

Risk Based Analytics (RBA)

Risk Message Risk Score Impact Confidence
tbd 25 50 50
The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.

Detection Testing

Test Type Status Dataset Source Sourcetype
Validation Not Applicable N/A N/A N/A
Unit ❌ Failing N/A N/A N/A
Integration ❌ Failing N/A N/A N/A

Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI. Alternatively you can replay a dataset into a Splunk Attack Range


Source: GitHub | Version: 4