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

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

  • ローカルスキャン

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

    • Linuxのみ対応しています(Windowsはローカルスキャンのみです)
    • スキャナプログラムをインストールしたサーバをスキャン実行サーバとし、同じネットワークに接続されたサーバへ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の場合 : コマンドプロンプト起動時に右クリックし「管理者として実行」から起動

install

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"

CIDRレンジを指定して範囲内のサーバを一斉にリモートスキャンする場合

設定ファイル内にCIDRレンジを指定することで、範囲内の全てのサーバに対してリモートスキャンが可能です。 以下のように定義します。

  • コンフィグファイルパス:/opt/vuls-saas/config.toml
[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/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 -ips ${@} > scan.log 2>&1
---
> ./vuls scan -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