Adversaries may abuse inter-process communication (IPC) mechanisms for local code or command execution. IPC is typically used by processes to share data, communicate with each other, or synchronize execution. IPC is also commonly used to avoid situations such as deadlocks, which occurs when processes are stuck in a cyclic waiting pattern.
Adversaries may abuse IPC to execute arbitrary code or commands. IPC mechanisms may differ depending on OS, but typically exists in a form accessible through programming languages/libraries or native interfaces such as Windows Dynamic Data Exchange or Component Object Model. Linux environments support several different IPC mechanisms, two of which being sockets and pipes.[1] Higher level execution mediums, such as those of Command and Scripting Interpreters, may also leverage underlying IPC mechanisms. Adversaries may also use Remote Services such as Distributed Component Object Model to facilitate remote IPC execution.[2]
ID | Name | Description |
---|---|---|
S0687 | Cyclops Blink |
Cyclops Blink has the ability to create a pipe to enable inter-process communication.[3] |
S0537 | HyperStack |
HyperStack can connect to the IPC$ share on remote machines.[4] |
S1141 | LunarWeb |
LunarWeb can retrieve output from arbitrary processes and shell commands via a pipe.[5] |
S1100 | Ninja |
Ninja can use pipes to redirect the standard input and the standard output.[6] |
S1123 | PITSTOP |
PITSTOP can listen over the Unix domain socket located at |
S1130 | Raspberry Robin |
Raspberry Robin contains an embedded custom Tor network client that communicates with the primary payload via shared process memory.[8] |
S1150 | ROADSWEEP | |
S1078 | RotaJakiro |
When executing with non-root permissions, RotaJakiro uses the the |
S0022 | Uroburos |
Uroburos has the ability to move data between its kernel and user mode components, generally using named pipes.[11] |
ID | Mitigation | Description |
---|---|---|
M1013 | Application Developer Guidance |
Enable the Hardened Runtime capability when developing applications. Do not include the |
M1048 | Application Isolation and Sandboxing |
Ensure all COM alerts and Protected View are enabled.[12] |
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.[13][14] |
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. [15][16][17] Microsoft also created, and enabled by default, Registry keys to completely disable DDE execution in Word and Excel.[18] |
M1026 | Privileged Account Management |
Modify Registry settings (directly or using Dcomcnfg.exe) in Modify Registry settings (directly or using Dcomcnfg.exe) in |
M1054 | Software Configuration |
Consider disabling embedded files in Office programs, such as OneNote, that do not work with Protected View.[14][17] |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0011 | Module | Module Load |
Monitor for the loading of unusual modules or DLLs into processes. Specifically focus on modules that are not typically loaded or associated with IPC mechanisms. Analytic 1 - Unrecognized DLLs.
|
DS0009 | Process | Process Access |
Monitor processes that attempt to access other processes, especially if the access is unusual (such as low-privileged processes interacting with high-privileged processes like a VPN service).[22] Analytic 1 - Abnormal process access.
|
Process Creation |
Monitor the creation of processes that are related to the abuse of IPC mechanisms, particularly those that communicate with higher-privileged services or perform suspicious operations. Analytic 1 - Processes using IPC mechanisms.
|
||
DS0012 | Script | Script Execution |
Monitor for any attempts to enable scripts running on a system would be considered suspicious. If scripts are not commonly used on a system, but enabled, scripts running out of cycle from patching or other administrator functions are suspicious. Scripts should be captured from the file system when possible to determine their actions and intent. |