スキャン方法の選び方#
ここでは、FutureVuls を利用する上で、各管理対象に対してどのスキャン方法を選択すれば良いかという選択基準について解説します。 スキャンしたい対象によって、それぞれ以下のリンクへ飛んでください。
用語定義
以下では FutureVuls のスキャナを用いたスキャンパターンに関して、以下の用語を利用します。
- スキャナサーバ:スキャナファイルをインストールしているサーバのこと
- スキャン対象サーバ:スキャナを用いて構成情報を取得する対象のサーバのこと
なお、ローカルスキャンの場合は「スキャナサーバ = スキャン対象サーバ」になりますが、リモートスキャンなどでの中継サーバの構成では「スキャナサーバ ≠ スキャン対象サーバ」となります。
Linux OS をスキャン#
Linux OS のスキャン方法の選択#
スキャン方法を選択する際は、以下のフローチャートを参考にしてください。
%%{
init:{
"flowchart":{
"htmlLabels": true,
"curve": "linear"
}
}
}%%
flowchart LR
A{インターネットに接続可<br>and<br>スキャナ設置可}
B{SSH接続可能な<br>中継サーバに<br>スキャナ設置可}
C{Amazon Inspectorが<br>有効なEC2か}
D{サーバのSBOMが<br>入手可能か}
Local[ローカルスキャン]
Remote[リモートスキャン]
Inspector[AWS Inspector連携]
Paste[ペーストスキャン]
SBOM[サーバのSBOM登録]
A -- Yes -----> Local
A -- No --> B
B -- Yes ----> Remote
B -- No --> C
C -- Yes ---> Inspector
C -- No --> D
D -- Yes --> SBOM
D -- No --> Paste
subgraph Auto[構成情報が自動更新される]
Local
Remote
Inspector
end
subgraph Manual[構成情報を手動更新する必要あり]
SBOM
Paste
end
スキャン対象がインターネットに接続している場合のスキャン方法の比較#
スキャン対象サーバからスキャン結果の JSON を FutureVuls にアップロードできる場合は、ローカルスキャンによる方法が設定も簡単かつ初回のみの設定で済むためおすすめです。 OSパッケージのアップデートを実施した場合でも、最新の構成情報を FutureVuls に自動で同期できます。
スキャン方法 | 説明 | メリット | 検討ポイント |
---|---|---|---|
ローカルスキャン | スキャン対象の各サーバにスキャナを設置してスキャンする方法 | ・インストールが簡単(コマンド1つ実行すれば完了) ・該当するプロセスの情報なども取得できる。 ・アップデートなどにより構成情報が変わった場合も画面上に自動で反映される ・スキャナプログラムは自動更新 |
スキャナプログラムをサーバ上に配置できるか |
リモートスキャン | スキャン対象ネットワーク内にスキャナを設置して、スキャナからスキャン対象サーバにSSH経由でスキャンする方法 | ・該当するプロセスの情報なども取得できる ・アップデートなどにより構成情報が変わった場合も画面上に自動で反映される ・スキャナプログラムをサーバ上に配置できない場合でも利用可能 ・SSHトンネル等を用いることでスキャナからSSHで到達できるサーバはスキャンできる ・CIDRレンジを指定すれば、あるネットワーク内のサーバを一括でスキャン可能 |
ローカルスキャンに比べて設定が大変(別途設定ファイルに定義が必要) |
Amazon EC2のInspector連携 | Amazon Inspector で検知された EC2 の情報を FutureVuls に取り込む | 連携が簡単 | ・サーバ(インスタンス)にスキャナのインストールが不要 ・Amazon Inspectorの有効化が必要 |
サーバのSBOMインポート | FutureVulsの画面上でSBOMをペーストして構成情報を登録する | 閉域網(エアギャップ環境)のサーバも検知可能 | ・アップデートなどにより構成情報が変わった場合には、インポート時と同様のサーバの追加操作による再登録が必要(タスクコピーにより、新旧サーバ間でのタスク状況の同期が可能) ・SBOMを登録後の「更新」機能は現在準備中 ・スキャナよりも取得できる情報は少ない(プロセスの情報(ポートリスン情報)などは取得できない) |
ペーストスキャン | FutureVulsの画面上でパッケージのリストをコピーペーストで登録してCVEを検知する | スキャナインストールによる管理対象サーバへの影響がない | ・アップデートなどにより構成情報が変わった場合に画面上からパッケージのリストを更新する必要あり ・スキャナよりも取得できる情報は少ない(プロセスの情報(ポートリスン情報)などは取得できない) |
スキャン対象が閉域網の場合のスキャン方法の比較#
スキャン方法 | 説明 | メリット | 検討ポイント |
---|---|---|---|
ペーストスキャン | FutureVulsの画面上でパッケージのリストをコピーペーストで登録してCVEを検知する | ・閉域網(エアギャップ環境)のサーバも検知可能 ・管理対象サーバにスキャナプログラムが必要ない |
・アップデートなどにより構成情報が変わった場合に画面上からパッケージのリストを更新する必要あり ・スキャナよりも取得できる情報は少ない(プロセスの情報(ポートリスン情報)などは取得できない) |
サーバのSBOMインポート | FutureVulsの画面上でSBOMをペーストして構成情報を登録する | 閉域網(エアギャップ環境)のサーバも検知可能 | ・アップデートなどにより構成情報が変わった場合には、インポート時と同様のサーバの追加操作による再登録が必要(タスクコピーにより、新旧サーバ間でのタスク状況の同期が可能) ・SBOMを登録後の「更新」機能は現在準備中 ・スキャナよりも取得できる情報は少ない(プロセスの情報(ポートリスン情報)などは取得できない) |
NFS等でスキャン結果のJSONを一台に集約して代理でFutureVulsにアップロードする方法 | 【FutureVuls応用編】NFSを活用したリモートスキャン | ・ある1台がFutureVulsにUploadできれば閉域網(エアギャップ環境)のサーバ群を管理可能 ・スキャナプログラムで構成情報を自動で同期できるため、ペーストスキャンのように構成情報変更時に再度ペーストする必要がない |
・NFS等集約するサーバのセットアップが必要 ・プロセスの情報(ポートリスン情報)などは取得できない |
Windows OS をスキャン#
Windows OS のスキャン方法の選択#
スキャン方法を選択する際は、以下のフローチャートを参考にしてください。
%%{
init:{
"flowchart":{
"htmlLabels": true,
"curve": "linear"
}
}
}%%
flowchart LR
A{インターネットに接続可<br>and<br>スキャナ設置可}
B{Windows Update<br>接続方法}
C{SSH接続可能な<br>中継サーバに<br>スキャナ設置可}
D{Windows Update<br>接続方法}
Local[ローカルスキャン]
LocalWSUS[ローカルスキャン<br>(WSUS)]
Remote[リモートスキャン]
RemoteCab[リモートスキャン<br>(Cabファイル)]
Paste[ペーストスキャン]
A -- Yes ----> B
B -- 制限なし ---> Local
B -- WSUS管理下 ---> LocalWSUS
A -- No ----> C
C -- Yes --> D
D -- 制限なし --> Remote
D -- Cabファイル --> RemoteCab
C -- No ---> Paste
subgraph Auto[構成情報が自動更新される]
Local
LocalWSUS
Remote
RemoteCab
end
subgraph Manual[構成情報を手動更新する必要あり]
Paste
end
WindowsのKBのスキャン方法の比較#
スキャン方法 | Windows Update接続方法 | メリット | 検討ポイント | 参考リンク |
---|---|---|---|---|
ローカルスキャン | ・インターネット上 ・WSUS |
・スキャナのインストールや設定が簡単 ・自動で構成情報を同期 |
スキャン対象のWindowsにスキャナプログラムの配置が必要 | |
リモートスキャン | ・インターネット上 ・Cabファイル |
・スキャン対象のWindowsにスキャナプログラムの配置が不要 ・自動で構成情報を同期 |
スキャン対象の各WindowsにSSHの設定が必要。設定ファイルにスキャン対象へのSSH接続情報の定義が必要 | ・Windowsのリモートスキャン ・Windows Server on EC2 に ssh で接続する |
ペーストスキャン | 接続不可 | ・FutureVulsの画面上でKBのリストをコピーペーストで登録してCVEを検知 ・閉域(エアギャップ環境、オフライン環境)のWindowsも管理可能 ・管理対象サーバスキャナプログラムが必要ない |
Windowsアップデート実施により構成情報が変わった場合に画面上からKBのリストを手動で更新する必要あり |
Windowsにインストールされているアプリケーションの脆弱性を検知するには#
FutureVulsは、KB として管理される製品 「以外」 のサードパーティ製ソフトウェアの構成管理と脆弱性管理の機能があります。FutureVulsの「サードパーティ製ソフトウェアのCPEリコメンド」機能を用いると、Windowsにインストールされているアプリケーションの脆弱性管理が簡単にできます。
以下のようなメリットがあります。
- Windows にインストールされているソフトウェアを自動検知して資産として FutureVuls で管理できる
- 各ソフトウェアに対して適切な CPE がリコメンドされるため、CPE の割り当てを簡単に行える
- この機能が無いと人力で NVD を検索して CPE を調べなければならないため、非常に手間がかかる
- 数選択で一括してリコメンドされた CPE を割り当てることも可能
- CPE を割り当てると脆弱性DBとのマッチ処理できるので脆弱性の検知が出来る
詳細は「新機能:FutureVuls、Windowsのサードパーティソフトウェアの脆弱性検知がより楽に」を参照して下さい。
コンテナをスキャン#
コンテナスキャン方法の選択#
スキャン方法を選択する際は、以下のフローチャートを参考にしてください。
%%{
init:{
"flowchart":{
"htmlLabels": true,
"curve": "linear"
}
}
}%%
flowchart LR
A{CI/CDツールが<br>利用可能}
B{AWS or GCP上のコンテナ}
C{インターネットに接続可<br>and<br>スキャナ設置可}
D{コンテナのSBOMを入手可能}
CICD[Trivy CI/CD連携<br>(コンテナイメージ)]
ECR[ECR連携]
GAR[GAR連携]
LocalTrivy[Trivyローカルスキャン<br>(コンテナイメージ)]
SBOM[SBOMインポート]
A -- Yes -----> CICD
A -- No --> B
B -- Yes/AWS ----> ECR
B -- Yes/GCP ----> GAR
B -- No --> C
C -- Yes ---> LocalTrivy
C -- No --> D
D -- Yes --> SBOM
subgraph Auto[構成情報が自動更新される]
CICD
ECR
GAR
LocalTrivy
end
subgraph Manual[構成情報を手動更新する必要あり]
SBOM
end
コンテナスキャン方法の比較#
スキャン方法 | メリット | 検討ポイント | 参考リンク |
---|---|---|---|
Trivy連携 (CI/CD,ローカル) |
・CI/CDに組み込める ・AWS環境以外をサポートできる |
Trivyスキャンの環境を準備して設定する必要がある | FutureVulsとTrivyでAWS CodePipelineのCI/CDに脆弱性検知を組み込む |
Amazon ECR / GCP GAR 外部連携 |
AWS の ECR や GCP の GAR と連携設定するだけで設定が完了 | 脆弱性が存在しないOSパッケージやアプリケーションの依存ライブラリは FutureVuls に取り込まれない | |
SBOMインポート | イメージがなくてもSBOMファイルがあればインポート可能。 | ・SBOMの生成と管理には専用ツールが必要 ・更新時は再度SBOMのインポートが必要 |
アプリケーションの依存ライブラリをスキャン#
アプリケーションの依存ライブラリスキャン方法の選択#
ホスト OS の依存ライブラリをスキャンする場合#
%%{
init:{
"flowchart":{
"htmlLabels": true,
"curve": "linear"
}
}
}%%
flowchart LR
A{CI/CDツールが利用可能}
B{インターネットに接続可<br>and<br>スキャナ設置可}
C{アプリケーションの<br>LOCKファイルが入手可能}
D{アプリケーションの<br>SBOMが入手可能}
CICD[Trivy CI/CD連携<br>(依存ライブラリ)]
Local[Trivyローカルスキャン<br>(依存ライブラリ)<br>or<br>Vulsスキャナで<br>Lockfileを指定したスキャン]
Lockfile[疑似サーバ<br>+<br>LOCKファイル登録]
SBOM[疑似サーバ<br>+<br>SBOM登録]
A -- Yes -----> CICD
A -- No --> B
B -- Yes ----> Local
B -- No --> C
C -- Yes ---> Lockfile
C -- No --> D
D -- Yes --> SBOM
GitHub上のLockfileやライブラリをスキャンしたい場合#
- GoのバイナリやJavaのjarもスキャンしたい、脆弱性が検知されていないライブラリも管理したい
- → Trivy で Git リポジトリをスキャン
- それ以外の場合
- GitHub Security Alerts 連携
その他#
- AWS 環境の依存ライブラリをスキャンしたい場合
- Amazon Inspector のスキャン結果を取り込む
- コンテナイメージのライブラリをスキャンしたい場合
- Trivy によるコンテナイメージ内の依存ライブラリスキャン
アプリケーションの依存ライブラリスキャン方法の比較#
スキャン方法 | スキャン目的 | メリット | 検討ポイント | 参考リンク |
---|---|---|---|---|
Trivyでライブラリをスキャン | ・コンテナイメージ内の依存ライブラリ ・ローカルファイルシステム上の依存ライブラリ ・リモートのGitリポジトリ |
CI/CDに組み込める。AWS以外もサポート。GoのバイナリやJavaのjarファイルもスキャン対象。 | Trivyスキャン環境の準備が必要 | CI/CDパイプラインに組み込む方法 |
AWS環境の依存ライブラリをAmazon Inspectorでスキャン | ・Amazon ECR ・AWS Lambda ・Amazon EC2上の依存ライブラリ |
AWS環境で設定が簡単。SSM、Vuls、Trivy等のエージェントが不要 | 脆弱性が存在しないライブラリはFutureVulsに取り込まれない。 検知対象が限られる。ECR、Lambda、EC2のサポート対象プログラム言語を確認してください。詳細情報はこちら |
FutureVulsでAmazon EC2のライブラリをスキャン |
Vuls ScannerでLockfileを指定したスキャン | ホストOS上のLockfileをスキャン | Vulsスキャナのセットアップ済みの環境ではconfig.tomlを変更するだけ | 検知対象のLockfileやディレクトリをconfig.tomlに列挙する必要あり | |
ペーストスキャン | Lockfileが閉域網にある場合 | Lockファイルを画面上でコピーペーストして登録可能 | アップデートでLockfileが変更された場合は、画面上でペーストして更新するか、REST APIで更新する必要あり。Javaはサポート対象外 | |
GitHub Security Alerts連携 | Gitリポジトリ上のLockfileやライブラリをスキャン | GitHubを使っている場合は設定が簡単 | ||
アプリケーションのSBOMインポート | Lockfileが閉域網にある場合 | SBOMを画面上でコピーペーストして登録可能。Javaをサポート | アップデートでSBOMが変更された場合は、再登録するか、REST APIで更新する必要あり | 次のセクションに詳細を記載 |
ネットワーク機器や商用ミドルウェア、自分でコンパイルしたものをスキャン#
CPEスキャン機能は、OSやプログラミング言語依存のライブラリ 「以外」 のソフトウェアの脆弱性をスキャンできます。具体的なスキャン対象例としては以下のようなものがあります。
- Cisco、Fortinetなどのネットワーク機器
- OracleやJP1などの商用データベースおよびその他の商用製品
- ダウンロードしてセットアップしたTomcat
- ソースコードをコンパイルしたApache
- Windowsにインストールしたサードパーティ製ソフトウェア
WordPressのプラグインやテーマをスキャン#
WordPressスキャン を参照してください。