ローカル・リモートスキャン

FutureVulsでサーバの脆弱性をスキャンするためには、スキャナプログラムのインストールが必要です。
FutureVulsでは、2種類のモードを備えております。

  • ローカルスキャンモード

    • スキャナプログラムをインストールしたサーバ自身のみスキャンを行います。
    • インストーラはデフォルトではローカルスキャンモードに設定します。
    • ローカルスキャンモードではSSHによるログイン設定は不要です。
  • リモートスキャンモード (Linuxのみ)

    • スキャナプログラムをインストールしたサーバをスキャン実行サーバとし、同じネットワークに接続されたサーバへSSHログインしてスキャンを行います。
    • コンフィグファイルへ設定を追加することにより、各サーバへスキャナプログラムをインストールすることなくスキャンが行えます。
    • スキャン対象サーバへSSHでログインするため、スキャン実行サーバからリモートログイン可能なユーザアカウントが必要です。

ローカルスキャンモード

1. グループ管理者権限を持つユーザでFutureVulsへログインしたあと、右上にあるアイコンをクリックし「グループ設定」へアクセスしてください。

2. 左のリストから「スキャナ」をクリックします。インストール用コマンドが表示されるため、それをコピーします。

3. スキャナプログラムのインストールを行うサーバ上で「2.」でコピーしたコマンドを実行します。このとき以下のように特権を持ったユーザで実行してください。

  • Linuxの場合 : 「root権限」を付与されたユーザでログイン

以下のメッセージが出力された場合は、root権限を付与されたユーザにスイッチし再実行してください。

2017/11/08 06:04:19 [START      ]:      chkRootUser
2017/11/08 06:04:19 [ERROR      ]:      Please run as root user.
  • Windowsの場合 : コマンドプロンプト起動時に右クリックし「管理者として実行」から起動

4.インストール後、定期実行が行われると自動的にスキャンが行われ、スキャン結果がFutureVulsへアップロードされます。

リモートスキャンモード (Linuxのみ)

リモートスキャンモードの設定方法を説明します。 スキャナをセットアップしたサーバを「スキャナサーバ」、 脆弱性スキャン対象のサーバを「スキャン対象サーバ」と記載します。

スキャン対象サーバ上での準備

リモートスキャンモードでは、スキャン対象サーバ上にて下記の設定が必要です.

ローカルスキャンモードでは上記をインストーラが自動で設定してくれますが、リモートスキャンモードの場合は手動での設定が必要となります。

スキャナのインストール

スキャナサーバに上記ローカルスキャンモードの手順のとおり、スキャナプログラムを導入します。

FutureVulsではリモートサーバのスキャンを行う際は、RSA公開鍵認証によるSSHログインを行います(パスワード認証には対応しておりません)。 リモートサーバにログインできるユーザと秘密鍵、公開鍵をご用意ください。

コンフィグファイルの修正

リモートのサーバをスキャンする場合は、以下のとおりコンフィグファイルに設定を追加します。

  • コンフィグファイルパス:/opt/vuls-saas/config.toml
$ 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時に自動生成されます。

  • コンフィグファイルパス:/opt/vuls-saas/config.toml
[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"

特定のサーバを指定してリモートスキャンする方法

  • /opt/vuls-saas/vuls-saas.sh を以下のように変更します。
$ 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 -debug -ips ${@} > scan.log 2>&1
---
> ./vuls scan -debug -ips > scan.log 2>&1
  • 特定サーバのスキャンを実行(前セクションの ama2, devの2台が定義されているものとする)
$ ./vuls-saas.sh dev
  • 複数スキャンする場合はスペース区切りでサーバ名(config.toml内の [servers.xxx]のxxx)を指定
$ ./vuls-saas.sh dev ama2
  • config.tomlに定義されている全サーバをスキャンする場合
$ ./vuls-saas.sh