FutureVulsとDeepSecurityを連携してみた

2019.11.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

おはようございます、もきゅりんです。

今回は下記をやってみました。

外部連携 DEEPSECURITY

FutureVulsとDeep Security as a Service(以下、DSaaS)と連携することで以下のことが可能となります。

  • FutureVulsで検知した実際に潜在するCVE-IDのリストを元に、DSaaSのAPIを叩き潜在するCVE-IDに該当するDSaaSの侵入防御ポリシーを自動生成
  • DSaaSで管理しているサーバの侵入防御のステータスを見て、FutureVulsのステータスに反映 (自動生成したポリシー以外も有効)

DSaaSの侵入防御ルールにあるもので、かつFutureVulsで脆弱性診断で抽出されたCVEのポリシーを自動生成してルール設定できます。

FutureVulsとDSaaSとでカバーする脆弱性に対する優先度や影響度を測るアルゴリズムは当然異なるので、両者を併用することで、さらに強固なセキュリティ対策を(自動で)設定することができますね。

ということで、早速設定してみます。

目次

前提

前提条件は以下となります。

  • DSaaSのアカウントがあり、基本的なポリシーを作成済み
  • FutureVulsのアカウントを作成し、オーガニゼーションとグループは作成済み

それぞれ下記ブログを参考にするとよいと思います。

DeepSecurity実践塾で学んだポリシー設計の基本をまとめてみた

脆弱性管理ツールFutureVulsを利用した脆弱性診断手順

1. FutureVulsとDSaaSを連携する

上記マニュアル通りなのですが、進めていきます。

まずはDSaaS上で、FutureVuls用の「役割」を作成します。 *1

役割は、Deep Security Manager内でデータを表示したり、処理を実行したりするための権限の集まりとなります。各ユーザには役割が割り当てられます。詳しくはユーザロールの定義を参照してください。

ユーザロールの定義

「管理」 > 「役割」 > 「一般」タブで「WebサービスAPIへのアクセスを許可」のみチェック

role1

「コンピュータの権限」タブで「編集」にチェック

role2

「ポリシーの権限」タブで「編集」にチェック、「ポリシーの作成」をチェック

role3

次に、「管理」 > 「ユーザー管理」 > 「APIキー」からFutureVuls用のAPIトークンを発行します。 発行されたキーは控えましょう。FutureVulsの外部連携連携画面で使用します。

  • 名前: 任意
  • 役割: 先ほど作成した役割

role4

最後に「管理」 > 「ユーザー管理」 > 「ユーザー」からFutureVuls用のユーザーを作成します。

  • ユーザー名: 任意
  • パスワード: 任意
  • 役割: 先ほど作成した役割

user

これでDSaaS側の設定が完了です。

FutureVulsの外部連携タブからDeep Securityのアカウント名を入力して、「保存」ボタンを押下します。 入力画面に「テナント名」と書いてますが、テナントIDではなく、「アカウント名」なので注意して下さい。(DSaaS管理画面のユーザー名(メールアドレス)の左側)

integ

成功すると緑のチェックが付きます。

integ success

これで連携が完了しました。

今回は、検証用に脆弱性を検出させたいので、旧バージョンのAMI(ami-df470ede)を利用してみます。

スキャン対象のサーバはインターネットへの接続が必要です。

2. FutureVulsの設定

FutureVulsをインストールする & サーバタブで確認

まずは、FutureVulsのスキャナをインストールします。

Root権限で実行することに注意です。

install.sh

DSaaS上で同じポリシーとして管理したい単位でサーバロールを作成してサーバに割り当てる

FutureVulsにて、DSaaS上で同じポリシーとして管理したい単位でサーバロールを作成します。 たとえば、今回DSaaSで使用するポリシーをDemoPolicyであるとして、DemoPolicyロールを作成します。

futurevuls role

次にサーバに先ほど作成したロールを設定します。

demopolicy role

3. DSaaSの設定

「[Vuls] {サーバのロール名}」の形式でポリシーを作成する

DSaaS上で、[Vuls] {サーバのロール名}の形式でポリシーを作成する、または名前を変更します。FutureVulsはこの命名規則でポリシーを自動作成/更新します。

今回は[Vuls] DemoPolicyを新規作成します。 継承元はDemoPolicyです。(継承なしの新規作成でも設定に問題ありません)

  • 既存のコンピュータの現在の設定を、このポリシーのベースにしますか?: いいえ

dsaas role

このときに、ポリシーの「設定 > 一般 > 推奨設定」にて「推奨設定の継続的な検索を実行」を「はい」か「いいえ」に設定してください。を確認することに注意して下さい!

どちらでもない場合、侵入防御の反映に失敗します。

important setting

DSaaSをインストールする

スクリプトをクリップボードに貼り付けてインストールします。

dsaas install

# クリップボードのスクリプトを貼り付けます
vi insatll.sh
# 実行権限を付与
chmod +x insatll.sh
# スクリプト実行
sudo ./insatll.sh

現在は、侵入防御のルールリストは何もありません。

no rule list

4. FutureVulsとDSaaSを紐付ける

手動スキャンをサーバで実行します。 (2回目以降は疑似サーバスキャンからの実行でもOK)

$ sudo -H -u vuls-saas /opt/vuls-saas/vuls-saas.sh

5. 両画面で、侵入防御ルールが反映されていることを確認

FutureVulsタスクタブから更新を確認します。

task list

そして、DSaaSのルールリストも確認します。こちらも設定されています。

dsaas list

うまく自動生成して設定できました。

最後に

今回は最初うまく設定することがなかなかできず、ご担当者の方に何度も親切に教えて頂きました。

Aさん、お時間頂きありがとうございました。

注意ですが、DSaaSにない侵入防御ルールについては、ポリシーを自動生成することは出来ません。 それらの対応はFutureVulsによって補うように設定しましょう。

以上です。

どなたかのお役に立てば幸いです。

参考:

脚注

  1. 現在、オンプレミスのDeepSecurityとの連携はできません。