vuls-v0.24.1 build-9d8e510
よりも古いWindows用スキャナをお使いの方は、手動でのアップデートが必要です。
旧バージョンのWindowsスキャナをお使いの方は 2024/1/1
までに手動アップデートを実施してください。スキャナバージョンの確認方法
FutureVulsのWindows機能のカバー範囲は広く、
の両方をサポートしています。
Windowsに適用済みの更新プログラムと、未適用な更新プログラムのKB(Microsoft Knowledge Base)を用いて、脆弱性の検知と管理が可能です。未適用な更新プログラムのKBに含まれるCVE-IDが、クライアントに潜む脆弱性として検知されます。
KBからCVEに変換することでLinuxやライブラリなどの他の管理対象と同じ指標で判断できます。また警戒情報や攻撃コードなどの情報をもとにトリアージ・対応できます。
下記のいずれの環境のWindowsもスキャン可能です。
脆弱性検知の詳細な仕組みはこちらを参照してください。
スキャン対象は対応環境を参照してください。
Windows Updateで管理されないサードパーティーのアプリケーションの資産管理機能とその脆弱性を管理する機能もあります。 詳細は「サードパーティー製ソフトウェアの脆弱性を検知する」を参照してください。
Windowsスキャナをクライアントにインストールし、脆弱性を検知する方法です。スキャナの導入が不可能でない場合は、基本的にこちらの方法を使用してください。
インストール方法はチュートリアルを参照してください。
Windows用のinstallスクリプトは内部でWindows標準搭載のHTTPクライアントであるbitsadminコマンドを利用しています。
スキャナのインストール時にエラーが発生する場合は、WindowsスキャンのFAQを参照してください。
Windowsスキャナはタスクスケジューラにより、1日1回自動でスキャンを実行します。
スキャナをインストールした直後や、任意のタイミングでスキャナを実行したい場合は、次の手順に従ってください。
vuls-saas
を[右クリック][実行]をします。管理者権限 で以下のコマンドを実行することで、手動でのスキャン実行が可能です。
C:\Program files\vuls-saas\vuls-saas.bat
スキャン終了後、しばらくするとWEB画面に反映されます。
反映されない場合は、以下のログファイルを見て、原因を確認して下さい。
C:\Program Files\vuls-saas\vuls-saas.log
エラーが発生している場合は、WindowsスキャンのFAQを参照してください。
config.tomlの IgnoredJSONKeys
にアップロードしたくない情報のJSONのキーを指定することで、FutureVulsにアップロードする情報をフィルタリングできます。
~ 略 ~
[servers]
[servers.localhost]
host = "localhost"
port = "local"
ignoredJSONKeys = ["packages"]
~ 略 ~
config.tomlに指定するJSONキーは以下の手順で確認するか、FAQを参照して下さい。
スキャナでスキャンしたWindowsのアドバイザリ一覧を確認し、適用済みの更新プログラム、未適用な更新プログラムに検知漏れがある場合は、KBIDの手動登録機能で補完出来ます。
config.tomlの設定をすることで、Localネットワーク上のWSUSを参照して未適用なKBを検知できます。
下記の環境でおすすめなスキャン方法です。
Windows Updateのアクセス先を変更する際は、config.tomlのserverSelectionを以下のように設定してください。
~ 略 ~
[servers]
[servers.localhost]
host = "localhost"
port = "local"
[servers.localhost.uuids]
localhost = "xxxx-xxxx-xxxx"
[servers.localhost.windows]
serverSelection = 2
~ 略 ~
~ 略 ~
[servers]
[servers.localhost]
host = "localhost"
port = "local"
[servers.localhost.uuids]
localhost = "xxxx-xxxx-xxxx"
[servers.localhost.windows]
serverSelection = 1
~ 略 ~
WSUS配下のWindowsスキャンがうまくいかない場合は以下を参照ください。
インターネット上またはWSUSのようなWindows Updateサービスに接続できない環境でもスキャナプログラムを用いてスキャンする方法です。 「Windows Updateから提供されているcabファイル」を用いて未適用な更新プログラムを検出し脆弱性を検知します。
下記の環境でおすすめなスキャン方法です。
下記手順で一度登録すれば、累積更新プログラムが提供されたタイミングでそれに含まれる脆弱性がFutureVulsで継続的に検知されます。 ただし、「累積更新プログラムではないKBの脆弱性」を検知するためには、新規にWindowsアップデートが提供されたタイミングで新しいcabを取得してスキャンする必要があります。
リモートスキャンとCabファイルスキャンを組み合わせることもできます。詳細はFutureVuls Blogを参照してください。
スキャンに必要なcabファイルのサイズは800MB程度ありますので、ネットワーク帯域やディスクの空き容量に注意してください。
設定とスキャンは下記の手順で行います。
「チュートリアル>Windowsへのインストール」を参照してスキャナプログラムをインストールします。
Microsoft社が運営するwindowsupdate.comから wsusscn2.cab
を入手します。cabのURL
curlで取得する例
curl.exe -sS -o C:\wsusscn2.cab http://download.windowsupdate.com/microsoftupdate/v6/wsusscan/wsusscn2.cab
C:\Program Files\vuls-saas\config.toml
を修正します。
serverSelection=3
と、CabPathには上で取得したcabファイルのフルパスを指定します。~ 略 ~
[servers]
[servers.localhost]
host = "localhost"
port = "local"
[servers.localhost.uuids]
localhost = "xxxx-xxxx-xxxx"
[servers.localhost.windows]
serverSelection = 3
cabPath = "C:\\wsusscn2.cab"
~ 略 ~
上記のtomlを用いて「チュートリアル>Windowsへのインストール>手動スキャン」の手順でスキャンします。cabファイルを用いて未適用なKBのリストを取得し、スキャナプログラムがFutureVuls SaaSへ構成情報をアップロードして検知処理が行われ、未適用なKBに含まれる脆弱性が検知されます。
スキャン対象WindowsにSSHで接続可能なLinux環境からスキャンを実行し、結果をFutureVulsにアップロードする方法です。 下記の環境でおすすめなスキャン方法です。
設定方法は以下のページを参照してください。
リモートスキャンとCabファイルスキャンを組み合わせることもできます。詳細はFutureVuls Blogを参照してください。
FutureVuls画面上から、Windowsに適用済みの更新プログラム、未適用な更新プログラムに関連するKBIDを登録することで、スキャナを使用せずに脆弱性を検知します。
下記の環境でおすすめなスキャン方法です。
のような、FutureVulsのスキャナの導入が難しい環境をサポートします。
また、スキャナで検知した更新プログラムに検知漏れがある場合は、PASTEスキャンの機能を用いて補完出来ます。
PASTEスキャンの対象は対応環境を参照してください。
新しくWindowsのPASTEスキャンを行う場合は、次の手順で登録してください。
サーバ追加
> PASTEサーバ追加
をクリックしダイアログを開くPASTEサーバ追加
サーバ名を入力
インストール済みの更新プログラム情報をペースト
登録後、自動でスキャンが実行され、未適用な更新プログラムを補完し脆弱性を検知します。より厳密に脆弱性を管理する場合は、KBIDの手動登録機能を用いて、未登録な更新プログラム情報を登録してください。
PASTEスキャンによって登録されたKB情報に更新・不足がある場合は、本機能を用いてKBIDを手動で登録してください。 また、スキャナによるWindowsスキャンによって登録されたKB情報に不足がある場合もご利用いただけます。
KBIDの登録
からWindowsに適用済み/未適用の更新プログラムを示すKBIDをすべて入力し、送信する。
KBIDの登録
から、未適用な更新プログラムを直接登録できますが、誤検知の発生するリスクが高まるため非推奨です。Windowsに適用済み/未適用の更新プログラム(KBID)を取得する方法を3つ紹介します。
KBID取得方法 | 適用済み | 未適用 |
---|---|---|
Windows Update API (CUI) | ✅ | ✅ |
Windowsの設定>更新とセキュリティ>Windows Update (GUI) | ✅ | ✅ |
Get-HotFix (CUI) | ✅ | ❌ |
この方法の特徴はwsusscn2.cabを用意すると、 インターネットから隔離された環境においてもスキャナと同様の結果を得ることが出来ます。 また、未適用なKBIDの取得をサポートしていて、さらに実行結果をKBIDを登録しやすい形へ整形可能なため、推奨の方法です。
PowerShellで以下のコマンドを実行します。
# 事前に http://download.windowsupdate.com/microsoftupdate/v6/wsusscan/wsusscn2.cab をダウンロードしておく。
# 例では C:\Program Files\vuls-saas\wsusscn2.cab にダウンロードしている。
PS C:\Program Files\vuls-saas> $applied = @()
PS C:\Program Files\vuls-saas> $unapplied = @()
PS C:\Program Files\vuls-saas> $Session = New-Object -ComObject Microsoft.Update.Session
PS C:\Program Files\vuls-saas> $ServiceManager = New-Object -ComObject Microsoft.Update.ServiceManager
PS C:\Program Files\vuls-saas> $UpdateService = $ServiceManager.AddScanPackageService("Offline Sync Service", "C:\Program Files\vuls-saas\wsusscn2.cab", 1)
PS C:\Program Files\vuls-saas> $UpdateSearcher = $Session.CreateUpdateSearcher()
PS C:\Program Files\vuls-saas> $UpdateSearcher.WinUpdateSrc = 3
PS C:\Program Files\vuls-saas> $UpdateSearcher.ServiceID = $UpdateService.ServiceID
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.QueryHistory(0, $UpdateSearcher.GetTotalHistoryCount())){ If ($e.Title -match '(KB\d{6,7})') { $applied += $Matches[0] }}
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.search("IsInstalled=1 and RebootRequired=0 and Type='Software'").Updates){ $applied += ('KB'+$e.KBArticleIDs) }
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.search("IsInstalled=0 and Type='Software'").Updates){ $unapplied += ('KB'+$e.KBArticleIDs) }
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.search("IsInstalled=1 and RebootRequired=1 and Type='Software'").Updates){ $unapplied += ('KB'+$e.KBArticleIDs) }
PS C:\Program Files\vuls-saas> ($applied | Select-Object -Unique) -Join ',' # 適用済みKBID
KB5011651,KB5012599
PS C:\Program Files\vuls-saas> ($unapplied | Select-Object -Unique) -Join ',' # 未適用KBID
KB5012117
PS C:\Program Files\vuls-saas> $applied = @()
PS C:\Program Files\vuls-saas> $unapplied = @()
PS C:\Program Files\vuls-saas> $Session = New-Object -ComObject Microsoft.Update.Session
PS C:\Program Files\vuls-saas> $UpdateSearcher = $Session.CreateUpdateSearcher()
PS C:\Program Files\vuls-saas> $UpdateSearcher.WinUpdateSrc = 1 # or 2
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.QueryHistory(0, $UpdateSearcher.GetTotalHistoryCount())){ If ($e.Title -match '(KB\d{6,7})') { $applied += $Matches[0] }}
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.search("IsInstalled=1 and RebootRequired=0 and Type='Software'").Updates){ $applied += ('KB'+$e.KBArticleIDs) }
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.search("IsInstalled=0 and Type='Software'").Updates){ $unapplied += ('KB'+$e.KBArticleIDs) }
PS C:\Program Files\vuls-saas> foreach($e in $UpdateSearcher.search("IsInstalled=1 and RebootRequired=1 and Type='Software'").Updates){ $unapplied += ('KB'+$e.KBArticleIDs) }
PS C:\Program Files\vuls-saas> ($applied | Select-Object -Unique) -Join ',' # 適用済みKBID
KB5011651,KB5012599
PS C:\Program Files\vuls-saas> ($unapplied | Select-Object -Unique) -Join ',' # 未適用KBID
KB5012117
この方法の特徴はコマンドを実行することなくKBIDを取得できます。 ただし、適用済みや未適用のKBIDが大量になると、KBIDの登録画面での入力作業が多くなります。
「Windowsの設定」から、「更新とセキュリティ」をクリックします。
「更新とセキュリティ」の「Windows Update」を見ます。 上部の赤枠部分に未適用な更新プログラムが表示されるため、更新プログラムのタイトルからKBIDを抽出してください。 この画像の場合は、「2022-04 .NET Framework 3.5 および 4.8 の累積的な更新プログラム(x64向けWindows 10 Version 21H2用)(KB5012117)」から「KB5012117」が未適用なKBIDとなります。 また、下部の赤枠部分「更新の履歴を表示する」をクリックすると、適用済みの更新プログラムのタイトルと日付が表示されます。
同様にして、「更新の履歴を表示する」に表示されている更新プログラムのタイトルから適用済みのKBIDを取得します。
この方法は上記の2つの方法のどちらも使えない場合に参考にしてください。 また、この方法では未適用なKBIDが取得できないことに注意してください。
PowerShellで以下のコマンドを実行します。
PS C:\Program Files\vuls-saas> (Get-HotFix | Select-Object HotFixID | % { If ($_ -match '(KB\d{6,7})') { $Matches[0] }}) -Join ','
KB5012117,KB4562830,KB5003791,KB5007401,KB5012599,KB5011651,KB5005699
Windowsの状態に更新があった場合は、手動で登録したKBIDを削除してください。
Windowsの場合、Microsoftの脆弱性DBを利用して、脆弱性情報を表示します。
Microsoftの脆弱性DBには、Workaroundの情報が付与されている場合があります。 Workaround情報は、脆弱性詳細のサマリに表示されます。
KBIDはアドバイザリとして表示されます。 アドバイザリは、アドバイザリ一覧などで確認できます。
FutureVuls管理対象のWindowsにインストール済みのソフトウェアはソフトウェアタブに表示されます。自分でインストールしたソフトウェアも表示されます。
FutureVulsにおけるWindowsスキャンでは、Windows UpdateでKBとして管理される製品の脆弱性が検知されます。 その他の3rd Party製品の脆弱性を検知するためには別途準備が必要です。
Windowsスキャナを用いて登録されたWindowsサーバの場合、ソフトウェアタブにてインストール済みのソフトウェア一覧が表示されます。 これらのソフトウェアのうち、アップデートがKBとして管理されるWindows Update対象の製品「以外」は、このままだと脆弱性検知の対象外です。 各ソフトウェアに適切なCPEを割り当てることで、Windows Updateの管理外のソフトウェアの脆弱性が検知できるようになります。 なお、CPEを用いたスキャンロジックは、CPEスキャンを参照ください。
Windowsのソフトウェアタブから、CPEを割り当てるソフトウェアをクリックし、「CPE割り当て」ボタンをクリックします。 登録方法は以下の3つから選べます。
また、それぞれの登録方法にて、「ベンダ名とプロダクト名のみ登録する」か「完全なCPEを登録する」か選択できます。
また、和製ソフトウェアの場合は、脆弱性DBとしてJVNを使用できます。詳細
登録すると、次回スキャン以降、割り当てられたCPEを用いて脆弱性が検知されるようになります。
ソフトウェアに対して割り当てたCPE情報は、リコメンド精度向上のため学習に使用されます。 ただし、ユーザを特定できないよう処理を講じますのでご安心ください。 約款
ソフトウェアタブにてCPEを割り当てたいソフトウェアを複数選択し、「CPE割り当て」ボタンから一括で割り当てることができます。一括割り当ての場合は、リコメンドされた候補からベンダ名とプロダクト名のみを登録可能です。
割り当てCPEを更新したい場合は、ソフトウェアタブにて更新対象のソフトウェアをクリックし、「CPEを編集」ボタンを押してください。
割り当てCPEを削除したい場合は、ソフトウェアタブにて更新対象のソフトウェアをクリックし、削除アイコンを押してください。 割り当てCPEを削除した場合、削除されたCPEを用いて検知されていた脆弱性情報及びタスク情報は全て削除されます。
Windowsスキャナ以外の方法で登録したWindowsの場合や、スキャナが認識できなかったソフトウェアは、手動でソフトウェアを登録できます。詳しくは、CPE登録を参照ください。