FalcoがCNCFのグラデュエーションに到達した旅路を祝う

ネットワークパケットがクラウドネイティブなインストゥルメンテーションに与えた影響
By 清水 孝郎 - NOVEMBER 5, 2024

SHARE:

本文の内容は、2024年11月5日に 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年代後半、コンピュータネットワークの急速な拡大により、手頃な価格でネットワークの可視化を可能にするツールの必要性が明らかになりました。この中で、BSDオペレーティングシステムにおいてパケットのキャプチャとフィルタリングを実現した「Berkeley Packet Filter(BPF)」が大きな進展として登場しました。BPFは、現在広く使用されているeBPFの前身であり、libpcapというライブラリと共にリリースされました。このlibpcapは、tcpdumpやWireshark(当時はEthereal)といったパケット分析の標準ツールの基盤として利用されました。

その後、ネットワークパケットの活用範囲はトラブルシューティングにとどまらず、セキュリティへと拡大していきました。代表例としては、1998年にリリースされたオープンソースの侵入検知システム「Snort」が挙げられます。Snortは、パケットデータと柔軟なルールエンジンを活用し、ネットワーク経由の脅威をリアルタイムで検出することができました。

しかし、コンピューティングアーキテクチャーが進化する中で、パケットベースのシグナルは収集・解析がますます困難になりました。tcpdumpやWireshark、Snortのようなツールは依然として非常に人気がありましたが、コンテナ化や暗号化、そしてクラウドへの移行といったトレンドが進むにつれ、それらのツールは効果が減少しました。

そこで、10年以上にわたるこれらのツール開発の経験を経て、私たち少人数のチームは、クラウドネイティブなインフラストラクチャーに対応するセキュリティインストゥルメンテーションの理想的な形をゼロから設計し直すことを決意しました。私たちは、インストゥルメンテーション層としてLinuxカーネル、特にシステムコール層に注目し、コンテナとKubernetesのサポートも最初から組み込みました。システムコールを使用することで、従来のパケットベースのツールと同様のワークフロー(詳細なキャプチャ、フィルタ、トレースファイルなど)を提供しつつ、現代のパラダイムに適した方法で実現しました。

2014年には、Falcoインストゥルメンテーションのコンポーネント Falco libs がリリースされ、これに加えてシステムコールのtcpdumpのようなコマンドライン sysdig ツールもリリースされました。

ランタイムセキュリティの誕生

Falcoは2016年にリリースされ、システムコールのキャプチャ機能と豊富なルールエンジンを組み合わせ、コンテナとホストの両方に対して柔軟な検出機能を提供しました。リリース後、すぐにコミュニティで注目され、ランタイムセキュリティという分野が誕生しました。

Falcoは、インストゥルメンテーション技術と検出の多様性の2つの側面で成長しました。まず、私たちはセキュリティシグナルの収集にeBPFを利用する先駆けとなりました。現在、セキュリティ目的でeBPFを使用するのは業界では当然のことですが、2018年にeBPFドライバをリリースした当時は前例のないことでした。実際、これは想像できない挑戦であり、実現するためにLinuxカーネルコミュニティと協力してeBPFの課題を解決する必要がありました。

もう一つの側面として、Falcoは徐々にモジュール性を高め、Kubernetesの監査ログやクラウドトレイル、OktaやGitHubなどのサードパーティアプリケーションを含むデータソースのサポートを拡充していきました。私たちのビジョンは、すべてのソフトウェアがクラウドソフトウェアになる中で、ランタイムセキュリティにはカーネルのシグナル収集以上のものが求められるというものです。脅威はコンテナ内から発生することもありますが、コントロールプレーンやインフラ、ID、データストア、クラウドサービスからも発生し得ます。Falcoは統合された相関ビューを提供し、インフラ全体で移動する攻撃を検出・追跡するために利用できるようになっています。

コミュニティの力

2018 年に Falco を Cloud Native Computing Foundation (CNCF) に寄贈したことは、プロジェクトにとって大きな一歩でした。これは、ランタイム セキュリティが Kubernetes に基づく最新のコンピューティング スタックの重要なコンポーネントであり、スタックのデフォルトコンポーネントになる必要があるという信念に基づいています。また、善良な人々が協力し合うコミュニティアプローチだけが、悪意のある行為者に対抗する本当のチャンスを私たち全員に与えると信じていました。 

Falco のグラデュエーションは長い道のりの集大成であり、過去の成果の上に貢献が築かれ、多様なコミュニティとテクノロジーが結びつくオープンソースイノベーションの素晴らしい例です。これは、Falco が十分にテスト、検証、デプロイメントされており、最も要求の厳しいシナリオでも信頼できることを意味します。この段階に到達するには、早期導入者、開発者、コアメンテナー、スポンサー、ユーザーコミュニティ、Cloud Native Computing Foundation など、多くの人々の貢献が不可欠でした。ここで一人ひとりにお礼を申し上げることはできませんが、私たちが彼らの貢献に感謝していることを必ず伝えたいと思います。

プロジェクトとしての Falco としては、このようなマイルストーンに到達できたことを嬉しく思いますが、これはまだ始まりに過ぎないと考えています。追加したい機能はたくさんありますが、さらに重要なのは、Falco が簡単に導入でき、軽量で、常に最新の脅威を検出できることです。そうすることで、クラウド ソフトウェアを自信を持ってセキュアに実行できるようお手伝いできればと考えています。