
.hta ファイルの既定のハンドラーを変更することで、CVE-2017-0199 によるコード実行を無効化します。OLE2(COM オブジェクト)を介して呼び出されるファイルの既定のハンドラーは、ローカルシステムの既定のアプリケーションとは別にレジストリに保存されており、レジストリ経由でしか変更できません。
これはこのエクスプロイトの実際の一例であり、私が理解している範囲で説明しています。すべての事例がこのパターンに従うわけではなく、私の評価が誤っている可能性もあります。ただし、次のセクションで示す修正は、私がテストした状況では機能します。
COM ハンドラーは、ファイルタイプ検証プロセスでのエラーを防ぐために、レジストリ内でシステムハンドラーとは別に保存されています。
これにより、OLE2 を介して呼び出される .hta オブジェクトの既定のハンドラーがメモ帳に変更され、CVE-2017-0199 によるコード実行ができなくなります。これは、OLE2 が .hta ファイルを呼び出すすべてのインスタンスに適用されます。メモ帳が開きエラーが発生しますが、コードは実行されません。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
C:\Windows\SysWOW64\mshta.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
C:\Windows\SysWOW64\mshta.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
C:\Windows\System32\notepad.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
C:\Windows\System32\notepad.exe
この緩和策によって生じたいかなる損害や問題、またメモ帳と多数のエラーによるユーザーの混乱についても、私は一切責任を負いません。これは汚い修正であり、本番環境でより広範な問題を引き起こすかどうかは不明です。いつものように、各自の環境とニーズに合わせて緩和策を評価してください。
後でこの緩和策の前後の効果を示すスクリーンショットを追加する予定です。また、これはスクリプトでも実行できますが、レジストリキーのアクセス許可を変更する際に問題があるため、それは後で対応します。