The Falco Project

クラウドネイティブランタイムセキュリティ

Falcoとは?

Falcoプロジェクトは、元々Sysdig, Incによって構築されたオープンソースのランタイムセキュリティツールです。FalcoはCNCFに寄贈され、現在はCNCFのインキュベーションプロジェクトとなっています

Falcoは何をしますか?

Falcoは実行時にカーネルからのLinuxシステムコールを解析し、強力なルールエンジンに対してストリームをアサートします。 ルールに違反した場合は、Falcoのアラートが発せられます。Falco rulesについてもっと読む

  • Parse
  • Assert
  • Alert

Falcoは何を見ているのか?

デフォルトでは、Falco には成熟したルールのセットが同梱されています。

  • 特権コンテナを使用した特権のエスカレーション
  • setns のようなツールを使ったネームスペースの変更
  • /etc, /usr/bin, /usr/sbin などのよく知られたディレクトリへの読み込み/書き込み
  • シンボリックリンクの作成
  • 所有権とモードの変更
  • 予期しないネットワーク接続またはソケットの変異
  • execve を使ってプロセスをSpawnした
  • sh, bash, csh, zsh などのシェルバイナリの実行
  • SSH バイナリ ssh, scp, sftp などを実行する
  • Linux の coreutils 実行ファイルを変異させる
  • ログインバイナリの変異
  • shadowutilpasswd の実行ファイルを変異させる
    • shadowconfig
    • pwck
    • chpasswd
    • getpasswd
    • change
    • useradd

...などなど。

Falcoルールとは?

これらは、Falcoがアサートする項目です。これらは、Falcoの設定で定義されており、システム上で探しているものを表しています。

Falcoルールの作成、管理、デプロイの詳細については、ルールのセクションを参照してください。

Falco アラートとは?

これらは設定可能なダウンストリームアクションで、STDOUTへのロギングのような単純なものから、クライアントへのgRPCコールの配信のような複雑なものまであります。

Falcoアラートの設定、理解、開発の詳細については、alertsのセクションを参照してください。

Falcoコンポーネント

Falcoは3つの主要コンポーネントで構成されています。

Falcoユーザスペースプログラム

これはCLIツール falco です。これはユーザが対話するプログラムです。ユーザスペースプログラムは、シグナルの処理、Falcoドライバからの情報の解析、およびアラートを担当します。

Falcoドライバー

Falcoのドライバー仕様に準拠し、システムコール情報をストリーム送信することができるソフトウェアです。

ドライバーがインストールされていないと、Falcoは動作しません。

現在、Falcoプロジェクトは以下のドライバをサポートしています。

  • (デフォルト) C++ ライブラリ libscap および libsinsp 上に構築されたカーネルモジュール
  • 同じモジュールから構築されたBPFプローブ
  • ユーザスペースの計装

ドライバーの詳細はこちらをご覧くださいこちら

Falco設定

これは、Falcoがどのように実行されるか、どのようなルールをアサートするか、アラートをどのように実行するかを定義します。Falcoを設定する方法の詳細については、設定のセクションを参照してください。