Version 0.23.0

Falcoの設定

Falcoの設定ファイルは、 ‘key:value'または’key:[value list]‘ペアのコレクションを含むYAMLファイルです。

設定オプションはすべて、'-o/–option key=value'フラグを使用してコマンドラインで上書きできます。‘key:[value list]‘オプションの場合、'–option key.subkey=value'を使用して個々のリスト項目を指定できます。

現在の設定オプション

ConfigTypeDescription
rules_fileList

ルールファイルの場所。 これには、個別のルールファイルへの1つ以上のパスを含めることができます。 次の例は同等です:

rules_file:
- path1
- path2

rules_file: [path1, path2]

コマンドラインで1つ以上の -rオプションを使用して複数のルールファイルを指定することもできます。

time_format_iso_8601Booleantrue(デフォルトは「false」)の場合、ログメッセージと出力メッセージに表示される時刻はISO 8601になります。デフォルトでは、時刻は/etc/localtimeによって管理されるローカルタイムゾーンで表示されます。
json_outputBooleanアラートメッセージにJSON出力を使用するかどうか。
json_include_output_propertyBooleanJSON出力を使用する場合、JSON出力にoutputプロパティ自体(たとえば、書き込み用に開かれた既知のバイナリディレクトリの下のファイル(user=root ….`) を含めるかどうか。
log_stderrBooleantrueの場合、Falcoのアクティビティを説明するログメッセージはstderrに記録されます。これらは警告メッセージではないことに注意してください—これらはFalco自体のログメッセージです。
log_syslogBooleantrueの場合、Falcoのアクティビティを説明するログメッセージはsyslogに記録されます。
log_level次の可能な値を持つ列挙型: emergency, alert, critical, error, warning, notice, info, debugログに含める最小ログレベル。注:これらのレベルは、ルールの優先度フィールドとは異なります。 これは、Falcoの内部ログのログレベルのみを指します。
priority次の可能な値を持つ列挙型: emergency, alert, critical, error, warning, notice, info, debugロードして実行する最小ルール優先度レベル。このレベルよりも優先度が高いすべてのルールがロード/実行されます。
syscall_event_dropsList containing the following sub-keys:

  • actions: これらのboolean sub-keyの1つ以上を含むリスト:
    • ignore: 何もしない。空のリストが提供された場合、無視が想定されます.
    • log: バッファーがいっぱいであることを示すCRITICALなメッセージをログに記録する.
    • alert: バッファがいっぱいであることを通知するFalcoアラートを発します.
    • exit: non-zero rcでFalcoを終了します.
  • rate: アクションを実行できる定常状態のレート。 actions/secondの単位。 デフォルト0.03333(30秒ごとに1つのアクション)。
  • max_burst: 定常状態のレートが適用される前に実行できるアクションの最大数。
コントロール ドロップされたシステムコールイベントのアクション.
buffered_outputsBoolean以下のいずれかの出力チャネルへの出力がバッファリングされるかどうか。デフォルトはfalseです。
outputsList containing the following sub-keys:

  • rate: <notifications/second>
  • outputs: max_burst: <number of messages>

トークンバケットとして実装されたスロットリングメカニズムは、Falco通知のレートを制限します。このスロットルは、rateおよびmax_burstオプションによって制御されます。

rateは1秒あたりに取得されるトークン(つまり、通知を送信する権利)の数で、デフォルトは1です。max_burstは未処理のトークンの最大数で、デフォルトは1000です。

これらのデフォルトでは、Falcoは最初の静止期間の後に最大1000件の通知を送信し、その後、1秒あたり最大1件の通知を送信できます。何もしない状態が1000秒続くと、完全なバーストが発生します。

syslog_outputList containing the following sub-keys:

  • enabled: [true|false]
trueの場合、Falcoアラートはsyslog経由で送信されます。
file_outputList containing the following sub-keys:

  • enabled: [true|false]
  • keep_alive: [true|false]
  • filename: <path>

enabledtrueに設定されている場合、Falcoアラートは filenameで指定されたファイルパスに送信されます。

keep_alivefalse(デフォルト)に設定されている場合、Falcoはアラートごとにファイルを再度開きます。trueの場合、Falcoはファイルを1度開き、すべてのアラートで開いたままにします。Falco CLIを使用して --unbufferedを指定する必要がある場合もあります。

stdout_outputList containing the following sub-keys:

  • enabled: [true|false]
enabledtrueに設定されている場合、Falcoアラートは標準出力(stdout)に送信されます。
program_outputList containing the following sub-keys:

  • enabled: [true|false]
  • keep_alive: [true|false]

enabledtrueに設定されている場合、Falcoアラートがプログラムに送信されます。

keep_alivefalse(デフォルト)に設定されている場合、アラートごとにプログラムを実行します。trueの場合、Falcoはプログラムを1回起動し、すべてのアラートに対して開いたままにします。Falco CLIを使用して--unbufferedを指定する必要がある場合もあります。

program設定は各アラートに対して実行されるプログラムを指定します。これはシェルを介して開始されるため、追加のフォーマットを可能にするコマンドパイプラインを指定できます。

http_outputList containing the following sub-keys:

  • enabled: [true|false]
  • url: [http[s]://path/to/webhook/]
0.15.0以降、enabledがtrueに設定されている場合、Falcoアラートはurlで定義されたHTTP[s]URLに送信されます。現在、これはブロッキングオペレーションであり、この出力はkeep_aliveをサポートしていません。
webserverList containing the following sub-keys:

  • enabled: [true|false]
  • listen_port
  • k8s_audit_endpoint
  • ssl_enabled: [true|false]
  • ssl_certificate: <path>

enabledtrueに設定されている場合、Falcoは埋め込みWebサーバーを起動してKubernetes監査イベントを受け入れます。

listen_portは、Webサーバーが待機するポートを指定します。デフォルトは8765です。

k8s_audit_endpointは、Kubernetes監査イベントをリッスンするURIを指定します。デフォルトは/k8s_auditです。

ssl_enabledは、ssl_certificateで指定された証明書を使用して、ウェブサーバーのSSLサポートを有効にします。指定されたssl_certificateファイルには、サーバーの証明書とcivitwebによって文書化されたのキーが含まれている必要があります。

grpcList containing the following sub-keys:

  • enabled: [true|false]
  • bind_address: [address:port]
  • threadiness:
  • private_key: <path>
  • cert_chain: <path>
  • root_certs: <path>

enabledtrueに設定されている場合、FalcoはgRPCサーバーを埋め込み、gRPC APIを公開します。デフォルトはfalseです。

gRPCサーバーは、TLS証明書を使用するクライアントとサーバー間の相互認証でのみ使用できます。証明書の生成方法はここに記載されています

サーバーとクライアントの唯一の共通点はルート証明書であることを常に覚えておいてください。すべてのクライアントは、サーバーと同じルートCAによって署名された独自の証明書を生成する必要があります。

bind_addressは、gRPCサーバーがリッスンするアドレスとポートを指定します。デフォルトは0.0.0.0:5060です

threadinessは、gRPCリクエストを処理するために使用するスレッドの数を定義します。また、スレッド単位あたりの係数が10倍のコンテキストの数にも影響します。デフォルトは8です。

サーバー認証用の秘密鍵のprivate_keyパス。デフォルトは/etc/falco/certs/server.keyです。

サーバー認証用の公開証明書のcert_chainパス。デフォルトは/etc/falco/certs/server.crtです。

サーバーとすべてのクライアント間で共通のCA証明書(またはチェーン)の root_certsパス。デフォルトは/etc/falco/certs/ca.crtです。

grpc_outputList containing the following sub-keys:

  • enabled: [true|false]
enabledtrueに設定されている場合、FalcoはgRPCサーバーの出力の収集を開始します。それらを出力クライアントで使用することが重要です。出力クライアントの例ここ