
KeePassのメモリ漏洩脆弱性(CVE-2023-32784)に対する攻撃手法と多層防御緩和策
KeePass Password Safe (v2.53) における CVE-2023-32784 脆弱性を分析し、メモリダンプによるマスターパスワード抽出を実証し、堅牢な検出および緩和策を設計することを目的とする。
KeePass はマスターパスワード入力に独自の SecureTextBoxEx を使用しており、入力された全ての文字に対してプロセスのアドレス空間に文字列断片が残る。実行中のプロセスの .DMP ファイルを取得することで、これらの断片をつなぎ合わせて平文パスワードを再構築できる。
チームがエクスプロイトおよび緩和フェーズに協力する中で、私は特に脆弱性の設計と Windows セキュリティ監査を活用した検出戦略を策定しました。
プロセス作成監査 (イベント ID 4688): グループポリシーを構成し、すべてのプロセス実行を完全なコマンドライン引数とともにログに記録。これにより、C# エクスプロイトツール (keepass_password_dumper.exe KeePass.DMP) の正確な実行文字列を捕捉できた。
オブジェクトアクセス監査 (イベント ID 4663 & 4656): KeePass.exe および Database.kdbx に対してファイルシステム監査を構成。これにより、機密メモリ空間へのアクセスやハンドル要求が試みられるたびにアラートが発生した。
アクセス制御: ローカルセキュリティポリシーを介して標準ユーザーから「プログラムのデバッグ」特権を削除し、OS レベルでの不正なメモリダンプ作成を防止。
暗号化: XTS-AES 128 ビット暗号化を使用した BitLocker フルディスク暗号化を展開し、保存時のメモリダンプとページングファイルを保護。