Detect Steganography in IBM QRadar
Adversaries may use steganography techniques in order to prevent the detection of hidden information. Steganographic techniques can be used to hide data in digital media such as images, audio tracks, video clips, or text files. Adversaries commonly hide malicious payloads within PNG, BMP, JPG, and GIF files, often extracting PE executables or shellcode at runtime using LSB (Least Significant Bit) manipulation or custom XOR-based extraction. Threat actors including APT37, APT29, Andariel, Tropic Trooper, BRONZE BUTLER, and MuddyWater have used steganography to hide C2 configurations, shellcode, and full malware payloads within seemingly benign images.
MITRE ATT&CK
- Tactic
- Defense Evasion
- Technique
- T1027 Obfuscated Files or Information
- Sub-technique
- T1027.003 Steganography
- Canonical reference
- https://attack.mitre.org/techniques/T1027/003/
QRadar Detection Query
SELECT
DATEFORMAT(starttime, 'YYYY-MM-dd HH:mm:ss') AS EventTime,
username,
hostname,
"CommandLine" AS CommandLine,
"Image" AS ProcessImage,
"ParentImage" AS ParentProcess,
"TargetFilename" AS DroppedFile,
QIDNAME(qid) AS EventName,
LOGSOURCENAME(logsourceid) AS LogSource
FROM events
WHERE
(
LOWER("CommandLine") ILIKE '%invoke-psimage%'
OR LOWER("CommandLine") ILIKE '%steghide%'
OR LOWER("CommandLine") ILIKE '%openstego%'
OR LOWER("CommandLine") ILIKE '%outguess%'
OR LOWER("CommandLine") ILIKE '%stegdetect%'
OR (
(
LOWER("CommandLine") ILIKE '%.png%'
OR LOWER("CommandLine") ILIKE '%.jpg%'
OR LOWER("CommandLine") ILIKE '%.bmp%'
OR LOWER("CommandLine") ILIKE '%.gif%'
OR LOWER("CommandLine") ILIKE '%.jpeg%'
)
AND
(
LOWER("CommandLine") ILIKE '%extract%'
OR LOWER("CommandLine") ILIKE '%lsb%'
OR LOWER("CommandLine") ILIKE '%decode%'
OR LOWER("CommandLine") ILIKE '%steg%'
OR LOWER("CommandLine") ILIKE '%payload%'
OR LOWER("CommandLine") ILIKE '%hidden%'
)
)
OR (
(
LOWER("TargetFilename") ILIKE '%\\pictures\\%.exe'
OR LOWER("TargetFilename") ILIKE '%\\downloads\\%.exe'
OR LOWER("TargetFilename") ILIKE '%\\temp\\%.exe'
OR LOWER("TargetFilename") ILIKE '%\\pictures\\%.dll'
OR LOWER("TargetFilename") ILIKE '%\\downloads\\%.dll'
)
AND
(
LOWER("Image") ILIKE '%chrome.exe'
OR LOWER("Image") ILIKE '%msedge.exe'
OR LOWER("Image") ILIKE '%firefox.exe'
OR LOWER("Image") ILIKE '%iexplore.exe'
OR LOWER("Image") ILIKE '%explorer.exe'
)
)
)
ORDER BY starttime DESC
LAST 24 HOURS QRadar AQL query detecting steganography tool invocations and image-based payload extraction via Sysmon EventCode 1 (process creation) and EventCode 11 (file creation) custom properties. Identifies known stego utilities by name, image+keyword command-line combinations, and PE/DLL files dropped in user profile directories by browser or shell processes.
Data Sources
Required Tables
False Positives & Tuning
- Authorized red team operators running steganography tools on endpoints within scope of an engagement that is logged to QRadar
- Image metadata extraction tools used by media production, photojournalism, or publishing workflows that reference decode, extract, or LSB operations against standard image formats
- Enterprise patch management or software deployment systems that route installer EXEs through the browser download path into Temp or Downloads before executing
Other platforms for T1027.003
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 1Hide and Extract Payload with Invoke-PSImage
Expected signal: Sysmon Event ID 3: Network connection to raw.githubusercontent.com. Sysmon Event ID 11: stego_test.png created in %TEMP%. PowerShell ScriptBlock Log Event ID 4104: Invoke-PSImage commands and the embedded script. The PNG will have slightly modified pixel values to carry the hidden payload.
- Test 2Embed Secret Message in Image using steghide
Expected signal: Sysmon Event ID 1: steghide.exe process creation with 'embed' then 'extract' arguments. Sysmon Event ID 11: stego_output.jpg and extracted_payload.txt created in %TEMP%. The steghide tool name will appear in process command lines.
- Test 3Simulate C2 Configuration Retrieval via Steganographic Image
Expected signal: Sysmon Event ID 1: powershell.exe with Invoke-WebRequest to external URL. Sysmon Event ID 3: Network connection to microsoft.com port 443. PowerShell ScriptBlock Log Event ID 4104: the extraction code using bitwise AND on image bytes.
- Test 4Detect High-Entropy Data in Image with binwalk
Expected signal: Process execution for dd and binwalk commands. Auditd execve records for both commands. The binwalk output will show signatures of embedded data within the image file.
References (5)
- https://attack.mitre.org/techniques/T1027/003/
- https://en.wikipedia.org/wiki/Duqu
- https://securingtomorrow.mcafee.com/mcafee-labs/malicious-document-targets-pyeongchang-olympics/
- https://github.com/peewpw/Invoke-PSImage
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1027.003/T1027.003.md
Unlock Pro Content
Get the full detection package for T1027.003 including response playbook, investigation guide, and atomic red team tests.