Microsoft Baseline Security Analyzer V1.2 とスクリプト

最終更新日: 2004年3月17日

トピック

概要
背景
よく寄せられる質問
始めに
サンプル #1
サンプル #2
サンプル #3
有効なチェック ID

概要

MBSA (Microsoft® Baseline Security Analyzer) は、Windows® ベースの 1 台以上のコンピュータについて、セキュリティの構成に問題が無いかをスキャンするためのツールです。MBSA は Windows ベースのコンピュータをスキャンし、オペレーティング システムと、Windows 2000 Server の IIS (Internet Information Services) や SQL Server™ などのインストールされているその他のコンポーネントについて、セキュリティの構成に問題がないかどうかをチェックしたり、推奨されるセキュリティ修正プログラムがインストールされ、最新の状態になっているかどうかをチェックしたりします。この文書では、MBSA のサンプル スクリプトに関するガイダンスを提供します。このガイダンスは、MBSA が行えるスキャンの範囲を広げ、レポーティング機能をより高いレベルに拡張する方法を説明するものです。サンプル スクリプトを使用した際の結果については補償されません。これらのサンプルは MBSA 1.2 のみにより生成される XML レポートを使用します。これらのレポートのスキーマはマイクロソフトにより文書化されておらず、MBSA で使用する以外の用途ではサポートされていません。マイクロソフトは予告なく、このスキーマに変更を行う場合もあります。

この文書を、関連するサンプル スクリプトのダウンロード (英語) とともに使用して下さい。

ページのトップへ

背景

MBSA は個々のレポートを XML 形式で生成し、これらのレポートの表示方法としては個々の表示のみをサポートします。組み込みのダッシュボードや結果の概要表示はありません。さらに、バッチモードで入力ファイル (/fh および /fip オプション) からコンピュータ名や IP アドレスを読み込む場合、スキャンできるホスト数に制限があります。また別の制限として、ローカル コンピュータをスキャンするためには、ローカル管理者の権限が必要です。

こういった制限にたいして、スクリプトを使用し MBSA の機能を拡大するすばらしい方法がいくつかあります。この文書はコマンド ラインの例、およびこれらの制限の多くを解決するために必要となるサンプル スクリプトを提供します。これらはサンプルであるため、各自のニーズに合わせて機能を拡張することもできます。

ページのトップへ

よく寄せられる質問

Q: どのような人物 (管理者、ユーザー、総括管理者) がこれらの出力レポートを使用するのですか?

A: ローカル管理者でないユーザーでも、コンピュータのセキュリティ レベルをチェックできます。(管理者がいつコンピュータをリモートでスキャンしたかによります。) 管理者権限があれば、さらに強固なスキャン方法を確立することができ、さらに多くのコンピュータをスキャンし、結果をそのほかのソリューションに統合するといったことも可能です。総括管理者が利用する場合は、スキャン結果のダッシュボードにアクセスし、各項目やパーセントによるセキュリティ レベルの表示を見る事ができます。

Q: これらのスクリプトはどのような問題や制限の手助けとなりますか?

A: BatchScan.js では、mbsacli.exe の /fh、/fip パラメータを使用して指定できる IP アドレス数、ホスト数の制限をバイパスする方法、MBSA 形式で /c パラメータを使用してスキャンするコンピュータを 1 台指定する場合の制限をバイパスする方法を提案します。Rollup.js は個別のレポートを結合して各セキュリティ修正プログラムの適用状況などの総合結果を出す方法を提案します。そして Rollup.xslt はみやすい概要表示の方法や特定のコンピュータやセキュリティ レベルへドリル ダウンして表示する方法を提案します。

Q: これらのレポートは組織をさらにセキュアにするためにどのように使用することができますか?

A: これらのチェック項目またはセキュリティ情報のフィルタを許可することにより、また、組織全体の概要表示を見ることができるようにすることで、最大の危険をもたらすコンピュータをより迅速に発見し、隔離することができます。特定の脆弱性について、クイック ボタンをクリックすることにより、スキャン結果にもとづいてコンピュータが一覧表示されます。

Q: これらのスクリプトおよび出力レポートをカスタマイズするためには何ができますか?

A: コマンド ライン パラメータにより、1 つまたは複数のセキュリティ情報または チェック IDを選択することができるので、単にコマンド ラインを変更することにより、要約される/レポートされるデータの範囲を制御することができます。XSLT および XML を熟知している場合、XML レポートを SMS 2.0 および SMS 2003 MIF テキスト ファイル形式に変換し、SQL レポートの集中化とセキュリティ管理の拡張を行うためにSMS データベース内にカスタム グループ クラスを作成するなど、そのほかのソリューションとのさらに興味深い統合を行うこともできます。別の例としては、特定のセキュリティ情報の展開時に使用される変更リクエスト IDなどのセキュリティ情報の識別子をローカルで管理している概要の XML ファイルに挿入することもできます。

Q: これらのスクリプトは何を行いますか?

A: サンプル #1 は 2 段階にわけたスキャンの実行方法を示します。段階 1 では、ローカル管理者権限を使用してスキャン対象の各コンピュータに結果レポートをプッシュします。段階 2 はスキャンされたコンピュータをローカルで使用することにより、ローカル管理者でなくても、レポートを表示することを許可します。サンプル #2 は、テキスト ファイルを使用し、無限の台数のコンピュータをスキャンする方法を示しています。サンプル #3 は、簡単に使用できるダッシュボードを用いてセキュリティ構成の状態や修正プログラムの適用率をパーセントで表示し、全体のメトリックスの結果を要約して表示する方法を示しています。

ページのトップへ

始めに

この文書には、スクリプト使用の可能性を示す 3 つのサンプルがあります。サンプルを使用する前に、次の事をおこなってください。まず、MBSA 1.2 がローカル コンピュータの既定のインストール フォルダ (C:\Program files\Microsoft Baseline Security Analyzer) にインストールされているか確認して下さい。BatchScan.js サンプルは、スキャン中にこの場所を使用します。次に、ダウンロード センターからスクリプト ファイルを入手し、C:\MBSASamples など、ローカルのフォルダにインストールして下さい。そして、この文書の各セクションに含まれているコマンド例に基づいて notepad.exe または適切なエディタを使用して、バッチ ファイルを作成します。

また、有効なチェック ID のセクションを必ずご覧下さい。そのセクションでは、各チェックの識別番号一覧を提供しており、チェックの名前は MBSA のユーザー インターフェースで表示されるものです。

ページのトップへ

サンプル #1

このサンプルは 2 段階のスキャンを実行するよう設計されています。1) 第 1 段階は対象となるコンピュータをスキャンし、スキャン結果を更新します。2) 次の段階では、ユーザーが自分のコンピュータのセキュリティ レベルをチェックするために必要なローカル管理者権限を持たない場合のチェック方法です。これにはいくつかの前提条件があります。まず、スキャン対象のコンピュータの一覧に多くのコンピュータがあるということです。(このケースについては、サンプル #2 をご参照下さい。) 次の前提は、各コンピュータには複数のユーザーがいるということです。サンプル #1 はスキャン結果で 1 つ以上のユーザー プロファイルを更新するようには設計されていません。各ユーザー プロファイルに出力レポートをコピーするためには、スキャンの第 1 段階部分のスクリプトにコードを追加する必要がありますが、これは難しくはありません。このサンプルを実行する前に、使用されているコマンド ライン オプションを確認し、これらの機能を製品文書で調べてください。スキャンに費やされる時間を削減するために、サンプルは MBSA により実行されるチェックをセキュリティ更新の適用状況のみに制限します。また、SUS 1.0 を使用しており、承認されない更新 (SUS サーバーの管理者により承認されない更新) について結果を表示しない必要がある場合、/sus オプションを使用して下さい。

ScanDemo.bat: スキャンの第 1 段階を実行し、スキャン結果を後で表示できるよう、結果をユーザー プロファイルにコピーします。

  set cname=%computername%   
  set uname=%username%   
  del "%userprofile%\SecurityScans\%cname%.xml"  
  "C:\Program Files\Microsoft Baseline Security Analyzer\mbsacli.exe"   
  /nvc /nosum /c %cname% /n IIS+OS+SQL+Password /o %cname%  
  copy "%userprofile%\SecurityScans\%cname%.xml"  
  "\\%cname%\c$\Documents and Settings\%uname%\SecurityScans\"  

ViewingDemo.bat: ローカル管理者ではないユーザーがスキャン結果レポートを表示します。(この操作が容易に行えるよう、ユーザーにデスクトップ ショートカットを与えることを検討して下さい。)

  "C:\Program Files\Microsoft Baseline Security Analyzer\mbsa.exe" %computername%  

ページのトップへ

サンプル #2

このサンプルは、入力ファイルから、無制限の数のコンピュータまたは IP アドレスをスキャンする方法を示しています。メモ帳でファイルを作成し、そのファイルにホストまたは IP アドレスを必要なだけ入力して下さい。もちろん、SMS または LDAP クエリを使用して、それぞれ SMS コレクションまたは AD コンテナからデータを取得し txt ファイルを作成することも可能です。UNICODE でエンコードされた txt ファイルを使用するようになっているか、BatchScan.js を必ず確認して下さい。この理由は、エディタや他のツールを使用して作成された出力ストリームのエンコードに基づいてサンプルに変更を加える必要がでる場合があるためです。

BatchScanDemo.bat:

  cscript BatchScan.js /c listfile.txt  

ページのトップへ

サンプル #3

このサンプルは一連のサンプルの中でも重要なものです。その理由は、このサンプルはレポート機能を提供し、サンプル #2 からの結果を応用し、無制限の数の報告を提供することができるためです。コマンド ラインでチェック ID またはセキュリティ情報 ID を指定することにより、スクリプトで特定のアイテムを検索することができます。完了後、結果の xml ファイルをブラウザで開くと、特定のコンピュータを表示するための ">>" および "<<" ボタンがあることがわかります。最後に Excel で XML データ ソースを作成し、それを使用してピボットグラフを作成します。次に Excel を使用して結果の円グラフを生成することができます。これらの例に示されているように、/nologo コマンド ライン パラメータを必ず使用してください。

IE-Rollup.XML および Patch-Rollup.XML というサンプル ファイルが提供されています。これにより、自分でレポートを作成したり、ロールアップの実行を待たくなくても、動作を確認することが可能です。単にブラウザで開いて下さい。(Rollup.xslt が同じフォルダに存在することを確認して下さい。)

SingleCheckRollupDemo.bat:

  cscript.exe /nologo rollup.js -c 179 >SingleCheckRollupDemo.xml  

SinglePatchRollupDemo.bat:

  cscript.exe /nologo rollup.js -b MS03-043 >SinglePatchRollupDemo.xml  

MultiCheckRollupDemo.bat: 容易に使用できるように、すべてのチェック ID を単一のコマンド ラインで提供します。

  cscript.exe /nologo rollup.js -c 101 102 104 106 107 110 115 117 118 119  
  121 122 123 124 126 127 174 176 177 178 179 201 203 204 205 206 207  
  212 213 215 216 217 218 219 301 302 307 308 309 311 314 315 316 415  
  416 417 418 419 420 421 422 423 >MultiCheckRollupDemo.xml   

MultiPatchRollupDemo.bat: 容易に使用できるよう、セキュリティ情報 ID を単一のコマンド ラインで指定します。これらは最大深刻度「緊急」のセキュリティ情報のみです。そのほかのセキュリティ情報は含まれていません。

  cscript.exe /nologo rollup.js -b MS01-055 MS01-056 MS01-058 MS01-059  
  MS02-005 MS02-008 MS02-009 MS02-010 MS02-013 MS02-015 MS02-018  
  MS02-019 MS02-022 MS02-023 MS02-024 MS02-025 MS02-027 MS02-028  
  MS02-029 MS02-032 MS02-033 MS02-039 MS02-040 MS02-041 MS02-042  
  MS02-044 MS02-047 MS02-048 MS02-052 MS02-053 MS02-055 MS02-056  
  MS02-058 MS02-061 MS02-063 MS02-065 MS02-066 MS02-068 MS02-069  
  MS02-072 MS03-001 MS03-004 MS03-006 MS03-007 MS03-008 MS03-011  
  MS03-014 MS03-015 MS03-017 MS03-020 MS03-023 MS03-026 MS03-030  
  MS03-032 MS03-037 MS03-039 MS03-040 MS03-041 MS03-042 MS03-043  
  MS03-044 MS03-046 MS03-048 MS03-049 MS03-051 MS04-001 MS04-004  
  MS04-007>MultiPatchRollupDemo.xml  

GroupIDRollupDemo.bat: グループ レベルのチェック ID を使用する方法および「MDAC のセキュリティ更新」などのグループの結果を要約する方法をです。

  cscript.exe /nologo rollup.js -c 415 >GroupIDRollupDemo.xml  

: サンプル #3 を使用する場合、次の問題が起こる可能性があることに注意する必要があります。

  1. SecurityScans フォルダに特定のコンピュータのレポートが複数含まれている場合、そのコンピュータの古いレポートは概要データに含まれます。このため、新しいスキャンを開始する時は、すべてのレポートをアーカイブ場所に移動することが最も好ましいでしょう。こうすることにより、スキャンされる各コンピュータのスキャン結果レポートは最新のものが 1 つ存在することになります。

  2. 特定のセキュリティ情報またはチェックがロール アップされる場合、アイテムが 1 台または複数のコンピュータの結果レポートに存在しない可能性もあります。アイテムがコンピュータに存在しない場合、そのチェックを「パスした」と考えられます。たとえば、2004 年1 月に作成されたレポートのセットで MS04-004 を検索すると、MS04-004 チェックをパスしたすべてのコンピュータが示されます。問題は MS04-004 が 2004 年 2 月までリリースされなかったことです。このため、スキャンが実行された時、この脆弱性はスキャンされませんでした。ロール アップしているレポートのセットが、対象となるセキュリティ情報を含んでいるとされている更新カタログ (MSSecure.XML) のバージョンに基づいていることを確認して下さい。

  3. ロールアップ プロセスは完了するまでにしばらくかかります! これらのサンプルに精通したら、最初は少数のレポートを使用し、コンピュータでのスキャンおよびロールアップに要する時間の感覚をつかんで下さい。また、コマンド ラインにロール アップに含めるアイテムが多いほど、ロールアップに時間を要します。

ページのトップへ

有効なチェック ID

サンプル #3 を使用する場合、有効なチェック ID の値はこの表に示す通りです。このサンプルは、結果の XML 出力の名前を自動的に抽出しますが、ID はロールアップに必要な特定のチェックを指定するために使用される必要があります。

チェック ID チェック名
101 Windows のバージョン
102 ファイル システム
104 ローカル アカウントのパスワードのテスト
106 パスワードの有効期限
107 Guest アカウント
110 自動ログオン
115 Windows のセキュリティの更新
117 匿名ユーザーの制限
118 IE のゾーン
119 監査
121 共有
122 管理者アカウント
123 サービス
124 マクロのセキュリティ
126 Windows Media Player のセキュリティの更新
127 Exchange Server のセキュリティの更新
174 Office のセキュリティの更新
176 管理者グループ用の IE セキュリティ強化の構成
177 管理者グループ以外用の IE のセキュリティ強化の構成
178 インターネット接続ファイアウォール
179 自動更新
201 ドメイン コントローラの IIS のテスト
203 SQL Server/MSDE のセキュリティ モデル
204 Sysadmin ロール メンバ
205 公開された SQL Server/MSDE のパスワード
206 SQL の Guest アカウント
207 CmdExec ロール
212 SQL Server/MSDE のセキュリティの更新
213 レジストリのアクセス権
215 Sysadmins
216 フォルダのアクセス権
217 SQL Server/MSDE のアカウント パスワードのテスト
218 サービス アカウント
219 SQL Server/MSDE の状態
301 ドメイン コントローラの SQL のテスト
302 IIS のセキュリティの更新
307 IIS ログの有効化
308 サンプル アプリケーション
309 IISAdmin の仮想ディレクトリ
311 IIS 親パス
314 IIS の状態
315 IIS Lockdown ツール
316 MSADC と Scripts の仮想ディレクトリ
415 MDAC のセキュリティの更新
416 Commerce Server のセキュリティの更新
417 MSXML のセキュリティの更新
418 Microsoft VM のセキュリティの更新
419 BizTalk Server のセキュリティの更新
420 Content Management Server Site Builder のセキュリティの更新
421 Content Management Server のセキュリティの更新
422 Host Integration Server のセキュリティの更新
423 Content Management Server Site Stager のセキュリティの更新
[](#mainsection)[ページのトップへ](#mainsection)