【正解】A
【0からの解説】
①前提知識:YARA-L 2.0 は Google SecOps(旧 Chronicle)の検出ルール言語です。events セクションで条件を書き、match セクションで「同じホストで○分以内」などの単位と時間枠を指定すると、複数のイベントを相関させるマルチイベント ルールになります(例:親プロセス rundll32.exe → 子プロセス powershell.exe の起動、その前後の DLL 読み込み、C2 ドメインへの DNS 問い合わせなど)。レトロハント(Retrohunt)は、作成したルールを過去に取り込み済みのデータに遡って実行する機能で、「すでに侵入されていて気付いていなかったか」を確かめるのに使います。
②要件の整理:(a) APT が「検出されないまま活動していたか」=過去に遡った調査が必要、(b) IOC はハッシュ・C2 ドメイン・行動パターン(rundll32.exe → 難読化 powershell.exe)の 3 種、(c) ただしプロセスのハッシュは一部のエンドポイントで取れていない=ハッシュだけに依存した検出は穴がある、(d) 単発の検索ではなく「検出の仕組み」を作る。
③正解の理由:マルチイベント ルールでプロセスの親子関係という行動パターンを軸に検出すれば、ハッシュが記録されていないエンドポイントでも EDR / Sysmon のプロセス生成イベントから活動を捉えられます。ハッシュが取れている端末ではハッシュとの相関で確度を上げられ、行動とインジケーターを組み合わせた堅牢なルールになります。さらにレトロハントで過去データに適用することで、「これまで気付かずに活動していたか」という調査目的にも応えられ、ルールは以後も継続的な検出に使えます。
【誤りの選択肢】
B:ハッシュとドメインのリファレンス リストによる照合は IOC ベースの検出として有用ですが、ハッシュは一部の端末で取得できておらず、攻撃者はハッシュやドメインを容易に変更できます。行動パターンを検出しないため取りこぼしが大きく、また「ほぼリアルタイムのアラート」は将来の活動向けで、過去に活動していたかの調査(レトロハント)が含まれていません。
C:ハッシュだけに基づくシングルイベント ルールは、まさに「ハッシュが確実に取得されていない」という制約に弱く、ハッシュが記録されていない端末での DLL 実行を見逃します。行動パターンや C2 ドメインも活用していません。
D:検索で rundll32.exe の使用を洗い出すのは一回限りの調査で、継続的な「検出の仕組み」になりません。rundll32.exe は正規の Windows プロセスとして頻繁に使われるため、それだけでは誤検知も膨大になり、powershell.exe の起動や難読化引数といった行動の条件も考慮されていません。
【参考】
YARA-L を使ってみる | Google Security Operations