インターネット非接続のWindows PCのセキュリティパッチ適用状況を、オフラインのMBSAで調査するTech TIPS

Windows OSやマイクロソフト製アプリケーションのセキュリティパッチの適用状況を調査できる無償ツール「MBSA」。だがマイクロソフトのサイトに接続できない環境では、そのままだと最新パッチの適用状況がスキャンできない。そこで、更新すべきファイルを手動でスキャン対象PCに配布して、オフラインでスキャンする方法を解説。

» 2008年07月25日 05時00分 公開
[島田広道デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000/Windows XP/Windows Server 2003



解説

Windows Server Insiderの関連記事 運用「MBSA 2.0日本語版

 Windows OSやマイクロソフト製アプリケーション(OfficeやSQL Serverなど)のセキュリティパッチの適用状況を調べるには、Microsoft Baseline Security Analyzer(MBSA)というマイクロソフト提供の無償ツールが便利だ。簡単なインストールと操作で未適用のセキュリティパッチをリストアップできる。

Microsoft Baseline Security Analyzer(MBSA) Microsoft Baseline Security Analyzer(MBSA)
MBSAはマイクロソフトが無償で提供しているWindows環境のセキュリティ・チェック・ツールである。Windows OSやマイクロソフト製アプリケーションに対して未適用のセキュリティパッチをリストアップするほか、管理者パスワードの脆弱度やポリシー設定の問題点などもチェックできる。画面は執筆時点での最新版であるVer. 2.1の例。

 MBSAはスキャン前に、デフォルトで最新パッチの適用状況をスキャンするのに必要なパッチ情報ファイル(カタログ・ファイル)や、スキャンに必要なコンポーネントの更新版などをマイクロソフトのサイトから自動的にダウンロードする。そのためインターネットに接続されていれば、これらのファイルやコンポーネントのバージョンを気にすることなく運用できる。

 逆にいえば、インターネット接続が制限されていると、前述のMBSAの自動ダウンロード機能が使えないため、必要なファイルの更新ができない。そのため最新パッチの適用状況が調査できなかったり、あるいはスキャンそのものが正常に実行できなかったり、といった問題が生じる。

 このような場合、更新の必要なファイルをインターネット接続可能な作業用コンピュータにて手動でダウンロードし、インターネット非接続のコンピュータに配布してからMBSAのスキャンを実行すればよい。本稿ではその手順を説明する。この方法であれば、まったくネットワーク接続のないコンピュータでも、USBメモリなどのリムーバブル・ストレージを使ってMBSAでスキャンが可能になる。

操作方法

 本TIPSでは、執筆時点で最新のMicrosoft Baseline Security Analyzer(MBSA) 2.1を取り上げる。また、スキャン対象コンピュータとは別に、インターネット接続の可能な作業用コンピュータを用意していただきたい。作業用コンピュータには一時的にMBSAをインストールするので、Windows 2000 Service Pack 3/Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008のいずれかがインストールされている必要がある。

 以下の手順は、いずれも管理者権限を持つユーザー・アカウントで実施する。

●手順1――Windows Update Agentなどのインストール

  まずスキャン対象コンピュータに対し、MBSAを実行するのに必要なコンポーネントをインストールする。この作業は1回だけ実行すればよい。

■Windows Update Agent(WUA)3.0のインストール

 MBSA 2.1でパッチ適用状況を調べるには、スキャン対象コンピュータにWindows Update Agent(WUA)3.0というコンポーネントをインストールする必要がある。Microsoft Updateや自動更新を利用しているコンピュータでは、WUAがバックグラウンドで自動的にインストールされる。逆にいえば、インターネット接続が制限されているとWUA 3.0がインストールされていない場合があるので、明示的にインストールした方がよい。

 WUA 3.0をインストールするには、作業用コンピュータに、以下のWUA 3.0のインストール・パッケージをダウンロードする。

 WindowsUpdateAgent30-x86.exeというファイルがダウンロードされるので、スキャン対象コンピュータにコピーして実行し、ウィザードに従ってインストールを完了させる。対話的操作なしにインストールするには、以下のコマンドラインで実行する。

WindowsUpdateAgent30-x86.exe /quiet



■Windows Installer 3.1のインストール

 Windows 2000/Windows XP Service Pack 2以前/Windows Server 2003 Service Pack未適用において、Windows Installerのバージョンが3.1より古い(%SystemRoot%\system32\msi.dllのファイルバージョンが3.1.0.0より小さい)場合は、Windows Installerも更新した方がよい。

 本稿執筆時点では、Windows Installer 3.1.4000.2435のインストール・パッケージであるWindowsInstaller-KB893803-v2-x86.exeがダウンロードできる。WUA 3.0と同じくスキャン対象コンピュータにコピーして実行し、デフォルト設定のままウィザードを進め、指示に従って再起動すればよい。対話的操作の不要なインストール用コマンドラインは以下のとおり。

WindowsInstaller-KB893803-v2-x86.exe /quiet



■Windows 2000ではkernel32.dllのバージョンを上げる

 Windows 2000の場合、kernel32.dllのバージョンが古いとMBSA起動時に次のようなkernel32.dllのエラーが発生することがある。

Windows 2000でMBSA起動時に発生することがあるkernel32.dllのエラー Windows 2000でMBSA起動時に発生することがあるkernel32.dllのエラー
Windows 2000の場合、kernel32.dllのバージョンが古いと、このようなエラーが発生することがある。Windows 2000 SP4用の更新プログラム・ロールアップ1を適用してkernel32.dllを更新すると解消できる。

 筆者が試した限りでは、Windows 2000 SP4更新プログラム・ロールアップ1を適用してkernel32.dllを5.0.2195.7006に更新すると、このエラーは解消できた。

 サイレント・インストールのためのコマンドラインは以下のとおり。

Windows2000-KB891861-v2-x86-JPN.EXE /quiet



●手順2――スキャンに必要な実行ファイルなどをMBSAから抽出する

 パッチ適用状況をスキャンするだけならMBSAをインストールする必要はなく、必要最低限のファイルをスキャン対象コンピュータにコピーすればよい。それには作業用コンピュータにて、以下のマイクロソフトのWebページからMBSAのインストール・パッケージをダウンロードしてインストールし、必要なファイルを抽出する。この作業も1回だけ実行すればよい。

 上記ページには複数の言語がリストアップされているので、日本語版すなわちMBSASetup-x86-JA.msiを選んでダウンロードし、デフォルト設定でインストールすればよい。

 インストール完了後、インストール先フォルダ(%ProgramFiles%\Microsoft Baseline Security Analyzer 2)をWindowsエクスプローラで開き、次の2つのファイルをスキャン対象コンピュータの適当なフォルダにコピーしておく(同じフォルダに配置すること)。

  • mbsacli.exe
  • wusscan.dll 

 以後、作業用コンピュータにインストールしたMBSAは不要である。

●手順3――最新のパッチ情報(カタログ・ファイル)をダウンロードする

 ここからの手順は、スキャンのたびに実施する必要がある。

 まず作業用コンピュータにおいて、最新のパッチ情報を収録したカタログ・ファイルを以下のWebページからダウンロードする。キャビネット形式のファイルwsusscn2.cabがダウンロードできるはずだ。

 ここでwsusscn2.cabに破損がないか確認する。それには、Windowsエクスプローラでwsusscn2.cabを右クリックして[プロパティ]を実行し、[デジタル署名]タブを選んで一覧から署名を選択後、[詳細]ボタンをクリックする。以下の画面のように「このデジタル署名は問題ありません」と表示されていれば、破損がなく、ファイルは正常である。

wsusscn2.cabのデジタル署名の例 wsusscn2.cabのデジタル署名の例
wsusscn2.cabファイルのプロパティを開いて[デジタル署名]タブを選び、一覧から署名を選択後、[詳細]ボタンをクリックすると、この画面が表示される。デジタル署名が破損していたらダウンロードし直すこと。
  (1)このように表示されていれば、ファイルは正常で、破損していない。破損していると、「このデジタル署名は有効ではありません」などと表示される。

 デジタル署名を確認したら、wsusscn2.cabをスキャン対象コンピュータの適当なフォルダにコピーする(キャビネット・ファイルは展開せず、そのままコピーすること)。前述のMBSAの実行ファイルと同じフォルダでもよい。

●手順4――パッチ適用状況のスキャンを実行する

 MBSAでスキャンを行うには、WUAのサービスを起動しておく必要がある。そこでスキャン対象コンピュータにおいて、[管理ツール]−[サービス]を実行して[Automatic Updates]または[自動更新]というサービスが停止していたら開始しておく。以下のコマンドラインを実行してもよい。

net start wuauserv



 これでスキャンの準備は完了だ。あとはMBSAを以下のコマンドラインで実行する。

mbsacli.exe /xmlout /unicode /nd /nvc /catalog c:\MBSA\wsusscn2.cab > c:\MBSA\mbsareport.xml

パッチ適用状況をスキャンするためのコマンドライン
スキャン結果はXML形式で「c:\MBSA\mbsareport.xml」に保存される。「c:\MBSA\wsusscn2.cab」のパスは、カタログ・ファイルの保存先フォルダにあわせて変更していただきたい。各オプションの意味は以下のとおり。

/xmlout: パッチ適用状況の調査のみ実行し、かつXML形式で結果を出力する。
/unicode: 出力結果の文字コードをUnicode(UTF-16)とする。
/nd: 実行中にマイクロソフトのサイトからのファイル・ダウンロードを抑止する。
/nvc: マイクロソフトのサイトへのMBSA新バージョン確認を抑止する。
/catalog: カタログ・ファイルの指定。ダウンロードしたキャビネット・ファイルへのパスを指定すること。

 スキャンが完了すると、その結果がXML形式で保存される。これはInternet Explorerでも閲覧できるが、関連記事のようなXMLビューア/エディタを利用した方が読みやすいだろう。なお、/Unicodeオプションを指定しないと、出力されるXMLファイルの文字コードがシフトJISとなり、XMLビューアなどでエラーが発生することがあるので注意すること。

 スキャン完了までの時間が非常に長い、あるいはスキャン中のCPU負荷がずっと100%のまま、という症状が発生した場合は、Windows Installerの不具合が原因の可能性がある。関連記事を参照して、KB927891の修正プログラム適用をお勧めする。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。