コンテナセキュリティ リスクと対策

コンテナホスト/ビルドパイプライン

今回は前回のコラムに続いて、コンテナ環境のセキュリティを考える際のポイントを説明していこうと思います。

コンテナセキュリティの6ポイント(前回から再掲)

コンテナ環境のセキュリティを考える際に重要となるのが「コンテナ特有のライフサイクル」を踏まえた対策ができるかどうかです。 コンテナ環境はサーバ、ネットワーク、ホストOS、コンテナで動作するアプリケーションだけで成立するものではなく、コンテナイメージ、レジストリ、オーケストレーションツール、コンテナランタイムなど、コンテナのライフサイクルにおいて特有の登場人物があり、これらを考慮したセキュリティ設計が求められるのです。コンテナ環境のセキュリティを考えるうえで踏まえておくべきポイントは下記の6つに分類できます。

① 安全なコンテナイメージを利用
② コンテナレジストリの保護
③ オーケストレーションツールの保護
④ アプリケーション、ネットワークの保護
⑤ コンテナホストの保護
⑥ ビルドパイプラインの保護

今回は上記の⑤と⑥についてご説明差し上げます。

コンテナのライフサイクルとセキュリティのポイント

図1 : コンテナのライフサイクルとセキュリティのポイント

⑤コンテナホストの保護

 一言で「コンテナを利用する」と言っても、コンテナエンジンやコンテナイメージを用意すればそれでどこでも稼働できるわけではありません。コンテナは仮想化システムの一種であり、あくまでサーバ上で稼働させることができる仮想化環境です。例えばDockerは多くの場合、Linux OS(Windowsもありますが、よく聞く環境はLinuxで構築されています)の上に構築されており、これをユーザ社内のデータセンターやサーバルームで構築・運用するというケースや、AWSやMicrosoft Azure、Google Cloud Platformなどでマネージドサービスとして利用するケースもあるでしょう。特にクラウドベンダーのマネージドサービスを利用していると存在を忘れてしまいがちなのが、ホスト部分です。もちろん多くのマネージドサービスの場合は、クラウドベンダーがこの部分のセキュリティを実施してくれるわけですが、自前でサーバを構築してコンテナ環境を作り上げる場合や、一部のマネージドサービスにおいて、利用開始後はサーバレイヤーもユーザの責任範囲とするサービスもあります(Amazon ECSでEC2タイプを選択した場合など)。
 この時は「コンテナ環境の保護」だけではなく、このシステムを「サーバ」としてとらえ、サーバ特有のセキュリティを施す必要が出てきます。
 サーバセキュリティといえば、OSのアップデート、コンテナエンジンと同時に稼働しているアプリケーションのアップデートなど、システムの脆弱性対策が重要になってきます。これが一つ目の肝です。また、サーバに対する攻撃方法は多種多様で、それに対する防御も多層の網を張っておく必要があります。サーバセキュリティの肝の2つめは、複数の保護機能を使い、一連の攻撃をどこかで食い止めるという発想で多層防御を仕組むことです。
 クラウド環境上の仮想サーバのセキュリティについてはこちらのWebinarをご覧ください。AWSを題材にしていますが、クラウド環境においてはいずれも同様のことが言えます。考えておくべきセキュリティやトレンドマイクロがこのエリアでご支援できるサービスについて、紹介しています。
 今一度、皆さまがご利用されようとしているコンテナサービスのセキュリティ責任分解点のご確認をおすすめいたします。何か不穏な動作があってから「あれ、サーバレイヤーってユーザの責任範囲だったの?」という事態がないようにしていただければと思います。

⑥ビルドパイプラインの保護

 コンテナイメージを作って、これをデプロイしてコンテナ環境として稼働させる――この一連の流れをビルドパイプラインと言います。ビルドパイプラインにおいては、その途中の開発フロー(テストなど)を自動化するためのツールを利用することがあります。Jenkinsなどが有名ですね。こういったものを利用してできる限りマニュアルの運用をなくすことこそが、コンテナ環境を効率よく運用する「鍵」であり、DX(Digital Transformation)を実現するためには非常に重要です。ところがこういったツールもいわゆるアプリケーションであり、脆弱性が存在します。DockerやサーバOSのように必須のものではないため、対策が抜けがちですが、こういったツールのセキュリティも考えておく必要があります。実際に過去、Jenkinsプラグインの脆弱性が発覚し、情報漏えいの恐れがあると報告されたケースがあります。詳しくはこちらをご覧ください。
 また、コンテナ環境を操作する担当者のPCや関連するデバイスなどのセキュリティもビルドパイプラインの保護においては重要です。実はこれを「コンテナセキュリティ」として括って説明してもよいものか、これを書いている最中、非常に考えました。コンテナ特有のものでもなく、コンテナが動作する土台となるサーバの話でもないからです。しかし、コンテナ環境のリスクを考えたときには「コンテナを侵害しえるものは何か?」を考えます。その時にはコンテナを管理運用する担当者のデバイスもこれに該当するわけです。もちろん、AWSなどのクラウドを利用してコンテナを使う場合には、クラウドアカウントの管理・適切な運用、アクセス権の最適化なども重要になってくるでしょう。

 以上、3回にわたって、コンテナ環境のセキュリティリスクと対策についてお話しをしてまいりました。コンテナセキュリティについては近年、弊社に限らず各セキュリティベンダーさんからの情報発信も増え、NISTもガイドラインを提供していることから徐々に認識が広まってきていると思います。
今回はトレンドマイクロとして考える切り口・分類方法でコンテナセキュリティを、簡単にではありますが解説してきました。今後、コンテナ市場がもっと拡大してくれば、私が説明してきたような切り口以外のコンテナセキュリティの解説も登場してくるだろうと思っています。しかし、やるべきこと・その本質は変わらないはずです。ぜひ、コンテナ環境全体を俯瞰してみていただき、セキュリティの抜け漏れが発生している箇所はないか、ご確認いただきながら、非常に便利なツールであるコンテナをご利用いただければと思います。

トレンドマイクロ株式会社
ビジネスマーケティング本部
クラウドビジネス&アライアンスグループ
グループ長 マネージャー
福田 俊介

Trend Micro Cloud One・Deep Securityのプロダクトマーケティングおよび、クラウドセキュリティマーケティングに従事。クラウドセキュリティのエキスパートとしてお客さまの情報資産を守るため、各種セミナー・講演などでセキュリティの重要性を説く。