コンテンツにスキップ

Windowsのローカルスキャン#

FutureVuls では、Windows サーバの脆弱性を管理するため、以下の2つの脆弱性管理方法を提供しています。

  1. Windows スキャン: KB(Microsoft Knowledge Base)を利用した脆弱性管理
  2. CPEスキャン (CPE割り当て): KB管理外のソフトウェアの脆弱性管理

古いスキャナを利用している場合

vuls-v0.24.1 build-9d8e510 よりも古い Windows 用スキャナをお使いの方は、手動でのアップデートが必要です。 旧バージョンの Windows スキャナをお使いの方は 2024/1/1 までに手動アップデートを実施してください。スキャナバージョンの確認方法

Windows サーバの脆弱性管理の仕組み#

1. Windowsスキャン: KB(Microsoft Knowledge Base)を利用した脆弱性管理の概要#

KB(Microsoft Knowledge Base) は、Microsoft が提供する技術情報やサポート情報のリポジトリで、各 KB 記事には固有の ID 番号 (例. KB0000001) が付与されています。脆弱性解消のパッチやセキュリティ系のアップデート等に関する情報も、KB 記事として公開され KB-ID が付与されます。

プログラムの更新内容を識別するため、Windows の更新プログラムには、一部例外を除き KB-ID が付与されます。したがって、どの KB-ID が紐づく更新プログラムがシステムに適用されているかを確認することで、どの脆弱性が修正済みで、どの脆弱性が未修正のまま残っているか を特定できます。

FutureVuls の Windows スキャンでは、Windows への更新プログラムの適用状況 (どの更新プログラムが適用済み/未適用か) を用いた脆弱性検知と管理が可能です。未適用な更新プログラムに紐づく KB-ID を取得し、それらの KB-ID に紐づく CVE-ID を、システムに存在する脆弱性として検知します。

KB-ID から CVE に変換することで Linux やライブラリなどの他の管理対象と同じ指標で判断できます。また警戒情報や攻撃コードなどの情報をもとにトリアージ・対応できます。

下記のいずれの環境の Windows もスキャン可能です。

  • インターネットの Windows Update に接続できる環境
  • WSUS 配下の環境
  • オフライン環境/スキャナがインストールできない場合

Windows OS の脆弱性検知の詳細な仕組みは、「ブログ」を参照してください。

2. CPEスキャン (CPE割り当て): KB管理対象外のソフトウェアの資産管理と脆弱性管理の概要#

「KB 管理対象外」の定義について

本マニュアルでは、以下のいずれかを満たすソフトウェアのことを「KB 管理対象外」と定義しています。

  • 更新プログラムの管理対象外のソフトウェア
  • 更新プログラムに KB-ID が紐づいていないソフトウェア
    • 例えば、 Microsoft Office はこちらに含まれます。Microsoft Office は更新プログラムの管理対象内ですが、更新プログラムには通常 KB-ID が紐づいていません。

更新プログラム管理対象外のソフトウェア、あるいは更新プログラムに KB-ID が紐づいていないソフトウェアは、 KB を利用した脆弱性管理の対象外です。

これらの KB 管理対象外の資産管理機能とその脆弱性を、CPEスキャンを利用して管理する機能 を FutureVuls では提供しています。 詳細は「KB 管理対象外のソフトウェアの脆弱性を検知する」を参照してください。

Windowsスキャン: KB(Microsoft Knowledge Base)を利用した脆弱性管理#

スキャンの実行方法#

Windows スキャナはタスクスケジューラにより、1日1回自動でスキャンを実行します。

スキャナをインストールした直後や、任意のタイミングでスキャナを実行したい場合は、次の手順に従ってください。

タスクスケジュールから実行する方法#

  • タスクスケジューラから、vuls-saas タスクを起動します。

    • タスクスケジューラを開きます。
    • タスクの一番上の階層に存在する vuls-saas を 右クリック > 実行します。

    task_scheduler

コマンドプロンプトから手動スキャンする方法#

管理者権限 で以下のコマンドを実行することで手動スキャンが可能です。

C:\Program files\vuls-saas\vuls-saas.bat

スキャン結果の確認方法#

スキャン終了後、しばらくすると WEB 画面に反映されます。 数分待ってもスキャン結果が反映されない場合や、スキャンに失敗した場合は、以下のログファイルを見て原因を確認して下さい。

  • C:\Program Files\vuls-saas\vuls-saas.log
    • スキャンの成否と、アップロードの成否が記載されています。
    • スキャンが失敗している場合、レポート情報は FutureVuls にアップロードされません。

エラーが発生している場合は、WindowsスキャンのFAQを参照してください。

スキャン結果に検知漏れがあった場合

スキャナでスキャンした Windows のアドバイザリ一覧を確認した際に、適用済みの更新プログラム、未適用な更新プログラムに検知漏れがあった場合は、KBIDの手動登録機能で補完出来ます。

スキャン設定の記載箇所#

スキャン時の設定は、以下のように C:\Program Files\vuls-saas\config.toml に記載されます。

PS C:\> type 'C:\Program Files\vuls-saas\config.toml'
# See README for details: https://vuls.io/docs/en/usage-settings.html

version = "v2"

[saas]
  GroupID = 0000
  Token = "xxxx-xxxxxxxx-xxxx-xxxxxx-xxxxxxxxx"
  URL = "https://xxxxxxxxxxxx"

[default]

[servers]

  [servers.server1]
    host = "localhost"
    port = "22"
    scanMode = ["fast-root"]
    [servers.server1.uuids]
      server1 = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
    [servers.server1.windows]
      serverSelection = 2

      version = "v2"

WSUS配下のWindowsのスキャン#

config.toml を設定することで、ローカルネットワーク上の WSUS を参照して未適用な KB を検知できます。

下記の環境でおすすめなスキャン方法です。

  • インターネット上の Windows Update サービスに接続できないが、WSUS がローカルネットワークに構築されている
  • スキャナプログラムをインストールできる
  • スキャナプログラムからインターネット上の FutureVuls に構成情報をアップロードできる
  • ペーストスキャンのように、Windows Update 実施のたびに KB を画面上にコピー&ペーストで更新したくない

Windows Update のアクセス先を変更する際は、config.toml の serverSelection を、以下のように serverSelection = 1 で設定してください(デフォルトであるインターネット上の Windows Update を参照する場合は 2 で設定)。

  
[servers]
  [servers.localhost]
    host = "localhost"
    port = "local"
  [servers.localhost.uuids]
    localhost = "xxxx-xxxx-xxxx"
  [servers.localhost.windows]
    serverSelection = 1
  

WSUS 配下の Windows スキャンがうまくいかない場合は以下を参照ください。

アップロードする情報をカスタマイズ#

config.toml の IgnoredJSONKeys にアップロードしたくない情報の JSON のキーを指定することで、FutureVuls にアップロードする情報をフィルタリングできます。これは Windows スキャンの場合でのみ設定できます。

例として、インストール済みのソフトウェア一覧をアップロードしない設定は以下のようになります。 config.toml に指定する JSON キーは以下の手順で確認するか、FAQを参照して下さい。

~  ~
[servers]
  [servers.localhost]
    host = "localhost"
    port = "local"
    ignoredJSONKeys = ["packages"]
~  ~

CPEスキャンを用いて、KB管理対象外のソフトウェアの脆弱性を管理する#

Windows スキャンによる KB を用いた脆弱性管理では、製品に提供された更新プログラムが修正する脆弱性を、更新プログラムに紐づく KB-ID を利用して検知します。

一方、更新プログラムの管理対象外のソフトウェア、あるいは更新プログラムに KB-ID が紐づいていないソフトウェアは、KB を利用した脆弱性管理の対象外です。これらの KB の管理対象外の製品の脆弱性を検知するために、FutureVuls では CPE スキャンにより各製品の脆弱性を管理する機能: CPE割り当て を提供しています。

各ソフトウェアが KB 管理の対象外かを判断するための参考情報#

以下に紹介する方法は、いずれも KB 管理されているかを 正確に判定できるものではございません。あくまで参考情報としてご活用ください。 各製品が KB で管理されているかについての正確な情報が必要な場合は、Microsoft にお問い合わせください。

  • Windows Update / Microsoft Update の対象外のソフトウェアは、更新プログラムに KB-ID が紐づいていない可能性、すなわち KB 管理の対象外である可能性が高いです。
  • Microsoft Update Catalog」 でソフトウェアを検索することで、その製品に KB が紐づく脆弱性があるかを調べることができます。また、「MSRCのSecurity Update Guide」でも、各ソフトウェアの更新方法を調べることができます。これらのサイトで、KB が紐づいている脆弱性が出てこない場合は、ソフトウェアが KB 管理の対象外である可能性が高いです。

CPE割り当て: インストール済みのソフトウェアにCPEを割り当てる#

Windows スキャナを用いて登録された Windows サーバの場合、ソフトウェアタブにてインストール済みのソフトウェア一覧が表示されます。これらのソフトウェアのうち、KB 管理の対象外のソフトウェアは、このままだと脆弱性検知の対象外です。

各ソフトウェアに適切な CPE を割り当てることで、KB 管理対象外のソフトウェアの脆弱性を CPE スキャンにより検知できるようになります。

なお、CPE を用いたスキャンロジックは、CPEスキャンを参照ください。

割り当て方法#

Windows のソフトウェアタブから、CPE を割り当てるソフトウェアをクリックし、「CPE 割り当て」ボタンをクリックします。

CPE割り当てボタン

登録方法は以下の3つから選べます。

  1. リコメンドされた候補から選択する

    下記2種類から選択が可能です

      1. よく利用されるCPE: 割り当て実績が多いCPE上位3件
      2. リコメンドCPE: ソフトウェア名と関連度の高いCPE
    
  2. 手動で候補を検索する

    データベースに登録されている CPE から文字列検索します

  3. 直接入力する

    割り当てる CPE を直接入力します

また、それぞれの登録方法にて、「ベンダ名とプロダクト名のみ登録する」か「完全な CPE を登録する」か選択できます。

  • ベンダ名とプロダクト名のみ登録する場合(推奨)
    • 登録されたベンダ名およびプロダクト名から自動で CPE を生成します
    • CPE のバージョン情報には、スキャナによって検知されたソフトウェアのバージョンが反映されます
    • 実機上のソフトウェアアップデート実施によりバージョンが変更された場合に該当する CPE のバージョン番号は自動で更新されます。自動更新されるタイミングは、アップデート後の最初のスキャン時に行われます。つまりソフトウェアアップデート後の CPE のバージョン番号を手動で変更する必要はありません。なお、バージョンが自動で更新されるためタスクのステータスも自動でクローズ(PATCH_APPLIED)されます。
    • ソフトウェアタブで「CPE 自動更新」列の値が"☑"になります
  • 完全な CPE を登録する場合
    • ベンダ名やプロダクト名だけでなく、バージョンやアップデート情報を含めた完全な CPE を手動で登録します
    • スキャナがソフトウェアのバージョンを検知した場合でも CPE は更新されないため、手動でのメンテナンスが必要です
    • 実機上のソフトウェアアップデート実施によりバージョンが変更された場合に登録済みの CPE のバージョン番号を手動で変更する必要があります。
    • スキャナがバージョンを取得できない場合や、アップデートやエディション情報を登録したい場合にご利用ください
    • ソフトウェアタブで「CPE 自動更新」列の値が"-"になります

また、和製ソフトウェアの場合は、脆弱性 DB として JVN を使用できます(詳細)。 「リコメンドされた候補から選択」かつ「ベンダ名とプロダクト名で選択」を選択した場合は、「脆弱性を JVN で検知する」のチェックボックス押下時に、NVD の CPE 検索ページへのリンクも表示されます。

CPE割り当てダイアログ

登録すると、次回スキャン以降、割り当てられた CPE を用いて脆弱性が検知されるようになります。

ソフトウェアに対して割り当てた CPE 情報は、リコメンド精度向上のため学習に使用されます。 ただし、ユーザを特定できないよう処理を講じますのでご安心ください。 約款

一括割り当て#

ソフトウェアタブにて CPE を割り当てたいソフトウェアを複数選択し、「CPE 割り当て」ボタンから一括で割り当てることができます。

CPE一括割り当てボタン

一括割り当ての場合は、リコメンドされた候補からベンダ名とプロダクト名のみを登録可能です。 プルダウンから、割り当てるベンダとプロダクトを選択してください。

また、各ベンダ/プロダクトの下に、NVD 検索ページへのリンクも一緒に表示されます。 リンクを押下することで、NVD に該当の CPE が存在するかを確認することが出来ます。 JVN の脆弱性情報を収集するかどうかを判断する際の材料の1つとしてご活用ください。

CPE一括割り当てダイアログ

更新方法#

割り当て CPE を更新したい場合は、ソフトウェアタブにて更新対象のソフトウェアをクリックし、「CPE を編集」ボタンを押してください。

  • ベンダ名とプロダクト名のみ登録されている場合
    • JVN の参照設定のみ変更可能
  • 完全な CPE が登録されている場合
    • 自動更新の有効化(ベンダ名とプロダクト名のみ登録に変更)が可能
    • 割り当て CPE の更新が可能(ベンダ名およびプロダクト名は変更不可)

削除方法#

割り当て CPE を削除したい場合は、ソフトウェアタブにて更新対象のソフトウェアをクリックし、削除アイコンを押してください。 割り当て CPE を削除した場合、削除された CPE を用いて検知されていた脆弱性情報およびタスク情報はすべて削除されます。

ソフトウェアを手動で登録する#

Windows スキャナ以外の方法で登録した Windows の場合や、スキャナが認識できなかったソフトウェアは、手動でソフトウェアを登録できます。詳しくは、CPE登録を参照ください。