本文の内容は、2021年2月24日にCTO Loris Degioanniが投稿したブログ(https://sysdig.com/blog/sysdig-contributes-falco-kernel-ebpf-cncf/)を元に日本語に翻訳・再構成した内容となっております。
今日、私は興奮しています。それは、クラウドネイティブコンピューティングファウンデーションへのsysdigカーネルモジュール、eBPFプローブ、ライブラリの寄贈を発表します。これらのコンポーネントのソースコードはFalcoの組織に移行し、falcosecurityのgithubリポジトリでホストされます。
これらのコンポーネントは、ランタイムセキュリティのためのCNCFツールであり、クラウドにおける脅威検出のデファクトスタンダードであるFalcoの基盤となっています。また、コンテナフォレンジックとインシデント対応のために広く採用されているオープンソースツールであるsysdigの基盤にもなっています。
この動きは重要なマイルストーンです。これは、今後、FalcoスタックのすべてのコアコンポーネントがCNCFの一部になることを意味します。
これは具体的にどのようなものでしょうか?
まず、Falcoとオープンソースのsysdigのベースにある主要なコンポーネントを示す図から始めましょう。
Falcoとsysdigは、同じデータソースであるシステムコールの上で動作します。このデータソースはカーネルモジュールかeBPFプローブを使って収集されます。2つの方法は機能的には同等ですが、カーネルモジュールの方が少しだけ効率的で、eBPFのアプローチはより安全で近代的です。
sysdigやFalcoによって使用される前に、収集されたデータを濃縮する必要があります(すなわち、ファイル記述子番号をファイル名やIPアドレスに変換する必要があります)。これは、libsinspとlibscapという2つのライブラリによって実現されます。
上図の緑のボックスは、以前はCloud Native Computing Foundationが所有していたものを示しています。これには、Falcoを動作させるコンポーネントは含まれていますが、データを収集するコンポーネントは含まれていません。この分離の理由は、データ収集モジュールは元々sysdigのために開発されたもので、sysdigのリポジトリに残り、Falco(と他のツール)はそれらを外部の依存関係として扱っていたからです。
今回の寄贈の結果、図はこのように変化しています。
libsinsp、libscap、カーネルモジュール、そしてeBPFプローブは再ライセンスされ、現在はCNCFが所有しています。これらは falcosecurity 組織の下の独立したリポジトリに置かれ、それらのライセンスとガバナンスは CNCF コミュニティの原則によって導かれます。
なぜこれが重要なのでしょうか?
Sysdigは創業以来オープンソースにコミットしており、セキュリティの未来はオープンであると強く信じています。当社製品の背後にあるコア技術は、初日からオープンソースソフトウェアとして提供されています。今日、私たちはその原則に沿って生きていることを確実にするために、もう一つの大きな一歩を踏み出しています。特に、Falcoが完全に自由であり、コミュニティが所有するものであることを確認したいと考えています。
この貢献はその努力を完結させるものです。元々sysdigの一部であったコンポーネントを分離して独立させることに関わっていたので、少し時間がかかりました(Falcoは2018年10月にCNCFに参加しました)。
私が本当に興奮しているのは、非常に強力なビルディングブロックのセットを取っていて、それをCloud Nativeコミュニティの手に渡そうとしていることです。他にも、次のようなことを話しています。
- 洗練された非常に効率的なシステムコールキャプチャフレームワークを Linux カーネルに安全に実装する、地球上で最も野心的で洗練された eBPF スクリプトと思われるもの
- キャプチャーファイルの抽象化を完全にサポートしたシステムコールキャプチャライブラリ
- 実戦テスト済みで、70,000 行以上のコードのカーネルイベントエンリッチメントライブラリ
これらのコンポーネントは、ランタイムセキュリティ、トラブルシューティング、インシデントレスポンス、フォレンジック、その他多くの分野のツールのための完璧な基盤です。私は、コミュニティがこれらのコンポーネントを受け入れ、その上で本当にクールなツールを開発してくれると確信しています。私自身も、すぐにコミュニティにお見せしたい面白いアイデアをいくつか持っています。)
これを使ってどのようにハックすることができますか?
もっと知りたい方、Falcoでハックしたい方:
- Falco.orgで始めましょう。
- GitHubでFalcoプロジェクトをチェックアウトする。
- Falcoコミュニティに参加する。
- Falco Slackでメンテナに会う。
- Twitterで@falco_orgをフォローしてください。
私たちがFalcoを構築したのと同じように、Falcoを使って楽しんでいただけることを願っています。
そして、覚えておいてください:PRは歓迎です!