Inter-Process Communication: Dynamic Data Exchange
- ID
- T1559.002
- Tactics
- TA0002 Execution
- Sub-technique of
- T1559 Inter-Process Communication
- Platforms
- Windows
- Data sources
- Process Creation, Module Load, Windows Registry Key Access
- Source
- attack.mitre.org
- MITRE last modified
- 25 Oct 2025
Adversaries may use Windows Dynamic Data Exchange (DDE) to execute arbitrary commands. DDE is a client-server protocol for one-time and/or continuous inter-process communication (IPC) between applications. Once a link is established, applications can autonomously exchange transactions consisting of strings, warm data links (notifications when a data item changes), hot data links (duplications of changes to a data item), and requests for command execution.
Object Linking and Embedding (OLE), or the ability to link data between documents, was originally implemented through DDE. Despite being superseded by Component Object Model, DDE may be enabled in Windows 10 and most of Microsoft Office 2016 via Registry keys.[4][6][3]
Microsoft Office documents can be poisoned with DDE commands, directly or through embedded files, and used to deliver execution via Phishing campaigns or hosted Web content, avoiding the use of Visual Basic for Applications (VBA) macros.[8][9][2][10] Similarly, adversaries may infect payloads to execute applications and/or commands on a victim device by way of embedding DDE formulas within a CSV file intended to be opened through a Windows spreadsheet program.[11][12]
DDE could also be leveraged by an adversary operating on a compromised machine who does not have direct access to a Command and Scripting Interpreter. DDE execution can be invoked remotely via Remote Services such as Distributed Component Object Model (DCOM).[13]
Detection
- DET0504 Detect Abuse of Dynamic Data Exchange (T1559.002)
Data components: Process Creation, Module Load, Windows Registry Key Access
Mitigations (4)
- M1040 Behavior Prevention on Endpoint
On Windows 10, enable Attack Surface Reduction (ASR) rules to prevent DDE attacks and spawning of child processes from Office programs.[1][2]
- M1042 Disable or Remove Feature or Program
Registry keys specific to Microsoft Office feature control security can be set to disable automatic DDE/OLE execution. [3][4][5] Microsoft also created, and enabled by default, Registry keys to completely disable DDE execution in Word and Excel.[6]
- M1048 Application Isolation and Sandboxing
Ensure Protected View is enabled.[7]
- M1054 Software Configuration
Consider disabling embedded files in Office programs, such as OneNote, that do not work with Protected View.[2][5]
Groups (11)
- G0007 APT28
- G0040 Patchwork
- G0046 FIN7
- G0065 Leviathan
- G0067 APT37
- G0069 MuddyWater
- G0080 Cobalt Group
- G0084 Gallmaker
- G0092 TA505
- G0121 Sidewinder
- G1002 BITTER
Software (8)
- S0148 RTM
- S0223 POWERSTATS
- S0237 GravityRAT
- S0387 KeyBoy
- S0391 HAWKBALL
- S0428 PoetRAT
- S0458 Ramsay
- S0476 Valak
References
- Microsoft ASR Nov 2017
- Enigma Reviving DDE Jan 2018
- Microsoft DDE Advisory Nov 2017
- BleepingComputer DDE Disabled in Word Dec 2017
- GitHub Disable DDEAUTO Oct 2017
- Microsoft ADV170021 Dec 2017
- Microsoft Protected View
- SensePost PS DDE May 2016
- Kettle CSV DDE Aug 2014
- SensePost MacroLess DDE Oct 2017
- OWASP CSV Injection
- CSV Excel Macro Injection
- Fireeye Hunting COM June 2019
