ウイルス対策プログラムの検疫機能悪用 ローカルでの権限昇格可能に
2017年11月15日 20:04
headless曰く、 ウイルス対策プログラムの「検疫」機能を悪用し、ローカルでの権限昇格を可能にする攻撃手法「#AVGater」について、オーストリアのITセキュリティプロフェッショナルで考案者のFlorian Bogner氏が解説している(#bogner.sh、Ars Technica)。
攻撃の仕組みは管理者権限でサービスを実行するターゲットアプリケーションのDLLと同名の攻撃用DLLを検疫から復元する際に、ディレクトリジャンクションを利用して正規のDLLを置き換えるというものだ。攻撃の流れとしては、ターゲットのインストールフォルダーと同名のフォルダーに攻撃用DLLを格納しておき、ウイルス対策プログラムに検出させて検疫に送る。このフォルダーをターゲットのインストールフォルダーのディレクトリジャンクションと置き換え、攻撃用DLLを復元すればターゲットのDLLが置き換えられる。あとはシステムを再起動すればサービスが起動して攻撃用DLLを読み込み、「DllMain」が管理者権限で実行されることになる。
ウイルス対策プログラムが検疫からファイルを復元する処理はSYSTEM権限で実行されるため、標準ユーザーでも特権の必要な場所にファイルを書き込むことが可能になる。Emsisoft Anti-MalwareとMalwarebytes 3(いずれも既に対策済み)を使用した実験では、ウイルス対策プログラム自体の「version.dll」を攻撃用DLLに置き換えてコードを実行することに成功したという。Kaspersky(こちらも対策済み)の場合はクラッシュして実行できなかったようだが、別のサービスのDLLは置き換え可能だったとのこと。
Bogner氏が問題をAVベンダーへ報告したのは昨年のことで、既にディレクトリジャンクションへの復元をブロックするなどの対策が進められているようだ。記事では上述の3社のほか、Trend MicroとCheck Point(ZoneAlarm)、IKARUS Security Softwareが対策済みベンダーとして挙げられている。今回の研究結果は10日にオーストリアで開催されたIT-SECX 2017で発表されている。
なお、Windows 10(バージョン1709)のWindows Defenderでは復元時にUACのダイアログボックスが表示され、ディレクトリジャンクションへの復元もできなかった。何年も前の古いバージョンのAVGでもディレクトリジャンクションへの復元ができないなど、復元時の動作はウイルス対策プログラムごとに異なるようだ。