Isovalent社は、eBPFベースのKubernetesセキュリティオブザーバビリティ(可観測性)とランタイム強制ツールであるCilium Tetragonの1.0リリースを発表した。eBPFを介してポリシーとフィルタを直接適用して、プロセスの実行、特権の昇格、ファイルとネットワークのアクティビティを監視できる。
Tetragonは、セキュリティとランタイム・エンフォースメントの実行に使用できる。Kubernetesを意識しており、名前空間やポッドといったKubernetesの概念を理解する。TetragonはHelmを使ってKubernetesクラスタにデプロイできる。Tetragronはデフォルトでprocess_exec
と process_exit
イベントを生成し、より高度なユースケース向けにprocess_kprobe
、process_tracepoint
、process_uprobe
イベントを生成できる。
1.0リリースでは、Tetragonの安定性とパフォーマンスが改善された。このリリースの主な焦点は、Tetragonを実行する際のパフォーマンス・オーバーヘッドを大幅に削減である。Isovalent社のCTOであるThomas Graf氏は、最悪のケースのベンチマークテストにおいて、"Tetragonのプロセス実行トラッキングは、最小1.68%のオーバーヘッドを追加し、全てのプロセス実行イベントをJSONとしてディスクに書き込む場合は、わずか2.46%のオーバーヘッドしか追加しない "と指摘している。Graf氏は、このテストは6.1.13 Linuxカーネルをビルドし、標準的なユースケースよりも大幅に多いイベント量を生成することで実施されたと述べている。
このリリースでは、デフォルトの可観測性ポリシーのライブラリも追加されている。これらのポリシーは、カーネル・モジュールのロードの監視、/tmp
内のバイナリ実行の検出、sshd
によって開始または受け入れられた接続の監査ログ、sudo
呼び出しの追跡などのシナリオをカバーしている。ポリシーの適用はkubectl
を使って行う。
kubectl apply https://raw.githubusercontent.com/cilium/tetragon/main/examples/policylibrary/modules.yaml
ポリシーはそのまま使うこともでき、テンプレートやベストプラクティス・ガイドとして使うこともできる。Graf氏は、ポリシーは「特定のユースケースに有用な方法で生ログをフォーマットするための、ベストプラクティスのjq
フィルター」の例を提供すると述べている。Tetragonは、軽量のコマンドラインJSONプロセッサであるjq
を活用している。
TetragonはeBPFでラベルと名前空間フィルタを提供し、Kubernetesのメタデータに対する効率的なフィルタリングと、特定のKubernetesワークロードに対するポリシーの適用を可能にする。以下のポリシー・スニペットは、setuid()
システムコールを監視し、プロセスがapp=sensitive-workload
というラベルを持つKubernetesポッド内で実行されている場合、それへのあらゆるコールをログに記録する。
apiVersion: cilium.io/v1alpha1kind: TracingPolicymetadata: name: "monitoring-gaining-root-access-on-sensitive-workloads"spec: podSelector: matchLabels: app: "sensitive-workload" kprobes: - call: "sys_setuid" syscall: true args: - index: 0 type: "int" returnArg: index: 0 type: "int" returnArgAction: "Post"
一致するアクションが検出されると、Tetragon はイベントを生成し、Tetragon CLI 経由でレビューしたり、追加分析のために SIEM に渡すことができる。
eBPF は、 可観測性とセキュリティ・ツールを強化するためのツールとして、着実に地歩を固めつつある。 可観測性とセキュリティ監視に eBPF を使うオープンソースの代替ツールには、Pixie、Inspektor Gadget、Coroot、parca、Granfa Beyla、OpenTelemetry eBPF プロジェクトなどがある。
TetragonはApache-2.0ライセンスのオープンソースで、GitHubで入手できる。1.0リリースの詳細はIsovalentブログで参照できる。