Linxuカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開
今回は「Linxuカーネル内部をフックするeBPFを用いてセキュリティの可観測性を実現する「Tetragon」がオープンソースで公開」についてご紹介します。
関連ワード (収集、状態、開発等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Linuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる「eBPF」(Extended Berkeley Packet Filter)は、クラウドネイティブ関連で最も注目されている技術の1つです。
eBPFを用いたソフトウェアとしては、CNI(Container Networking Interface)を用いてコンテナ間のセキュアな接続やロードバランシングなどさまざまな機能拡張を実現する「Cilium」がCloud Native Computing Foundationのプロジェクトとしてよく知られています。
今回、そのCiliumを開発するIsovalent社が、Ciliumの関連プロジェクトとしてオープンソース化したのが「Tetragon」です。
Today, we are open sourcing Tetragon after several years of development. eBPF-based Security Observability & Runtime Enforcement.https://t.co/CzvfUsAYZ9
— Thomas Graf (@tgraf__) May 16, 2022
Tetragonは、Linuxカーネル内部のさまざまなAPIやスタックからメトリクスをリアルタイムに取得。
具体的にはファイルアクセスやネットワークアクセスなどのI/O、プロセス実行のイベント、特権レベルへのエスカレーションなど、システムコールやスタックの状態を含むアプリケーションの振る舞いをリアルタイムで観測可能にします。
取得したメトリクスはエージェントで集約、フィルタリングできるため、ポリシーに応じて重要なイベントやメトリクスだけを観測できるように設定可能です。
Tetragon consists of an agent and smart eBPF collectors and enforcers that hook into all layers of the operating system and application stack. pic.twitter.com/XQvFrJI1F8
— Thomas Graf (@tgraf__) May 16, 2022
大きな特徴として、Linuxカーネル内部をフックすることでメトリクスを収集するため、あらゆるアプリケーションに対してコードを書き換える必要なくセキュリティの可観測性を実現。
しかもメトリクスの収集時にコンテキストスイッチの発生やプロセスの起動が回避できるため、非常に小さなオーバーヘッドで済みます。
また、名前空間やPodなどのKubernetes IDを認識して、Kubernetes上の個々のワークロードに関連したセキュリティイベントの検出を設定することが可能になっています。