Detect Stripped Payloads in CrowdStrike LogScale
Adversaries may attempt to make a payload difficult to analyze by removing symbols, strings, and other human readable information. Scripts and executables may contain variable names and other strings that help developers document code functionality. Symbols are often created by an operating system's linker when executable payloads are compiled. Adversaries use stripped payloads to make malware analysis more difficult. Stripped payload formats include run-only AppleScripts (compiled and stripped AppleScript), stripped ELF binaries on Linux, and stripped PE files on Windows. Cuckoo Stealer and macOS.OSAMiner are notable examples using stripped formats. Golang malware is frequently stripped to remove symbol tables.
MITRE ATT&CK
- Tactic
- Defense Evasion
- Technique
- T1027 Obfuscated Files or Information
- Sub-technique
- T1027.008 Stripped Payloads
- Canonical reference
- https://attack.mitre.org/techniques/T1027/008/
LogScale Detection Query
#event_simpleName=ProcessRollup2
| CommandLine = /(?i)(osacompile\s+-x|osascript.*run-only|\bstrip\b.*(--strip-all|\s-s\s)|go\s+build.*-ldflags.*(-s|-w)|(gcc|g\+\+).*\s-s(\s|$)|pdbremove|cv2pdb)/
| ImageFileName != /(?i)(\\Windows\\System32\\|\\Program Files\\|\\Program Files \(x86\)\\|\/usr\/bin\/strip$)/
| select([_time, ComputerName, UserName, ImageFileName, CommandLine, ParentBaseFileName, ParentCommandLine])
| sort(field=_time, order=desc) CrowdStrike LogScale (Humio) CQL query detecting T1027.008 stripped payload creation via Falcon ProcessRollup2 events. Uses inline regex pattern matching on CommandLine to identify osacompile run-only AppleScript compilation, Linux strip with full symbol-removal flags, Go build -ldflags -s -w symbol stripping, GCC/G++ -s compiler flag, and Windows PE symbol removal tools. Excludes known-good system binary paths to reduce noise.
Data Sources
Required Tables
False Positives & Tuning
- Go application CI/CD release builds using -ldflags '-s -w' generate very high volume in development and build environments — consider adding ComputerName or OU-based exclusions for known build infrastructure
- Linux package build automation (make, cmake, meson, bitbake, Yocto) invoking strip as a post-build step is standard behavior on dedicated build servers and will produce sustained false positive volume
- Red team and penetration testing tooling on authorized engagements compiling Go implants or stripping PE payloads — correlate with change management records and active engagement scope
Other platforms for T1027.008
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 1Create Run-Only AppleScript (macOS Stripped Payload)
Expected signal: Process creation events for osacompile (twice) and osascript. File creation events for compiled.scpt and runonly.scpt. The runonly.scpt will fail osadecompile, confirming stripped (run-only) status.
- Test 2Strip Symbols from Linux Binary with strip Command
Expected signal: Process creation for cp, strip, file, and nm commands. File creation and modification events for /tmp/stripped_ls. The 'file' output will show 'stripped', and nm will return 'no symbols'.
- Test 3Compile Go Binary with Symbol Stripping Flags
Expected signal: Process creation for go build with -ldflags '-s -w' arguments. File creation of stripped_go in /tmp. Execution of stripped_go from /tmp. The 'file' command shows stripped ELF.
- Test 4Verify Stripped Binary Cannot Be Analyzed with Standard Tools
Expected signal: Process creation events for cp (twice), strip, and nm (twice). This test demonstrates the before/after comparison an analyst would perform to confirm stripping.
References (4)
- https://attack.mitre.org/techniques/T1027/008/
- https://www.sentinelone.com/labs/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/
- https://www.intezer.com/blog/malware-analysis/executable-linkable-format-101-part-2-symbols/
- https://www.mandiant.com/resources/blog/golang-internals-symbol-recovery
Unlock Pro Content
Get the full detection package for T1027.008 including response playbook, investigation guide, and atomic red team tests.