本文の内容は、2024年2月29日に LORIS DEGIOANNIが投稿したブログ(https://sysdig.com/blog/falco-cncf-graduation/)を元に日本語に翻訳・再構成した内容となっております。
㊗️Falcoグラデュエーション
本日、私たちはCloud Native Computing Foundation (CNCF) においてFalco のグラデュエーションを祝えることを誇りに思います。グラデュエーションは、Sysdig が Falco を CNCF に寄贈した 2018 年に始まった旅において重要なマイルストーンです。これは業界全体にとって重要な成果であり、モダンなコンピューティングプラットフォームのセキュリティを向上させるものであり、多くの企業の開発者や世界中の採用者からの膨大なコミュニティの努力によってのみ実現されました。 Falcoが業界に与えた影響を理解するには、その起源物語を理解することが肝要です。
2014 年に、最終的に Falco ドライバーとなるコードの最初の行を書き始めたとき、Falco がどのようなものになるのか、そしてモダンなコンピューティング プラットフォームにおける重要性をほとんど想像できませんでした。この旅は楽しくて長く、2014 年よりも早く始まりました。Falco の起源はネットワークパケットに遡ります。
パケットからクラウドにおけるセキュリティインストルメンテーションへの旅
1990 年代後半、コンピューターネットワークの急速な拡大により、手頃な価格のネットワーク可視化ツールの必要性が浮き彫りになりました。Berkeley Packet Filter (BPF) は、BSD オペレーティングシステム内でのパケットキャプチャーとフィルタリングを可能にする大幅な進歩として登場しました。BPF は現在広く使用されている eBPF の前身であり、当初は付属のライブラリlibpcapと一緒にリリースされました。libpcap は、tcpdumpや Wireshark (元々は Ethereal)などのツールのベースとして使用され、パケット分析の標準ツールとなりました。
その後数年で、ネットワークパケットの有用性はトラブルシューティングを超えてセキュリティにまで急速に拡張されました。良い例は、1998 年にリリースされたオープンソースの侵入検知システムである Snort です。Snort は、パケットデータと柔軟なルールエンジンを活用して、ネットワークを介して到来する脅威をリアルタイムで検出します。
コンピューティングアーキテクチャーの進化に伴い、パケットベースのシグナルの収集とデコードが難しくなってきました。tcpdump 、 Wireshark 、 Snort などのツールは引き続き非常に人気がありましたが、コンテナ化、暗号化、クラウドへの移行などのトレンドにより、その効果は大幅に低下しました。
そのため、これらのツールの開発に 10 年以上費やした後、少人数のグループが、クラウドネイティブインフラストラクチャーをサポートするためにセキュリティを重視したインストルメンテーションをゼロから設計できる場合にどのようなものになるかを再考することにしました。私たちは Linux カーネル、特にインストルメンテーションレイヤーとしてのシステムコールレイヤーに焦点を当てることにし、最初からコンテナと Kubernetes のサポートを組み込みました。システムコールを使用すると、パケットベースのツールと同じワークフローを提供できます。 (詳細なキャプチャー、フィルター、トレース ファイル…) ただし、現代のパラダイムに合わせた方法で行う事としました。
Falco インスツルメンテーションコンポーネント (私たちはクリエイティブにFalco libsと呼んでいました) は、コマンドラインsysdigツール(システムコールのtcpdumpと考えることができます)とともに 2014 年にリリースされました。
ランタイムセキュリティの誕生
Falco は 2016 年にリリースされました。これは、システムコールキャプチャーと豊富なルールエンジンを統合し、コンテナーホストの両方の検出を柔軟に作成できるようにしました。コミュニティはすぐに注目を集め、ランタイムセキュリティが誕生しました。
Falco は、計測技術と検出の豊富さという 2 つの側面で成長しました。最初の面では、セキュリティシグナルを収集するための eBPF の使用を先駆けて開発しました。セキュリティに eBPF を使用することは、今日では業界の誰にとっても明らかなことですが、2018 年に eBPF ドライバーをリリースしたときは、前代未聞のことでした。実際、想像もできませんでした。eBPF を機能させる前に、Linux カーネルコミュニティと協力して、eBPF のいくつかの未解決の問題に対処する必要がありました。
2 番目の面では、Falco は徐々にモジュール化が進み、Kubernetes 監査ログ、cloud trail、Okta や GitHub などのサードパーティアプリケーションなどのデータ ソースのサポートが含まれまれていきました。私たちのビジョンは、すべてのソフトウェアがクラウドソフトウェアになるにつれて、ランタイムセキュリティにはカーネルシグナルの収集以上のものが必要になると考えたのです。脅威は複雑で、コンテナ内で発生する可能性がありますが、コントロールプレーン、インフラストラクチャー、ID、データストア、クラウドサービスから発生することもあります。Falco は、さまざまな種類の攻撃を検出し、インフラストラクチャー内を移動するときにそれらを追跡するために使用できる、統合された相関的な視点を提供します。
コミュニティの力
2018 年に Falcoを Cloud Native Computing Foundation (CNCF) に寄贈したことは、プロジェクトにとって大きな一歩となりました。これは、ランタイムセキュリティが Kubernetes に基づく最新のコンピューティングスタックにおける重要なコンポーネントであり、スタックのデフォルトの部分になる必要があるという信念に基づいています。また、善良な人々が協力して取り組むコミュニティのアプローチだけが、我々全員にとって悪い行為者に対して本当のチャンスを与えると信じていました。
Falco のグラデュエーションは、長い旅の集大成であり、過去の成果に貢献し、多様なコミュニティとテクノロジーを結びつけるオープンソース イノベーションの好例です。これは、Falco が最も要求の厳しいシナリオでも信頼できるほど十分にテスト、検証、デプロイされていることを意味します。この点に到達することは、アーリーアダプター、開発者、コアメンテナー、スポンサー、ユーザーコミュニティ、Cloud Native Computing Foundation など、多くの人々の貢献なしには不可能でした。ここで彼ら一人一人に感謝することはできませんが、私たちが彼らのしてくれたことに感謝していることを彼らに伝えたいと思っています。
プロジェクトとしての Falco に関しては、このようなマイルストーンを達成できたことを嬉しく思いますが、これは単なる始まりにすぎないと考えています。追加したい機能はたくさんありますが、さらに重要なのは、Falco が導入しやすく、軽量で、常に最新の脅威を検出できるようにしたいということです。そうすることで、お客様のクラウドソフトウェアを自信を持って安全に実行できるよう支援できることを願っています。