CNCFがKubernetesモニタリングのFalcoをサンドボックスとしてホスト開始

Sysdigが開発するKubernetesに最適化したモニタリングツールFalcoを、CNCFがサンドボックスプロジェクトとしてホスティングを開始した。

松下 康之 - Yasuyuki Matsushita

2018年11月21日 6:00

クラウドネイティブなシステムを推進するCloud Native Computing Foundation(CNCF)のサンドボックスプロジェクトとして、Sysdigが開発をリードするFalcoが採用された。Falcoはコンテナレベルのモニタリングを可能にするソフトウェアだ。コンテナのふるまいを観測して、ルールによってアラートを配信、Slackやメッセージングソフトウェアなどと連携することができるという。

詳しくはWikiを参照して欲しい。About Falco

Falcoに関するSysdigのブログポスト:SELinux, Seccomp, Sysdig Falco, and you: A technical discussion

この記事では2018年8月に公開されたWebinarの内容を紹介しながら、Falcoの概要をお伝えしたい。Webinarは、以下のサイトから視聴できる。視聴には登録が必要だが、英語のヒアリングに支障がない方はぜひ、見て欲しい。

Building an Open Source Container Security Stack

この動画ではSysdigのFalcoだけではなく、Anchoreと呼ばれるアプリケーションイメージの脆弱性をスキャンするツールの紹介も行われているが、今回はFalcoに限定して紹介する。

Falcoの概要

Falcoの概要

このスライドでは、Falcoの特徴が解説されている。冒頭に記されている「Behavioral Activity Monitor」という部分が、Falcoが備える最大の差別化のポイントだろう。つまりURLやIPアドレスなどのリストに対するアクセスをモニタリングするのではなく、そのイメージがどういう行いをするのかをモニタリングすることで、アプリケーションからの悪意ある行動(例えば、ファイルの作成/消去、特定のディレクトリーへのアクセス、カメラなどデバイスへのアクセス)を検知し、それをアラートとして外部のシステムと連携するというのがFalcoの機能の最大の特徴だ。

対応プラットフォームとしてKubernetes、MesosそしてCloudFoundryなどが挙げられており、クラウドネイティブなシステムに最適なモニタリングであることをアピールしているかのようだ。また「Flexible Notification Methods」という部分では、Falcoから出されたアラートをメールやSlackなど様々な方法で出すことができる部分を強調している。これも多様なコミュニケーションツールが使われているシステム運用現場では、ありがたい機能だろう。

最後にオープンソースソフトウェアであることが強調されているが、これはCNCFがインキュベーションを行う時の大原則であることの再確認とも言える。

そして次のスライドでは、Falcoの特徴であるルールについての例を挙げて説明を行っている。

Falcoのルールが検知するふるまいの例

Falcoのルールが検知するふるまいの例

例えば「コンテナの中でシェルが起動される」「/binなどのディレクトリー以下にあるファイルが上書きされる」「コンテナのネームスペースが変更される」「カメラへのアクセスを要求する」などが挙げられているが、どれもセキュリティを確保するためには防がなければいけないイベントばかりである。これらの条件を、ルールとしてユーザーにとって可読性が高いフォーマットで記述できるのが利点だ。

ルールの例

ルールの例

このスライドではルールの記述例が挙げられている。Falcoでは、yamlファイルの中にふるまいを検知するためのMacro、List、Ruleなどを定義することになる。この例ではバイナリーが保存されているディレクトリーに書き込みを検知して、「バイナリが保存されているディレクトリーにファイルの書き込み行おうとしている」ことをOutputすることが分かる。GitHubのFalcoのページを見れば、予めどのようなルールが定義されているのかを確認できる。

参照:falco_rules.yaml

当然だが、データベースなどの他のシステムが行うアクセスや通信に使うポート番号なども定義することができる。以下のページでは、すでに分かっているものについてはルールが定義されているので、必要に応じてコメントを外して適用することもできる。

参照:Falcoのアプリケーション向けルールの例:application_rules.yaml

Falcoはユーザースペースで稼働するプロセスだが、システムコールをフックするモジュールだけはカーネルモードで実行され、Sysdigのライブラリーを経て先に挙げたルールを評価して合致したものがアラートを担当するモジュールに渡され、最終的にログやファイル、その他のアプリケーションに渡されることになる。

Falcoの構造

Falcoの構造

ルールを評価する際には、Ciliumでも使われているBPF(Berkeley Packet Filter)が使われているという。ここではルールで定義された条件式とパケットを評価する際に、高速に演算を行うことを目指しているのだろう。

FalcoとNATS、Kubelessの連携

FalcoとNATS、Kubelessの連携

このスライドでは、Falcoが送ったアラートを他のシステムと連携させる概要が解説されている。これはオープンソースのメッセージシステムNATSのPub/Subを通じてアラートを受信し、それをKubernetesのサーバーレスフレームワークであるKubelessに渡すことで、悪質な行動を行っているPodを削除するという連携の例だ。この例のようにFalcoはモニタリングに徹することで「アラート以降の処理をどうするか?」を他のツールに任せることで、より柔軟な運用が可能になる。

またメッセージングのシステムを使うことにより、1つのアラートメッセージを複数のサブスクライバーが受け取ることで、Podの消去、運用チームへのコミュニケーション、ログへの記録などを並行して実行できる。

Falcoを使った運用の例

Falcoを使った運用の例

モノリシックなアプリケーションから、分散協調する多数のコンテナ/Podが稼働するクラウドネイティブなアプリケーションに移行することで、セキュリティ対策も複雑さを増していくだろう。コンテナのリポジトリーへの脆弱性のスキャンや、ブラックリストによるアクセスコントロールなども必要だが、Falcoの「ふるまいをモニタリングする」という発想は、運用チームの負担を軽減するという意味では注目すべき方向性だ。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30