目次

ランタイムセキュリティの設定

ランタイムセキュリティは、カスタマイズ可能なルールセットに違反するコンテナアクティビティを可視化します。現在、ランタイムセキュリティには、コンテナのMITER ATT&CKフレームワークの戦術およびコンテナのドリフト検出に対する可視性を提供する、事前定義されたルールのセットが含まれています。Container Security は、ランタイムセキュリティ機能によって検出された問題を自動的に軽減できます。実行時にポッドがルールに違反する場合、その Container Security ポリシーに割り当てられたルールセットに基づいてポッドを終了または隔離することで、問題が軽減されます。

ランタイムセキュリティはKubernetesと互換性があり、Amazon EKS、Microsoft Azure AKS、Google GKE、およびOpenShiftがサポートされます。現在、初期設定および最新のLinuxカーネル でサポートされています。

ランタイムルールセットを作成する

ランタイムセキュリティ プレビューにアクセスしたら、1つ以上のランタイムルールセットを作成します。トレンドマイクロが提供するいくつかの管理対象ルールから選択して、適用する一連のルールを定義します。

  1. Trend Cloud Oneコンソール を開き、[Container Security]を選択します。
  2. Runtime Rulesetsアイコン [Runtime Rulesets]へ移動します。
  3. 次のいずれかを実行します。

    • これが最初のルールセットである場合は、[+ New runtime rulesets]をクリックします。

      既存のランタイムルールセットがない場合に表示される画面

    • これが最初のルールセットでない場合は、[+ New]を選択します。

      ランタイムルールセットが1つ以上存在する場合に表示される画面

  4. 以下の情報を指定します。

    • Name: ルールセットの識別に役立つ一意の名前。ルールセットの作成後にこの名前を変更することはできません。
    • Description: オプションのルールセットの説明。

    ランタイムルールセットを作成するためのデータを入力するページ

  5. 初期設定では、ルールセットはクラスター内のすべてのポッドに適用されます。ルールセットを特定のアプリケーションに限定する場合は、アプリケーションに適用する Kubernetes ラベルと一致する 1 つ以上のラベルを追加します。コンテナセキュリティでは、指定したラベルに一致するアプリケーションにルールを適用します。

    1. [Add Label]をクリックします。
    2. 照合するラベルのキーと値を入力します。

      たとえば、「app:php」のラベルを追加すると、ルールセットは「app:php」のラベルが付いたKubernetesポッドにのみ適用されます。

  6. [Add Rule] をクリックし、ダイアログを使用してこのルールセットで適用するルールを選択し、[Apply] をクリックします。すべてのルールを選択するには、テーブルの見出しを使用します。

    ルールで防御する攻撃の手法については、MITRE ATTACK でMITRE ID (「T1021.004」など) を検索してください。

  7. 各ルールについて、実行中のポッドがルールに違反した場合にContainer Securityが実行する処理を選択するには、[Mitigation] を使用します。これらのアクションには、イベントのログへの記録とポッドの実行の維持、ポッドのネットワーク トラフィックの分離、ポッドの終了が含まれます。

  8. [ Create ]の順にクリックして、新しいルールセットを確定します。

ポリシーにルールセットを追加する

ポリシーを作成し、[Runtime] タブを使用して1つ以上のルールセットを追加します。また、既存のポリシーにルールセットを追加することもできます。手順については、「ポリシーの作成」を参照してください。

また、保護するクラスタにポリシーを割り当てる必要があります。これにより、クラスタにルールセットが適用されます。

クラスタのランタイムセキュリティを有効にする

Container Securityにクラスタを登録していない場合は、「クラスタの追加」の手順に従います。

クラスタをContainer Securityに登録したがランタイムセキュリティを有効にしなかった場合は、次の手順を実行します。

  1. オーバーライドファイルに「runtimeSecurity.enabled=true」を追加します (通常は「overrides.yamls」)。

    cloudOne:
        apiKey: <API_KEY>
        endpoint: <ENDPOINT>
        runtimeSecurity:
            enabled: true
  2. 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

ランタイムイベントの表示

ランタイムルールがトリガされると、Eventsページから表示されるイベントが生成されます。詳細については、「イベントの監視」を参照してください。

ランタイムセキュリティを無効にする

クラスタ内のランタイムセキュリティを無効にして、Container Securityの他の要素を維持するには、次の手順を実行します。

  1. オーバーライドファイルに「runtimeSecurity.enabled=false」を設定します (通常は「overrides.yamls」)。

    cloudOne:
        apiKey: <API_KEY>
        endpoint: <ENDPOINT>
        runtimeSecurity:
            enabled: false
  2. 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カーネルのメジャーバージョンとマイナーバージョン{#kernels}

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