実行ステージの概要

実行ステージは、コンテナー セキュア サプライ チェーン (CSSC) フレームワークの 5 番目のステージです。 このステージでは、ランタイム環境のスキャンと監視、および古くて脆弱なイメージの消去が強調されます。 この概要では、CSSC フレームワークの実行ステージの背景、目的、および目標について説明します。

Microsoft の Containers Secure Supply Chain (CSSC) フレームワークは、信頼できるイメージを使用してコンテナーを実行する必要性を特定し、イメージを安全に実行し、ランタイムの攻撃対象領域を減らすのに役立つ一連のベスト プラクティスとツールを提供します。 この記事では、CSSC フレームワークの実行ステージで使用できる目的、ベスト プラクティス、およびツールについて説明します。

背景

現時点では、企業はさまざまなアプローチを使用して、信頼されたイメージを使用して準拠しているコンテナー化されたワークロードを実行しています。 デプロイされたワークロードを監視すると、企業は、真の運用状態が想定される状態であることを検証できます。 ワークロード イメージは、デプロイ時またはデプロイ後に脆弱になります。 企業は、ランタイム環境とイメージを継続的にスキャンして、現在脆弱になっているワークロードと、セキュリティ更新プログラムやバグ修正プログラムを受け取るためにサポート対象外になっているイメージを検出することをお勧めします。

CSSC フレームワークの実行ステージでは、実行中のコンテナーとランタイム ホストのセキュリティを確保するために実装する必要がある一連の手順とセキュリティ制御が推奨されます。たとえば、タイムリーにノードをリサイクルする、最新のコンテナー イメージとパッチを適用したコンテナー イメージを使用してコンテナーをアップグレードする、古い、実行されていないコンテナー イメージを削除する、コンテナーの望ましくない動作を防ぐなどです。

Microsoft では、コンテナー化されたワークロードとランタイムに対して脆弱性とマルウェア スキャナーを継続的に実行することをお勧めします。 コンテナーとノードを定期的に更新し、ノードクリーン維持することは、コンテナー化されたアプリケーションを侵害から保護するための効果的なプラクティスです。

  • 脆弱性やマルウェアを定期的にスキャンし、イメージ ライフサイクル メタデータをチェックして、修正プログラムの適用と更新が必要なイメージを特定します。 ノード上のキャッシュから古いイメージを定期的にクリーンして、脆弱な古いイメージが不適切なアクターによって使用される可能性を減らす
  • ホスト環境とコンテナーに対して強力な認証と承認メカニズムを構成し、攻撃者がシステムに簡単にアクセスできないのでコンテナーを非ルートとして実行し、侵害時に損害を与える
  • コンテナーと作業ノードを定期的に更新します。 これにより、コンテナーとノードが最新のセキュリティ パッチと修正プログラムで実行されるようになります
  • コンテナーとノード ポートを制限し、コンテナーのネットワーク アクセスを制限することで、攻撃対象領域を減らし、相互 TLS を有効にします。
  • システムが不安定になるリスクを軽減するために、メモリの量やコンテナーで使用できる CPU の制御など、コンテナーにリソース制約を適用する
  • CIS ベンチマーク、CI Standard Edition ガイダンスCNCF ソフトウェア サプライ チェーンのベスト プラクティスNIST ガイダンス、またはニーズに基づく地域政府のガイダンスなどの業界標準のガイダンスに従います

ランタイム環境を継続的にスキャンおよび監視するためのワークフロー

実行ステージには、ランタイム環境を継続的にスキャンして監視するためのワークフローが用意されています。 Run ステージ ワークフローは、脆弱で古いコンテナー イメージを消去するために適用されます。 ランタイム環境をセキュリティで保護することは非常に重要です。ワークフローは次の手順に従います。

  1. コンテナー化されたワークロードとランタイム環境の脆弱性とマルウェアを継続的にスキャンして、潜在的なセキュリティ上の脅威をチェックします。
  2. コンテナーとワーカー ノードを定期的に更新して、最新のセキュリティ パッチと修正プログラムで実行されるようにします。
  3. コンテナーとノードを定期的に更新して、コンテナー化されたアプリケーションを侵害から保護し、パッチや修正プログラムから脆弱性のリスクを回避します。
  4. イメージライフサイクルメタデータを確認して、最新かつ安全なアップグレードが必要なイメージを特定します。
  5. ノード上のキャッシュから古いイメージを定期的にクリーンして、不適切なアクターによって使用される脆弱な古いイメージを回避します。
  6. ホスト環境とコンテナーに対して強力な認証と承認メカニズムを構成し、攻撃者がシステムに簡単にアクセスして侵害時に損害を引き起こすのを防ぐために、コンテナーを実行します。
  7. コンテナーとノード のポートを制限し、コンテナーのネットワーク アクセスを制限し、相互 TLS を有効にして、コンテナーが使用できるメモリまたは CPU の量の制御などのコンテナーにリソース制約を適用して、システムが不安定になるリスクを軽減することで、攻撃対象領域を減らします。

実行ステージのセキュリティ目標

CSSC フレームワークの実行ステージは、次のセキュリティ目標を満たすことを目的としています。

ランタイムを監視して、脆弱なイメージの実行を減らす

コンテナーをスキャンして、組織のポリシーに対する脆弱性とコンプライアンスを確認します。 コンテナーが最新バージョンのイメージを使用しているかどうかを確認します。

ランタイム コンテナーを最新の状態に保つことで、コンテナーに常に脆弱性がなく、組織のポリシーに準拠することが保証されます。 イメージは、ステージ全体を通じて継続的に監視する必要があります。 [取得] ステージまたは [ビルド] ステージの新しいイメージは、[実行] ステージでランタイム コンテナーの更新をトリガーできます。 イメージは、脆弱性の修正、ライセンスが非準拠になるソフトウェアの修正、時間の経過と伴うイメージのサポート終了など、さまざまな理由で更新できます。 これらの更新プログラムはすべて、ランタイム コンテナーの更新をトリガーします。

非準拠のイメージを防ぎ、古いイメージをクリーンして攻撃リスクを最小限に抑える

CI/CD パイプラインでは、デプロイ ステージでイメージをビルドしてデプロイ プラットフォームにプッシュするのが一般的ですが、ランタイム ノード上の未使用のイメージは何度も消去されない可能性があります。 これにより、ディスクに肥大化が蓄積され、非準拠イメージのホストがノードに残る可能性があります。 古いイメージにも脆弱性が存在する可能性があります。 古いイメージを定期的にクリーンすると、不要なスキャンを回避し、ランタイム環境の攻撃対象領域を減らすことができます。

ホスティング環境を最新の状態に保ち、セキュリティで保護された構成を使用する

信頼されたアップストリームまたはクラウド プロバイダーからのセキュリティ リリースとパッチを使用して、ホスティング環境を最新の状態に保ちます。 厳密なアクセス制御と制限されたネットワーク アクセス許可を確保して、ランタイム環境の攻撃対象領域を減らします。 ホスティング環境に対する予期しない動作、構成の誤り、攻撃をリアルタイムで検出します。

Microsoft では、企業が実行ステージ ワークフローで推奨される手順を実装し、上記のセキュリティ目標に対処するのに役立つ一連のツールとサービスを提供しています。

脆弱性スキャンと画像の修正プログラムの適用のためのツールとサービス

Microsoft Defender for Cloud は、コンテナー化されたワークロードのセキュリティを向上、監視、およびメインするためのクラウドネイティブ ソリューションです。 Microsoft Defender for Cloud には、Azure Container Registry に格納され、コンテナーを実行しているイメージ用の脆弱性評価および管理ツールが用意されています。

準拠していないイメージをクリーンするためのツールとサービス

Azure Image Cleaner は、イメージの自動識別と削除を実行します。 Azure Image Cleaner を使用して、AKS コンテナー ワークロード用の Kubernetes ノードから古いイメージをクリーンするか、AKS またはバニラ以外の Kubernetes 環境にオープンソースの消しゴムを使用します。これにより、古いイメージのリスクが軽減され、それらをクリーンするために必要な時間が短縮されます。

ランタイム サービスを自動的にアップグレードするためのツール

クラスター自動アップグレードは、時間と運用コストの面で目に見えるメリットを生み出す、"1 回設定するだけ" のメカニズムです。 AKS 自動アップグレード を有効にすると、クラスターが最新の状態になり、AKS を使用している場合は、AKS とアップストリーム Kubernetes からのセキュリティ リリースやパッチを見逃さないようにします。

次のステップ

コンテナーを安全に監視し、潜在的なサプライ チェーンのセキュリティの問題を時間内に特定する場合は、Observability ステージの概要を参照してください