Pythonクライアント

client-pyPythonライブラリは以下を提供します:

  • Falco gRPCサーバーでgRPCセキュアチャネルを初期化するために使用されるClientクラス。
  • 同じ名前のprotobufオブジェクトを表す RequestおよびResponseクラス。

を参照して、PythonクライアントがFalco gRPC出力APIに接続し、イベントをJSONで表示する方法を確認します 。

現在、Pythonクライアントには2つの出力形式があります。Responseクラスはデフォルトであり、次の場合に推奨されます。データはPythonまたはJSONでさらに処理する必要があります。JSON出力を有効にするには、 Clientをインスタンス化するときにoutput_format="json"パラメーターを渡すだけで十分です。

  1. 例のパスの/tmp/{client.crt,client.key,ca.crt}に証明書があることを確認します。

  2. 必須の依存関係を使用してPython環境を作成し、アクティベイトします。

  3. client-pyルートディレクトリから、次のコマンドを実行します:

    $ python -m examples.get_events -o json
    

    Falcoインスタンスが持っている一連のルールに応じて、出力イベントが流れ始めます。

    {
      "time":"2020-03-03T17:50:03.391768+00:00",
      "priority":"warning",
      "source":"syscall",
      "rule":"Delete or rename shell history",
      "output":"18:50:03.391767411: Warning Shell history had been deleted or renamed (user=matt type=unlink command=zsh fd.name=<NA> name=<NA> path=/home/matt/.zsh_history.LOCK oldpath=<NA> host (id=host))",
      "output_fields":{
          "container.name":"host",
          "user.name":"matt",
          "container.id":"host",
          "fd.name":"<NA>",
          "proc.cmdline":"zsh",
          "evt.arg.path":"/home/matt/.zsh_history.LOCK",
          "evt.arg.name":"<NA>",
          "evt.arg.oldpath":"<NA>",
          "evt.type":"unlink",
          "evt.time":"18:50:03.391767411"
      },
      "hostname":"localhost.localdomain"
    }