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

こんにちは、坂巻です。

最近、弊社セキュリティチームにJOINしました。
そんなことから、本日はtenable.ioを使用し、EC2に対して脆弱性診断を実施してみたいと思います。


本エントリで実施しているクラウドスキャナは、AWSへの申請が必要となります。 なお、Market placeの事前承認済みのスキャナを利用する場合は申請不要となります。

目次

  • tenable.ioとは
  • 事前準備
  • Basic Network Scanを試してみた
  • さいごに

tenable.ioとは

クラウドの脆弱性診断を行うサービスで、現在、以下の診断が実施可能です。

  • Vulnerability Management
    • 現代の動的な資産向けとしては初の脆弱性管理ソリューションにより、セキュリティ上のリスクに対する実用的な分析情報を示し、取り組むべき着目点を提示します
  • Container Security
    • ウェブアプリケーションを安全かつ正確に自動スキャンすることにより、脆弱性を奥深くまで可視化し、修正の優先順位を定めるのに役立つ貴重なコンテキスト情報を提供します
  • Web Applications
    • ビルドプロセスと統合することにより、コンテナイメージのセキュリティ(脆弱性、マルウェア、ポリシー違反など)を可視化し、シームレスかつ安全なDevOpsプロセスを実現します

本エントリでは「Vulnerability Management」を利用したスキャンを実施してみたいと思います。

事前準備

  • トライアアルアカウント作成
    • Tenable.ioを試すより、60日間の無料のトライアルアカウントを作成しました。
  • スキャン対象EC2の作成
    • 今回は過去バージョンのAMI(amzn-ami-vpc-nat-hvm-2015.03.0.x86_64-ebs)を利用してEC2インスタンスを構築しました。
    • tenable.ioのスキャンサーバからアクセスが行われるので、About Scannersを参考にセキュリティグループを設定しました。

Basic Network Scanを試してみた

tenable.ioの管理画面にログインし「Vulnerability Management」-「Scans」を選択します。

1

「New Scan」をクリックします。

2

スキャン中に実行されるアクション(ポリシー)が定義された、テンプレートを選択します。
今回は「Basic Network Scan」テンプレートにて、内部脆弱性スキャンを実行したいと思います。

その他、テンプレートについては以下を参照してください。

「Basic Network Scan」をクリックします。

3

「Name」に任意のスキャン名を入力し、
「Targets」には事前準備したEC2の外部IPを設定し「Credentials」をクリックします。

4

「SSH」をクリックします。

5

「Username」にEC2のログインユーザを設定し、
「Private Key」には秘密鍵を指定し「Save」をクリックします。

6

「Launch」をクリックしてスキャンを開始します。

7

スキャンが開始されると「Scan Status」が”Running”になります。

8

スキャンが終了すると、以下のような結果が出力されました。
古いAMIを利用しただけあって、多くのアラートが出力されました。

9

実際のアラートを確認してみたいと思います。
「Vulenerabilities」をクリックします。

10

アラートの詳細を確認します。
ここでは「HIGHAmazon Linux AMI : bash (ALAS-2017-878)」を選択します。

11

脆弱性の詳細が表示され「Description」にはCVEのケース番号(CVE-2016-9401)も表示されています。「Solution」には、脆弱性を解決するためのコマンドが出力されました。

12

実際に対応を行い、アラートがなくなることを確認してみたいと思います。
「Solution」に表示されたsudo yum update bashを実行します。

$ sudo yum update bash
読み込んだプラグイン:priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                                  | 2.1 kB     00:00
amzn-updates/latest                                                                                               | 2.5 kB     00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ bash.x86_64 0:4.1.2-15.24.amzn1 を 更新
---> パッケージ bash.x86_64 0:4.2.46-28.37.amzn1 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

=========================================================================================================================================
 Package                    アーキテクチャー             バージョン                                リポジトリー                     容量
=========================================================================================================================================
更新します:
 bash                       x86_64                       4.2.46-28.37.amzn1                        amzn-main                       1.4 M

トランザクションの要約
=========================================================================================================================================
更新  1 パッケージ

総ダウンロード容量: 1.4 M
Is this ok [y/d/N]: y
Downloading packages:
bash-4.2.46-28.37.amzn1.x86_64.rpm                                                                                | 1.4 MB     00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : bash-4.2.46-28.37.amzn1.x86_64                                                                           1/2
  整理中                  : bash-4.1.2-15.24.amzn1.x86_64                                                                            2/2
  検証中                  : bash-4.2.46-28.37.amzn1.x86_64                                                                           1/2
  検証中                  : bash-4.1.2-15.24.amzn1.x86_64                                                                            2/2

更新:
  bash.x86_64 0:4.2.46-28.37.amzn1

完了しました!
[ec2-user@ip-172-16-0-159 ~]$

再度チェックを行い、アラートが解消されることを確認したいと思います。

13

先程の診断結果と比べ、一件アラートが減っていることが確認できました。

14

さいごに

はじめてtenable.ioを触れましたが、
エージェントレスで手軽に設定が行え、すぐに使用できることがわかりました。
診断結果には脆弱性を解決するためのコマンドが表示され、脆弱性の解決もすぐに行えそうです。
他にもたくさん機能があるようなので、これからも触っていきたいと思います。
日本語化が待ち遠しい!