新機能:CIDRレンジ内のネットワーク機器の発見機能と、Fortinet社製品の脆弱性の検知精度が向上しました

こんにちは。FutureVuls開発の和田です。

2023-9-26のリリースにて、ネットワーク機器の管理を強化する以下の機能が追加されました。

  • CIDRレンジに存在するNW機器を発見し、そのCPE(ベンダー、プロダクト名、バージョン)を特定し、FutureVulsに登録できる機能
  • Fortinetの一次情報を脆弱性検知用のデータソースに追加。これまでよりも検知精度が向上

discovery

この記事では詳しく紹介させていただきます。

CIDRレンジスキャンによるネットワーク機器の発見とCPE特定と管理方法が強化

近年、FortinetやCisco等のネットワーク機器の重大な脆弱性が公開され、企業担当者は対応に苦労しています。
FutureVulsにはネットワーク機器のCPE(Common Platform Enumeration)を登録し脆弱性を管理できるCPEスキャン機能があります。これにより、企業や組織は自身の持つ資産を一元管理し、継続的に脆弱性のチェックを行うことが可能となります。

しかし大規模なネットワークを持つ組織では、様々なベンダーやプロダクト、バージョンの機器が混在しており、そのすべての資産情報を管理できているところばかりではありません。このような資産管理が出来ていない組織の場合、管理しているNW機器のベンダーとプロダクトとバージョン、またその機器のIPアドレスが不明な場合があり、CPEの特定に手間がかかるという課題がありました。

今回のリリースでは、指定したCIDRレンジに存在するNW機器を発見し、そのCPEを特定し、FutureVulsに登録できる機能が新たに追加されました。

また、これまでのCPEスキャンで利用するデータソースはNVDとJVNでしたが、今回新たにFortinetの一次情報を脆弱性検知用のデータソースに追加しました。これまでよりも迅速に検知されるようになり、さらに検知精度が向上しました。

FutureVulsによるネットワーク機器のソフトウェアCPEの取得と登録

FutureVulsを使用することで、指定したCIDRレンジに存在するネットワーク機器のソフトウェアCPEを簡単に取得し、その後のセキュリティ診断や管理に役立てることができます。以下の2つのコマンドを使用します。

  1. future-vuls discover
  2. future-vuls add-cpe

各コマンドの詳細な使い方を以下に説明します。

1. future-vuls discover

概要:
指定したCIDRレンジのネットワーク機器を発見し、そのCPEを取得します。取得するために、内部的にsnmp2cpeを使用します。
CIDRレンジのネットワーク機器に対してSNMPの結果を元にそのCPE情報(ベンダー、プロダクト名、バージョン)を特定し、tomlファイルとして保存します。

使用前の準備:
snmp2cpeの最新版のバイナリをfuture-architect/vuls/releasesより取得しfuture-vulsと同じディレクトリに配置してください。

2. future-vuls add-cpe

概要:

  • future-vuls discover で取得したCPEをFutureVulsに登録します。
  • future-vuls discoverで生成されたtomlファイルを使用します。
  • fvuls_synctrueに設定されているホストだけがFutureVulsに追加されます。
  • FutureVulsに登録後、対応するサーバのUUIDはtomlファイルに追記されます。

使用方法:

  1. まず、future-vuls discoverでCIDRレンジ中のNW機器のCPEを特定します。
  2. 生成されたtomlファイル内で、FutureVulsへの登録対象のホストのfvuls_synctrueに変更します。
  3. future-vuls add-cpeコマンドを実行します。

実際の使い方

CIDRレンジを指定してfuture-vuls discoverを実行します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ ./future-vuls discover --cidr 192.168.0.1/24
Discovering 192.168.0.1/24...
192.168.0.1: Execute snmp2cpe...
failed to execute snmp2cpe. err: failed to execute snmp2cpe. err: exit status 1
192.168.0.2: Execute snmp2cpe...
failed to execute snmp2cpe. err: failed to execute snmp2cpe. err: exit status 1
192.168.0.3: Execute snmp2cpe...
failed to execute snmp2cpe. err: failed to execute snmp2cpe. err: exit status 1
192.168.0.4: Execute snmp2cpe...
failed to execute snmp2cpe. err: failed to execute snmp2cpe. err: exit status 1
192.168.0.5: Execute snmp2cpe...
failed to execute snmp2cpe. err: failed to execute snmp2cpe. err: exit status 1
192.168.0.6: Execute snmp2cpe...
New network device found 192.168.0.6
wrote to discover_list.toml

コマンド実行後に同じディレクトリにtomlファイルが生成されます。

1
2
3
4
5
6
["192.168.0.6"]
ip = "192.168.0.6"
server_name = "192.168.0.6"
uuid = ""
cpe_uris = ["cpe:2.3:h:fortinet:fortigate-50e:-:*:*:*:*:*:*:*","cpe:2.3:o:fortinet:fortios:5.4.6:*:*:*:*:*:*:*"]
fvuls_sync = false

FutureVulsにCPEを登録したい箇所のfvuls_syncの値をtrueに書き換えます。

1
2
3
4
5
6
["192.168.0.6"]
ip = "192.168.0.6"
server_name = "192.168.0.6"
uuid = ""
cpe_uris = ["cpe:2.3:h:fortinet:fortigate-50e:-:*:*:*:*:*:*:*","cpe:2.3:o:fortinet:fortios:5.4.6:*:*:*:*:*:*:*"]
fvuls_sync = true

その後、future-vuls add-cpeを実行します。この時、FutureVulsのグループのAPIトークンを指定する必要があります。

1
2
3
4
5
6
7
8
9
$ ./future-vuls add-cpe --token xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
Creating 1 pseudo server...
192.168.0.6: Created FutureVuls pseudo server xxxx-xxx-xxxx-xxxx
wrote to discover_list.toml

Uploading 1 server's CPE...
192.168.0.6: Uploaded CPE cpe:2.3:h:fortinet:fortigate-50e:-:*:*:*:*:*:*:*
192.168.0.6: Uploaded CPE cpe:2.3:o:fortinet:fortios:5.4.6:*:*:*:*:*:*:*
wrote to discover_list.tom

実行後、「FutureVulsに追加された疑似サーバのUUID」がtomlファイルに追記されます。

image1

1
2
3
4
5
6
["192.168.0.6"]
ip = "192.168.0.6"
server_name = "192.168.0.6"
uuid = "xxxx-xxxxx-xxxxx-xxxx-xxxxxxxxxxx"
cpe_uris = ["cpe:2.3:h:fortinet:fortigate-50e:-:*:*:*:*:*:*:*", "cpe:2.3:o:fortinet:fortios:5.4.6:*:*:*:*:*:*:*"]
fvuls_sync = true

以上の手順で、CIDRレンジからネットワーク機器を発見し、そのCPEを特定し、FutureVulsに登録が完了しました。
登録後は新たに公開された脆弱性は継続的に検知されます。

カオス環境のNW機器の発見と継続的な脆弱性管理のお役に立てれば幸いです。

詳細は「マニュアル」を参照してください。