Adversaries may inject code into processes in order to evade process-based defenses as well as possibly elevate privileges. Process injection is a method of executing arbitrary code in the address space of a separate live process. Running code in the context of another process may allow access to the process's memory, system/network resources, and possibly elevated privileges. Execution via process injection may also evade detection from security products since the execution is masked under a legitimate process.
There are many different ways to inject code into a process, many of which abuse legitimate functionalities. These implementations exist for every major OS but are typically platform specific.
More sophisticated samples may perform multiple process injections to segment modules and further evade detection, utilizing named pipes or other inter-process communication (IPC) mechanisms as a communication channel.
T1055(Process Injection:プロセスインジェクション)は、攻撃者が自身の悪意のあるコードを、既に実行されている他の正常なプロセス(例: explorer.exe, svchost.exe)のメモリ空間に注入して実行させる高度な技術です。
Process Injectionは、自身の独立したプロセスとして動くのではなく、他人のプロセスに「寄生」して活動する手法です。
chrome.exe)にインジェクションすれば、通信制限を回避して外部と通信できます。最も一般的な「DLL注入(DLL Injection)」の例を挙げます。
VirtualAllocEx 関数などを使用して、ターゲットプロセスのメモリ内にコードを書き込むための空き地を作ります。WriteProcessMemory を使い、その空き地に悪意のあるDLLのパスやシェルコードを書き込みます。CreateRemoteThread などを呼び出し、ターゲットプロセス内で新しいスレッドを作成して、書き込んだコードを実行させます。CreateRemoteThread や OpenProcess といった、プロセス間操作に使われる特定のWindows APIの不自然な呼び出しをEDRで監視します。lsass.exe が突然外部のIPアドレスと通信を開始するなど)を検知します。T1055はOSの標準機能を悪用する技術ですが、これを容易にする脆弱性や悪用事例が多数存在します。
lsass.exe など)にインジェクションを行い、感染を広める活動を隠蔽しました。この攻撃手法を利用する脅威アクターは登録されていません。