ちょっと話題の記事

Tenable.ioを使って脆弱性診断を15分で試してみた

AWS Marketplaceに公開されているNessusScannerを利用すれば、AWS事前承認済みのため、すぐに脆弱性診断を行うことができます! 本エントリは15分位で試せると思いますのでTenable.ioに触ったことがない方はぜひやってみてください。
2018.07.01

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

こんにちは、坂巻です。

Tenable.ioを利用した脆弱性診断に関するエントリです。

AWSの適正利用規約では、許可のない脆弱性診断等は禁止されており、事前に申請が必要となります。AWSへ申請を行ってから、許可まで時間がかかりますので余裕をもった対応が必要となります。

時間をかけずに脆弱性診断を行いたいと思った事はありませんか?

AWS Marketplaceに公開されているNessusScannerを利用すれば、AWS事前承認済みのため、すぐに脆弱性診断を行うことができます! 本エントリは15分位で試せると思いますのでTenable.ioに触ったことがない方はぜひやってみてください。

スキャン結果はTenable.ioにアップロードされ、そちらから確認することになりますので、Tenable.ioのアカウントが必要になります。アカウントがない場合はこちらよりトライアルアカウントを作成してください。

目次

  • Tenable.IOにてLinking Keyを入手
  • NessusScannerインスタンス作成
  • Basic Network Scan作成/実施
  • さいごに

Linking Key取得

Tenable.IOの管理画面にログインし[Scans]-[Scanners]をクリックします。

1

[Linked Scanners]タブのLinking Keyをコピーします。
コピーしたLinking Keyは、次項のNessusスキャナインスタンス作成時に使用します。

2

NessusScannerインスタンス作成

NessusScannerインスタンス(EC2)を作成します。
EC2作成画面より、[AWS Marketplace]をクリックします。

7

検索ボックスにTenableを入力し、
検索結果に表示された[Nessus Scanner (Pre-Authorized)]の[選択]をクリックします。

8

料金設定等の情報が表示されます。[Continue]をクリックします。

9

選択可能なインスタンスタイプが予め絞りこまれています。任意のインスタンスタイプを選択して[インスタンス詳細の設定]をクリックします。今回は、動作検証を目的としているため、[t2.medium]を選択しましたが、パフォーマンスを重視する場合は[m4.large]インスタンス以上が推奨されています。

10

インターネット接続可能なネットワーク、サブネットを指定し、パブリックIPを有効化します。 IAMロールはAmazonEC2ReadOnlyAccessポリシーがアタッチされているロールを指定してください。

11

ユーザデータを入力し[ストレージの追加]をクリックします。

12

{
"name": "AWS_Scanner",
"key": "d92a78e1177ff9ead79176b34c5de936ce00f0a7.......",
"iam_role": "TenableIO"
}
  • name…作成するスキャナの名前。Tenable.ioで表示されます。
  • iam_role…スキャナインスタンスに割り当てられたIAMロール名。
  • key…「Tenable.IOにてLinking Keyを入手」でコピーしたLinking Key

[サイズ]を入力し、[タグの追加]をクリックします。サイズの最小要件は30GiBとなりますので、それ以上のサイズを指定してください。

13

タグを設定し[セキュリティグループの設定]をクリックします。

14

[新しいセキュリティグループを作成する]を選択し、[セキュリティグループ名]、[説明]を入力します。ここでは、NessusScannerインスタンスへのリモート接続は行わないため、ルールを削除しています。

15

設定内容を確認し[作成]をクリックします。

16

[キーペアなしで続行]を選択し[インスタンスの作成]をクリックします。

17

作成したインスタンスが起動していることを確認します。

18

Basic Network Scan作成/実施

[Scan]-[Scanners]をクリックします。 19

前項で作成したScanner(AWS_Scanner)がOnlineであることを確認し[Scans]をクリックします。Scannerが表示されるまでに数分程度かかる場合があります。

20

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

21

[Basic Network Scan]をクリックします。

22

Scan情報を入力し[Targets]をクリックします。

  • Name…スキャン設定の名称。
  • Description…スキャン設定の説明。
  • Folder…スキャン結果を格納するフォルダ。
  • Scanner…スキャンで使用するスキャナ。ここではAWS_Scanner。

23

スキャン対象のインスタンスを選択し[Credentials]をクリックします。

25

ターゲットに表示されるインスタンスは、NessusScannerインスタンスから接続できる必要があります。スキャンを行いたいインスタンスのセキュリティグループに以下の設定をしてください。

タイプ プロトコル ポート範囲 ソース
すべての TCP TCP 0 - 65535 sg-cc8bxxxx(※)  
すべての UDP UDP 0 - 65535 sg-cc8bxxxx(※) 
すべての ICMP ICMP 0 - 65535 sg-cc8bxxxx(※) 

※ NessusScannerインスタンスに設定したセキュリティグループを指定

[SSH]を選択し、スキャン対象インスタンスのSSH情報を入力し[Save]をクリックします。

26

作成したスキャナを選択し[Launch]をクリックします。

27

[Scan Status]がRunningとなり、スキャンが開始されます。

28

[Scan Status]がCompletedになったことを確認して[Assetes]をクリックします。

33

スキャン結果が表示されます。
今回はターゲットインスタンスに指定したEC2は、過去バージョンのAMI(amzn-ami-vpc-nat-hvm-2015.03.0.x86_64-ebs)を利用していたので、がっつりリスクが表示されました。続いて[Vlulnerablities]をクリックします。

32

ここではリスクの一覧が表示されます。どんな脆弱性があってどの程度のリスクなのかが一覧で表示されます。各リスクをクリックすることで詳細な情報が確認できます。

34

脆弱性の詳細と対応が表示されますので、内容を確認して対処することになるでしょう。

35

さいごに

AWS事前承認済みのスキャンのため、EC2インスタンス構築し、Tenable.ioを少々設定するだけで脆弱性診断が実施できました。さくっと診断できるので、まず試してみてはいかがでしょうか。

Tenable.ioついてのエントリは以下もありますので、あわせてご確認ください。

Tenable.ioのBasic Network Scanを実施してみた

参考サイト