ランタイムセキュリティは、カスタマイズ可能なルールセットに違反するコンテナアクティビティを可視化します。現在、ランタイムセキュリティには、コンテナのMITER ATT&CKフレームワークの戦術およびコンテナのドリフト検出に対する可視性を提供する、事前定義されたルールのセットが含まれています。Container
Security は、ランタイムセキュリティ機能によって検出された問題を自動的に軽減できます。実行時にポッドがルールに違反する場合、その Container Security
ポリシーに割り当てられたルールセットに基づいてポッドを終了または隔離することで、問題が軽減されます。
ランタイムセキュリティはKubernetesと互換性があり、Amazon EKS、Microsoft Azure AKS、Google GKE、およびOpenShiftがサポートされます。現在、初期設定および最新のLinuxカーネル でサポートされています。
ランタイムルールセットを作成する
ランタイムセキュリティ プレビューにアクセスしたら、1つ以上のランタイムルールセットを作成します。トレンドマイクロが提供するいくつかの管理対象ルールから選択して、適用する一連のルールを定義します。
手順
- Trend Cloud Oneコンソールを開き、[Container Security]を選択します。
[Runtime Rulesets]に移動します。
- 次のいずれかを実行します。
-
これが最初のルールセットである場合は、[+ New runtime rulesets]をクリックします。
-
これが最初のルールセットでない場合は、[+ New]を選択します。
-
- 次の情報が含まれます。
- [Name:] ルールセットの識別に役立つ一意の名前。ルールセットの作成後にこの名前を変更することはできません。
- [Description:] オプションのルールセットの説明。
- 初期設定では、ルールセットはクラスター内のすべてのポッドに適用されます。ルールセットを特定のアプリケーションに限定する場合は、アプリケーションに適用する Kubernetes
ラベルと一致する 1 つ以上のラベルを追加します。コンテナセキュリティでは、指定したラベルに一致するアプリケーションにルールを適用します。
-
[Add Label]をクリックしてください。
-
照合するラベルのキーと値を入力します。たとえば、
app:php
のラベルを追加すると、ルールセットはapp:php
のラベルが付いた Kubernetes ポッドにのみ適用されます。
-
- [Add Rule] をクリックし、ダイアログを使用してこのルールセットで適用するルールを選択し、[Apply] をクリックします。すべてのルールを選択するには、テーブルの見出しを使用します。ルールで防御する攻撃の手法については、MITRE ATTACK でMITRE ID (
T1021.004
など) を検索してください。 - 各ルールについて、実行中のポッドがルールに違反した場合にContainer Securityが実行する処理を選択するには、[Mitigation] を使用します。これらのアクションには、イベントのログへの記録とポッドの実行の維持、ポッドのネットワーク トラフィックの分離、ポッドの終了が含まれます。
- [Create]の順にクリックして、新しいルールセットを確定します。
ポリシーにルールセットを追加する
ポリシーを作成し、[Runtime] タブを使用して1つ以上のルールセットを追加します。また、既存のポリシーにルールセットを追加することもできます。手順については、ポリシーの作成を参照してください。
また、保護するクラスタにポリシーを割り当てる必要があります。これにより、クラスタにルールセットが適用されます。
クラスタのランタイムセキュリティを有効にする
Container Securityにクラスタを登録していない場合は、クラスタの追加の手順に従います。
クラスタをContainer Securityに登録したがランタイムセキュリティを有効にしなかった場合は、次の手順を実行します。
手順
- オーバーライドファイルに
runtimeSecurity.enabled=true
を追加します (通常はoverrides.yaml
)。cloudOne: apiKey: <API_KEY> endpoint: <ENDPOINT> runtimeSecurity: enabled: true
- Container Securityをアップグレードするには、次のコマンドを使用します。
helm upgrade \ trendmicro \ --namespace trendmicro-system --create-namespace \ --values overrides.yaml \ https://github.com/trendmicro/cloudone-container-security-helm/archive/master.tar.gz
ランタイムイベントの表示
ランタイムルールがトリガされると、[イベント]ページから表示されるイベントが生成されます。詳細については、イベントの監視を参照してください。
ランタイムセキュリティを無効にする
クラスタ内のランタイムセキュリティを無効にして、Container Securityの他の要素を維持するには、次の手順を実行します。
手順
- オーバーライドファイルに
runtimeSecurity.enabled=false
を設定します (通常はoverrides.yaml
)。cloudOne: apiKey: <API_KEY> endpoint: <ENDPOINT> runtimeSecurity: enabled: false
- Container Security クラスタをアップグレードするには、次のコマンドを使用します。
helm upgrade \ trendmicro \ --namespace trendmicro-system \ --values overrides.yaml \ https://github.com/trendmicro/cloudone-container-security-helm/archive/master.tar.gz
TaintsとTolerations
Taintsはノードが一連のポッドを撃ち直すという Kubernetesの概念です。詳細については、Kubernetes: Taints and Tolerationsを参照してください。taintsを使用している場合は、許容できる値を使用して、ランタイムセキュリティがtaintedノードに適用されるようにすることができます。これは、許可を次の形式でオーバーライドファイルに追加することによって行われます。
tolerations: scout: - key: "key1" operator: "Equal" value: "value1" effect: "NoSchedule"
すべてのTaintにTolerationsを追加するには(Taintに関係なくすべてのノードにランタイムセキュリティを適用する)、オーバーライドファイルに次の行を追加します。
tolerations: scout: - key: "" operator: Exists
サポートされているLinuxカーネルのメジャーバージョンとマイナーバージョン
Container Security Helmバージョン2.3.14では、eBPF CO-RE (コンパイルが1回実行、どこでも実行) としても知られる、モダンなBerkeley
Packet Filter (BPF) のサポートが追加されました。これにより、BTFの種類が公開されていれば、Container SecurityでLinuxカーネルバージョン5.8以降がサポートされるようになりました。
以下は、Container Securityによってサポートされるカーネルバージョンのバージョンの非排他的リストです。
プラットフォーム
|
メジャーバージョンおよびマイナーバージョン
|
フレーバー
|
Amazon Linux 2
|
4.14.x
|
|
Amazon Linux 2
|
5.4.x
|
|
Amazon Linux 2
|
5.10.x
|
|
Amazon Linux 2
|
5.15.x
|
|
Red Hat Enterprise Linux CoreOS (RHCOS)
|
4.18.x
|
|
Ubuntu
|
4.15.x
|
generic
|
Ubuntu
|
5.4.x
|
generic
|
Ubuntu
|
5.4.x
|
azure
|
Ubuntu
|
5.4.x
|
aws
|
Ubuntu
|
5.4.x
|
gke
|
Ubuntu
|
5.11.x
|
generic
|
Ubuntu
|
5.11.x
|
azure
|
Ubuntu
|
5.11.x
|
aws
|
Google Container-Optimized OS (COS)
|
5.4.x
|
|
Google Container-Optimized OS (COS)
|
5.10.x
|
|
Debian 11
|
5.10.x
|
generic
|
Bottlerocket
|
5.10.x
|