ブラウザで以下 URL にアクセスします。 ブラウザで JavaScript の動作を無効にしている場合は、JavaScript を有効にしてください。
http://<server-address>:5111
初期状態では、スキャン直近日のデータが表示対象として選択されています。
日付で対象範囲を絞り込めます。ドロップダウンリストから範囲を選んでください。
Custom Range
で任意の範囲指定ができます。
対象範囲をサーバー名で絞り込めます。複数選択できます。
サーバー名で対象をフィルタリングしてから、選択することもできます。
細かく選びたいときは、表示したいデータをファイル選択ツリーで選んでください。複数選択可能です。
すべて選ぶ場合は Select All
、クリアする場合は Select None
をクリックしてください。
選んだら Submit
ボタンを押してください。
データの読み込みができたら、以下のように ピボットテーブル
が表示されます。
- Vuls の出力結果として参照しているディレクトリ
/home/vuls/vulsctl/results/
が正しいか確認してください。 - Vuls の出力結果として参照しているディレクトリ配下のディレクトリ名、ファイル名を変更していないことを確認してください。
- Vuls の出力結果として参照しているディレクトリに大量のファイルがある場合、ファイル選択ツリーの生成に失敗します。その場合は、不要な
*.json
ファイルを別ディレクトリに退避するか、削除してから VulsRepo の表示を行ってください。
/opt/vuls/results
配下のディレクトリやファイルの名前は変更しないでください。resultsPath
の値の末尾に/
を付けないでください。例えば、resultsPath = "/opt/vuls/results/"
は誤りで、resultsPath = "/opt/vuls/results"
は正しいです。
大量データを読み込もうとすると失敗することがあります。以下の方法で対応してください。
- 表示対象データの選択を減らしてから、再度読み込んでください。
Setting
でSummary
やCvss Metrics
やAffected Processes
をOFF
にすると改善する場合があります(表示設定 - Show / Hide the Item を参照してください)。
スキャンした日時・サーバー・コンテナごとに発見された脆弱性の個数が、深刻度ごとのヒートマップとして表示されます。
healty
は脆弱性が見つからなかったことを示します。
プルダウンでフィルターを変更すると、予め設定されたフィルターを適用して、ピボットテーブル
を表示できます。
####### プリセットのフィルター
5つ用意されています。
- 01. Graph: CVSS-Severity => ServerName
- 02. Graph: CVSS-Severity => CVSS-Score
- 03. Pivot: Package/CVSS-Severity/CveID/Summary => ServerName
- 04. Pivot: Package/CveID => ScanTime
- 05. Pivot: CveID/PackageInfo => NotFixedYet
######### 01. Graph: CVSS-Severity => ServerName
サーバー・コンテナごとに、脆弱性の延べ検出数を積み上げた棒グラフです。
直近のデータを選択して、各サーバー、コンテナーの状態を横並びに比較するのに適しています。
######### 02. Graph: CVSS-Severity => CVSS-Score
CVSS 基本値ごとに、脆弱性の延べ検出数を集計した棒グラフです。
直近のデータを選択して表示するとよいです。
######### 03. Pivot: Package/CVSS-Severity/CveID/Summary => ServerName
脆弱性の発見されたパッケージ、深刻度、対応する CVE ID、脆弱性の概要と、サーバー・コンテナごとに、延べ検出数を集計したヒートマップです。
直近のデータを選択して各サーバー、コンテナーの状態を横並びに比較するのに適しています。
######### 04. Pivot: Package/CveID => ScanTime
各 CVE ID の脆弱性が解消されたかまたは新たに検出されたかを確認するのに適しています。
単一サーバーもしくはコンテナを時系列で比較するのに適しています。
######### 05. Pivot: CveID/PackageInfo => NotFixedYet
各 CVE ID の脆弱性が含まれるパッケージに修正済みバージョンが提供されているかどうか確認するのに適しています。
直近の単一サーバーもしくはコンテナを選んで確認すると良いです。
表示項目は項目をドラッグ&ドロップすると変更できます。
表示項目を入れ替えたり並び替えた状態を保存することができます。Save
ボタンを押すことで、フィルター保存パネル
が開きます。
- 新規で保存したければ、
Save new filter
を選択して、任意のフィルター名を入力してください。 - 既存フィルターへ上書き保存したければ、
Update filter
を選び、プルダウンから上書きしたいフィルターを選んでください。 - 保存するならば
OK
ボタン、やめるならばCancel
かx
ボタンまたは ESC キーを押してください。
なお、プリセットのフィルターの上書き保存はできません。
Delete
ボタンを押すことで、現在選択しているフィルターを削除できます。
Are you sure to delete?
と確認ダイアログが表示されるので、削除するならば OK
ボタン、やめるならば キャンセル
ボタンを押してください。
なお、プリセットのフィルターは削除できません。
Clear
ボタンを押すことでフィルターが解除され、ピボットテーブル
の表示がフィルター未適用の初期状態に戻ります。
Open print preview
ボタンを押すことで、印刷プレビューウィンドウが開きます。
Print
ボタンを押すことで印刷ダイアログが出ます。
項目 | 説明 |
---|---|
ScanTime | スキャンした日時 |
ServerName | スキャン対象サーバー名 |
Container | スキャン対象コンテナ名 |
CVSS Score | 脆弱性の基本値。最高は 10.0 |
CVSS Severity | 脆弱性の深刻度。赤いほうがより深刻 |
CVSS Score Type | CVSS Score 、 CVSS Severity および CVSS Vector の算出元。CVSS Score Typeを参照 |
Platform | 稼働しているプラットフォーム。 |
Family | OS |
Release | OS リリースバージョン |
Errors | Vuls のエラーメッセージ |
Warnings | Vuls の警告メッセージ。Vuls v0.15.x 以降で OS の EOL 情報が含まれます。 |
Diff | (Vuls v0.15.8 以降 で差分情報を出力した場合のみ)+ 前回スキャンに比べ新たに見つかった脆弱性- 前回スキャンに比べ無くなった(対応した)脆弱性 |
CveID | 脆弱性に割り当てられた CVE ID。クリックで 詳細パネル を表示します。 |
Packages | 脆弱性を含むパッケージ名 |
FixedIn | 脆弱性を塞いだパッケージのバージョン |
FixState | 脆弱性に対するパッケージの対応状況 |
NotFixedYet | 脆弱性を修正したバージョンのパッケージが提供されているかどうか。 |
PackageVer | インストールされているパッケージのバージョン |
NewPackageVer | 最新パッケージのバージョン |
Repository | パッケージ提供元のリポジトリ |
CweID | その CVE の CWE - Common Weakness Enumeration。クリックで MITRE もしくは JVN の該当する CWE の説明ページを別ウィンドウで表示します。 |
VulnType | (WordPress のみ) WPScan が提供している脆弱性のタイプ |
Status | (WordPress テーマ、プラグインのみ) WordPress テーマ、プラグインが有効かどうか |
Update | (WordPress テーマ、プラグインのみ) WordPress テーマ、プラグインのアップデートが利用できるかどうか |
Title | 脆弱性のタイトル |
Summary | 脆弱性の概要 |
PortScannable | ポートスキャンできるかどうか。クリックで Package パネル を表示します。 |
Process | 脆弱性の影響を受けるプロセスの プロセスID:プロセス名 。クリックで Package パネル を表示します。 |
Path | ライブラリの脆弱性スキャンの元になった lock ファイルのパス。 |
Mitigation | 緩和策の情報があるかどうか。あれば Yes |
各種 CVSSv3 | CVSS 3.0 Vector |
各種 CVSS | CVSS 2 Vector |
AdvisoryID | (Amazon Linux 2, RedHat, Oracle Linux のみ) 対応ディストリビューションのアドバイザリーID。クリックでアドバイザリーページを別ウィンドウで表示します。 |
CERT | USCERT Alert または JPCERT 注意喚起 があるかどうか。 クリックで該当する情報を別ウィンドウで表示します。 |
PoC | エクスプロイトコードが存在するかどうか。存在するならばその個数 |
Changelog | Changelog があるかどうか。クリックで Package パネル を表示します。 |
DetectionMethod | 脆弱性を検知した手法 |
ConfidenceScore | 検知の信頼度。100 は信頼度が高い |
Published | 情報の公表日 |
Last Modified | 情報の最終更新日 |
いくつかの例を挙げます。
値 | 算出元 |
---|---|
nvdV3 |
NVD の CVSS v3 |
nvd |
NVD の CVSS v2 |
jvnV3 |
JVN の CVSS v3 |
jvn |
JVN の CVSS v2 |
redhat_apiV3 |
RedHatの CVSS v3 |
oracleAdvisory |
Oracle Linux Errata repository |
Unknown |
未算出 |
項目の ▼
部分を押してください。
チェックボックスのオンオフで表示対象を選びます。
まとめて選ぶ場合は Select All
、クリアする場合は Select None
をクリックしてください。
候補が多い場合は絞り込みができます。以下の例では python
で絞り込んで、いくつかのパッケージを選んでいます。
適用するならば Apply
ボタンを押してください。フィルタリングが効いている項目は 斜体 で表示されます。
適用せず閉じるならば Cancel
ボタンを押してください。
ソートは一番左の列が最優先となります。
項目 | 昇順・降順 |
---|---|
CVSS Score | 降順 |
CVSS Severity | Unknown , Critical , High , Important , Medium , Moderate , Low , Negligible , Unimportant , Pending , Not Vulnerable |
各種 CVSSv3 | 評価値の降順 |
各種 CVSS | 評価値の降順 |
CERT | 降順 |
PoC | 降順 |
Published | 降順 |
Last Modified | 降順 |
それ以外 | 昇順 |
なお、昇順降順は固定で切り替えはできません。
レンダラーをTSV Export
に変更すると、TSV データ表示できます。表示データはクリップボードにコピーできます。またDownload TSV
ボタンを押すことで TSV ファイル保存できます。
レンダラーの変更や集計単位、集計値の行および列のソート順の変更ができます。
pivottable wiki および PivotTable.js Examples を参照してください。
画面左上の ☰
ボタンを押すと、ファイル選択ツリーを表示します。もう一度押すと閉じます。
表示対象データを選び直すときに押してください。
画面右上の「レンチ」ボタンを押すと 表示設定パネル
が開きます。
x
を押すか、パネル枠外をクリックするか ESC キーを押してパネルを閉じることで設定が適用されます。
ピボットテーブル
で表示する項目を設定します。Summary
, CVSS Metrics
, Affected Processes(PortScannable, Process)
のデータは非常に大きいため、脆弱性の数が多いとエラーが発生します。その場合は OFF
にすると改善する場合があります。
####### Attention CweId
ピボットテーブル
の CweId
で下記いずれかに該当する場合、ON
にすることで CWE ID に要注意を示すマークがつきます。
ピボットテーブル
および 詳細パネル
に表示するデータの優先度を設定します。デフォルトは NVD
です。
ブロックのドラッグ&ドロップで優先度を入れ替え出来ます。 また、表示したいものと表示したくないものの入れ替えができます。
以下の例では JVN
や Ubuntu
の優先度を上げて、日本語の情報および Ubuntu の情報を優先して表示するようにしています。
また、amazon
, oracle
を Hide
側に移動して、Amazon Linux と Oracle Linux の情報を出さないようにしています。
フィルターや表示設定はサーバー側ではなく各ブラウザの Local Storage に保存しています。そのため、複数人で同じフィルターおよび表示が必要ならば、他の人へ設定をおすそわけする必要があります。
- 画面右上の「🔗」ボタンをクリックすると
設定共有パネル
が開きます。 - コピーボタンを押して設定内容を含む URL をクリップボードにコピーします。
- コピーした URL を何らかの方法で他の人に渡します。
x
を押すか、パネル枠外をクリックしてパネルを閉じてください。
- ブラウザでコピーした URL にアクセスしてください。
- 必要に応じて URL をブックマークしてください。ブックマークから VulsRepo を開くことで次回以降も同じ設定で表示できます。
- 表示対象データを選択すると、
ピボットテーブル
は同様の設定で表示できます。 - 必要に応じて フィルターの新規保存、上書き保存 してください。
詳細情報は Main タブ と Package タブ に分かれています。初期表示は Main タブ です。適宜タブをクリックして表示を切り替えてください。
パネルを閉じる場合は パネル右上の x
を押すか、パネル枠外をクリックするか、ESC キーを押してください。
各情報機関(Type)、ディストリビュータから提供された基本値および深刻度(Score)、脆弱性の概要(Summary)、情報の最終更新日(LastModified Date)を表示します。
各 Type をクリックすると、情報機関、ディストリビュータが提供しているページを新しいウィンドウで開きます。
基本値および深刻度の区分については ?
のツールチップを参照してください。
参考情報: 共通脆弱性評価システムCVSS v3概説
####### CVSS Vector チャート
NVD, JVN, RedHat が算出した各評価項目の値をチャート表示します。
Cvss v2 タブ
, Cvss v3.x タブ
をクリックすると CVSS v2
, CVSS v3.x
チャートを切り替えできます。
初期表示は CVSS v3.x
です。
NVD v3.x
, JVN v3.x
, RehHat v3.x
をクリックするとチャート表示、非表示を制御できます。
以下の例では NVD v3.1
, RehHat v3.0
のチャートを非表示にしています。
緩和策の情報がある場合に表示されます。 ヘッダー部分をクリックすると、セクションを開閉します。
MITRE および JVN をクリックすることで該当する CWE の詳細説明ページを別ウィンドウで表示します。
下記のいずれかにランクインしているしている場合、ランクをバッジとして表示します。バッジをクリックすることで各情報のページを別ウィンドウで表示します。
参考情報: 共通脆弱性タイプ一覧CWE概説
新しいウィンドウで下記ページを開きます。
項目 | リンク先 |
---|---|
MITRE | MITRE が提供する該当 CVE のページ |
CveDetails | CVE Details が提供する該当 CVE のページ |
CVSS Calculator V2 | NIST が提供する Common Vulnerability Scoring System Calculator Version 2 のページ |
CVSS Calculator V3 | NIST が提供する Common Vulnerability Scoring System Calculator Version 3.0 のページ |
CVSS Calculator V3 (JVN) | JVN が提供する 共通脆弱性評価システム (Common Vulnerability Scoring System) Version 3.0 Calculator のページ |
Amazon | (Amazon Linux 2 のみ) Amazon Linux Security Center の該当 CVE のページ |
RedHat Network | (RedHat のみ) Red Hat Product Errata |
OracleLinux Errata | (Oracle Linux のみ) Unbreakable Linux Network |
Calculator は、環境評価基準を含めた深刻度の算出に有用です。
USCERT Alert または JPCERT 注意喚起 の情報がある場合に表示されます。 ヘッダー部分をクリックすると、セクションを開閉します。 USCERT Alert および JPCERT 注意喚起 のリンクを表示します。クリックすると別ウィンドウで該当のページを開きます。
Exploit Codes および Metasploit Modules の情報がある場合に表示されます。 ヘッダー部分をクリックすると、セクションを開閉します。 各 Exploit Codes および Metasploit Modules のリンクを表示します。クリックすると別ウィンドウで該当のページを開きます。
ヘッダー部分をクリックすると、セクションを開閉します。 各情報機関、ディストリビュータが提供している参照情報です。リンクをクリックすると別ウィンドウで該当のページを開きます。
タグでフィルタリングできます。タグのクリックでオンオフが切り替わります。デフォルトはすべて表示です。
情報提供元ごとに表示を開閉できます。▼
をクリックしてください。デフォルトは開いています。
脆弱性を含むパッケージの一覧です。
各 PackageName
をクリックすると Package パネル を開きます。
パネルを閉じる場合は パネル枠外をクリックするか ESC キーを押してください。
脆弱性の影響を受けるプロセスが存在する場合に表示されます。 プロセスID、プロセス名、IPアドレスおよびポートの一覧です。
パッケージの changelog を表示します。
changelog の記述に、該当する CVE ID が存在すると橙色でハイライト表示されます。それ以外の CVE ID が存在すると水色でハイライト表示されます。
日付、サーバーやフィルターを URL パラメータで決め打ちすることで、対象データをフィルタリングしてすぐに表示できます。 表示対象の期間やサーバー、フィルターがあらかじめ決まっているならば、 VulsRepo を開く際の URL に各種パラメータを指定することで、毎回手動で選ぶ手間が省けます。
以下のパラメータが指定可能です。
パラメータ | 用途 | 指定できる値 |
---|---|---|
server | 対象サーバー(コンテナ)の指定 | すべての場合は all 。 複数の場合は + で連結 例)foo.json foo.json+bar.json+baz@foo.json |
daterange | 日付範囲指定 | today yesterday last7days last30days thismonth lastmonth alldays のいずれか一つ |
datefrom | 日付範囲指定 from (*) | YYYY-MM-DD 形式の日付 例)2020-11-01 |
dateto | 日付範囲指定 to (*) | YYYY-MM-DD 形式の日付 例)2021-01-23 |
time | 特定日時の指定 | ISO8601 形式の時刻 例) 2020-02-04T01:25:11Z や 2021-01-25T12:34:56+09:00 |
filter | フィルターの指定 | フィルター名。未指定ならばフィルター無し 例) 01.%20Graph:%20CVSS-Severity%20=>%20ServerName |
(*) datefrom
と dateto
はセットで指定してください。
高 daterange
> datefrom
と dateto
> time
低
いずれも未指定の場合は最新日を設定とみなします。
いくつか例を示します。クリックするとデモサイトに飛びます。
https://monocosel.jp/vulsrepo/?server=localhost.json
https://monocosel.jp/vulsrepo/?daterange=last30days&server=localhost.json+raspberry10.json
https://monocosel.jp/vulsrepo/?datefrom=2020-09-18&dateto=2020-11-16&server=all
https://monocosel.jp/vulsrepo/?time=2020-02-04T01:25:11Z&server=localhost.json
2020-02-04T01:25:11Z
の localhost.json
を 03. Pivot: Package/CVSS-Severity/CveID/Summary => ServerName
フィルター適用
- 何故、VulsとVulsRepoで結果の集計値が違うのか?
Vuls はホストに含まれる CveID の数を集計します。しかしながら、VulsRepo では CveID に関連するパッケージを1件としてカウントしています。よって、1つの CveID に関連するパッケージが複数ある場合、Vuls よりも集計値が多くなります。