Suspicious JavaScript Execution via Deno
Detects execution of JavaScript via Deno with suspicious command-line patterns (base64, eval, http, or import in a javascript context). Adversaries may abuse Deno to run malicious JavaScript for execution or staging.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/03/19"
3integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender", "system", "crowdstrike"]
4maturity = "production"
5updated_date = "2026/03/19"
6
7[rule]
8author = ["Elastic"]
9description = """
10Detects execution of JavaScript via Deno with suspicious command-line patterns (base64, eval, http, or import in a
11javascript context). Adversaries may abuse Deno to run malicious JavaScript for execution or staging.
12"""
13from = "now-9m"
14index = [
15 "endgame-*",
16 "logs-crowdstrike.fdr*",
17 "logs-endpoint.events.process-*",
18 "logs-m365_defender.event-*",
19 "logs-sentinel_one_cloud_funnel.*",
20 "logs-system.security*",
21 "logs-windows.sysmon_operational-*",
22 "winlogbeat-*",
23]
24language = "eql"
25license = "Elastic License v2"
26name = "Suspicious JavaScript Execution via Deno"
27note = """## Triage and analysis
28
29### Investigating Suspicious JavaScript Execution via Deno
30
31Deno is a legitimate JavaScript/TypeScript runtime. This rule fires when a Deno process (identified by name, PE original filename, or code signer "Deno Land Inc.") is started with a command line matching suspicious patterns: javascript with base64, eval(, http, or javascript import. Such patterns are commonly used to run inline or remote scripts and can indicate abuse.
32
33### Possible investigation steps
34
35- Review process.command_line and process.args to see the exact script or URL being executed.
36- Identify the parent process and how Deno was launched (user, script, terminal, or other tool).
37- Check whether Deno is approved on the host; if not, treat as potential unauthorized software execution.
38- Correlate with file creation or network events around the same time (downloads, script drops).
39
40### False positive analysis
41
42- Legitimate development or automation that runs Deno with eval, http imports, or base64-encoded snippets may trigger; allowlist by host or command-line pattern where appropriate.
43
44### Response and remediation
45
46- If abuse is confirmed: contain the host, terminate the Deno process, and remove or block Deno if not authorized; investigate how the script was delivered and scope for similar activity.
47"""
48references = [
49 "https://reliaquest.com/blog/threat-spotlight-casting-a-wider-net-clickfix-deno-and-leaknets-scaling-threat",
50 "https://deno.com/"
51]
52risk_score = 73
53rule_id = "ff18d24b-2ba6-4691-a17f-75c4380d0965"
54severity = "high"
55tags = [
56 "Domain: Endpoint",
57 "OS: Windows",
58 "Use Case: Threat Detection",
59 "Tactic: Execution",
60 "Resources: Investigation Guide",
61 "Data Source: Elastic Defend",
62 "Data Source: Sysmon",
63 "Data Source: SentinelOne",
64 "Data Source: Microsoft Defender for Endpoint",
65 "Data Source: Crowdstrike",
66 "Data Source: Elastic Endgame",
67 "Data Source: Windows Security Event Logs"
68]
69timestamp_override = "event.ingested"
70type = "eql"
71
72query = '''
73process where host.os.type == "windows" and event.type == "start" and
74 (process.name : "deno.exe" or ?process.pe.original_file_name == "deno.exe" or ?process.code_signature.subject_name == "Deno Land Inc.") and
75 process.command_line : ("*javascript*base64*", "*eval(*", "*http*", "*javascript*import*")
76'''
77
78[[rule.threat]]
79framework = "MITRE ATT&CK"
80[[rule.threat.technique]]
81id = "T1059"
82name = "Command and Scripting Interpreter"
83reference = "https://attack.mitre.org/techniques/T1059/"
84[[rule.threat.technique.subtechnique]]
85id = "T1059.007"
86name = "JavaScript"
87reference = "https://attack.mitre.org/techniques/T1059/007/"
88
89[rule.threat.tactic]
90id = "TA0002"
91name = "Execution"
92reference = "https://attack.mitre.org/tactics/TA0002/"
Triage and analysis
Investigating Suspicious JavaScript Execution via Deno
Deno is a legitimate JavaScript/TypeScript runtime. This rule fires when a Deno process (identified by name, PE original filename, or code signer "Deno Land Inc.") is started with a command line matching suspicious patterns: javascript with base64, eval(, http, or javascript import. Such patterns are commonly used to run inline or remote scripts and can indicate abuse.
Possible investigation steps
- Review process.command_line and process.args to see the exact script or URL being executed.
- Identify the parent process and how Deno was launched (user, script, terminal, or other tool).
- Check whether Deno is approved on the host; if not, treat as potential unauthorized software execution.
- Correlate with file creation or network events around the same time (downloads, script drops).
False positive analysis
- Legitimate development or automation that runs Deno with eval, http imports, or base64-encoded snippets may trigger; allowlist by host or command-line pattern where appropriate.
Response and remediation
- If abuse is confirmed: contain the host, terminate the Deno process, and remove or block Deno if not authorized; investigate how the script was delivered and scope for similar activity.
References
Related rules
- Clearing Windows Console History
- Suspicious Windows Powershell Arguments
- Web Shell Detection: Script Process Child of Common Web Processes
- Execution via GitHub Actions Runner
- Remote GitHub Actions Runner Registration