「Candiru」のスパイウェア、COMハイジャックを悪用して永続化
「Candiru」、標的型広告で侵入しCOMハイジャックで再起動後も活動を維持
Citizen Labが2026年10月15日に公開した報告書によると、商用スパイウェアを開発するCandiruは、特定の人物を狙ったオンライン広告を通じて、操作を必要としないゼロクリック型の攻撃を仕掛けていた。Tidal CyberのIan Davilaは、初期侵入の経路ではなく、侵入後にスパイウェアが永続性を確保する仕組みに着目した。最新のインプラントと2021年に報告されたインプラントでは使用するDLLが異なっていたものの、いずれもWindowsのCOMオブジェクトをハイジャックする手法が確認されている。配布経路やファイルが変化しても、共通する動作を追跡することで検知につなげられる可能性があるという。
COMハイジャックは、MITRE ATT&CKでは「T1546.015」に分類される。攻撃者がCOMオブジェクトのCLSID登録キー配下にある「InprocServer32」の値を書き換えると、そのCOMオブジェクトを呼び出した正規のプロセスが、攻撃者の指定したDLLを読み込む可能性がある。ユーザー単位の登録場所である「HKCU\Software\Classes\CLSID」は管理者権限がなくても変更でき、システム全体の登録設定より優先される場合がある。ただし、公開されている情報だけでは、Candiruが両方の事例でこの登録パスを使用したと断定することはできない。
ゼロクリック攻撃では、初期侵入の瞬間を直接観測することが難しい場合がある。一方、インプラントが永続性を確保する過程では、レジストリの変更やDLLの読み込みといった後続の動作が発生する。そのため、2021年のサンプルで確認されたハッシュ値やファイル名だけに依存するのではなく、COM登録情報の変更と、その後のDLL読み込みを関連付けて調査することが重要となる。
Davilaが提示した検知仮説は、「InprocServer32」にDLLのパスが登録された後、同じパスのDLLが実際に読み込まれるか、あるいは「rundll32.exe」のコマンドラインに現れるかを確認するというものだ。ただし、これはCandiruの攻撃で検証された固有のイベント発生順序ではない。Citizen Labは、2つのサンプルで同じレジストリ書き込みと「rundll32.exe」の実行順序が確認されたとは報告していない。このため、検知ルールを導入する際には、各環境で収集されるテレメトリや通常のソフトウェアの動作と照らし合わせ、実際に有効かどうかを検証する必要がある。
Sysmonを使用する環境では、Event ID 13からレジストリ値の変更、Event ID 1から完全なコマンドラインを含むプロセスの実行、Event ID 7からDLLの読み込みを確認できる。特に重要なのは、各イベントに記録されたDLLの完全なパスを照合し、同一のファイルに関する動作かどうかを判断できることだ。
さらに、レジストリを書き換えたプロセス、登録場所がHKCUとHKLMのどちらにあるか、DLLの保存先やデジタル署名、登録情報の変更からDLLが読み込まれるまでの時間も確認する必要がある。特に、ユーザーが書き込み可能なディレクトリに置かれたDLLについては、正規のインストーラーやソフトウェア更新による動作との違いを判断するため、周辺の実行状況を含めた分析が求められる。
今回の事例は、インシデントをMITRE ATT&CKの手法に分類するだけでは、実際に攻撃を検知できるかどうかを判断できないことを示している。必要なイベントが適切に収集されているか、アラートルールが想定どおりに動作するか、正規のCOM登録と不正な登録を区別できるか、再現テストで後続のDLL読み込みまで追跡できるかを検証することが、検知能力を評価するうえで重要となる。

