CNSC 2022、eBPFをベースにしたコンテナランタイムセキュリティのツールを紹介

2022年12月2日(金)
松下 康之 - Yasuyuki Matsushita
CloudNative Srcurity Ceonference 2022から、クラスメソッドのエンジニアがeBPFをベースにしたコンテナランタイムセキュリティを解説したセッションを紹介する。

CloudNative Security Conference 2022から、クラスメソッド株式会社のソリューションアーキテクトが解説するコンテナランタイムのセキュリティツールに関するセッションを紹介する。タイトルは「eBPFで実現するコンテナランタイムセキュリティ」、プレゼンターは寺岡慶佑氏だ。

プレゼンテーションを行う寺岡氏

プレゼンテーションを行う寺岡氏

eBPFはiptablesに替わる技術としてトラフィックの制御に利用されており、例えばFacebookではロードバランサーとして広く使われている。この観点についてはCiliumの開発をリードするIsovalentのThomas Graf氏が2018年に行われたセッションで解説を行っている。こちらのセッションに関しては以下の記事を参照されたい。すでに2018年のセッションで、コンテナネットワークの高速化のためにeBPFが使われていることが紹介されている。

参考:iptablesを置き換えるBPFをコンテナネットワークに使うCilium

寺岡氏のセッションでは「eBPFとは何か?」を簡単に説明した後に3つのツールを挙げてインストールの方法、使い方、特徴などを解説している。

eBPFをおさらいした後にFalco、Tracee、Tetragonを紹介

eBPFをおさらいした後にFalco、Tracee、Tetragonを紹介

eBPFの歴史を振り返った後に「eBPFとは何か?」というスライドではカーネル内のイベントをフックして任意の処理を実行できることを紹介。パケットフィルターとしてのiptablesの持つ欠点を解消するという観点ではなく、カーネルを変えることなくユーザーが書いた処理を安全に実行できる点を評価している。

eBPFとは何か?

eBPFとは何か?

LinuxのカーネルモジュールとeBPFの関係についても触れ、カーネル内で安全に任意のコードが実行されることを紹介。

Linuxカーネルとの関係を整理

Linuxカーネルとの関係を整理

その上でeBPFの処理の流れを解説。このスライドではeBPFの仕組みを解説している。特にVerifierが、eBPFのプログラムが安全な処理かどうかを検証した上でJITコンパイラーによってコンパイルされ実行されるという部分に注目したい。このサンドボックス機能によって、プログラマーが意図せず危険なコードを書いてしまうことを防げるのだ。

eBPFの仕組みを解説

eBPFの仕組みを解説

BCCによるプログラミングについても触れ、実際に「Hello World」のソースコードを使って解説した後でeBPFが使われているユースケースについて紹介。Observability、Networkという2つの観点から、bpftrace、Pixie、XDP、Kataran、Calico、Ciliumなどを挙げて、すでに多くの企業で利用が進んでいることを紹介した。

eBPFのユースケースを紹介

eBPFのユースケースを紹介

特にIsovalentが発表した「サイドカーを使わないサービスメッシュ」も注目すべきプロジェクトとして紹介。これまではマイクロサービス間の通信をセキュアにするために、Podの中にサイドカー実装としてProxyを入れてアプリの実体が外部のPodと通信する際にはProxyを経由する方式が取られていた。そのサイドカーのProxyをeBPFプログラムとしてカーネルに入れて実装するのがCilium Service Meshということになる。eBPFをベースにしたサイドカーレスなサービスメッシュについては、IsovalentのLiz Rice氏が書いた以下の記事が参考になるだろう。

参考:How eBPF Streamlines the Service Mesh

Cilium Service Meshの紹介

Cilium Service Meshの紹介

Isovalentが発表したCilium Service Meshのベータプログラム開始については以下を参照されたい。参考:Try eBPF-powered Cilium Service Mesh - join the beta program!

ここからはコンテナランタイムにおけるeBPFの応用として、コンテナ実行時のセキュリティを高めるための仕組みとしてのランタイムツールを紹介する内容となった。

コンテナランタイムセキュリティでの応用を紹介

コンテナランタイムセキュリティでの応用を紹介

ランタイムにeBPFを使ったセキュリティを追加することで得られるメリットについて解説し、コンテナが悪意を持ったハッカーに侵入され、特権を奪われた結果マルウェアなどをダウンロードしてしまうという事態を防げると説明した。

ランタイムセキュリティのメリット

ランタイムセキュリティのメリット

またOpen Policy Agent(OPA)と組み合わせることで、ポリシーについてはOPAのRegoで記述、eBPFプログラムが実行時にそれを参照して安全かどうかを判定するという利用例も解説している。

OPAと組み合わせてポリシーの実装が可能に

OPAと組み合わせてポリシーの実装が可能に

ここからFalco、Tracee、Tetragonをそれぞれ紹介している。

3つのツールの利用方法などについて紹介

3つのツールの利用方法などについて紹介

3つのツールについて、アーキテクチャーや構造、ルールの概要、利用例などが解説されているが、ここからは寺岡氏による評価についてだけを紹介する。

Falco

Falcoについてのまとめ

Falcoについてのまとめ

Falcoはさまざまなモードが用意されていることが特徴であり、すでに既存のルールがあることを紹介。Sidekickという複数のFalcoからイベントを集約する機能も用意されていることも評価している。

Tracee

Traceeについてのまとめ

Traceeについてのまとめ

Traceeはチェックだけではなくイベントのトレーシングが可能で拡張性が高く、インストールが不要でコンテナへの実装が容易であることを評価している。ただルールについてはやや少ないという評価だ。

Tetragon

Tetragonについてのまとめ

Tetragonについてのまとめ

Tetragonについては単に検知を行うだけではなく防止する処理を追加できることを高く評価。操作の部分でも説明されたプロセスをkillできるというのが特徴だ。ただし現在はKubernetes環境だけをサポートしており、カバーする対象が狭いことを指摘。ドキュメントもまだ整備されておらず、これからに期待という希望を込めた評価となっている。

前半はeBPFの概要を紹介し、後半はコンテナランタイムに限定したオープンソースソフトウェアの紹介という形になったが、インストール方法や設定など実際に操作をする部分が多く、エンジニアにとっては感触を掴むうえでは参考になるセッションだったように思える。また寺岡氏はセッションに関する質問に対するフォローアップとして以下のブログを公開している。プロセスをkillした際の動作などについても考察を行っているので参考にされたい。

参考:CloudNative Security Conference 2022にて「eBPFで実現するコンテナランタイムセキュリティ」というタイトルで登壇しました

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

セキュリティイベント
第8回

CNSC 2022、SBoMの概要と未来を展望するセッションを紹介

2022/12/7
CloudNative Srcurity Ceonference 2022から、OWASPのコントリビュータが解説するSBoMの概要とデモ、そして未来を展望するセッションを紹介。
セキュリティイベント
第7回

CNSC 2022、eBPFをベースにしたコンテナランタイムセキュリティのツールを紹介

2022/12/2
CloudNative Srcurity Ceonference 2022から、クラスメソッドのエンジニアがeBPFをベースにしたコンテナランタイムセキュリティを解説したセッションを紹介する。
セキュリティイベント
第6回

CNSC 2022、日立のエンジニアがNISTの仕様をベースにIstioのセキュアな設定を解説

2022/11/29
CloudNative Srcurity Ceonference 2022から、日立のエンジニアによるNISTの仕様の解説とIstioの実装例の詳細を解説。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています