■CAPICOM.DLLはサードパーティ製アプリケーションに含まれて提供されている場合がある
CAPICOMとは、データの暗号化/復号化やデジタル署名による認証などの機能を提供するCOMコンポーネントのことである。Windows OSにデフォルトではインストールされていないが、再配布可能なモジュールとしてマイクロソフトから提供されているため、暗号化ソフトウェアなどがパッケージに含めてインストールしている可能性もある。例えば、Norton
Internet Security 2007では、CAPICOM.DLLを利用しており、インストールと同時にCAPICOM.DLLの登録を行うようになっている。
CAPICOMがインストールされているかどうかを調べるには、全ドライブでCAPICOM.DLLを検索する。もし見付かったらCAPICOMがインストール済みか、あるいは過去にインストールされた可能性があるので、MS07-028の修正プログラムを適用したほうがよいだろう。
■適用にはWindows Installer 3.1が必要
Windows 2000 SP4で、MS07-028の修正プログラムを適用するには、事前にWindows Installer 3.1をインストールしておく必要がある。Windows
Installer 3.1は、ダウンロード・センターで入手可能なので、事前に適用しておくこと。Windows XP SP2とWindows Server 2003
SP1/R2/SP2は、デフォルトでWindows Installer 3.1がインストールされているので、そのまま適用可能である。
・ダウンロード・センター(Windows Installer 3.1 Redistributable (v2) - 日本語):
http://www.microsoft.com/downloads/details.aspx?
familyid=889482fc-5f56-4a38-b838-de776fd4138c&displaylang=ja
■MS07-028の修正プログラムを適用しても古いCAPICON.DLLは削除されない
MS07-028の修正プログラムは、通常とは異なり、脆弱性が存在するDLLを置き換えずに、更新されたCAPICOM.DLLの情報をコンピュータに登録し、古い(脆弱性の存在する)CAPICOM.DLLを使用しないように設定することで脆弱性を解消する。そのため、検索を行うとバージョンの異なる複数のCAPICOM.DLLが見付かることがある。DA
Lab.で調べた限りでは、登録済みの有効なCAPICOM.DLLのありかは以下のレジストリ・キーに保存されている。
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
{FBAB033B-CDD0-4C5E-81AB-AEA575CD1338}\InprocServer32 |
このキーに格納されているパスのCAPICOM.DLLのファイルバージョンが2.1.0.2以降であれば、脆弱性は解消されている。
なお新しいCAPICOM.DLLはデフォルトで、%ProgramFiles%\Microsoft CAPICOM 2.1.0.2\Lib\X86\フォルダにインストールされる。
■MS07-028の修正プログラムをアンインストールするとCAPICOMが無効になる
MS07-028の修正プログラムをアンインストールすると、インストール以前に登録されていた元のCAPICOM.DLLが再登録されず、結果としてCAPICOMが無効化されてしまう。そのため、CAPICOMを利用するようなアプリケーションは正常に動作しなくなる。
再び古いバージョンのCAPICOM.DLLを利用したい場合は、以下のコマンドラインを実行すればよい。
regsvr32.exe <元のCAPICOM.DLLのパス>\CAPICOM.DLL |
もちろん、元のCAPICOM.DLLが2.1.0.2より古い場合、脆弱性が復活してしまうので、運用には注意しなければならない。
|