Detect Malware in Google Chronicle
Adversaries may develop malware and malware components that can be used during targeting. Building malicious software can include the development of payloads, droppers, post-compromise tools, backdoors, packers, C2 protocols, and the creation of infected removable media. Because malware development occurs primarily on adversary-controlled infrastructure before deployment, defenders cannot directly observe this activity. Detection must pivot to identifying proxies: compilation and build tool activity on non-developer endpoints, use of known obfuscation and packing tools, characteristics of freshly compiled executables executing immediately after creation, and behavioral patterns consistent with malware testing (sandbox evasion checks, anti-analysis routines). Threat actors such as Lazarus Group, APT29, Sandworm, Kimsuky, and Indrik Spider are known to develop bespoke malware to avoid commodity detection signatures.
MITRE ATT&CK
- Tactic
- Resource Development
- Technique
- T1587 Develop Capabilities
- Sub-technique
- T1587.001 Malware
- Canonical reference
- https://attack.mitre.org/techniques/T1587/001/
YARA-L Detection Query
rule malware_development_tooling_t1587_001 {
meta:
author = "Argus Detection Engineering"
description = "Detects malware development activity: compilers on non-dev endpoints, packer/protector usage, obfuscator execution, and Metasploit payload generation — MITRE T1587.001"
mitre_attack_technique = "T1587.001"
mitre_attack_tactic = "Resource Development"
severity = "HIGH"
confidence = "HIGH"
version = "1.0"
created = "2026-04-13"
events:
$e.metadata.event_type = "PROCESS_LAUNCH"
$e.principal.hostname = $hostname
$e.target.process.file.full_path = $proc_path
$e.target.process.command_line = $cmd_line
$e.principal.process.file.full_path = $parent_path
(
// Branch 1: Compiler on non-dev endpoint
(
re.regex($proc_path, `(?i)(\\csc\.exe|\\vbc\.exe|\\msbuild\.exe|\\ilasm\.exe|\\cl\.exe|\\link\.exe|\\rc\.exe)$`)
and not re.regex($parent_path, `(?i)(\\devenv\.exe|\\code\.exe|\\rider64\.exe|\\idea64\.exe|\\eclipsec\.exe|\\dotnet\.exe)$`)
)
or
// Branch 2: Packer or protector execution
(
re.regex($proc_path, `(?i)(\\upx\.exe|\\themida\.exe|\\vmprotect\.exe|\\pecompact\.exe|\\aspack\.exe|\\mpress\.exe)$`)
or re.regex($cmd_line, `(?i)(upx\s|--best|--brute|--ultra-brute)`)
)
or
// Branch 3: Obfuscator execution
(
re.regex($proc_path, `(?i)(confuserex|obfuscar|dotfuscator|eazfuscator|dnguard|codeprotector)`)
or re.regex($cmd_line, `(?i)(confuserex|obfuscar|dotfuscator|eazfuscator|dnguard)`)
)
or
// Branch 4: Metasploit / msfvenom payload generation
re.regex($cmd_line, `(?i)(msfvenom|msfconsole|shell_reverse_tcp|shell_bind_tcp|windows/meterpreter|linux/x86/meterpreter|msf_)`)
)
condition:
$e
} Chronicle YARA-L 2.0 rule detecting malware development tooling via UDM PROCESS_LAUNCH events. Covers four detection branches: compiler activity without an IDE parent process, packer/protector tool execution, code obfuscator invocation, and Metasploit payload generation commands. Maps to MITRE T1587.001 Resource Development.
Data Sources
Required Tables
False Positives & Tuning
- Build automation on CI agents where MSBuild or CSC runs without an IDE parent — apply reference list exclusion for known build agent hostnames
- Security researchers using UPX or VMProtect on isolated lab machines — use asset criticality tags to suppress low-risk research hosts
- Authorized red team infrastructure running Metasploit — coordinate time-boxed suppression rules with the red team schedule
Other platforms for T1587.001
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1On-System C# Payload Compilation via csc.exe
Expected signal: Sysmon Event ID 1 (Process Create): Image=csc.exe, CommandLine containing '/out:' and path to %TEMP%, ParentImage=cmd.exe. Sysmon Event ID 11 (File Create): TargetFilename ending in df00tech_payload.exe in the Temp directory, initiated by csc.exe. Security Event ID 4688 (if command line auditing enabled) for the csc.exe invocation.
- Test 2Executable Packing with UPX
Expected signal: Sysmon Event ID 1: Process Create for upx.exe with CommandLine containing '--best' and the target file path. Sysmon Event ID 11: File modification event on df00tech_target.exe as UPX rewrites the PE in-place. Sysmon Event ID 3: Network connection to GitHub for the UPX download (if not pre-staged).
- Test 3In-Memory C# Compilation via PowerShell Add-Type
Expected signal: Sysmon Event ID 1: Process Create for powershell.exe with CommandLine containing 'Add-Type', '-TypeDefinition', and 'CSharpCodeProvider' (internal). PowerShell ScriptBlock Log Event ID 4104 capturing the full Add-Type invocation including the embedded C# source. Temporary .dll files may be written to %TEMP% by the CodeDom compiler with random names before being loaded and deleted.
- Test 4Metasploit msfvenom Payload Generation Simulation
Expected signal: Sysmon for Linux Event ID 1 (if deployed) or auditd execve records capturing the msfvenom command invocation. The string 'msfvenom' and 'reverse_tcp' in the command line are the primary indicators. If msfvenom is present and executes, an ELF binary is created in /tmp, triggering file creation events.
References (12)
- https://attack.mitre.org/techniques/T1587/001/
- https://attack.mitre.org/techniques/T1027/002/
- https://attack.mitre.org/techniques/T1027/004/
- https://www.mandiant.com/resources/blog/mandiant-apt1-report
- https://securelist.com/sofacy-apt-hits-high-profile-targets-with-updated-toolset/72924/
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-devicefileevents-table
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-deviceprocessevents-table
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1587.001/T1587.001.md
- https://github.com/upx/upx
- https://docs.metasploit.com/docs/using-metasploit/basics/how-to-use-msfvenom.html
- https://learn.microsoft.com/en-us/dotnet/api/microsoft.csharp.csharpcodeprovider
- https://github.com/yck1509/ConfuserEx
Unlock Pro Content
Get the full detection package for T1587.001 including response playbook, investigation guide, and atomic red team tests.