Elastic tested ES|QL COMPLETION on noisy curl and wget detection rules in cloud environments to filter benign activity before alerts reached analysts. In a seven-day wget evaluation, only three destinations survived deterministic filtering, all were triaged by the LLM, and none produced analyst-opened alerts, helping preserve trust in detections for cases like ingress tool transfer. #ESQL_COMPLETION #curl #wget #ElasticCloudServerless #Auditbeat
Keypoints
- Elasticβs InfoSec team used ES|QL COMPLETION inside curl and wget detection rules to triage noisy process events before they became analyst-facing alerts.
- The approach parses the destination host from command-line arguments, applies deterministic allow-lists, redacts secrets, aggregates survivors, and then asks an LLM for a verdict.
- The rules are designed to keep file-transfer detections enabled in cloud environments where curl and wget are heavily used for packages, CI jobs, metadata requests, and automation.
- MITRE ATT&CK T1105 Ingress Tool Transfer is directly relevant because attackers often use curl and wget to move payloads into victim environments.
- Elastic recommends anchoring filtering on parsed destination hosts rather than raw command lines to avoid brittle substring matches and false exceptions.
- The seven-day wget test in a QA Discover session produced only three surviving destinations; two were judged FP and one SUSPICIOUS, with no analyst-opened alert from the full set.
- The article emphasizes that deterministic filtering should happen first, with LLM triage reserved for ambiguous cases to reduce queue noise and preserve analyst trust.
MITRE Techniques
- [T1105 ] Ingress Tool Transfer β Attackers transfer tools or payloads onto a compromised host using utilities like curl and wget (βAttackers often transfer tools or payloads after they compromise a host. MITRE ATT&CK maps this behavior to Ingress Tool Transfer, T1105 and explicitly calls out curl and wget as common Linux utilities for moving files into a victim environment.β)
Indicators of Compromise
- [Domain ] Allow-listed or observed destinations in curl/wget triage β cdn.playwright.dev, artifacts.elastic.co, and other known-good services such as download.elastic.co
- [IP address ] Cloud and QA destinations parsed from wget activity β 1.1.1.1, 18.66.X.X, and 169.254.169.254
- [Domain ] Cloud provider and software distribution endpoints referenced in filters β mcr.microsoft.com, packages.microsoft.com, and storage.googleapis.com
- [File / command names ] Process executables monitored by the rules β curl, wget, and command-line variants captured in process.args
Read more: https://www.elastic.co/security-labs/esql-completion-curl-wget-detection-triage