Nessus Agentを利用した脆弱性診断
こんにちは、坂巻です。
脆弱性診断に関するエントリです。
今回はNessus Agentを利用して脆弱性診断を行い、
Tenable.ioで実施結果を確認してみたいと思います。
Nessus Agentの設計の考え方としては、外部ポートの設定を一切変更できないサーバ、ネットワークの接続/切断が頻繁でスケジュール実行のスキャンではデータが取得しにくいデバイスについては、ネットワークスキャンよりもNessus Agentを利用するようにしましょう。
Nessus Agentを利用した構成イメージについては、以下のエントリをご確認ください。
前提
本エントリは以下を前提として記載しております。
- インターネット接続可能な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]をクリックします。
[Agents]をクリックします。
[setup instructions]をクリックします。
ダイアログボックスが表示されるので、
Nessus Agentsのインストールの際に使用するhost
、port
、key
を控えておきます。
本項目の公式マニュアルもあわせて記載しておきます。
Nessus Agentダウンロード
ダウンロードページで、
Nessus Agentを利用するオペレーティングシステム固有のパッケージをダウンロードします。今回はAmazon Linuxを利用しているので、NessusAgent-7.1.1-amzn.x86_64.rpm
をダウンロードします。
ライセンス規約を確認し[I Agree]をクリックします。
ダウンロードが完了したら、インストールを行う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
を実行します。
引数に先程控えたhost
、port
、key
を指定します。
$ 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]をクリックします。
[Agents]をクリックします。
正常にリンクが実施されていれば、Agentが表示されます。
本項目の公式マニュアルもあわせて記載しておきます。
Agent Group作成
Tenable.ioの[Agents]より、[Agent Groups]をクリックします。
[New Group]をクリックします。
任意のグループ名を付け、 [Add Members]をクリック後に対象のEC2を選択し[Save]をクリックします。
本項目の公式マニュアルもあわせて記載しておきます。
スキャン作成
Tenable.ioの[Scans]より、[New Scan]をクリックします。
[Agent]をクリックします。
使用するスキャンテンプレートをクリックします。
今回は[Basic Agent Scan]を利用します。
Nessus Agentで利用できるスキャンテンプレートについては以下を確認ください。
ここでは、以下を設定し[Save]をクリックします。
- Name(スキャン名)…Test Basic Agent Scan
- Agent Groups(スキャンする対象のエージェントグループ)…Amazon Linux
今回は設定しませんが、スケジュールで動かす事も可能です。
設定の詳細については以下を確認ください。
本項目の公式マニュアルもあわせて記載しておきます。
スキャン実行
[My Scans]ページにて[Launch]をクリックします。
なお、スケジュール実行時にNessus Agentがオフラインでも、オンラインになったタイミングでスキャンが実行されます。Nessus Agentsの起動/停止コマンドについては以下を確認ください。
対象のスキャンをクリックすると、状態を確認することができます。
Scan Status
がRunning
となっており、スキャンが開始されている事がわかります。
スキャン結果確認
スキャンが終了するとComleted
が表示されます。
スキャン名をクリックすることで結果を確認することができます。
重要度毎に結果が表示されます。
結果の棒グラフをクリックすると、スキャン結果の一覧が表示されます。
一覧に表示されたレコードを表示すると、詳細を確認することができます。
さいごに
Nessus Agentをインストールしてスキャンを実施してみました。今回はスキャンテンプレートにBasic Agent Scanを利用しましたが、次回は別のスキャンテンプレートを利用しTenable.ioで行えるスキャンについて検証してみたいと思います。