検索クエリの監査
検索クエリ専用のaudit event typeは存在しません。検索クエリは分析され、その後処理されます。この処理は監査される認可アクションをトリガーします。しかし、認可監査が行われる際に、クライアントによって提出された元の生のクエリにはアクセスできません。
検索クエリはHTTPリクエストボディ内に含まれていますが、調整ノードのRESTレイヤーによって生成されるいくつかの監査イベントは、リクエストボディを監査ログに出力するように切り替えることができます。したがって、検索クエリを監査するにはリクエストボディを監査する必要があります。
特定の監査イベントにリクエストボディを含めるには、elasticsearch.yml
ファイルの以下の設定を編集してください:
Yaml
xpack.security.audit.logfile.events.emit_request_body: true
監査時にフィルタリングは行われないため、監査イベントにリクエストボディが含まれる場合、機密データがプレーンテキストで監査される可能性があります。また、リクエストボディには監査ログを消費するパーサーを壊す可能性のある悪意のあるコンテンツが含まれている場合があります。
リクエストボディは、request.body
イベント属性にエスケープされたJSON文字列値(RFC 4627)として印刷されます。
上記の設定が切り替えられていても、すべてのイベントがrequest.body
属性を含むわけではありません。含むイベントは、authentication_success
、authentication_failed
、realm_authentication_failed
、tampered_request
、run_as_denied
、およびanonymous_access_denied
です。request.body
属性は、調整ノード(RESTリクエストを処理するノード)でのみ印刷されます。これらのイベントタイプのほとんどはデフォルトでは含まれていません。
良い実用的なアドバイスは、authentication_success
を監査されるイベントタイプに追加することです(xpack.security.audit.logfile.events.include
のリストに追加してください)。このイベントタイプはデフォルトでは監査されません。
通常、インクルードリストにはaccess_granted
やaccess_denied
などの他のイベントタイプも含まれています。