Windows MSI Installers の脆弱性 CVE-2024-38014 が FIX:以前からの積極的な悪用とは?

Researchers Detail CVE-2024-38014 0-Day Vulnerability in Windows MSI Installers Exploited in the Wild

2024/09/18 SecurityOnline — Microsoft Windows MSI インストーラーに影響を及ぼす、ゼロデイ脆弱性 CVE-2024-38014 が発見され、パッチ未適用のバージョンが悪用されていると、SEC Consult Vulnerability Lab のセキュリティ研究者 Michael Baer は分析している。この重大な脆弱性の悪用に成功した攻撃者は、SYSTEM 権限への昇格を達成する。また、この脆弱性は、MSI インストーラーの修復機能に関係しており、最近の修正プログラムが Microsoft から公開される以前において、積極的に悪用されていたという。

MSI (Microsoft Installer) ファイルは、Windows システムにおけるソフトウェアのインストール/更新/修復などで、広く使用さるものだ。通常において、インストールと削除を実行するには昇格された権限が必要となるが、MSI 修復の機能は、権限の低いユーザーでも実行できる。この問題が発生するのは、これらの修復の機能が、NT AUTHORITY\SYSTEM のコンテキストで実行され、Windows で最も高いレベルのアクセス権の1つにより操作されるからである。

Michael Baer の調査結果で強調されるのは、これらの MSI 修復機能を悪用する攻撃者が、昇格された権限を取得する方法である。具体的に言うと、MSI インストーラーのプログラム実行中に、短時間だけ開かれるコマンド・ウィンドウを悪用する攻撃者は、権限を SYSTEM に昇格させ、影響を受けるマシンを完全に制御できるようになる。

これまでに生じている、数多くのエクスプロイトの施行における攻撃者は、システムをスローダウンさせることで、エクスプロイトのための十分な時間が確保し、昇格したウィンドウを開いた状態に保つ必要があったが、Baer のチームは考案したのは、それ以上に信頼性の高い手法である。この新しい方法は、MSI 修復プロセス中にプログラムの実行を完全に一時停止されるものである。それにより攻撃者は、表示されるコマンド・ウィンドウを確実に操作できるようになり、権限の昇格が遥かに容易になる。

Legacy console mode, open with browser
Image: SEC Consult Vulnerability Lab

この攻撃の前提としては、GUI アクセスが必要であり、特定の条件に依存することになる。特に、Firefox や Chrome などの Web ブラウザは、エクスプロイトの実行における重要な要素となる。あその一方で、新しいバージョンの Edge や Internet Explorer では攻撃が続行できない。このエクスプロイトが実行されると、攻撃者は完全な SYSTEM レベルの権限を取得し、マシンを完全に制御できるようになるという。

セキュリティの管理者や専門家が、MSI インストーラーの潜在的な脆弱性を特定できるようにするために、Baer のチームがリリースしたのは、”msiscan” というオープンソースのアナライザ・ ツールである。このツールは、MSI ファイルを自動的にスキャンして、安全が担保されていないコンフィグや、潜在的な権限昇格の経路を探し出す。

“msiscan” フォーカスするのは、特に昇格された権限でカスタム・アクションを呼び出す MSI ファイルであり、また、脆弱なインストーラーを効率的に検出する方法を提供する。このツールは静的分析を実施し、インストーラーが実行するコマンドを調べ、ターミナル・ウィンドウを開くスクリプトの使用などの、危険な動作を特定していく。

SEC Consult からの連絡を受けた Microsoft は、2024年9月の Patch Tuesday の一部として、脆弱性 CVE-2024-38014 に対するパッチを発行している。このパッチは、昇格された権限で MSI 修復関数が実行されたときに、UAC (User Account Control) プロンプトを表示するため、不正アクセスを効果的にブロックできる。つまり、UAC プロンプトが拒否されると、修復プロセスは中止され、権限昇格のリスクが軽減されることになる。

ただし、組織が検討すべき対策は、Microsoft のパッチだけに留まらない。そこで、ソフトウェア・ベンダーに対して Michael Baer が推奨するのは、MSI インストーラーを開発する際の安全なコーディング・プラクティスの採用である。特にコンソール・アプリケーションに関連するカスタム・アクションは、ウィンドウを表示することなく呼び出す必要がある。それにより、攻撃者による昇格したプロセスの操作を防げるようになる。

管理者に対して強く推奨されるのは、可能な限り早急にパッチを適用することである。また、ソフトウェアに対する完全な修正が完了するまでの間は、脆弱な MSI インストーラーの修復機能を無効化することも検討すべきである。さらに、レジストリ キーを使用することで特定のインストーラーの使用を無効化し、また、強力なセキュリティ・プラクティスを実装することで、この脆弱性がもたらすリスクを軽減できる。