本文の内容は、2022年5月5日にDaniella Pontesが投稿したブログTen considerations for securing cloud and containers(https://sysdig.com/blog/considerations-securing-cloud-containers/)を元に日本語に翻訳・再構成した内容となっております。
多くの企業は、アプリケーション開発を加速するためにクラウドとコンテナを採用していますが、Secure DevOpsアプローチを採用し、セキュリティをDevOpsワークフローに組み込むことで、セキュリティ管理のために開発者のペースが落ちるのを防ぐことができます。
クラウドとコンテナのセキュリティを確保するための計画をまとめる際に、留意すべき主要な検討事項を確認してください。
1. CI/CDビルドのセキュリティ
シフトレフトセキュリティは、継続的インテグレーションと継続的デリバリー(CI/CD)パイプラインにイメージスキャンを統合します。CI/CDパイプラインの各段階で、オペレーティングシステム(OS)とOS以外のパッケージの両方をスキャンして脆弱性を確認し、デプロイメント時にコストのかかる修正が発生しないようにします。セキュリティのベストプラクティスとコンプライアンスもスキャナでチェックする必要があります。また、環境の外にイメージを送信しないように、インラインスキャンを採用するのがベストプラクティスと言えます。2. Kubernetesのネイティブ制御を活用する
Kubernetesアドミッションコントローラーを利用することで、脆弱性やリスクの高い設定を持つコンテナが本番クラスターにデプロイされることを防止します。Kubernetesアドミッションコントローラーは柔軟なポリシー設定が可能であり、Kubernetesフレームワークのネイティブな構成として、Kubernetesクラスターにデプロイされるものを制御する強力なメカニズムを提供します。3. セキュアなIaCテンプレート
Infrastructure as Code (IaC) セキュリティを実装することで、セキュリティをさらにシフトレフトすることができます。クラウドとKubernetesのテンプレートをスキャンして、設定ミスやセキュリティのベストプラクティスに違反していないかを確認し、IaCのセキュリティポリシーを実施する。実行時に検出されたドリフトに対して、プルリクエスト(PR)アプローチを必ず実装し、ソースでの修正を自動化します。4. 過剰なクラウド権限の管理
クラウド資産を完全に可視化し、マルチクラウド環境における設定ミスやドリフトを特定できるようにします。ユーザーロール(人間および非人間)に対する過剰な権限を検出して削除し、最小特権の原則を実行します。すべてのアイデンティティとアクセス管理(IAM)ロールとその権限設定を自動的に検出するだけでなく、過剰な権限を持つロールを検出し、適切な権限設定を推奨できるツールを探します。5. クラウドセキュリティモニタリングの実装
クラウド資産とその設定を把握する。クラウドの設定ミスは容易に起こりうるものであり、セキュリティインシデントの主要な原因となっています。すべてのサービスでクラウドのログ監査が有効になっていることを確認し、脅威の検出を監視する。クラウドのログは、重要なフォレンジックでもあります。どのクラウドプロバイダーも、いつ、誰が何をしたかを示すアクティビティ監査ログを提供しています。6. ランタイムセキュリティの実装
侵害の初期指標に迅速に対処する。ランタイムの脅威は実際に存在し、その精巧さは増しています。敵対者は、検知を回避するために複雑な攻撃を仕掛け、システムに感染して最大限の利益を得ようとしています。弱いシグナルを見逃さないようにしましょう。イベントをリアルタイムで深く可視化し、クラウド、コンテナ、Kubernetesにおける不審な動作や悪意のあるアクティビティを検出します。7. ゼロトラスト・ネットワーク・セグメンテーションの実施
ネットワークセグメンテーションを適用し、コンテナサービス間の必要な通信のみを許可することで、ゼロトラストの原則に従います。Kubernetes内のポッド、サービス、アプリケーション間のすべてのネットワーク通信がネットワークポリシーに従うことを確認します。ネットワークセグメンテーションを手動で定義するのは、時間がかかり、エラーが発生しやすいものです。自動化する方法を探しましょう。8. コンテナとKubernetesのパフォーマンスと可用性を監視する
リソースの消費量とアプリケーションのゴールデンシグナルを監視し、Kubernetesクラスターのパフォーマンス、可用性、キャパシティの問題に先手を打ちましょう。クラウドネイティブ環境は複雑なので、特定のリージョン、デプロイメント、ネームスペース、またはワークロードに焦点を当てるためのスコープ機能によって、モニタリングが簡素化されていることを確認します。また、アウトオブボックスのダッシュボードやアラート、他のデータソースとの簡単な統合も確認しましょう。9. コンテナ用のインシデント対応フレームワークを用意する
インシデントレスポンスと効果的なフォレンジック調査プロセスを導入し、クラウドネイティブ環境におけるセキュリティ侵害の把握、コンプライアンス要件の遵守、迅速なリカバリーを実現します。システムコール、コンテナ内のすべてのアクティビティ、オーケストレーションレイヤーを深く可視化するためのソースオブトゥルースを利用できるようにする。インシデントは何もないところで起こるわけではありません。インシデントの前後で攻撃を再現するためには、きめ細かいデータを入手する必要があります。10. オープンソースツールの利用によるベンダロックインの回避
オープンソースをベースとしたソリューションを採用することで、ベンダロックインを回避し、コミュニティから提供されるエコシステムの統合を活用することができます。オープンソースの標準に基づく製品は、透明性と柔軟性を備えているため、検出ルールがどのように定義され、ニーズに合わせてカスタマイズされているかを理解することができます。コミュニティによって設定された標準に準拠することで、テクノロジーへの投資を保護し、必要なスキルを持つチームメンバーをより容易に見つけることができます。