Potential DGA Activity
editPotential DGA Activity
editA population analysis machine learning job detected potential DGA (domain generation algorithm) activity. Such activity is often used by malware command and control (C2) channels. This machine learning job looks for a source IP address making DNS requests that have an aggregate high probability of being DGA activity.
Rule type: machine_learning
Rule indices: None
Severity: low
Risk score: 21
Runs every: 15m
Searches indices from: now-45m (Date Math format, see also Additional look-back time
)
Maximum alerts per execution: 100
References:
Tags:
- Use Case: Domain Generation Algorithm Detection
- Rule Type: ML
- Rule Type: Machine Learning
- Tactic: Command and Control
Version: 3
Rule authors:
- Elastic
Rule license: Elastic License v2
Setup
editSetup
The rule requires the Domain Generation Algorithm (DGA) Detection integration assets to be installed, as well as DNS events collected by integrations such as Elastic Defend, Network Packet Capture, or Packetbeat.
DGA Detection Setup
The DGA Detection integration consists of an ML-based framework to detect DGA activity in DNS events.
Prerequisite Requirements:
- Fleet is required for DGA Detection.
- To configure Fleet Server refer to the documentation.
- DNS events collected by the Elastic Defend, Network Packet Capture integration, or Packetbeat.
- To install Elastic Defend, refer to the documentation.
- To add the Network Packet Capture integration to an Elastic Agent policy, refer to this guide.
- To set up and run Packetbeat, follow this guide.
The following steps should be executed to install assets associated with the DGA Detection integration:
- Go to the Kibana homepage. Under Management, click Integrations.
- In the query bar, search for Domain Generation Algorithm Detection and select the integration to see more details about it.
- Under Settings, click Install Domain Generation Algorithm Detection assets and follow the prompts to install the assets.
Ingest Pipeline Setup
Before you can enable this rule, you’ll need to enrich DNS events with predictions from the Supervised DGA Detection model. This is done via the ingest pipeline named <package_version>-ml_dga_ingest_pipeline
installed with the DGA Detection package.
- If using an Elastic Beat such as Packetbeat, add the DGA ingest pipeline to it by adding a simple configuration setting to packetbeat.yml
.
- If adding the DGA ingest pipeline to an existing pipeline, use a pipeline processor.
Adding Custom Mappings
- Go to the Kibana homepage. Under Management, click Stack Management.
- Under Data click Index Management and navigate to the Component Templates tab.
- Templates that can be edited to add custom components will be marked with a @custom suffix. Edit the @custom component template corresponding to the beat/integration you added the DGA ingest pipeline to, by pasting the following JSON blob in the "Load JSON" flyout:
{ "properties": { "ml_is_dga": { "properties": { "malicious_prediction": { "type": "long" }, "malicious_probability": { "type": "float" } } } } }
Anomaly Detection Setup
Before you can enable this rule, you’ll need to enable the corresponding Anomaly Detection job.
- Go to the Kibana homepage. Under Analytics, click Machine Learning.
- Under Anomaly Detection, click Jobs, and then click "Create job". Select the Data View containing your enriched DNS events. For example, this would be logs-endpoint.events.*
if you used Elastic Defend to collect events, or logs-network_traffic.*
if you used Network Packet Capture.
- If the selected Data View contains events that match the query in this configuration file, you will see a card for DGA under "Use preconfigured jobs".
- Keep the default settings and click "Create jobs" to start the anomaly detection job and datafeed.
Framework: MITRE ATT&CKTM
-
Tactic:
- Name: Command and Control
- ID: TA0011
- Reference URL: https://attack.mitre.org/tactics/TA0011/
-
Technique:
- Name: Dynamic Resolution
- ID: T1568
- Reference URL: https://attack.mitre.org/techniques/T1568/