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
実行ファイルを変異させる - ログインバイナリの変異
shadowutil
やpasswd
の実行ファイルを変異させる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を設定する方法の詳細については、設定のセクションを参照してください。
Table of contents