コンテナワークロードは、イメージスキャンのみでは検出できないランタイム時の脅威に直面します。たとえば、実行中のコンテナへマルウェアが注入される、元のイメージに含まれていないプログラムが起動される、カーネルの脆弱性を悪用してコンテナ境界から脱出する攻撃などです。コンテナ向けプロアクティブ防御(Proactive Defense for Containers)は、コンテナ起動直後からイメージのセキュリティ、ランタイム時の動作、実行環境のセキュリティを監視することで、これらの脅威に対処します。リスクのあるイメージの実行をブロックするルール、信頼されていないプロセスの停止、およびコンテナエスケープの防止を設定できます。
以下の 3 種類のルールが利用可能です:
| ルールタイプ | 防御対象 |
|---|---|
| リスクのあるイメージのブロック | 脆弱性、マルウェア、または誤設定を含むイメージ — Pod の起動前に停止されます |
| 非イメージプログラムの防御 | コンテナ内で起動されたが、元のイメージには含まれていなかったプログラム — マルウェア侵入の兆候 |
| コンテナエスケープの防止 | コンテナ内のプロセスがホストカーネルを悪用し、コンテナ境界から脱出しようとする試み |
エディション要件
この機能は、Security Center の Ultimate エディションのみがサポートしています。購入およびアップグレードについて詳しくは、「Security Center の購入」および「Security Center のアップグレードおよびスペックダウン」をご参照ください。
リスクのあるイメージのブロック
リスクのあるイメージのブロック(At-risk Image Blocking)は、ユーザーが定義したリスク基準に合致するイメージデプロイメントを遮断します。Pod 作成リクエストが該当ルールをトリガーすると、Security Center はイメージを評価し、Pod 起動前にルールアクション(アラート、ブロック、または許可)を適用します。
サポートされるクラスタータイプ
リスクのあるイメージのブロックは、Container Service for Kubernetes (ACK) クラスターのみをサポートします。以下の表に、サポート対象の ACK クラスタータイプを示します。
| ACK クラスタータイプ | サポート有無 |
|---|---|
| ACK マネージドクラスター | はい |
| ACK 専用クラスター | はい |
| ACK サーバーレスクラスター | いいえ |
| マネージドエッジ Kubernetes クラスター | いいえ |
| 登録済みクラスター | いいえ |
仕組み
クラスターに対してリスクのあるイメージのブロックルールを作成すると、Security Center は各 Pod 作成リクエストを遮断し、選択したリスクタイプに基づいてイメージをスキャンします。該当する場合は、ルールアクションを適用し、セキュリティイベント(アラートおよびブロックアクションの場合)を生成します。
クラスターに複数のルールが適用される場合、すべてのルールが評価されます。1 つのイメージが複数のルールをトリガーし、複数のアラートを生成することがあります。
1 つのルールで複数のリスクポリシーが設定されている場合、Security Center は以下の順序でリスクタイプを評価し、最初に一致した時点で評価を終了します:
未スキャンのイメージ
ベースラインリスク
悪意のあるインターネットイメージ
悪意のあるサンプル
脆弱性
機密ファイル
イメージビルドコマンドのリスク
ルールの作成
ルールを作成する前に、ACK コンソールで必要なポリシーガバナンスコンポーネント(ゲートキーパー、policy-template-controller、logtail-ds)をインストールしてください。インストール手順については、「ポリシーガバナンスコンポーネントのインストールまたは更新」をご参照ください。
各クラスターは最大 40 個のルールをサポートします。
Security Centerコンソールにログインします。上部のナビゲーションバーで、管理対象の資産のリージョンを選択します — 中国 または 中国以外。
左側のナビゲーションウィンドウで、保護構成 > コンテナ保護 > コンテナ向けプロアクティブ防御 を選択します。
ルールタイプ を リスクのあるイメージのブロック に設定し、ルールの作成 をクリックします。既存のルールをベースとして再利用する場合は、該当ルールを見つけ、[操作] 列の コピー をクリックします。ルールのコピー パネルでパラメーターを変更し、OK をクリックします。
ルールの作成 パネルで、以下のパラメーターを設定し、次へ をクリックします。
重要未スキャンのイメージ リスクタイプでは、初期設定として ルールアクション を アラート に設定してください。一定期間アラートを観察し、業務に影響がないことを確認したうえで、初めて ブロック に切り替えてください。その他のリスクタイプでは:ポリシー内のいずれかのリスクに該当する場合、Security Center は即座にルールアクションを適用します。ポリシー内の複数条件は論理 OR で評価されます。たとえば、「高リスクの深刻度」OR「特定の CVE ID」を指定したルールは、イメージがいずれかの条件を満たすとトリガーされます。
パラメーター 説明 ルール名 ドロップダウンリストからルールテンプレートを選択し、名称を入力します。空白テンプレート を使用すると、ゼロからルールを構築できます。また、あらかじめリスク検出設定が構成済みの既存テンプレートを選択することもできます。 ルールの説明 ルールの説明を入力します。 ルール構成 検出対象のリスクタイプを選択します。Security Center は選択されたタイプを評価し、クリアされたタイプはスキップします。サポートされるリスクタイプ: 未スキャンのイメージ(コンテナイメージスキャンによって未スキャンのイメージ)、悪意のあるインターネットイメージ(インターネット上で悪意あると判定されたイメージ。Docker Hub やパブリックリポジトリからプルされた、ウェブシェルやトロイの木馬を含むイメージを含む)、ベースライン(事前定義された標準セキュリティ構成およびベストプラクティスに対するチェック)、脆弱性(コンテナ環境およびアプリケーションに関連するイメージ内の脆弱性)、悪意のあるサンプル(コンテナイメージおよびコンテナランタイム内の悪意のあるファイル、コード、および動作)、機密ファイル(イメージ内に存在する一般的な機密ファイル)、ビルドリスクの存在(イメージビルドコマンドのリスク)。 ルールアクション ルールがトリガーされた際に Security Center が実行するアクション: アラート(アラートを生成)、ブロック(イメージをブロックし、アラートを生成)、許可(イメージを許可し、アラートを生成)。 ホワイトリストへの追加 ホワイトリストに追加されたイメージは完全にスキップされ、Security Center によるスキャン対象外となります。ルールの作成 をクリックし、イメージタグのキーワードを入力します。最大 20 個のイメージをサポートします。曖昧一致(ファジーマッチ)が可能です。たとえば、 yundun-example-registry.cn-hangzhou.aliyuncs.com/yundun-example/yun-repo:testというイメージの場合、以下のキーワードのいずれかが一致します:yun-repo、test、yun-repo:test、repo:test。クラスター、イメージ、または タグ タブをクリックして保護範囲を選択し、保護対象の資産を選択します。OK をクリックします。
アラートの表示
リスクのあるイメージのブロックルールを作成した後、Security Center コンソールで 検知と対応 > アラート に移動して、トリガーされたアラートを表示できます。アラートタイプ > リスクイメージのブロック でフィルターをかけ、該当アラートを見つけ、[操作] 列の 詳細 をクリックします。詳細タブの 推奨事項 に基づいてアラートを対応してください。

ルールの管理
リスクのあるイメージのブロックルールを作成した後、ルール一覧で以下の操作が可能です:
| 操作 | 手順 |
|---|---|
| 保護範囲の表示 | 保護範囲 列の数字をクリックすると、該当ルールが適用されるクラスター、イメージ、およびタグを確認できます。 |
| 編集 | [操作] 列の 編集 をクリックして、ルールパラメーターおよび保護範囲を変更します。 |
| コピー | [操作] 列の コピー をクリックして、既存のルールをベースに新しいルールを作成します。 |
| 削除 | [操作] 列の 削除 をクリックし、確認します。 |
ルールを削除すると、その範囲内のすべての資産に対する保護が解除されます。削除されたルールは復元できません。慎重に操作してください。
非イメージプログラムの防御
コンテナはランタイム時に不変であることが設計思想です — コンテナが必要とするソフトウェアは、ビルド時にすべてイメージに組み込まれます。実行中のコンテナ内で、元のイメージに含まれていないプロセスが起動された場合、これは異常な動作を示します。攻撃者が実行中のコンテナにアクセスすると、しばしばイメージに存在しないマルウェアやその他のツールをダウンロード・実行します。非イメージプログラムの防御(Non-image Program Defense)は、こうしたプロセスを検出し、必要に応じてブロックします。
イメージ要件
防御ルールが正しく有効化されるためには、コンテナイメージおよびその実行環境が以下の要件を満たす必要があります:
コンテナ内で実行されるプログラムのパス長は、1,023 文字を超えてはいけません。
コンテナクラスターの名前空間長は、287 文字を超えてはいけません。
ホワイトリストルールに登録されたイメージの場合、コンテナイメージ名は 287 文字を超えてはいけません。
コンテナ内の Security Center エージェントプロセスは、最低限のバージョン要件を満たしている必要があります:
AliYunDun:aegis_12_13 以降
AliHips:00_43 以降
システムルール
Security Center は、非イメージプログラムの防御用にデフォルトのシステムルールを提供しています。このルールは、カスタムルールが設定されていないクラスターに対して自動的に有効化され、保護対象のクラスターで非イメージプログラムが起動した際にアラートを生成します。
システムルールのアクションは アラート です — プロセスをブロックせず、アラートのみを生成します。システムルールは手動で有効/無効化でき、適用対象のクラスターを変更することもできます。ただし、以下の点にご注意ください:
ホワイトリストおよび ブロック アクションは、システムルールでは利用できません。これらを利用するには、カスタムルールを作成してください。
カスタムルールを作成すると、システムルールは自動的に無効化され、すべてのカスタムルールが削除されるまで再び有効化できません。
非イメージプログラムの防御機能を初めて使用する際は、まずシステムルールによる誤検知アラートが発生しないか確認することを推奨します。
システムルールを表示するには、[保護設定] > [コンテナ保護] > [コンテナのプロアクティブ防御] に移動し、ルールタイプに [非イメージプログラム防御] を選択して、[システムルール] タブをクリックします。
カスタムルールの作成
1 つのクラスターにつき、カスタムルールは 1 つだけ設定できます。すでにカスタムルールが適用されているクラスターは、他のルールで選択できません。
Security Centerコンソールにログインします。上部のナビゲーションバーで、管理対象の資産のリージョンを選択します — 中国 または 中国以外。
左側のナビゲーションウィンドウで、保護構成 > コンテナ保護 > コンテナ向けプロアクティブ防御 を選択します。
ルールタイプ を 非イメージプログラムの防御 に設定します。
カスタムルール タブで、ルールの作成 をクリックします。
ルールの作成 パネルで、以下のパラメーターを設定し、次へ をクリックします。
防御アクション を最初は アラート に設定してください。通常運用時に、コンテナイメージ外で正当な実行可能プログラムが起動していないことを確認したうえで、初めて ブロック に切り替えてください。これにより、期待されるプロセスが誤ってブロックされるのを防ぎます。
パラメーター 説明 ルール名 ルールの名称を入力します。 ルールの説明 説明を入力します。 ステータス オン に設定すると、ルールは作成直後に即座に有効化されます。オフ に設定すると、ルールは無効状態で作成されます。 防御アクション アラート:信頼されていないプロセスを検出した際にアラートを生成します。ブロック:アラートを生成し、プロセスを終了します。 ファイルディレクトリホワイトリストの作成 ホワイトリストに登録されたディレクトリから実行されるプロセスは、検出対象外となります。ルールの作成 をクリックし、ディレクトリパス(例: /user/name1)を入力します。イメージホワイトリストの作成 ここに追加されたイメージは、検出対象外となります。キーワードによる曖昧一致(ファジーマッチ)が可能です。たとえば、 yundun-example-registry.cn-hangzhou.aliyuncs.com/yundun-example/yun-repo:testというイメージの場合、以下のキーワードのいずれかが一致します:yun-repo、test、yun-repo:test、repo:test。確認メッセージで OK をクリックします。カスタムルールの作成後、システムルールは自動的に無効化されます。
ルールを適用するクラスターを選択し、OK をクリックします。
アラートの表示
非イメージプログラムの防御ルールを作成・有効化した後、検知と対応 > アラート に移動し、アラートタイプ > コンテナアクティブ防御 でフィルターをかけてアラートを表示できます。アラート名は 非イメージネイティブプログラムの起動 と表示されます。
アラートの状態は、ルールで設定した 防御アクション によって異なります:
[アラート操作]: アラートは[未処理]状態で表示されます。これらのアラートをすみやかに処理してください。処理手順については、「アラートの表示と処理」をご参照ください。

ブロックアクション:アラートは、以下のいずれかの状態で処理済みアラート一覧に表示されます:
プロセスが存在しない:プロセスは短時間実行され、Security Center が介入する前に終了しました。対応は不要です。
プロセスが終了:Security Center がプロセスをブロックしました。対応は不要です。

ルールの管理
非イメージプログラムの防御ルールを作成した後、ルール一覧で以下の操作が可能です:
| 操作 | 手順 |
|---|---|
| 保護範囲の表示 | 保護範囲 列の数値をクリックして、対象となるクラスターを確認します。 |
| 有効化または無効化 | 有効 列のスイッチをクリックして、ルールのオン・オフを切り替えます。 |
| 編集 | 操作 列の [編集] をクリックして、ルール名、説明、ステータス、防御アクション、ホワイトリスト設定、および保護範囲を変更します。 |
| 削除 | 操作 列の [削除] をクリックし、確認します。 |
システムルールは削除できません。カスタムルールを削除した後は、復元できません。削除前に、該当ルールが今後も不要であることを確認してください。
コンテナエスケープの防止
コンテナは、同一ホスト上の他のコンテナとホストオペレーティングシステムのカーネルを共有します。攻撃者がコンテナの脆弱性を悪用してコンテナ境界から脱出すると、ホスト OS およびそのホスト上のすべてのコンテナにアクセスできるようになります。コンテナエスケープの防止(Container Escape Prevention)は、プロセス、ファイル、システムコールにおけるリスクのある操作を検出し、エスケープ行為が成功する前にこれをブロックします。
サポートされるクラスター
コンテナエスケープの防止は、以下の両方の条件を満たすクラスターをサポートします:
クラスターを実行するサーバーが Security Center に追加されていること。
クラスターが ACK マネージドクラスター、ACK 専用クラスター、または Security Center に接続された自己管理型 Kubernetes クラスターであること。
前提条件
開始する前に、以下の点を確認してください:
悪意のあるホスト動作の防止 または Webshell の防止 スイッチがオンになっていること。詳細については、「プロアクティブ防御」をご参照ください。
コンテナエスケープの防止 スイッチがオンになっていること。詳細については、「コンテナエスケープの防止」をご参照ください。
システムルール
Security Center には、コンテナエスケープの防止用に組み込みのシステムルールが搭載されており、Security Center で保護されているすべてのクラスターに対してデフォルトで有効化されています。システムルールは、エスケープ行為を検出した際にアラートを生成しますが、ブロックは行いません。
個別のシステムルールを手動で有効/無効化したり、適用対象のクラスターを変更したりできます。ただし、以下の点にご注意ください:
ホワイトリストおよび ブロック アクションは、システムルールでは利用できません。これらを利用するには、カスタムルールを作成してください。
特定タイプのカスタムルールを作成すると、同タイプのシステムルールは自動的に無効化されます。
コンテナエスケープの防止機能を初めて使用する際は、まずシステムルールによる誤検知アラートが発生しないか確認することを推奨します。誤検知アラートが発生しなかった場合、ルールアクションを ブロック に変更できます。
システムルールを表示するには、[保護設定] > [コンテナ保護] > [コンテナ向け能動的防御] に移動し、ルールの種類セクションで コンテナエスケープ防止 をクリックしてから、[システムルール] タブをクリックします。
カスタムルールの作成
カスタムルールは、システムルールと同じルールタイプをサポートしており、さらにホワイトリストの構成および ブロック 防御アクションを許可します。
コンテナエスケープのルールは、通常の業務シナリオでもトリガーされることがあります。防御アクション を最初は アラート に設定し、誤検知を監視してください。正当な操作がフラグ付けされないことを確認したうえで、初めて ブロック に切り替えてください。
Security Centerコンソールにログインします。上部のナビゲーションバーで、管理対象の資産のリージョンを選択します — 中国 または 中国以外。
左側のナビゲーションウィンドウで、保護構成 > コンテナ保護 > コンテナ向けプロアクティブ防御 を選択します。
ルールタイプ セクションで、コンテナエスケープの防止 をクリックします。
カスタムルール タブで、ルールの作成 をクリックします。
ルールの作成 パネルで、以下のパラメーターを設定し、次へ をクリックします。このステップを完了すると、ルールがルール一覧に表示されます。
重要イメージをホワイトリストに追加すると、そのイメージに対するすべてのエスケープ検出が無効化されます。慎重に操作してください。
パラメーター 説明 ルール名 ルールの名称を入力します。 ルールタイプ ドロップダウンリストからルールタイプを選択します。タイプを選択すると、すべてのサポート対象の確認項目がデフォルトで選択されます。不要な確認項目はクリアしてください。サポート対象のルールタイプおよび確認項目の全一覧は、Security Center コンソールでご確認いただけます。 防御アクション アラート:該当するリスクを検出した際にアラートを生成します。ブロック:アラートを生成し、関連するプロセスまたは操作を終了します。 ホワイトリストへの追加 ホワイトリストに追加されたイメージは、エスケープ動作検出対象外となります。ルールの作成 をクリックし、イメージタグのキーワードを入力します。最大 20 個のイメージをサポートします。曖昧一致(ファジーマッチ)が可能です。たとえば、 yundun-example-registry.cn-hangzhou.aliyuncs.com/yundun-example/yun-repo:testというイメージの場合、以下のキーワードのいずれかが一致します:yun-repo、test、yun-repo:test、repo:test。保護対象のクラスターを選択し、OK をクリックします。Security Center に接続されているクラスターのみを選択できます。自己管理型 Kubernetes クラスターを保護するには、まず接続を行ってください。手順については、「自己管理型 Kubernetes クラスターを Security Center に追加」をご参照ください。
アラートの表示
コンテナエスケープの防止ルールを作成・有効化した後、検知と対応 > アラート に移動し、アラートタイプ > コンテナエスケープの防止 でフィルターをかけてアラートを表示できます。
アラートの状態は、ルールで設定した 防御アクション によって異なります:
アラートアクション:アラートは 未対応 状態で表示されます。これらのアラートは速やかに対応してください。対応手順については、「アラートの表示と対応」をご参照ください。

ブロックアクション:アラートは ブロック済み 状態で表示され、Security Center がエスケープ試みを正常に阻止したことを示します。追加の対応は不要です。

ルールの管理
コンテナエスケープの防止ルールを作成した後、以下の操作が可能です:
| 操作 | 手順 |
|---|---|
| 保護範囲の表示 | 保護範囲 列の数値をクリックして、対象となるクラスターを確認します。検知可能状態 列には、当該クラスターが実行されているサーバー上のエージェントの状態が表示されます。ルールは、エージェントの状態が 正常 の場合にのみ有効になります。状態が 異常 の場合は、機能設定 ページで 悪意あるホスト行動防止 または Webshell 防止 を有効化してください。詳細については、「ホスト保護設定タブでの機能有効化」をご参照ください。 |
| 有効化/無効化 | 有効化 列のスイッチをクリックして、ルールの有効/無効を切り替えます。 |
| 編集 | 操作 列の 編集 をクリックし、ルール名、タイプ、ステータス、防御アクション、保護範囲を変更します。変更は 10 分以内に有効になります。 |
| 削除 | 操作 列の 削除 をクリックし、確認します。 |
システムルールは削除できません。カスタムルールを削除した後は、復元できません。削除前に、該当ルールが今後も不要であることを確認してください。