はじめに
アプリケーションコンテナ技術は近年、主流のソリューションとして台頭しており、実際に年間収益は現在10億ドルに迫っています。当然ながら、人気と導入の急増に伴い、コンテナ関連のサイバー攻撃も増加しており、コンテナ化のセキュリティは企業導入における重要な要素となっています。このホワイトペーパーでは、コンテナセキュリティに関連する課題と、リスクを軽減し、それらの課題を克服するためのベストプラクティスを解説します。
コンテナセキュリティを習得する
2020年、Gartnerはコンテナソフトウェアおよびサービスの成長について、2020年の4億6,580万ドルという控えめな規模から、2024年までに9億4,400万ドルへと大幅に拡大すると予測しました。同年、Forresterはコンテナの導入率が2019年の33%からその後12カ月以内に58%へ急増すると見込んでおり、セキュリティがどのように追随できるかという課題が浮き彫りになりました。スケーラビリティとアジリティの要件に対応するためにイメージとコンテナの導入が着実に増加する中、組織はそれらを保護する上で新たな課題に直面しています。これらの課題は、仮想マシンやホストプラットフォーム向けに設計された従来のツールや手法では対処できません。
2023年4月に公開されたRedHatの最新調査によると、「67%の企業がセキュリティ問題によりデプロイを延期または減速した」ことが明らかになっています。この調査では、セキュリティ脆弱性とシステム設定の不備が、コンテナおよびKubernetes環境における主要なセキュリティ上の懸念事項であることも示されています。組織のデジタルビジネスやエコシステムが数百から数千に及ぶコンテナとイメージの実行に大きく依存している場合、それらとそのセキュリティの管理は複雑である一方、セキュリティを確保する上で極めて重要です。
コンテナの保護には固有の課題がある
- コンテナはステートレスで一時的です。そのため、脆弱性を検出・特定し、セキュリティの健全性を監視する従来のセキュリティツールは、信頼性の高い機能を発揮しません。
- 世界最大のライブラリ、パブリックレジストリ、コミュニティであるDocker Hubに保存されているコンテナイメージには、悪意のあるコンテンツやファイルが含まれている可能性があります。イメージには、あるアプリケーションコンポーネントが別のコンポーネントに接続できるようにする平文のパスワードや秘密鍵が含まれている場合があります。しかし、イメージにアクセスできる人は誰でもそのシークレットを見つけ、悪意のある活動に利用できます。
- イメージにはパッチを適用できますが、実行中のコンテナには適用できません。安全でないランタイム設定により、実行中のコンテナがドリフトコンテナに変化し、権限昇格やコンテナエスケープが可能になる場合があります。脆弱なコンテナにパッチを適用する唯一の方法は、まずコンテナを停止し、イメージをスキャンして修正した後、そのイメージに対してdocker runを実行してコンテナを起動することです。
- dockerデーモンを実行するコンテナホストには、OSレベルのパッケージ脆弱性や、悪用可能な設定上の欠陥が含まれている場合があります。
- コンテナ化されたアプリケーションは、従来のWebアプリケーションと同様に、ソフトウェアの欠陥に対して脆弱である可能性があります。
コンテナセキュリティに多層アプローチを実装するには、コンテナのライフサイクル管理を理解することが重要です。すべてのアプリケーションコンテナは、次の3つのフェーズでのみ存在できます
| ビルド | 転送/保存 | 実行 |
|---|---|---|
| 開発者はdocker build時にアプリケーションコンテナイメージをビルドします。 | docker pull/push時に、レジストリへ転送するか、パブリック/プライベートレジストリに保存します。 | docker run時およびその後にコンテナを実行します。 |
| デプロイ前 | デプロイ後 |
ビルドフェーズ
イメージのインベントリを維持する
イメージを持つコンテナホストを特定することで、コンテナ化されたプロジェクトの可視性を維持できます。セキュリティツールには、脆弱性や設定不備に基づいてイメージとコンテナを検索できる機能が必要です。イメージの可視性を詳細に確認する有効なケースには、「特定のクラスター/マスターノード/名前空間内のコンテナ」、「本番環境で実行されている不正なイメージ」、「保護されていないプライベート/パブリックレジストリ内のイメージ」、「ホストインベントリ」、「監視制御なしで実行されているホスト」などがあります。
CIパイプラインにセキュリティを統合し、イメージ内の脆弱性をスキャンする
DevSecOpsを活用した「シフトレフト」アプローチにより、開発者はSDLCの早期段階で脆弱性を特定できるようにする必要があります。DevSecOpsの成熟度がより高い段階では、「ビルドの失敗」によって脆弱なイメージが本番環境に到達することを防ぎ、安全でないイメージを許可しないようにする必要があります。
コンテナエンジンホストへのセンサー/エージェント導入のためのツール機能を活用する
商用セキュリティツールには、ホストプラットフォームにセンサー/エージェントを導入できるという利点があります。これにより、イメージの自動検出だけでなく、イメージに対する静的脆弱性スキャンも実行できます。コンテナ化されたオーケストレーション環境におけるセキュリティツールの互換性は、ツールを調達する前に常に評価すべき依存関係です。
転送/保存フェーズ
| 定期的なレジストリスキャン | レジストリの健全性を維持する |
|---|---|
| 時間の経過とともに、パブリック/プライベートレジストリに保存されたイメージ群には古いバージョンが含まれる可能性があります。既知の脆弱性を持つバージョンを誤ってデプロイするリスクがあり、悪用された場合には深刻な結果につながる可能性があります。レジストリスキャンは、イメージの「セキュリティ状態」の可視性を維持し、適切なレジストリの健全性を確保するとともに、準拠かつ安全なイメージのみがレジストリに保持されるようにします。スキャンはオンデマンドまたはスケジュールにより実行できます。 | レジストリの健全性は、「Application Container Security Posture Management (ACoSPM)」を成功させるための絶対的な要件です。パブリック/プライベートレジストリには、安全なイメージのみを保存する必要があります。古いバージョンはレジストリから削除できます。商用セキュリティツールは、レジストリにアクセスできるホストにセンサーとエージェントを導入することで支援します。 |
実行フェーズ
コンテナランタイムセキュリティを有効にする
ランタイムセキュリティを確保するには、コンテナドリフトの回避、名前空間を使用した最小権限でのコンテナ実行、ファイル整合性監視、イメージ整合性検証、コンテナイベントの監視、トラフィックの監視とブロックなど、さまざまな対策が必要です。実行中のコンテナに対する動作の強制は、インストルメンテーションのプロセスによって行われます。この機能は追加料金で商用セキュリティツールに提供されています。
ランタイムセキュリティポリシーを適用する
一部の商用セキュリティツールには、コンテナを保護するために特定の動作制限を適用するセキュリティポリシーをイメージに適用できる組み込み機能があります。これには、インバウンド/アウトバウンドのネットワークルール、プログラムによるファイルへのアクセス/実行、またはファイルを保護するためのシステムコールなどがあります。
ホストレベルの評価
コンテナエンジンとオーケストレーションツールをサポートするホストを保護するには、組織のインフラストラクチャ標準に合わせたポリシー準拠スキャンとCISベンチマークスキャンが常に必要です。
追加の考慮事項
適切なセキュリティツール
コンテナのライフサイクルを保護するには、まず組織のテスト環境でセキュリティツールを評価し、オーケストレーションツールスタックとの依存関係および互換性を特定する必要があります。ライセンスや追加機能の調達を正当化できるよう、ツールがもたらす価値を判断することが重要です。
適切なスキルセット
コンテナとそのセキュリティ側面は複雑であるため、セキュリティアナリストは、完了した脆弱性管理スキャンの件数ではなく、誤検知への対応経験に基づいて採用する必要があります。
結論
現在、多くの大規模組織が数百、場合によっては数千のコンテナとイメージを実行しており、エンタープライズセキュリティの管理は複雑であると同時に重要です。最初のステップは、コンテナ化に関連する最も一般的なリスク要因と、コンテナライフサイクル管理の戦略を理解することです。本稿では、ライフサイクルの各フェーズ、すなわちビルド、転送/保存、実行におけるサイバーセキュリティのベストプラクティスを解説しました。最後に、今日の企業が求める安定性、セキュリティ、スケーラビリティを確保するために必要なツールと人材のスキルセットを検討しました。
参考文献
- Revenue Growth for Container Management Software, Gartner, 2020
- Container Adoption Is On The Rise: How Can Security Keep Up? Forrester, 2020
- Kubernetes Adoption, Security, and Market Trends Repo 2023, Red Hat, April 2023
