FutureVulsでサーバの脆弱性をスキャンするためには、スキャナプログラムのインストールが必要です。
FutureVulsでは、2種類のモードを備えております。
ローカルスキャン
リモートスキャン
1. グループ管理者権限を持つユーザでFutureVulsへログインしたあと、右上にあるアイコンをクリックし「グループ設定」へアクセスしてください。
2. 左のリストから「スキャナ」をクリックします。インストール用コマンドが表示されるため、それをコピーします。
FutureVulsではインストール時、スキャン結果のアップロード時にスキャン実行サーバからインターネットへのアクセスが発生します。 プロキシサーバを経由してインターネットへアクセスが行われる環境では、次のインストール実行前に**設定=>プロキシ設定**の章を参照し、必要な設定をしてください。
3. スキャナプログラムのインストールを行うサーバ上にて「2.」でコピーしたコマンドを実行します。このとき以下のように特権を持ったユーザで実行してください。
以下のメッセージが出力された場合は、root権限を付与されたユーザにスイッチし再実行してください。
2017/11/08 06:04:19 [START ]: chkRootUser
2017/11/08 06:04:19 [ERROR ]: Please run as root user.
インストーラは以下の処理を実行します
実行ファイルの配置
コンフィグファイルの作成
実行ユーザ・グループの作成&ホームフォルダの作成
定期実行の登録
スキャンに必要なOSパッケージのインストール
4.インストール後、定期実行が行われると自動的にスキャンが行われ、スキャン結果がFutureVulsへアップロードされます。
FutureVulsではインストール時、スキャン結果のアップロード時にスキャン実行サーバからインターネットへのアクセスが発生します。 プロキシサーバを経由してインターネットへアクセスが行われる環境では、インストール後にプロキシの設定する必要があります。 **設定=>プロキシ設定**の章を参照し、必要な設定をしてください。
リモートスキャンの設定方法を説明します。 スキャナをセットアップしたサーバを「スキャナサーバ」、 脆弱性スキャン対象のサーバを「スキャン対象サーバ」と記載します。
リモートスキャンでは、スキャン対象サーバ上にて下記の設定が必要です。
ローカルスキャンでは上記をインストーラが自動で設定してくれますが、リモートスキャンの場合は手動での設定が必要となります。
スキャナサーバに上記ローカルスキャンの手順のとおり、スキャナプログラムを導入します。
FutureVulsではリモートサーバのスキャンを行う際は、RSA公開鍵認証によるSSHログインを行います(パスワード認証には対応しておりません)。 リモートサーバにログインできるユーザと秘密鍵、公開鍵をご用意ください。
リモートスキャンでは、事前に一度、 スキャナサーバからスキャン対象サーバに対して手動でSSH接続してください。 スキャン対象サーバのホストフィンガープリントをSSHのknown_hostsに登録するためです。
リモートのサーバをスキャンする場合は、以下のとおりコンフィグファイルに設定を追加します。
$ vi /opt/vuls-saas/config.toml
[servers]
[servers.localhost]
host = "localhost"
port = "local"
# ↑↑ ローカルスキャンの設定はインストーラにより自動設定されます ↑↑
# ↓↓ スキャン対象サーバの設定をお使いの環境に合わせて追記します ↓↓
# ex)
[servers.<サーバ名>]
user = "vuls-saas" ←<リモートログインに使用するユーザ名>
host = "192.168.0.100" ←<リモートログイン先サーバ:IPアドレスまたは名前解決できるサーバ名>
port = "22" ←<リモートログイン先のポート番号>
keyPath = "/opt/vuls-saas/vuls-saas.pem" ←<秘密鍵の配置場所>
~~~~
keyPathにはスキャン対象サーバのSSH秘密鍵を指定します。 重複する内容は「default」に記載することで省略できます。
[default]
#port = "22"
#user = "username"
#keyPath = "/home/username/.ssh/id_rsa"
以下のようにスキャン対象サーバを複数定義します。 UUIDは定義されていなければreport時に自動生成されます。
[default]
port = "22"
keyPath = "/home/vuls-saas/.ssh/stg.pem"
scanMode = ["fast-root"]
[servers]
[servers.ama2]
user = "ec2-user"
host = "13.113.92.xx"
[servers.ama2.uuids]
ama2 = "xxxxxxxxxxxxxxxxxxxxxxxxx"
[servers.dev]
user = "ubuntu"
host = "54.248.62.xx"
[servers.dev.uuids]
dev = "zzzzzzzzzzzzzzzzzzzzzzzzzz"
自分でUUIDを指定する場合はconfig.toml内で他に定義しているものとの重複に注意してください。 FutureVulsではサーバの識別はUUIDを用いて識別するという仕様です。 定義ミスによりUUIDが同じ場合は同じサーバとして認識されますのでご注意ください。
設定ファイル内にCIDRレンジを指定することで、範囲内の全てのサーバに対してリモートスキャンが可能です。 以下のように定義します。
[default]
port = "22"
scanMode = ["fast-root"]
[servers]
[servers.testNW-target]
user = "ec2-user"
host = "192.168.0.60/31"
keyPath = "/home/vuls-saas/.ssh/auth.pem"
スキャンが実行されると、スキャナは指定した範囲内の全てのIPアドレスに対しリモートスキャンを試み、成功すると各サーバごとの設定情報で上書きします。
[default]
port = "22"
scanMode = ["fast-root"]
[servers]
[servers."testNW-target(192.168.0.60)"]
user = "ec2-user"
host = "192.168.0.60"
keyPath = "/home/vuls-saas/.ssh/auth.pem"
[servers."testNW-target(192.168.0.60)".uuids]
"testNW-target(192.168.0.60)" = "bab806a2-59b7-628f-ff6b-c620df7191ca"
[servers."testNW-target(192.168.0.61)"]
user = "ec2-user"
host = "192.168.0.61"
keyPath = "/home/vuls-saas/.ssh/auth.pem"
[servers."testNW-target(192.168.0.61)".uuids]
"testNW-target(192.168.0.61)" = "dbad42bd-f045-5485-1189-f6a6e4d09a01"
2回目以降のスキャンでは、設定ファイルに記載の情報を基に、各サーバへリモートスキャンが実行されます。
/opt/vuls-saas/config.toml
)を直接編集し、元のUUIDに戻してください$ su - vuls-saas
$ cd /opt/vuls-saas
$ cp vuls-saas.sh vuls-saas.sh.bak
$ vim vuls-saas.sh
$ diff vuls-saas.sh*
diff vuls-saas.sh*
16c16
< ./vuls scan -ips ${@} > scan.log 2>&1
---
> ./vuls scan -ips > scan.log 2>&1
./vuls-saas.sh dev
./vuls-saas.sh dev ama2
./vuls-saas.sh