コンテナセキュリティとは?

tball

コンテナセキュリティとは、インフラストラクチャ、ソフトウェアサプライチェーン、ランタイムを含め、コンテナ内のすべてが意図通りに動作することを保証するためのセキュリティツールとポリシーを導入するプロセスを指します。

コンテナセキュリティとは、インフラストラクチャ、ソフトウェアサプライチェーン、ランタイムを含め、コンテナ内のすべてが意図通りに動作することを保証するためのセキュリティツールとポリシーを導入するプロセスを指します。

コンテナのセキュリティ確保は継続的なプロセスです。開発プロセスへの統合と自動化によって手作業を削減し、その対象を基盤となるインフラストラクチャの保守・運用にまで拡張する必要があります。これは、ビルドパイプラインのコンテナイメージ、ランタイムホスト、プラットフォーム、アプリケーション層を保護することを意味します。継続的デリバリーのライフサイクルの一環としてセキュリティを実装することで、ビジネスにおけるリスクを軽減し、拡大し続けるアタックサーフェス(攻撃対象領域)の脆弱性を低減できます。

コンテナを保護する際の主な懸念事項は以下の通りです。

  • コンテナホストのセキュリティ
  • コンテナのネットワークトラフィック
  • コンテナ内のアプリケーションのセキュリティ
  • アプリケーション内の不正な動作
  • コンテナ管理スタックの保護
  • アプリケーションの基盤レイヤー
  • ビルドパイプラインの整合性
主な懸念事項の図解

サイバーセキュリティの目標は、構築したものが常に意図した通りに、かつ意図した通りにのみ機能することを保証することです。

コンテナの利用においてよく名前が挙がる主要なサービス/プラットフォームには、Docker®、Kubernetes®、AWS(Amazon Web Services™)、Microsoft®などがあります。

Dockerのセキュリティ

コンテナのセキュリティ対策を始めるにあたり、この分野の主要なプレイヤーを理解しておく必要があります。コンテナ化市場のリーダーであるDockerは、アプリケーションの構築、管理、保護のためのコンテナプラットフォームを提供しています。Dockerは、従来のアプリケーションから最新のマイクロサービスまで、あらゆる環境へのデプロイを可能にします。他のコンテナプラットフォームと同様に、適切な保護対策を講じる必要があります。Dockerコンテナのセキュリティについて、詳しくはこちらをご覧ください。

Kubernetesのセキュリティ

次に主要なプラットフォームとして挙げられるのがKubernetesです。Kubernetesは、コンテナ化されたワークロードとサービスを管理するための、移植性と拡張性に優れたオープンソースプラットフォームです。Kubernetesはセキュリティ機能も提供していますが、Kubernetesクラスタへの攻撃が増加しているため、セキュリティを維持するには専用のセキュリティソリューションが不可欠です。Kubernetesのセキュリティ対策について、詳しくはこちらをご覧ください。

AWS(Amazon Web Services)とコンテナセキュリティ

次にAWSを紹介します。AWSは、開発者が迅速かつ一貫したアプリケーション提供を実現する上でコンテナが不可欠であると位置づけています。そのため、Dockerコンテナをサポートするスケーラブルで高性能なコンテナオーケストレーションサービスであるAmazon ECS(Amazon Elastic Container Service)を提供しています。これにより、独自の仮想マシンやコンテナ環境を管理する必要なく、AWS上でコンテナ化されたアプリケーションを容易に実行・拡張できます。ただし、他の主要サービスと同様に、このサービスのメリットを最大限に享受するにはセキュリティ対策が不可欠です。AWSコンテナセキュリティの詳細については、こちらをご覧ください。

Microsoft Azure Container Instancesのセキュリティ

最後に紹介するのが、ACI(Microsoft® Azure™ Container Instances)です。このソリューションにより、開発者は基盤となるインフラストラクチャの実行・管理をすることなく、Microsoft® Azure™のパブリッククラウド上にコンテナを展開できます。Microsoft® Azure™ ポータルから新しいコンテナを起動するだけで、基盤となるコンピュータリソースのプロビジョニングとスケーリングはMicrosoftによって自動的に行われます。Azure Container Instancesは優れたスピードと俊敏性を提供しますが��そのメリットを最大限に享受するにはセキュリティ対策が必要です。Microsoft Azure Container Instancesのセキュリティ保護の詳細については、こちらをご覧ください。

次はこれらの主要なサービス/プラットフォームをどのように保護するかについて解説します。

ホストの保護

ホストの保護は、まずOSの選択から始まります。可能な限り、コンテナの実行に最適化された分散OSを使用すべきです。標準のLinux®ストックディストリビューションやMicrosoft® Windows®を使用している場合は、不要なサービスを無効化または削除し、OS全体を強化する必要があります。次に、セキュリティツールと監視ツールを追加して、ホストが期待通りに動作していることを確認します。アプリケーションコントロールや侵入防御システム(IPS)などのツールは、このような状況で非常に役立ちます。

コンテナが本番環境で稼働すると、他のコンテナやリソースとの連携が必要になります。コンテナからのすべてのネットワークトラフィックがIPSを通過するようにすることで、この内部トラフィックを監視・保護する必要があります。これにより、セキュリティ制御の導入方法が変わります。境界に少数の大規模な従来型のIPSエンジンを実装するのではなく、すべてのホストにIPSを実装することで、パフォーマンスに大きな影響を与えることなく、すべてのトラフィックを効果的に監視できるようになります。

コンテナ内のアプリケーションの保護

コンテナが本番環境で稼働すると、アプリケーションによるデータ処理、ログファイルの生成、ファイルのキャッシュなどが継続的に行われます。セキュリティ制御は、これらのアクティビティが正常であり、悪意のあるものではないことを確認する上で役立ちます。コンテナ内のコンテンツに対して実行されるリアルタイムの不正プログラム対策は、成功に不可欠です。

IPSは、仮想パッチと呼ばれる機能において、ここでも重要な役割を果たします。脆弱性が外部から攻撃可能な状態にある場合、IPSエンジンは脆弱性を悪用しようとする通信を検知・ブロックし、アプリケーションを保護します。これにより、緊急の修正プログラムを適用するのではなく、コンテナの次のバージョンで根本原因に対処するための時間を確保できます。

アプリケーションの監視

アプリケーションをコンテナにデプロイする際には、ランタイムアプリケーション自己保護(RASP)が役立ちます。これらのセキュリティ制御はアプリケーションコード内で実行され、多くの場合、コード内の主要な呼び出しを傍受またはフックします。SQL(構造化クエリ言語)インジェクションの監視、依存関係のチェックと修復、URL検証などのセキュリティ機能に加え、RASPはセキュリティにおける最大の課題の1つである根本原因の特定にも貢献します。

これらのセキュリティコントロールをアプリケーションコード内に配置することで、セキュリティ上の問題と、それを引き起こしたコード行との関連性が明確になります。このレベルの可視性は他に類を見ないものであり、セキュリティ体制を大幅に強化します。

コンテナ管理スタックの保護

セキュリティの観点から見ると、複数のコンテナを調整するための管理スタックは見過ごされがちです。コンテナの展開に真剣に取り組む組織は、必然的に、プロセスを管理するのに役立つ2つの重要なインフラストラクチャ、Amazon ECSやKubernetesなどのプライバシーコンテナレジストリによってコンテナの展開を調整する必要があります。

コンテナレジストリとKubernetesを組み合わせることで、環境への再デプロイの前後に、コンテナに対して一連の品質およびセキュリティ基準を自動的に適用できます。

レジストリはコンテナの共有を簡素化し、チームが互いの作業を基盤として開発を進める上で役立ちます。ただし、各コンテナが開発およびセキュリティのベースラインを満たしていることを確認するには、自動化されたスキャナが必要です。レジストリで公開される前に、各コンテナをスキャンして既知の脆弱性、マルウェア、公開された認証情報などがないかを確認することで、後工程で発生する問題を軽減できます。

さらに、レジストリ自体が適切に保護されていることを確認する必要があります。レジストリは、堅牢なシステムまたは信頼性の高いクラウドサービス上で実行すべきです。クラウドサービスを利用する場合においても、責任共有モデルを理解し、レジストリへのアクセスには強力なロールベースのアクセス制御を実装する必要があります。

オーケストレーションの面では、Kubernetesを環境内に展開・実行することで、チームがその環境を最大限に活用するための多くのメリットがもたらされます。Kubernetesは、Pod(クラスタレベルのリソース)やネットワークセキュリティポリシーなど、さまざまな運用およびセキュリティ制御を実装する機能も提供しており、リスク許容度に合わせて多様なオプションを適用できます。

セキュアな基盤の上でのアプリケーション構築:コンテナスキャン

構成要素として使用するコンテナが信頼でき、一般的な脅威に対して安全であることを確認するには、コンテナイメージスキャンのワークフローを導入する必要があります。この種のツールは、コンテナの内容をスキャンし、アプリケーションの構成要素として使用する前に問題がないかを確認します。また、コンテナを本番環境にデプロイする前の最終チェックも実行します。

適切に実装すれば、スキャンはコーディングプロセスにおける自然な一部となります。これは完全に自動化されたプロセスであり、アプリケーションとそのコンテナの開発中に発生する問題を迅速かつ容易に特定できます。

ビルドパイプラインの整合性の確保

攻撃者は、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインの初期段階へと攻撃対象をシフトさせ始めています。攻撃者がビルドサーバ、コードリポジトリ、または開発者のワークステーションへの侵入に成功した場合、環境内に長期間潜伏する可能性があります。そのため、常に最新の状態に保たれた強力なセキュリティ対策が必要です。

コードリポジトリとブランチ戦略からコンテナリポジトリに至るまで、パイプライン全体で強力なアクセス制御戦略を実装してください。必要なタスクを実行するために最小限のアクセスのみを付与する「最小権限の原則」を確実に実装し、そのアクセス権を定期的に監査する必要があります。

DevOpsの図解

コンテナセキュリティに関するサポート

コンテナのセキュリティを確保するには、包括的なアプローチが必要です。組織内のすべてのチームのニーズに対応しているかを確認する必要があります。DevOpsプロセスに適合するようにアプローチを自動化し、各グループを保護しながら迅速にアプリケーションをデリバリーできることを確認してください。セキュリティを後回しにしたり、ワークフローの変更を要求されて土壇場で対応したりすることはもはや許されません。「Trend Vision One™ Container Security」を利用することで、セキュリティポリシーとランタイムスキャンルールセットの設定、脆弱性検出とセキュリティイベントの監視、Kubernetesクラスタのプレランタイムスキャンのためのアーティファクトスキャナの使用が可能になります。信頼性の高いセキュリティ制御と自動化プロセスを初期段階から構築することで、セキュリティ上の懸念に対処し、チーム間の連携を円滑にすることが容易になります。

フェルナンド

プロダクトマネジメント担当バイスプレジデント

ペン

Fernando Cardosoはトレンドマイクロのプロダクトマネジメント担当バイスプレジデントとして、進化を続けるAIとクラウドの領域に注力しています。ネットワークエンジニアおよびセールスエンジニアとしてキャリアをスタートさせ、データセンター、クラウド、DevOps、サイバーセキュリティといった分野でスキルを磨きました。これらの分野は、今なお彼の情熱の源となっています。

よくあるご質問 (FAQ)

すべて開く すべて閉じる

コンテナセキュリティにおけるコンテナとは?

add

コンテナは、アプリケーションとその依存関係(コード、ランタイム、システムツール、ライブラリ、および設定)を1つのポータブルユニットにパッケージ化する仮想化テクノロジーです。  

コンテナセキュリティでよく使われる略語とは?

add

コンテナセキュリティで使用される最も一般的な頭字語は、一般的な脆弱性とリスク (CVE) および継続的統合/継続的展開 (CI/CD) です。 

コンテナを安全に保つ最善の方法とは?

add

コンテナを保護する最善の方法は、a) コンテナ内のものを保護する、b) ゼロトラストセキュリティアプローチを採用する、c) 環境を継続的に監視することです。  

コンテナセキュリティの仕組みとは?

add

コンテナセキュリティは、さまざまなツールとテクノロジを使用して、開発から実行までのライフサイクルのあらゆる段階でコンテナ化されたアプリケーションを保護します。

コンテナセキュリティの3つの基本要件とは?

add

コンテナを保護するための3つの基本的なステップは、開発環境を保護すること、基礎となるホストを保護すること、およびコンテナ内のアプリケーションを保護することです。

Kubernetesセキュリティの4Cとは?

add

Kubernetesコンテナセキュリティの4つのCは、クラウド、コンテナ、クラスタ、およびコードです。これらは合わせて、Kubernetesコンテナ環境を保護するための4ステップのアプローチを提供します。

コンテナのセキュリティを確保するベストプラクティスとは?

add

コンテナセキュリティのベストプラクティスには、コンテナホストの保護、コンテナ内のアプリケーションの保護、ランタイム環境の監視などがあります。

コンテナセキュリティに使用されるツールとは?

add

コンテナセキュリティには、イメージスキャナー、脆弱性評価ツール、構成およびコンプライアンスツール、ネットワークおよびランタイムツールなどのさまざまなツールが含まれます。

コンテナドリフトを防ぐ最善の方法とは?

add

コンテナセキュリティのドリフトを防ぐ最善の方法は、コンテナを起動して実行した後に、コンテナを使用するアプリケーションを継続的に監視することです。

コンテナセキュリティの基本的な構成要素とは?

add

コンテナセキュリティの基本的な構成要素は、開発の保護、ホストの保護、イメージとアプリケーションの保護、およびランタイム監視です。