ビュー:
Runtime不正プログラムスキャンは、Kubernetesクラスターで実行されているコンテナ内の不正プログラムを検出します。事前デプロイメントのイメージスキャンとは異なり、Runtime不正プログラムスキャンは実行中のコンテナのファイルシステム上で動作し、実行時にダウンロードされた不正プログラムやデプロイメント後にサプライチェーンの妥協を通じて導入された不正プログラムを検出することができます。

検索の種類

ランタイム不正プログラム検索は、2つの補完的な検索タイプをサポートしています。
  • スケジュール検索: Container Securityポリシーで設定されたスケジュール (cron式) に基づいて、クラスタに展開されたすべてのコンテナイメージを定期的に検索します。最新の不正プログラムパターンに対するすべてのイメージの包括的なカバレッジを提供します。スケジュールスキャンを有効にする.
  • リアルタイム検索: 実行中のコンテナ内のファイルシステム活動を監視し、ファイル書き込みイベントが検出された際に新しく書き込まれたファイルや変更されたファイルを即座に検索します。展開後に導入された不正プログラム、例えば侵害されたプロセスによって取得されたペイロードを即座に検出します。malwareScanning: enabledでHelmチャートを展開することでリアルタイム検索を有効にできます。詳細はランタイムセキュリティとスキャン機能を有効にするを参照してください。

スケジュールスキャンを有効にする

スケジュールされた検索は、クラスターに割り当てられたContainer Securityポリシーを通じて構成されます。検索マネージャはクラスター内の各ユニークなイメージに対して検索ジョブを作成し、各ジョブはイメージのファイルシステムを抽出し、ファイルをローカルの不正プログラムスキャナーに送信して分析します。イメージはそのユニークなイメージIDによって識別されます。同じイメージが複数のポッドで実行されている場合、サイクルごとに一度だけ検索されます。
  1. [Container Security][設定][ポリシー]に移動します。
  2. クラスターに割り当てられたポリシーを選択します。
  3. 不正プログラムスキャンセクションで、スケジュールスキャンを有効にし、希望のスケジュールを設定してください。
注意
注意
検索負荷を均等に分散するために、検索マネージャは各検索ジョブを開始する前にランダムなジッター (最大90秒) を適用します。これにより、すべての検索ジョブが同時に開始されてスキャナーが過負荷になることを防ぎます。

スキャンロジック

  • 自動再検索: 検索が完了すると、ワークロードオペレーターは設定可能な再検索間隔 (デフォルトは24時間) を待ってから検索マネージャに新しい検索ジョブを作成するように指示します。再検索は、スケジュールされた検索が実行されるときや不正プログラム検索ポリシーが更新されるときにもトリガーされます。
  • 画像検索キャッシュ: 重複検索を避けるために、検索マネージャは24時間の有効期限付きの画像検索キャッシュを維持します。過去24時間以内に検索された画像はスキップされます。
  • パターンの更新: 不正プログラムスキャナーは、TrendAI™のActive Update (AU) サーバから新しい不正プログラムパターンの更新を自動的にダウンロードして適用します。更新はメモリ内で適用され、スキャナーの再起動は必要ありません。

検索範囲と除外されたパス

デフォルトでは、不正プログラムスキャナーはコンテナイメージファイルシステム内のすべてのファイルをスキャンしますが、次のパスは除外されます:
  • /proc
  • /dev
  • /sys
Container Securityポリシーで追加の除外パスを設定できます。除外パスはプレフィックスで一致します。除外パスで始まるパスを持つファイルはスキャン中にスキップされます。

緩和策

Container Securityポリシーの不正プログラムスキャンセクションで自動緩和アクションを設定します。以下のアクションが利用可能です。
  • ログ: 検出イベントを記録し、追加のアクションを行いません。これはデフォルト設定です。
  • 終了: 影響を受けたポッドを自動的に終了します。
  • 隔離: 影響を受けたポッドをすべてのネットワークトラフィックから自動的に隔離します。
    重要
    重要
    [隔離]アクションには、クラスタにインストールされたKubernetesネットワークポリシープラグイン (例: Calico) が必要です。
コンソールの検出の詳細から手動で対応することもできます。Workbenchで影響を受けたポッドを隔離、終了、または調査してください。Workbenchについてさらに学びましょう。

検索結果の表示

不正プログラム検出はContainer Securityコンソールに表示されます。検出を表示するには、[ログ][ランタイム不正プログラム]に移動してください。フィルターオプションを使用して、クラスター、ネームスペース、重大度、または時間範囲で結果を絞り込むことができます。
各検出には、次の情報が含まれます。
フィールド
説明
不正プログラム名
検出された不正プログラムの名前
ファイル名
検出されたファイルの名前
オブジェクトファイル名
コンテナ内のファイルのフルパス
ファイルSHA-256
検出されたファイルのSHA-256ハッシュ
コンテナ
影響を受けたコンテナ名とID
ポッド
Pod 名とNamespace
クラスタ
検出が発生したクラスター
検出時間
検出のタイムスタンプ

ランタイム不正プログラム検索をテストする

EICARテストファイルを使用して、クラスター内での実行時不正プログラムスキャンをテストしてください。これは標準で安全な不正プログラム対策テストシグネチャです。
  1. EICARテストファイルをダウンロードするテストポッドをデプロイします。
    kubectl run malware-test --image=busybox --restart=Never -- \
      sh -c "wget -q -O /tmp/eicar.com 'https://secure.eicar.org/eicar.com' && sleep 3600"
  2. 検索が開始されるのを待ちます。スケジュールされた検索が設定されている場合は、次の検索サイクルを待ちます。リアルタイム検索は新しいファイルを検出し、自動的に検索を開始します。
  3. [ログ][ランタイム不正プログラム]に移動します。不正プログラム名Eicar_test_fileの検出を探し、ファイルパスがmalware-testコンテナ内で/tmp/eicar.comと表示されていることを確認します。
  4. テストポッドをクリーンアップする。
    kubectl delete pod malware-test

XDRの統合

ポリシーでXDRテレメトリが有効になっている場合、不正プログラム検出イベントはTrendAI Vision One™データレイクに送信され、Workbenchでのクロスソース相関とSearchアプリでのクエリが可能になります。

アーキテクチャとリソース

ランタイム不正プログラムスキャンは、クラスター内に展開される以下のコンポーネントで構成されています。
コンポーネント
説明
ワークロードオペレーター
ポッドのデプロイメントを監視し、クラスター内の各ユニークなコンテナイメージに対してカスタムリソースを作成します。
検索マネージャ
スケジュールされた検索スケジュールを管理し、不正プログラム検索ジョブを作成し、検索の完了を監視し、イメージ検索キャッシュを維持します。
不正プログラム検索ジョブ
コンテナイメージのファイルシステムを抽出し、ファイルをスキャナーに送信する短期間のジョブです。ユニークなイメージごとに1つのジョブが作成され、スケジュールされたスキャンで使用されます。
スカウト
各ワーカーノードでDaemonSetとして実行されます。実行中のコンテナ内のファイルシステムイベントをリアルタイムで監視し、検出されたファイルを不正プログラムスキャナーに送信して即座に分析します。
不正プログラムスキャナー
クラスター内に展開されたローカル検索エンジン。検索ジョブ (スケジュール検索) とScout (リアルタイム検索) の両方からファイルを受け取り、不正プログラム分析を実行し、検出結果を返します。検索中にファイルが環境外に出ることはありません。
不正プログラム検索ツールと検索ジョブには、以下のデフォルトリソース割り当てがあります。
コンポーネント
リクエスト
制限
不正プログラムスキャナー
CPU: 100m, メモリ: 1Gi
CPU: 1, メモリ: 2Gi
不正プログラム検索ジョブ
CPU: 50m, メモリ: 64Mi
メモリ: 512Mi
不正プログラムスキャナーは、以下のエンドポイントへのアウトバウンドHTTPSアクセスを必要とします。インバウンドネットワークアクセスは必要ありません。
FQDN
ポート
目的
activeupdate.trendmicro.com
443
不正プログラムパターンの更新
TrendAI Vision One™地域エンドポイント
443
検索結果の報告、ポリシー同期、XDRテレメトリ