Nessus Agentを利用した脆弱性診断

脆弱性診断に関するエントリです。今回はNessus Agentを利用して脆弱性診断を行い、Tenable.ioで実施結果を確認してみたいと思います。
2018.08.29

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

こんにちは、坂巻です。

脆弱性診断に関するエントリです。

今回はNessus Agentを利用して脆弱性診断を行い、
Tenable.ioで実施結果を確認してみたいと思います。

Nessus Agentの設計の考え方としては、外部ポートの設定を一切変更できないサーバ、ネットワークの接続/切断が頻繁でスケジュール実行のスキャンではデータが取得しにくいデバイスについては、ネットワークスキャンよりもNessus Agentを利用するようにしましょう。

Nessus Agentを利用した構成イメージについては、以下のエントリをご確認ください。

脆弱性診断ができるTenable.ioをAWSで利用するときの構成イメージについてまとめてみた

前提

本エントリは以下を前提として記載しております。

  • インターネット接続可能なEC2(脆弱性診断を行うEC2)が構築済みであること
  • Tenable.ioアカウントが作成済みであること
    • アカウントがない場合、コチラよりトライアルアカウントの作成が可能です

目次

  • はじめに
  • リンクキー取得
  • Nessus Agentダウンロード
  • Nessus Agentセットアップ
    • Nessus Agentインストール
    • Nessus Agentサービス起動
    • Tenable.ioにNessus Agentをリンク
    • リンクされたNessus Agentの確認
  • Agent Group作成
  • スキャン作成
  • スキャン実行
  • スキャン結果確認
  • さいごに

はじめに

Nessus Agentはサポート対象のOSが定められているので以下をご確認ください。

本エントリでは現時点でサポートされていてるAmazon Linux(2017.09)を利用します。

今後サポート予定はあるようですが、 現時点の最新イメージであるAmazon Linux AMI(2018.03.0)や、Amazon Linux 2はサポート対象外なのでご注意ください。

Nessus Agentsリンクキー取得

Tenable.ioにログインし[Scans]をクリックします。

1

[Agents]をクリックします。

2

[setup instructions]をクリックします。

3

ダイアログボックスが表示されるので、
Nessus Agentsのインストールの際に使用するhostportkeyを控えておきます。

4

本項目の公式マニュアルもあわせて記載しておきます。

Nessus Agentダウンロード

ダウンロードページで、 Nessus Agentを利用するオペレーティングシステム固有のパッケージをダウンロードします。今回はAmazon Linuxを利用しているので、NessusAgent-7.1.1-amzn.x86_64.rpmをダウンロードします。

5

ライセンス規約を確認し[I Agree]をクリックします。

6

ダウンロードが完了したら、インストールを行うEC2にアップロードします。

Nessus Agentセットアップ

Nessus Agentインストール

EC2にログインし、NessusAgent-7.1.1-amzn.x86_64.rpmを配置したディレクトリにて、sudo rpm -ivh NessusAgent-7.1.1-amzn.x86_64.rpmを実行します。

$ sudo rpm -ivh NessusAgent-7.1.1-amzn.x86_64.rpm
警告: NessusAgent-7.1.1-amzn.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 1c0c4a5d: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:NessusAgent-7.1.1-amzn           ################################# [100%]
 - You must first start Nessus Agent by typing /sbin/service nessusagent start
 - To link this agent to the Nessus Manager, use the '/opt/nessus_agent/sbin/nessuscli agent' command.
   Type '/opt/nessus_agent/sbin/nessuscli agent help' for more info.

Nessus Agentサービス起動

sudo /sbin/service nessusagent startを実行します。

$ sudo /sbin/service nessusagent start
Starting Nessus Agent services:                            [  OK  ]

Tenable.ioにNessus Agentをリンク

sudo /opt/nessus_agent/sbin/nessuscli agent linkを実行します。
引数に先程控えたhostportkeyを指定します。

$ sudo /opt/nessus_agent/sbin/nessuscli agent link \
> --host=cloud.tenable.com \
> --port=443 \
> --key=XXXXXXXXXXXXXXXXXXXXXXXX
[info] [agent] HostTag::getUnix: setting TAG value to '68d9d5202ee9462480eea304905ec0a1'
[info] [agent] Successfully linked to cloud.tenable.com:443

リンクされたNessus Agentの確認

Tenable.ioにログインし[Scans]をクリックします。

7

[Agents]をクリックします。

8

正常にリンクが実施されていれば、Agentが表示されます。

9

本項目の公式マニュアルもあわせて記載しておきます。

Agent Group作成

Tenable.ioの[Agents]より、[Agent Groups]をクリックします。

10

[New Group]をクリックします。

11

任意のグループ名を付け、 [Add Members]をクリック後に対象のEC2を選択し[Save]をクリックします。

12

本項目の公式マニュアルもあわせて記載しておきます。

スキャン作成

Tenable.ioの[Scans]より、[New Scan]をクリックします。

13

[Agent]をクリックします。

14

使用するスキャンテンプレートをクリックします。
今回は[Basic Agent Scan]を利用します。

15

Nessus Agentで利用できるスキャンテンプレートについては以下を確認ください。

ここでは、以下を設定し[Save]をクリックします。

  • Name(スキャン名)…Test Basic Agent Scan
  • Agent Groups(スキャンする対象のエージェントグループ)…Amazon Linux

16

今回は設定しませんが、スケジュールで動かす事も可能です。
設定の詳細については以下を確認ください。

本項目の公式マニュアルもあわせて記載しておきます。

スキャン実行

[My Scans]ページにて[Launch]をクリックします。

17

なお、スケジュール実行時にNessus Agentがオフラインでも、オンラインになったタイミングでスキャンが実行されます。Nessus Agentsの起動/停止コマンドについては以下を確認ください。

対象のスキャンをクリックすると、状態を確認することができます。
Scan StatusRunningとなっており、スキャンが開始されている事がわかります。

18

スキャン結果確認

スキャンが終了するとComletedが表示されます。
スキャン名をクリックすることで結果を確認することができます。

22

重要度毎に結果が表示されます。

19

結果の棒グラフをクリックすると、スキャン結果の一覧が表示されます。

20

一覧に表示されたレコードを表示すると、詳細を確認することができます。

23

さいごに

Nessus Agentをインストールしてスキャンを実施してみました。今回はスキャンテンプレートにBasic Agent Scanを利用しましたが、次回は別のスキャンテンプレートを利用しTenable.ioで行えるスキャンについて検証してみたいと思います。