コンテンツにスキップ

Windowsのローカルスキャン#

FutureVuls の Windowsスキャンのカバー範囲は広く、以下の両方をサポートしています。

  1. Windows UpdateのKB(Microsoft Knowledge Base)の脆弱性管理
  2. Windowsのサードパーティ製ソフトウェアの資産管理と脆弱性管理

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

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

Windowsスキャンの仕組み#

1. Windows UpdateのKB(Microsoft Knowledge Base)の脆弱性管理の概要#

Windowsに適用済みの更新プログラムと、未適用な更新プログラムのKB(Microsoft Knowledge Base)を用いて、脆弱性の検知と管理が可能です。未適用な更新プログラムのKBに含まれるCVE-IDが、クライアントに潜む脆弱性として検知されます。

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

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

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

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

2. Windowsのサードパーティ製ソフトウェアの資産管理と脆弱性管理#

Windows Updateで管理されないサードパーティのアプリケーションの資産管理機能とその脆弱性を管理する機能もあります。 詳細は「サードパーティ製ソフトウェアの脆弱性を検知する」を参照してください。

スキャンの実行方法#

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"]
~  ~

サードパーティ製ソフトウェアの脆弱性を検知する#

FutureVulsにおけるWindowsスキャンでは、Windows UpdateでKBとして管理される製品の脆弱性が検知されます。 その他の3rd Party製品の脆弱性を検知するためには別途準備が必要です。

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

Windowsスキャナを用いて登録されたWindowsサーバの場合、ソフトウェアタブにてインストール済みのソフトウェア一覧が表示されます。 これらのソフトウェアのうち、アップデートがKBとして管理されるWindows Update対象の製品「以外」は、このままだと脆弱性検知の対象外です。 各ソフトウェアに適切なCPEを割り当てることで、Windows Updateの管理外のソフトウェアの脆弱性が検知できるようになります。 なお、CPEを用いたスキャンロジックは、CPEスキャンを参照ください。

割り当て方法#

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

CPE割り当てボタン

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

  1. リコメンドされた候補から選択する - ソフトウェア名から関連度の高い候補が表示されます
  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登録を参照ください。