tenable.ioでコンテナイメージの脆弱性診断をしてみた

SaaSで利用できる脆弱性診断のサービスのtenable.ioについてのエントリです。 今回はコンテナに存在するリスクを包括的に調査して、 展開前の対処を実現するソリューションである「Container Security」を検証してみたいと思います。
2018.09.09

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

こんにちは、坂巻です。

SaaSで利用できる脆弱性診断のサービスのtenable.ioについてのエントリです。
今回はコンテナに存在するリスクを包括的に調査して、 展開前の対処を実現するソリューションである「Container Security」を検証してみたいと思います。

「Container Security」のライセンスは、 検査対象となるコンテナイメージの総容量にもとづいた、ライセンス体系を採⽤しているようです。 (ライセンスの詳細については確認中なので、別途ブログにしたいと思います。)

コンテナイメージをtenable.ioのリポジトリにPUSHするだけで、 簡単に脆弱性診断を行うことができるようなので、脆弱性診断までの手順にポイントを絞り、紹介したいと思います。

目次

  • 前提
  • コンテナイメージのインポート
  • 脆弱性診断の結果確認

前提

  • tenable.ioアカウントが取得済みであること
    • アカウントがない場合はコチラよりトライアルアカウントの作成が可能です
    • トライアルアカウントはtenable.ioの全ての機能が利用できます
  • 脆弱性診断対象のコンテナイメージが作成済みであること
    • 今回はAmazon Elastic Container Registry(以下、ECR)に格納しているイメージを利用します
    • ベースにしたコンテナイメージはDocker Hubのvulnerables/web-dvwaです

コンテナイメージのインポート

tenable.ioの管理画面にログインし[Container Security]をクリックします。

2

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

3

脆弱性診断を行いたい(Container SecurityにPushする)、コンテナイメージが格納されたリポジトリの情報を入力します。 本エントリではECRを利用していますので、ECRの情報を入力します。

4

  • DATA SOURCE…AWS Elastic Container Registry
  • URL…xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com
    • xxxxxxxxxxxxはAWSアカウントID
  • PORT…443
  • USER NAME…AWS
  • PASSWORD…ECRのログインパスワード
    • コマンド[aws ecr get-login --no-include-email --region ap-northeast-1]等で確認可能です

「Import」をクリックし、「Successfully imported the connector」が出力されることを確認します。

5

これだけで脆弱性診断を行うことができます。 コンテナイメージのサイズによりますが、診断にかかる時間は約30秒程で診断結果が表示されます。

脆弱性診断の結果確認

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

6

インポートしたコンテナイメージ(web-dvwa)をクリックします。

7

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

8

検出された脆弱性が出力されました。 任意の脆弱性(CVE-2017-18013)をクリックします。

9

任意の脆弱性(CVE-2017-18013)の詳細が確認できました。

10

最後に

少ない手順でコンテナイメージの脆弱性診断を行うことができました。 CI/CDシステムと統合することもできるようなので、CI/CDの中で脆弱性診断も行えそうです。

ちなみに「Container Security」等の、tenable.ioのダッシュボードは継続してカスタマイズしているそうなので、アップデートが楽しみですね!

参考