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.(Citation: Linux IPC) 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.(Citation: Fireeye Hunting COM June 2019)
T1559「Inter-Process Communication」(プロセス間通信) は、OS上で動作する異なるプログラム(プロセス)同士がデータをやり取りする仕組みを悪用して、コードを実行したり情報を盗んだりする手法です。
攻撃者は、あるプログラムから別のプログラムに対して「これを実行せよ」という命令を送るための「公式な連絡通路」を乗っ取ります。
この手法で攻撃者は、「正規の通信基盤に紛れ込んだ、プロセスの境界を越える操作」を実現します。
IPCには複数の方式があり、それぞれ異なる手法として分類されています。
Windowsのソフトウェア部品同士を繋ぐ技術です。 * 攻撃: 特定のCOMオブジェクトを呼び出し、その機能を悪用してコードを実行します(T1154のハイジャックとも密接に関係します)。
古いWindowsのデータ共有プロトコルです。
* 攻撃: Office文書(WordやExcel)からDDE経由で他のアプリ(cmd.exeなど)を起動させます(T1173として知られていた手法です)。
macOSにおける高機能なプロセス間通信です。 * 攻撃: 権限の高いシステムプロセスが公開しているXPCインターフェースに不備がある場合、一般ユーザーがそこへメッセージを送り、特権昇格やファイル操作を行わせます。
攻撃者は、OSが提供する「正規の窓口」を利用します。
「誰が誰に命令を送っているか」という通信の妥当性を検証することが重要です。
インシデント分析において、特定のプロセス(例:winword.exe)の引数に DDE や DDEAUTO という文字列が含まれていたり、不自然なCOMオブジェクトの生成(CoCreateInstance)が記録されている場合は、この T1559 を疑うべきです。
この攻撃手法を利用する脅威アクターは登録されていません。