アンチ・デバッグとは【用語集詳細】

アンチ・デバッグ(Anti-Debugging)あるいはデバッグ回避(Debugger Evasion)は、セキュリティ・アナリストが利用するデバッグ環境を検知することで、マルウェアの解析を妨害・拒否するアンチ・フォレンジック/アンチ・アナリシス技術です。
マルウェア開発者は、様々な手法を用いることによって、デバッガーによるマルウェアのコード解析を妨害します。あるいは、コードに難読化等を施すことでアナリストによる手動解析を阻止します。
以下はその一例です。
- 「IsDebuggerPresent」や「CheckRemoteDebuggerPresent」といったWindowsAPIを利用することで、デバッグの有無を確認します。
- デバッガー環境下で値の変わるPEB内のフラグを確認します。
- マルウェアのプロセスツリーをチェックすることで、実際の感染を経た起動ではなく、デバッガーによる起動かどうかを確認します。
- 命令の実行タイミングやレジスタ内のフラグをチェックし、デバッガ固有の現象の有無を確認します。