不正な利益を上げたり、不公正な競争を開始したりするために、攻撃者はコンテナ環境の脆弱性を悪用して、悪意のあるコードや隠しリンクを挿入してファイルを改ざんします。 コンテナファイル保護機能は、コンテナ内のディレクトリとファイルをリアルタイムで監視し、ディレクトリまたはファイルが改ざんされたときにアラートを生成したり、改ざん操作をブロックしたりできます。 これにより、コンテナ環境のセキュリティが確保されます。 このトピックでは、コンテナー内のファイルを保護するコンテナーファイル保護機能のルールを作成する方法について説明します。
制限事項
この機能をサポートしているのは、Security CenterのUltimateエディションのみです。 Security Centerの購入とアップグレード方法の詳細については、「Security Centerの購入」および「Security Center のアップグレードとダウングレード」をご参照ください。
Security Centerに接続されているクラスターのみを保護できます。 Security Centerを使用して自己管理クラスターを保護する場合は、クラスターをSecurity Centerに接続する必要があります。 詳細については、「セルフマネージドKubernetesクラスターのSecurity Centerへの接続」をご参照ください。
クラスターがデプロイされているサーバーのオペレーティングシステムとカーネルバージョンは、コンテナーファイル保護機能でサポートされている必要があります。 コンテナーファイル保護機能でサポートされているオペレーティングシステムとカーネルバージョンの詳細については、「サポートされているオペレーティングシステムとカーネルバージョン」をご参照ください。
クラスター内でポッドラベルが追加される保護されたディレクトリの数は10を超えることはできません。 ルールが有効になっている保護されたディレクトリのみがカウントされます。 保護されているディレクトリの数が10を超えると、クラスターのコンテナーファイル保護機能は使用できなくなります。
重複排除後、クラスター内のすべての有効なルールで指定されているポッドラベルの数は10を超えることはできません。 ポッドラベルの数が10を超えると、クラスターのコンテナーファイル保護機能は使用できなくなります。
たとえば、Cluster01が作成され、Pod01が含まれます。 Label01のみがPod01に追加されます。 さらに、Cluster01に対して12のルールが作成されます。 ルールはRule01からRule12の範囲です。
Rule01では、ポッドラベルとしてCluster01のLabel01が指定されています。
Rule02では、ポッドラベルとしてCluster01のLabel02が指定されています。 Cluster01のポッドに追加されているかどうかに関係なく、Label02を使用できます。
...
Rule09では、ポッドラベルとしてCluster01のLabel09が指定されています。
Rule10では、ポッドラベルとしてCluster01のLabel10が指定されています。
ルール11で ポッドラベルにはCluster01のLabel10が指定されています。
Rule12では、ポッドラベルとしてCluster01のLabel10が指定されています。
Cluster01には合計12のポッドラベルが指定されています。 重複排除後、数は10になります。 この場合、コンテナーファイル保護機能は、クラスターに対して期待どおりに有効になります。
Cluster01にLabel10とLabel11を指定してRule13を作成した場合、重複排除後のポッドラベルの総数は11になります。 この場合、コンテナファイル保護機能はCluster01では使用できなくなります。
前提条件
Security Centerエージェントは、クラスターがデプロイされているサーバーにインストールされます。 詳細については、「Security Centerエージェントのインストール」をご参照ください。
ルールの作成
Security Centerコンソールにログインします。 上部のナビゲーションバーで、保護するアセットのリージョンを選択します。 中国 または 全世界 (中国を除く) を選択できます。
左側のナビゲーションウィンドウで、 を選択します。
コンテナファイルの防御 ページで、[Create Rule] をクリックします。
Create Ruleパネルで、パラメーターを設定し、次へ をクリックします。
ファイル保護ディレクトリ、プロセスのホワイトリスト、およびファイルディレクトリのホワイトリストパラメーターの値を指定するときに、ワイルドカード文字を使用できます。 ルールは完全一致モードで有効になります。 次のリストでは、/dir1/testディレクトリを例として使用して、ルールの一致ロジックを説明します。
保護されたファイルディレクトリ、ホワイトリスト、または除外されたファイルパスパラメーターに /dir1/testを指定した場合、ルールが有効になるときに /dir1/testディレクトリのみが一致します。 /dir1/test/1.htmlや /dir1/test/dir1/2.htmlなどのディレクトリは一致しません。
ファイル保護ディレクトリパラメーターに /dir1/testを指定した場合、/dir1/testディレクトリのみが保護されます。 /dir1/testディレクトリが削除または名前変更されると、アラートが生成されるか、プロセスがブロックされます。 /dir1/testディレクトリ内のサブディレクトリおよびファイルは保護されません。
プロセスのホワイトリストパラメーターに /dir1/testを指定した場合、/dir1/testディレクトリのみがホワイトリストに追加されます。 実行可能ファイル /dir1/testによって作成されたプロセスが保護ディレクトリにアクセスした場合、アラートは生成されず、プロセスはブロックされません。 ただし、/dir1/test/1.htmlディレクトリによって作成されたプロセスが保護ディレクトリにアクセスすると、アラートが生成されるか、プロセスがブロックされます。
ファイル保護ディレクトリパラメーターに /dir1/* を指定し、ファイルディレクトリのホワイトリストパラメーターに /dir1/testを指定した場合、/dir1/testディレクトリのみがホワイトリストに追加されます。 /dir1/testディレクトリが削除または名前変更された場合、アラートは生成されず、プロセスはブロックされません。 /dir1/test/1.htmlディレクトリのコンテンツが変更された場合、アラートが生成されるか、プロセスがブロックされます。
説明すべてのルールは、ファイル保護ディレクトリ 、プロセスのホワイトリスト 、および ファイルディレクトリのホワイトリスト パラメーターに基づいて一致するパスに対してのみ有効になります。
Protected File Directory、ホワイトリスト、またはExcluded File Pathパラメーターに /dir1/test * を指定した場合、/dir1/test、/dir1/test/1.html、/dir1/test /2.html、/dir1/test1/1.html、/dir1/test2/2.htmlなどのディレクトリが一致します。
保護されたファイルディレクトリ、ホワイトリスト、または除外されたファイルパスパラメータに /dir1/test/*.htmlを指定した場合、/dir1/test/index.htmlや /test/dir1/index.htmlなどのディレクトリが一致します。
パラメーター
説明
例
ルール名
ルールの名前を入力します。 名前は6 ~ 50文字で、英数字、アンダースコア (_) 、ハイフン (-) を使用できます。 先頭は文字である必要があります。
クラスター01
Rule Configuration
ファイル保護ディレクトリ
保護するディレクトリを入力します。 このパラメーターを設定するときは、次の項目に注意してください。
ディレクトリはスラッシュ (/) で始める必要があります。 入力できるディレクトリは1つだけです。
ディレクトリの長さは500文字未満である必要があります。
毎回入力できるディレクトリは1つだけです。 複数のディレクトリを保護するには、操作する 列の 増加 をクリックします。
ルールには最大10個のディレクトリを指定できます。
/home/app/label/*
説明/homeディレクトリと、ディレクトリ内のすべてのサブディレクトリおよびファイルを保護する場合は、次のディレクトリに2つのルールを作成することをお勧めします。
/ホーム
/home/*
/home * ディレクトリのルールを作成することもできます。 この場合、/home1 /や /home2 /などのディレクトリも保護できます。
プロセスのホワイトリスト
保護されたディレクトリを変更できるプロセスを入力するか、変更できるディレクトリを入力します。 プロセスがホワイトリストに追加された場合、またはディレクトリがExcluded File Pathパラメーターに追加された場合、プロセスがファイルを変更したり、ディレクトリが変更されたりしても、アラートは生成されず、プロセスはブロックされません。 2つのパラメーターを設定するときは、次の項目に注意してください。
1つのプロセスまたはディレクトリの長さは最大50文字です。
複数のプロセスまたはディレクトリをセミコロン (;) で区切る必要があります。
保護ディレクトリには、最大10個のホワイトリストプロセスと10個の除外ファイルパスを指定できます。
ホワイトリストと除外されたファイルパスを設定するときは、次の原則に従う必要があります。
最小権限: コンテナの通常のワークロードでプロセス、ファイル、またはディレクトリへのアクセスが必要な場合にのみ、プロセス、ファイル、またはディレクトリを指定します。
正確さ: 正確なプロセス、ファイル、またはディレクトリを指定します。 セキュリティリスクを最小限に抑えるため、ワイルドカード文字を慎重に使用してください。
/bin/cp;/usr/bin/mv;/bin/vi
ファイルディレクトリのホワイトリスト
/home/app/label/logs/*
アクションの実行
改ざん操作が検出されたときにSecurity Centerで実行するアクションを選択します。 有効な値:
アラート: Security Centerがディレクトリ内のファイルに対する改ざん操作を検出した場合、Security Centerはアラートのみを生成します。
Block: Security Centerがディレクトリ内のファイルに対する改ざん操作を検出すると、Security Centerはアラートを生成し、改ざんプロセスをブロックします。
説明最初にActionパラメーターをAlertに設定することを推奨します。 誤ったアラートが生成されないことを確認したら、ActionパラメーターをBlockに変更します。 これにより、通常のプロセスがブロックされなくなります。 ワークロードでブロックされたプロセスが必要な場合は、そのプロセスをホワイトリストに追加できます。
アラート
[クラスター名] 列でルールを有効にするクラスターを選択し、[ポッドタグ] 列でポッドラベルを選択し、OK をクリックします。
app
で始まるポッドラベルを選択することを推奨します。 Kubernetesでは、ラベルはキーと値のペアであり、ポッド、デプロイメント、サービスなどのKubernetesリソースのラベルと分類に使用されます。 シナリオ、機能、または目的に基づいてKubernetesリソースにカスタムラベルを追加して、リソースをより適切に管理できます。app
で始まるラベルは、アプリケーションごとにリソースを整理するために使用されます。 ラベルの詳細については、「推奨ラベル」をご参照ください。ドロップダウンリストにラベルが表示されない場合は、ラベルを入力する必要があります。 ルールを複数のクラスターまたはクラスター内の複数のポッドラベルで有効にするには、操作する 列の 増加 をクリックして、複数のクラスターまたはポッドラベルを指定します。
ルールの管理
ルールを作成したら、コンテナファイルの防御 ページで次の操作を実行できます。
ルールの有効化または無効化
ルールを見つけ、スイッチの有効化 列でスイッチをオンまたはオフにして、ルールを有効または無効にします。
ルールの変更
ルールを見つけ、操作する 列の 編集 をクリックして、ルールの名前、設定、および範囲を変更します。
ルールの削除
重要ルールが削除された後、復元することはできません。 ルールを削除する前に、ルールが不要になったことを確認してください。
ルールを見つけて、操作する 列の 削除 をクリックします。 表示されたメッセージボックスで、OK をクリックします。
アラート結果の表示
ルールを作成して有効にしたら、レスポンス検出 > セキュリティアラートの処理 を選択し、[Container Active Defense] タブをクリックし、[アラートタイプ] を [コンテナーアクティブディフェンス] に設定します。 アラートリストでは、コンテナーファイル保護機能によって生成されたアラートを表示できます。 アラートの名前は [ファイル防御] で始まります。 アラートの状態は、アラートをトリガーするルールで指定されたアクションによって異なります。
アクションがアラートであるルールによってアラートがトリガーされた場合、アラートはContainer状態になります。 このタイプのアラートは、できるだけ早い機会に処理することを推奨します。 詳細については、「セキュリティアラートの表示と処理」をご参照ください。
アクションがBlockされているルールによってアラートがトリガーされた場合、アラートはブロックされましたの状態になります。 このタイプのアラートは、Security Centerによって自動的に処理されます。 このタイプのアラートは、処理済みアラートのリストで表示できます。
サポートされているオペレーティングシステムとカーネルバージョン
オペレーティングシステム | カーネルバージョン |
CentOS (64ビット) |
|
Alibaba Cloud Linux (64ビット) |
|
Ubuntu (64ビット) |
|
Anolis OS (64ビット) |
|
レッドハットエンタープライズLinux (RHEL) (64ビット) |
|