探索エンジンを利用したホストの登録方法(SNMP)
前提条件
探索エンジンの動作は、以下の点を前提としています。
- 探索エンジンのシステム要件に適合していること
-
探索エンジンをインストールするホストでdockerサービスが正常に動作していること
もしインストールしたい環境にdockerサービスがセットアップされていない場合、こちら(Red Hat Enterprise Linux及び互換OS, Ubuntu, Debian)をご参照下さい。
なお、探索エンジンはSIDfm VMサーバと同じホスト上にインストールすることも可能です。 -
探索エンジンのdockerコンテナ内から、VMサーバ及び指定したIPアドレスへアクセスが可能なこと。
ホストもしくは経路上のファイアウオールやルータ等でdockerコンテナ内から対象のIPアドレスへのアクセスが遮断されている場合がありますので、ファイアウォールやルータの設定をご確認下さい。
また、探索エンジンからVMサーバにデータを送信するため、探索エンジンからVMサーバへのアクセスが可能であることも条件となります。
dockerコンテナの通信はdocker0インタフェース経由で送信されます。
探索エンジンからVMサーバへのアクセスは、httpもしくはhttpsで、かつ、探索エンジンからVMサーバへの一方方向の通信になります。 - 探索エンジンから、指定したIPアドレスのホストにsnmpgetでアクセスして情報取得が可能なこと。
探索APIキー設定
探索エンジンからVMサーバにアクセスするために必要な探索APIキーの登録を行います。
探索APIキーの登録には、カスタムカテゴリが少なくとも1つ登録されている必要があります。
-
SIDfmVM管理者もしくはSIDfmVM報告者の権限を持つユーザでVMサーバにログインします。
SIDfmVM報告者の場合、自分の属するカスタムカテゴリの探索APIキーのみ閲覧・操作可能です。 -
メニューの「探索APIキー設定」を選択します。
-
「新規登録」ボタンを押下し、APIキー名とカスタムカテゴリを入力した後に「登録」ボタンを押下します。
APIキー名は、VMサーバの画面上で識別するためのみに使用されます。
カスタムカテゴリは必ず指定する必要があります。
このカテゴリは、探索エンジン経由でのホスト登録の際に、登録するホストのカスタムカテゴリとして使用されますので、設定の際にはご注意下さい。 -
「APIキー登録」ボタンを押下します。確認のダイアログが出力されますので、「OK」ボタンを押下すると探索APIキーが生成されます。
APIキーの文字列の右側に出力されるアイコンを押下すると、クリップボードにAPIキーの文字列がコピーされます。
ここで生成したAPIキーは、探索エンジンのセットアップで利用しますので保存しておきます。
-
以上で、探索APIキー設定は完了です。引き続いて、探索エンジンのセットアップに進みます。
探索エンジンのセットアップ
探索エンジンのインストールを行います。
前提条件について、予めご確認の上作業を実施下さい。
-
ソフトウェアダウンロードの「エージェントその他」から、探索エンジンのインストールファイルをダウンロードします。
契約約款、使用許諾についてご確認・ご同意頂いた上でチェックを入れ、「ダウンロードページ」に遷移します。 -
「探索エンジン」で最も新しいバージョンのソフトウェア、sha256sumファイルをダウンロードします。
-
インストールディレクトリを作成します。
なお、以降の操作手順はrootユーザでの操作を想定しております。# mkdir -p /var/lib/sidfm/sidfmpe
-
2.でダウンロードしたファイルを/var/lib/sidfmに転送します。
-
アーカイブファイルを展開します。
# cd /var/lib/sidfm
# tar xvzf sidfmpe-1.1.0.tar.gz -C /var/lib/sidfm/sidfmpe/
-
探索エンジンでデータを保持するためのボリュームを用意します。
探索エンジンで使用するdockerのボリューム名は sidfmpe です。
この名前のdockerボリュームは削除されますので、もし同名のボリュームを利用されている場合は、お手数ですが名前の変更を行う等のご対応をお願いします。# cd sidfmpe
# bash scripts/init.sh
なお、初回の実行時は、存在しないボリュームの削除を行おうとするため以下のメッセージが出力されますが、無視して構いません。
Error: No such volume: sidfmpe
-
SIDfm VMサーバが自己署名証明書でHTTPS化されている場合、6.で作成したボリュームに証明書(vm-server.crtファイル)をコピーする必要があります。
自己署名証明書のインストールで作成したvm-server.crtファイルを作業中のホストへ転送した上で、以下のコマンドを実行してください。# bash scripts/certcp.sh vm-server.crt
なお、ボリュームへのコピーの際に、標準ではdummyという名前のdockerコンテナの作成・削除を行います。
もし既にdummyという名前のdockerコンテナが存在する場合、以下のように第2引数に存在しないdockerコンテナ名を指定して実行下さい。
なお、作成したコンテナはコマンドの実行後、自動的に削除されます。# bash scripts/certcp.sh vm-server.crt dummy2
-
設定ファイルのテンプレートを選択します。
SNMPを利用する場合は、以下のテンプレートを使用してください。
- sidfmpe_snmp_conf.env
# cp conf/sidfmpe_snmp_conf.env conf/sidfmpe_conf.env
-
8.でコピーした設定ファイル(conf/sidfmpe_conf.env)の編集を行います。
必須の設定項目は以下の通りです。1つの探索エンジンにSSHとSNMPの両方を設定したい場合は、こちらの設定例をご参照ください。
設定名称 値の例 / 説明 SIDFM_VMPE_RUNONCE 値の例: 0
探索エンジンの動作モードを指定します。
0(デフォルト)の場合、起動した探索エンジンのコンテナはそのまま残存し、定期的に探索を実行します。
1の場合、探索エンジンのコンテナは起動して1度探索を実行した後、コンテナを終了します。
11.の説明もご参照下さい。SIDFM_VMPE_HOUR 値の例: 0,12
SIDFM_VMPE_RUNONCE=0の場合、指定した時間に定期的に探索が実行されます。
例の設定では、0時と12時に実行されます。SIDFM_VMPE_PARALLELS 値の例: 6
ポートスキャン等の最大並列実行数を指定します。
探索速度の調整が可能ですが、大きく設定した場合、ネットワークやメモリへの負荷が増大しますので、基本的にそのままご利用頂くことを推奨します。SIDFM_VMPE_SRV_ENDPOINT 値の例: https://dummy.example.com/redmine/sidfm/probe/api/
SIDfm VMサーバの、探索エンジン用のAPIエンドポイントを指定します。
SIDfm VMサーバのダッシュボードのURLが https://dummy.example.com/redmine/sidfm/index_r の場合、https://dummy.example.com/redmine/sidfm/probe/api/ をご指定下さい。
なお、探索エンジンからSIDfm VMサーバへ、本設定のURLへアクセスが可能である必要がありますので、ご注意下さい。SIDFM_VMPE_SRV_APIKEY 値の例: 8b9283deb5a8fb22bd85a47eebc781a69def32217e297754446f776f9591abc9
探索APIキー設定の4.で取得したAPIキーの値を入力します。SNMP専用環境変数 SIDFM_VMPE_SNMP_IP_RANGE 値の例: 172.17.0.2 172.17.0.3-42 172.17.0.1 172.31.49.90
探索対象のIPアドレスのリストを指定します。
指定方法はnmapコマンドのIPアドレス指定をご参照下さい。
なお、現在の探索エンジンではIPv4アドレスのみ対応しております。
探索エンジンから指定したIPアドレスに対して、ポートスキャンが実施されますので、情報セキュリティ部門やネットワーク管理者に予め情報を共有することを推奨します。SIDFM_VMPE_SNMP_SCAN_PORTS 値の例: 161,1611
SNMPサービスとして使用されているポート番号を指定します。
複数指定する場合は、コンマで区切って指定してください。
指定したサービスポートに対してポートスキャンが実施されます。SIDFM_VMPE_SNMP_VERSION 値の例: 1
SNMPのバージョンを指定します。指定可能な値は 1、2c、3 のいずれかです。- SIDFM_VMPE_SNMP_VERSIONで 1 または 2c を指定した場合 SIDFM_VMPE_SNMP_COMMUNITY 値の例: public
SNMP通信で使用するコミュニティ名を指定します。- SIDFM_VMPE_SNMP_VERSIONで 3 を指定した場合 SIDFM_VMPE_SNMP_SECURITY_LEVEL 値の例: noAuthNoPriv
SNMP通信で使用するセキュリティレベルを指定します。
指定可能な値は noAuthNoPriv、authNoPriv、authPriv のいずれかです。SIDFM_VMPE_SNMP_SECURITY_NAME 値の例: snmpadmin
SNMP通信で使用するセキュリティ名を指定します。SIDFM_VMPE_SNMP_AUTH_TYPE 値の例: MD5
SNMP通信で認証を行う場合の認証方式を指定します。
指定可能な値は MD5、SHA のいずれかです。
※ SIDFM_VMPE_SNMP_SECURITY_LEVEL が authNoPriv または authPriv の場合に必須となります。SIDFM_VMPE_SNMP_AUTH_PASSPHRASE 値の例: passphrasePassphrase00000
SNMP通信で認証を行う場合の認証パスフレーズを指定します。
※ SIDFM_VMPE_SNMP_SECURITY_LEVEL が authNoPriv または authPriv の場合に必須となります。SIDFM_VMPE_SNMP_PRIV_TYPE 値の例: DES
SNMP通信でのプライバシー保護を行う場合の暗号化方式を指定します。
指定可能な値は DES、AES のいずれかです。
※ SIDFM_VMPE_SNMP_SECURITY_LEVEL が authPriv の場合に必須となります。SIDFM_VMPE_SNMP_PRIV_PASSPHRASE 値の例: passphrasePassphrase00000
SNMP通信でプライバシー保護を行う場合の暗号化パスフレーズを指定します。
※ SIDFM_VMPE_SNMP_SECURITY_LEVEL が authPriv の場合に必須となります。その他の設定項目は以下の通りです。
設定名称 値の例 / 説明 SIDFM_VMPE_SRV_PROXY_ENABLE
SIDFM_VMPE_SRV_PROXY_HTTP_HOST
SIDFM_VMPE_SRV_PROXY_HTTP_PORT
SIDFM_VMPE_SRV_PROXY_HTTP_USER
SIDFM_VMPE_SRV_PROXY_HTTP_PASS
SIDFM_VMPE_SRV_PROXY_HTTPS_HOST
SIDFM_VMPE_SRV_PROXY_HTTPS_PORT
SIDFM_VMPE_SRV_PROXY_HTTPS_USER
SIDFM_VMPE_SRV_PROXY_HTTPS_PASS探索エンジンからSIDfm VMサーバへのアクセスにHTTP Proxyサーバが必要な場合に設定します。
- Proxy設定が必要無い場合
- SIDFM_VMPE_SRV_PROXY_ENABLE=
- http:, https:共にProxyサーバとしてxxx.example.com:8080 を設定する場合
-
SIDFM_VMPE_SRV_PROXY_ENABLE=1
SIDFM_VMPE_SRV_PROXY_HTTP_HOST=xxx.example.com
SIDFM_VMPE_SRV_PROXY_HTTP_PORT=8080
SIDFM_VMPE_SRV_PROXY_HTTPS_HOST=xxx.example.com
SIDFM_VMPE_SRV_PROXY_HTTPS_PORT=8080 - BASIC認証のあるProxyサーバを設定する場合
-
SIDFM_VMPE_SRV_PROXY_ENABLE=1
SIDFM_VMPE_SRV_PROXY_HTTP_HOST=xxx.example.com
SIDFM_VMPE_SRV_PROXY_HTTP_PORT=8080
SIDFM_VMPE_SRV_PROXY_HTTP_USER=user1
SIDFM_VMPE_SRV_PROXY_HTTP_PASS=password
SIDFM_VMPE_SRV_PROXY_HTTPS_HOST=xxx.example.com
SIDFM_VMPE_SRV_PROXY_HTTPS_PORT=8080
SIDFM_VMPE_SRV_PROXY_HTTP_USER=user1
SIDFM_VMPE_SRV_PROXY_HTTP_PASS=password
SNMP専用環境変数 SIDFM_VMPE_SNMP_EXCLUDE_IPS 値の例: 127.0.0.0,127.0.0.255
SIDFM_VMPE_SNMP_IP_RANGEから除外するIPアドレスを列挙します。
除外したIPアドレスについては、ポートスキャンや探索の対象から除外されます。SIDFM_VMPE_SNMP_RETRY_COUNT 値の例: 5
SNMP通信の接続時のリトライ回数を指定します。
デフォルト値は 5 です。SIDFM_VMPE_SNMP_RETRY_TIMEOUT 値の例: 10
SNMP通信の接続時のタイムアウトを指定します。単位は秒です。
デフォルト値は 10 です。SIDFM_VMPE_SNMP_OID_FOR_PRODUCT_IDENTIFICATION 値の例: 1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.47.1.2.1.1.2.1
SNMP通信で取得する対象のOIDを指定します。
必ず 1.3.6.1.2.1.1.1.0 を含める必要があります。
デフォルト値は 1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.47.1.2.1.1.2.1 です。
※ 1.3.6.1.2.1.1.1.0: sysDescr
※ iso.3.6.1.2.1.47.1.2.1.1.2.1: entPhysicalDescr (for Fortinet) -
探索エンジンのdockerイメージの読み込みを行います。
docker tagの第1引数のsidfmpe:1.1.0ですが、1.1.0の部分はバージョンで変わりますので、利用される探索エンジンのバージョンで読み替えて頂きますようお願いします。# gzip -dc sidfmpe-image-1.1.0.tar.gz | docker load
# docker tag sidfmpe:1.1.0 sidfmpe:latest
-
探索エンジンを起動します。
起動コマンドは以下の通りです。# bash scripts/run.sh
9.の設定で、SIDFM_VMPE_RUNONCE=1と設定していた場合、1回のみ実行して終了します。
設定を変更せず再度実行したい場合は、以下のコマンドを実行します。# docker start sidfmpe
設定変更が必要な場合は、以下のようにコンテナを一度削除してから、前述の起動コマンドを実行してください。
# docker stop sidfmpe
# docker rm sidfmpe
# bash scripts/run.sh
探索エンジンの動作結果は、以下のコマンドで確認できます。
# docker logs sidfmpe
xxxx/xx/xx xx:xx:xx sidfmpe: finished のように出力されれば、動作終了しています。
9.の設定で、SIDFM_VMPE_RUNONCE=0と設定していた場合、探索エンジンを起動するとそのままコンテナは起動状態となり、指定した間隔で定期的に探索が実行されます。
動作を停止する際には、コンテナを停止してください。# docker stop sidfmpe
動作を再開する場合は、コンテナを起動してください。
# docker start sidfmpe
設定変更が必要な場合は、SIDFM_VMPE_RUNONCE=1の場合と同様にコンテナを作成し直します。
# docker stop sidfmpe
# docker rm sidfmpe
# bash scripts/run.sh
SNMPから取得した文字列をプロダクトとマッピングする
-
SIDfmVM管理者もしくはSIDfmVM報告者の権限を持つユーザでVMサーバにログインします。
SIDfmVM報告者の場合、自分の属するカスタムカテゴリの探索APIキーが設定された探索エンジンの探索結果のみ操作可能なため、探索APIキーで設定した探索APIキーのカスタムカテゴリにアクセス権限を持つユーザでログインしてください。 -
左袖メニューの「対策済ホスト設定」を押下して、「探索方法切替」で SNMP を選択します。
-
探索APIキー選択で探索APIキーで設定した探索APIキーを選択します。
-
「情報取得」の「成功」を選択します。
ホスト登録もしくはホスト紐づけが可能なIPアドレスの一覧が出力されます。
なお、情報取得、ポート確認、ping確認は、それぞれ以下のような意味となっています。情報取得 SNMPでの情報取得の成否です。
成功(もしくは
)したホスト登録・ホスト紐づけが可能です。
ポート確認 SNMPのポートの開閉状態です。 ping確認 ping応答の可否です。 成功 以前は失敗していたが、直近では成功している。 失敗 以前は成功していたが、直近では失敗している。
● マッピング
「マッピング」ボタンを押下し、探索エンジンで取得した文字列をプロダクトとマッピングすることができます。
取得した文字列をもとに、プロダクト名およびバージョンの候補が表示されます。
マッピングしたいプロダクトを選択し、「登録」ボタンを押下するとマッピングが完了します。
マッピングが完了した情報は、「マッピングテーブル」にて確認できます。
「マッピングテーブル確認」ボタンを押下すると、登録されたマッピング情報を確認できます。
また、マッピング情報の編集および削除も可能です。
● バージョン未検出の場合
取得した文字列にプロダクトのバージョン情報が含まれていない場合があります。
この場合は、マッピングは実施できませんので、手動ホスト登録またはCPE登録を行ってください。
手順については、以下をご参照ください。
● 手動マッピング
取得した文字列からプロダクトのバージョン情報が検出された場合に限り、手動マッピングが可能です。
基本的に手動マッピングは非推奨ですが、適切な情報が検出されない場合やCPEを使用してホストを登録したい場合に利用してください。


探索エンジンで取得したデータを利用したホスト登録
- <ホスト名として使用する文字列> はIPアドレスに固定されています。
- SNMPで探索したホストは、マッピングが完了したホストのみ一括登録が可能です。
- 一括登録では、チェックを入れた全てのホストで既存のホストとホスト名に重複があると登録に失敗します。
- なお、カスタムカテゴリは探索APIキーのカスタムカテゴリと同一のものとなります。
● ホスト登録
1つの探索ホストについて、ホスト登録を行う場合は「ホスト登録」ボタンを押下して、ホスト名を入力し「登録」ボタンを押下します。
ホスト名入力欄の下のボタンは、検出されたIPアドレスをホスト名の入力欄に設定するものです。
IPアドレスを元にしたホスト名で登録する場合にご利用下さい。
なお、カスタムカテゴリは探索APIキーのカスタムカテゴリと同一のものとなります。
また、既に同一のホスト名のホストが存在する場合は登録に失敗します。
詳細なホスト設定については、ホスト設定画面で設定の変更をお願いします。


● ホスト紐づけ
探索ホストについて、既に登録済のホストと紐づけを行い、探索エンジンの探索で得られた情報を自動的に紐づけしたホストに反映することが可能です。
( ※ 手動マッピングの場合は反映されません )
「ホスト紐づけ」ボタンを押下して、ホスト名の先頭を入力するとマッチするホストの一覧が出力されるため、一つのホストを選択し、「登録」ボタンを押下すると、探索ホストと既存のホストの紐づけが行われます。
紐づけの解除を行う際には、「紐づけ解除」ボタンか「一括紐づけ解除」ボタンをご利用下さい。
紐づけの解除を行うと、以降は探索ホストの情報が更新されても、ホスト情報に反映されなくなります。


● 一括ホスト登録
複数の探索ホストを一括でホスト登録する場合は、対象としたい探索ホストにチェックを入れて「一括ホスト登録」ボタンを押下し、ホスト名を自動設定するための項目を適宜入力して「登録」ボタンを押下します。
ホスト名は、各探索ホスト毎に、以下の形で生成されます。
<ホスト名の前に付与する文字列>+<ホスト名として使用する文字列>+<ホスト名の後ろの付与する文字列>


探索エンジンで取得したデータと紐づけられたホストの解除
● 紐づけ削除
探索ホストについて、ホストとの紐づけを削除したい場合は、「紐づけ削除」ボタンを押下してください。
紐づけ先のホストが削除されることはありません。

● 一括紐づけ削除
複数の探索ホストについて、ホストとの紐づけを削除したい場合は、対象としたい探索ホストにチェックを入れて「一括紐づけ削除」ボタンを押下し、紐づけ削除対象のホストを確認した上で「実行」ボタンを押下します。
紐づけされている探索ホストのみが対象で、それ以外の探索ホストは無視されます。
紐づけの解除を行うと、以降は探索ホストの情報が更新されても、ホスト情報に反映されなくなります。


探索エンジンの通知条件を設定する
-
左袖の「設定」メニュー「システム設定」をクリックします。
-
「SIDfm VM システム設定」の項目に「探索エンジンの通知条件」があります。
「設定変更」ボタンを押下し「探索エンジンの通知条件の変更」画面を開きます。
-
設定を変更後、画面右下にある「更新」ボタンをクリックして、内容を変更します。
各設定内容の説明は以下のとおりです。
- 新しいホストの発見
- 新しいIPアドレスで機器の応答があった場合の通知設定
- 自動更新成功(構成情報の更新)
- 構成情報の更新を検知し、正常にホストの登録情報が更新された場合の通知設定
- 自動更新失敗(バージョンの不備)
- バージョン情報の更新を検知したが、脆弱性データベースに存在せず、ホストの登録情報が更新できなかった場合の通知設定
- 自動更新失敗(異なるベンダー)
- ベンダーが全く異なる情報が収集され、ホストの登録情報が更新できなかった場合の通知設定
- 通知の表示期間(1 - 365日)
- 通知か表示される期間を設定
-
画面左上の右側のベル(その他通知)に探索エンジンからの通知が表示されます。
通知がある場合、アイコンが赤色に変わります。
ベルをクリックすると、以下のように項目ごとの通知が表示されます。
各通知をクリックすると、SSHまたはSNMPでフィルタが適用された状態で「探索済ホストの閲覧と設定」ページに遷移します。