Version 0.23.0

サードパーティ統合

Falcoコア上に構築されたコミュニティ主導の統合

スクリプトインストール

LinuxにFalcoをインストールするには、必要な手順を実行するシェルスクリプトをダウンロードできます:

curl -o install_falco -s https://falco.org/script/install

次に、sha256sumツール(または類似のツール)を使用して、スクリプトの SHA256 チェックサムを確認します。

sha256sum install_falco

21e8053c37e32f95d91c9393d961af1c63b5839d795c8cac314d05daadea9779である必要があります。

次に、スクリプトをrootまたはsudoで実行します:

sudo bash install_falco

Minikube

ローカル環境のKubernetesでFalcoを使用する最も簡単な方法は、 Minikubeにあります。 Kubernetes YAMLマニフェストとHelmチャートの両方がMinikubeで定期的にテストされています。

デフォルトの --driver引数で minikubeを実行すると、MinikubeはさまざまなKubernetesサービスを実行するVMを作成し、ポッドなどを実行するコンテナフレームワークを作成します。通常、VMには実行中のカーネルのカーネルヘッダーが含まれていないためMinikube上にFalcoカーネルモジュールを直接ビルドすることはできません。

これに対処するために、Falco 0.13.1以降、最新から10のMinikubeバージョン用のカーネルモジュールを事前にビルドし、https://s3.amazonaws.com/download.draios.comで利用できるようにしています。 これにより、ダウンロード可能なフォールバックステップがロード可能なカーネルモジュールで成功します。

今後も、Falcoの新しいリリースごとに、Minikubeの最新10バージョンを引き続きサポートします。 現在、ダウンロード用に以前にビルドされたカーネルモジュールを保持しているため、限られた履歴サポートも引き続き提供します。

MinikubeでFalcoを設定する方法については、 このブログ投稿 も参照してください。

Kind

KindクラスターでFalcoを実行する最も簡単な方法は次のとおりです:

  1. 設定ファイルを作成します。 例えば: kind-config.yaml

  2. 以下をファイルに追加します:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  extraMounts:
  - hostPath: /dev
    containerPath: /dev
  1. 設定ファイルを指定してクラスターを作成します:
kind create cluster --config=./kind-config.yaml
  1. kindにおけるKubernetesクラスターにFalcoをインストールします。

Helm

Helmは、KubernetesにFalcoをインストールする方法です。 Falcoコミュニティは、Helm chartとそれを使用する方法に関するドキュメントをサポートしていますここにあります

Puppet

Falco用の Puppetモジュール、 sysdig-falcoPuppet Forgeで入手できます。

Ansible

@juju4は、Falcoのjuju4.falcoAnsibleロールを作成してくれました。GitHubおよびAnsible Galaxyから入手できます。Ansible Galaxy(v0.7)の最新バージョンはFalco 0.9では動作しませんが、GitHubのバージョンでは動作します。

CoreOS

CoreOSでFalcoを実行するための推奨される方法は、Dockerセクションのインストールコマンドを使用して、自身のDockerコンテナ内で行うことです。 この方法では、ホストOS上のすべてのコンテナを完全に可視化できます。

この方法は自動的に更新され、自動セットアップやbash completionなどの優れた機能が含まれています。また、CoreOS以外の他のディストリビューションでも使用できる一般的な方法です。

ただし、CoreOSツールボックスでFalcoを実行することを好むユーザーもいます。推奨される方法ではありませんが、これは通常のインストール方法を使用してツールボックス内にFalcoをインストールし、次に手動で falco-driver-loaderスクリプトを実行することで実現できます:

toolbox --bind=/dev --bind=/var/run/docker.sock
curl -s https://falco.org/script/install | bash
falco-driver-loader

GKE

Google Kubernetes Engine(GKE)は、ワーカーノードプールのデフォルトのオペレーティングシステムとしてContainer-Optimized OS(COS)を使用します。 COSは、基盤となるOSの特定の部分へのアクセスを制限する、セキュリティが強化されたオペレーティングシステムです。このセキュリティ制約のため、Falcoはシステムコールのイベントを処理するためにカーネルモジュールを挿入できません。ただし、COSはeBPF(拡張されたBerkeley Packet Filter)を利用して、システムコールのストリームをFalcoエンジンに提供する機能を提供します。

Falcoは最小限の設定変更でeBPFを使用できます。 これを行うには、FALCO_BPF_PROBE環境変数を空の値に設定します:FALCO_BPF_PROBE=""

eBPFは現在、GKEとCOSでのみサポートされていますが、ここでは幅広いプラットフォームセットのインストールの詳細を提供します

プローブファイルの代替パスを指定する場合は、FALCO_BPF_PROBEを既存のeBPFプローブのパスに設定することもできます。

公式のコンテナイメージを使用する場合、この環境変数を設定すると、falco-driver-loaderスクリプトがトリガーされ、適切なバージョンのCOSのカーネルヘッダーがダウンロードされ、適切なeBPFプローブがコンパイルされます。他のすべての環境では、falco-driver-loaderスクリプトを自分で呼び出して、次の方法で取得できます:

sudo FALCO_VERSION="0.23.0" FALCO_BPF_PROBE="" falco-driver-loader

上記のスクリプトを正常に実行するには、clangllvmをインストールする必要があります。

パッケージからFalcoをインストールする場合は、falco systemdユニットを編集する必要があります。

これは、次のコマンドを実行して実行できます:

systemctl edit falco

エディターが開きます。この時点で、このコンテンツをファイルに追加して、ユニットの環境変数を設定できます:

[Service]
Environment='FALCO_BPF_PROBE=""'

Falco with Helmをインストールする場合は、ebpf.enabledオプションを trueに設定する必要があります:

helm install falco falcosecurity/falco --set ebpf.enabled=true