KubeCon EU開幕、前日に行われたプレカンファレンスからeBPFとTetragonを紹介

2022年8月18日(木)
松下 康之 - Yasuyuki Matsushita
KubeCon+CloudNativeCon EUがスペインのバレンシアで開催。前日に行われたプレカンファレンスから、eBPFの最新情報と新しいOSSのTetragonを紹介する。

KubeCon/CloudNativeCon EUが、2022年5月17日から20日にわたってスペインのバレンシアで開催された。約7000名というリアルでの参加者を集め、コロナ禍前のカンファレンスに近い形でのイベントとなった。今回は17日に行われたプレカンファレンスの中から、IsovalentのThomas Graf氏とLiz Rice氏によるセッションによるeBPF(extended Berkeley Packet Filter)の最新情報と、新しく公開されたオープンソースソフトウェアTetragonを紹介する。

eBPFの最新情報

The Future of eBPF in Cloud Nativeと題したGraf氏のセッションはeBPF Dayというプレカンファレンスのキーノートとして行われ、eBPFの現在と未来を解説するものだ。

Thomas Graf氏のキーノート:The Future of eBPF in Cloud Native - Thomas Graf, Isovalent

Thomas Graf氏のセッションタイトル

Thomas Graf氏のセッションタイトル

Graf氏のセッションではeBPFの基本として、ユーザープロセス(アプリケーション)がLinuxカーネルで実行したいコードを安全に実行するための仕組みであると紹介。

eBPFの構造を簡単に解説

eBPFの構造を簡単に解説

特に比較として、JavaScriptがブラウザーで実行されることでリッチなコンテンツをブラウザー上で提供できるようになったことを挙げて、ブラウザーにおけるJavaScriptとLinuxにおけるeBPFとは同等の意味合いを持つと紹介した。

ブラウザーのJavaScriptと同じ意味をLinuxに対して持つeBPF

ブラウザーのJavaScriptと同じ意味をLinuxに対して持つeBPF

実際にはMicrosoftが主体となってWindowsの上でも同様のカーネル内で稼働するeBPF for Windowsをオープンソースとして開発しているため、Linuxに限らずWindowsの上でも特権を必要とするコードを安全に実行するための仕組みとして広く認識されていると言える。

eBPF for Windows:https://github.com/microsoft/ebpf-for-windows

またクラウドネイティブなシステムにおいてはさまざまなツールがエコシステムの拡大に貢献しており、KubernetesのCNI(Container Network Interface)であるCiliumを筆頭にPixieFalcoなどが挙げられている。ここに新たに追加されたのが、Liz Rice氏が紹介したTetragonだ。

クラウドネイティブにおけるeBPF。RustもWindowsも含まれている

クラウドネイティブにおけるeBPF。RustもWindowsも含まれている

Graf氏はeBPFのコードから実行までを1枚のスライドを使って解説。ここではCで書かれたeBPFのコードがバイトコードに変換され、VerifierやJIT Compilerを経て実行されるまでが表現されている。ここではネットワークへのアクセスだけが例として挙げられているが、実際にはプロセスによるファイルシステムへのアクセスなどの特権を与えるような挙動をリアルタイムに検知できることを意味している。

eBPFのアーキテクチャーを紹介

eBPFのアーキテクチャーを紹介

eBPFのベースとなったBPFはそもそもネットワークパケットの監視や確認のための機能であり、パケットの検査を行うのをユーザースペースではなくLinuxのカーネルスペースで行うことが性能的にも効率であったことが出発点となっている。コードの実行を安全に行うための仕組みが現代のニーズとしてはカーネル内の怪しい挙動を即座に捕捉することに役立っていると言えるだろう。

eBPFの歴史

ここからは2014年からこれまでのeBPFの歩みを紹介した。2014年に初めてLinuxカーネルにeBPFのためのパッチがマージされたという。2014年といえばKubernetesの開発が始まった年でもあり、eBPFはクラウドネイティブと同じ時代を歩んでいると言える。

eBPFの歴史を振り返る。CiliumがCNCFにホストされたのは2016年だ

eBPFの歴史を振り返る。CiliumがCNCFにホストされたのは2016年だ

CiliumはeBPFをゼロから実装したソフトウェアだが、単なるネットワーク機能だけではなくオブザーバビリティやセキュリティのためのプラットフォームとして位置付けられている。Isovalentが主な開発主体として知られているが、NetflixやFacebook、Cloudflareなどが実際に本番環境で利用していることなども紹介された。2019年にはHubbleというオブザーバビリティのためのツールもオープンソースとして公開され、エコシステムが拡大している。このスライドでもAWSやGoogleが利用していることが説明された。最近ではTetragonやCilium Service Meshのリリースなど話題には欠かない状況となっている。

ちなみにIsovalentはCiscoでネットワークアーキテクトだったThomas Graf氏が、長年のLinuxカーネルでのネットワークスタックの経験を活かして開発したCiliumのためのベンチャーで、オープンソースであるCiliumをベースにしたエンタープライズ向けのソフトウェアCilium Enterpriseを商用版として提供している。前掲のHubbleやTetragonも、エンタープライズ向けのモジュールをオープンソースとして公開したものだ。最後に紹介するIKEAの事例はこのEnterpriseを使ったものだろう。

Cilium Service Mesh

Cilium Service Meshの紹介

Cilium Service Meshの紹介

このスライドではCilium Service Meshについて簡単に触れている。EnvoyやLinkerdをベースにしたPodの中にProxyを入れてサイドカーとして実装されるサービスメッシュだが、Cilium Service Meshではそのサイドカー実装について観測を行う際の性能が劣化することを語って、CiliumをPod間通信に使うサービスメッシュを推奨した。

クラウドネイティブなシステムにおけるeBPF

クラウドネイティブなシステムにおけるeBPF

ここでクラウドネイティブなシステムにおいて存在感を増しているeBPF関連についても説明を行った。Pixie以外にもAqua Securityが開発するTraceeや継続的プロファイリングを実現するParcaなどが挙げられている。PixieはオブザーバビリティのSaaSを提供するNew Relicが2020年に買収したベンチャーが開発していたソフトウェアだ。CNCFにおけeBPF関連のソフトウェアは充実してきており、他にもSysdigが開発するFalcoなどが存在する。CNCFに関係するeBPF関連のソフトウェアについてはPixieのエンジニアが書いた以下のブログが参考になるだろう。

参考:A brief stroll through the CNCF eBPF landscape

Tetragon

Tetragonの紹介

Tetragonの紹介

ここでオブザーバビリティにおいて新しくIsovalentがオープンソースとして公開したTetragonを紹介。TetragonはPixieと同じ位置付けのオブザーバビリティとランタイムにおいてセキュリティを強化するためのソフトウェアだ。Cilium Enterpriseの一部だったものが公開されたと言う意味では、Isovalentにおいてはオープンコアのコアの部分を徐々に拡大していると言えるだろう。Tetragonはパケットの送受信の監視だけではなく特権の取得、ファイルシステムへのアクセスの監視に加えてネームスペースの監視などKubernetesに特化した機能も持っている。

Tetragonのカバーする領域は4つ。どれもカーネルレベルの実行が必要

Tetragonのカバーする領域は4つ。どれもカーネルレベルの実行が必要

ここからはLiz Rice氏のセッションから紹介しよう。ここではセキュリティの観点から「どのような行動がカーネルレベルで行われると注意が必要なのか?」を挙げてTetragonがカバーする領域機能の前提知識を解説した。そしてユーザースペースとカーネルスペースの分離、カーネルで実行される機能としてファイルアクセス、ネットワークアクセス、メモリーアクセス、そしてプロセスの特権についてさまざまな方法があることを紹介。その中でeBPFによってシステムコールをフックした上でユーザーが書いたeBPFのコードをカーネル内で実行する方式が優れていることを解説した。その実装例がTetragonであるということになる。

Tetragonのアーキテクチャー

Tetragonのアーキテクチャー

またユーザースペースに実装したランタイムが悪意のあるコードを発見、削除する方法もあるが、その場合、検知してから実際にプロセスを削除するまでのズレが発生し、結果として悪意のあるコードが実行されてしまうと説明。

ユーザースペースのランタイムでも発見と削除は可能だが…

ユーザースペースのランタイムでも発見と削除は可能だが…

一方、Tetragonが採用しているeBPFによる実装では、不正なアクセスを検知すれば即座に処理が行えるとしてその違いを解説した。

Tetragonなら高速に攻撃を防御できる

Tetragonなら高速に攻撃を防御できる

最後にまとめとしてTetragonの概要を再度おさらいしてセッションを終えた。

Liz Rice氏のセッションは以下から試聴されたい。

動画:Real Time Security - eBPF for Preventing attacks - Liz Rice, Isovalent

eBPF Dayでは、eBPFに関連したソフトウェアとプロジェクトだけではなくユーザー事例も紹介された。最後にIKEAのセッションからCiliumをマルチクラスター、マルチホーミングで利用している事例を紹介したい。

IKEAによるセッションを紹介

IKEAによるセッションを紹介

IKEAは世界各国に展開する家具の量販チェーンだ。従来はOpenStackによる仮想マシンベースのデータセンターを利用していたが、それをKubernetesベースのクラスターに移行しようとしているという。

IPv6によるマルチテナントを目指すIKEAのデータセンター

IPv6によるマルチテナントを目指すIKEAのデータセンター

また2つのNICを利用するマルチホーミングをデフォルトにしようとしているとして、未だPoCレベルながらCiliumのIPAM(IP Address Management)を利用する方向であるという。

Ciliumでマルチホーミングを実現する方向

Ciliumでマルチホーミングを実現する方向

マルチテナンシーはKubernetesのネームスペースをベースに実装、マルチクラスターはCiliumのCluster Meshを使うという。マルチクラスター、クラスターメッシュについては以下のCiliumのブログを参照されたい。

参考:Multi Cluster Networking with Cilium and Friends

なおCiliumのオープンソース版とエンタープライズ版の違いは以下から確認できる。

参考:Isovalent Cilium Enterprise

eBPFが高速で柔軟なセキュリティのためのキーとなるテクノロジーであることはかなり周知されているようで、現地で対話した複数の参加者からeBPFに注目しているという声をきいた。Red HatのPrincipal Software EngineerであるDave Tucker氏も、継続的プロファイリングを行うParcaとeBPFのコードをlibbpf、bccを使わずにRustで書くことを可能にするAyaという新しいプロジェクトを紹介するセッションを行っていた。eBPFに対して業界が盛り上がっていることを実感するプレカンファレンスとなった。

Red HatのDave Tucker氏のスライド(PDF):eBPF? Safety First!

IKEAのセッションは以下から参照して欲しい。

動画:IKEA Private Cloud, eBPF Based Networking, Load Balancing, and Observability with... Karsten Nielsen

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

連載バックナンバー

クラウドイベント
第8回

KubeCon EU 2022のショーケースからみるKubeConの変化とは

2022/9/20
KubeCon+CloudNativeCon EU 2022で感じた変化を、ショーケースを絡めて紹介する。
クラウドイベント
第7回

KubeCon EU 2022からバッチシステムをKubernetesで実装するVolcanoを紹介

2022/9/15
KubeCon EU2022から、Kubernetes上でバッチジョブを実行するVolcanoを解説するセッションを紹介する。
クラウドイベント
第6回

KubeCon+CloudNativeCon EU 2022、3日間のキーノートを総括

2022/9/13
KubeCon+CloudNativeCon EU 2022開催。3日間のキーノートを総括して紹介する。

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

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

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

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