收集 Tanium Stream 日志

支持的平台:

本文档介绍了如何使用 Tanium Connect 的原生 AWS S3 导出功能将 Tanium Stream 日志注入到 Google Security Operations。Tanium Stream 以 JSON 格式提供实时端点遥测数据、威胁搜寻数据和行为分析数据,这些数据可使用 Tanium Connect 直接导出到 S3,而无需自定义 Lambda 函数。解析器会将来自 Tanium Stream 的原始 JSON 日志转换为统一数据模型 (UDM)。它首先会对常见字段进行归一化处理,然后根据“logType”或“eventType”应用特定逻辑,将相关信息映射到相应的 UDM 字段中,从而处理各种事件类型,例如网络连接、用户登录、进程启动和文件修改。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Tanium Core Platform 7.0 或更高版本
  • 已安装并配置 Tanium Stream 模块
  • 已安装 Tanium Connect 模块并拥有有效许可
  • Tanium Threat Response 3.4.346 或更高版本(如果使用 TR 集成)
  • 以管理员权限对 Tanium 控制台进行特权访问
  • AWS(S3、IAM)的特权访问权限

配置 Tanium Stream 服务账号

  1. 登录 Tanium 控制台
  2. 依次前往模块 > Stream
  3. 点击右上角的设置
  4. 服务账号部分,配置以下内容:
    • 服务账号用户:选择具有适当 Stream 权限的用户。
    • 验证账号是否具有“连接用户”角色权限。
    • 确认对 Stream 数据源和端点的访问权限。
  5. 点击保存,以应用服务账号配置。

收集 Tanium Stream 前提条件

  1. 以管理员身份登录 Tanium Console
  2. 依次前往管理 > 权限 > 用户
  3. 创建或确定具有以下角色的服务账号用户:
    • Stream AdministratorStream Read Only User 角色。
    • 连接用户角色权限。
    • 对受监控的计算机群组的访问权限(建议:所有计算机群组)。
    • 针对 Stream 内容集的读取已保存问题权限。

为 Google SecOps 配置 AWS S3 存储桶和 IAM

  1. 按照以下用户指南创建 Amazon S3 存储桶创建存储桶
  2. 保存存储桶名称区域以供日后参考(例如 tanium-stream-logs)。
  3. 按照以下用户指南创建用户:创建 IAM 用户
  4. 选择创建的用户
  5. 选择安全凭据标签页。
  6. 访问密钥部分中,点击创建访问密钥
  7. 选择第三方服务作为使用情形
  8. 点击下一步
  9. 可选:添加说明标记。
  10. 点击创建访问密钥
  11. 点击 Download CSV file(下载 CSV 文件),保存访问密钥不公开的访问密钥以供日后使用。
  12. 点击完成
  13. 选择权限标签页。
  14. 权限政策部分中,点击添加权限
  15. 选择添加权限
  16. 选择直接附加政策
  17. 搜索并选择 AmazonS3FullAccess 政策。
  18. 点击下一步
  19. 点击添加权限

配置 Tanium Connect AWS S3 目标

  1. 登录 Tanium 控制台
  2. 依次前往模块 > 连接
  3. 点击 Create Connection
  4. 提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 Stream Telemetry to S3 for SecOps)。
    • 说明:可选说明(例如 Export endpoint telemetry and threat hunting data to AWS S3 for Google SecOps ingestion)。
    • 启用:选择此选项可启用连接,以便按计划运行。
  5. 点击下一步

配置连接来源

  1. 来源部分,提供以下配置详细信息:
    • 来源类型:选择已保存的问题
    • 已保存的问题:选择以下与 Stream 相关的已保存问题之一:
      • Stream - Endpoint Events,用于实时端点遥测。
      • 用于监控网络活动的数据流 - 网络事件
      • Stream - Process Events,用于跟踪进程执行情况。
      • 数据流 - 文件事件,用于跟踪文件系统活动。
      • 流式传输 - 威胁搜寻数据,用于行为分析。
    • 计算机组:选择所有计算机或要监控的特定计算机组。
    • 刷新间隔:为数据收集设置适当的间隔(例如,实时遥测数据的间隔为 5 分钟)。
  2. 点击下一步

配置 AWS S3 目标位置

  1. 目标部分,提供以下配置详细信息:
    • 目标类型:选择 AWS S3
    • 目标名称:输入一个唯一名称(例如 Google SecOps Stream S3 Destination)。
    • AWS 访问密钥:输入在 AWS S3 配置步骤中下载的 CSV 文件中的 AWS 访问密钥。
    • AWS 私有访问密钥:输入在 AWS S3 配置步骤中下载的 CSV 文件中的 AWS 私有访问密钥。
    • 存储桶名称:输入您的 S3 存储桶名称(例如 tanium-stream-logs)。
    • 区域:选择您的 S3 存储桶所在的 AWS 区域。
    • 键前缀:输入 S3 对象的前缀(例如 tanium/stream/)。
  2. 点击下一步

配置过滤条件

  1. 过滤条件部分,配置数据过滤选项:
    • 仅发送新项:选择此选项可仅发送自上次导出以来的新遥测数据。
    • 列过滤条件:根据需要添加基于特定事件属性的过滤条件(例如,按事件类型、进程名称或威胁指示器进行过滤)。
  2. 点击下一步

为 AWS S3 设置数据格式

  1. 格式部分,配置数据格式:
    • 格式:选择 JSON
    • 选项
      • 包含标题:取消选择可避免在 JSON 输出中包含标题。
      • 包含空单元格:根据您的偏好设置进行选择。
    • 高级选项
      • 文件命名:使用基于时间戳的默认命名方式。
      • 压缩:选择 Gzip 可降低存储费用和缩短传输时间。
  2. 点击下一步

安排连接

  1. 时间表部分,配置导出时间表:
    • 启用时间表:选择此选项可启用自动定时导出。
    • 安排类型:选择周期性
    • 频率:选择每 5 分钟,以获取近乎实时的遥测数据。
    • 开始时间:为首次导出设置合适的开始时间。
  2. 点击下一步

保存并验证连接

  1. 在摘要界面中查看连接配置。
  2. 点击保存以创建连接。
  3. 点击测试连接以验证配置。
  4. 如果测试成功,请点击立即运行以执行初始导出。
  5. 论坛概览页面中监控连接状态。

在 Google SecOps 中配置 Feed 以注入 Tanium Stream 日志

  1. 依次前往 SIEM 设置> Feed
  2. 点击 + 添加新 Feed
  3. Feed 名称字段中,输入 Feed 的名称(例如 Tanium Stream logs)。
  4. 选择 Amazon S3 V2 作为来源类型
  5. 选择 Tanium Stream 作为日志类型
  6. 点击下一步
  7. 为以下输入参数指定值:
    • S3 URIs3://tanium-stream-logs/tanium/stream/
    • 源删除选项:根据您的偏好选择删除选项。
    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
    • 访问密钥 ID:有权访问 S3 存储桶的用户访问密钥。
    • 私有访问密钥:具有 S3 存储桶访问权限的用户私有密钥。
    • 资产命名空间资产命名空间
    • 注入标签:应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
additional.event__AlgorithmName additional.fields.key: eventAlgorithmName
additional.fields.value.string_value: %{additional.event
AlgorithmName}
直接从原始日志字段 additional.event__AlgorithmName 中提取的值。
additional.event__AuthenticationPackageName target.resource.name: %{additional.event__AuthenticationPackageName} 直接从原始日志字段 additional.event__AuthenticationPackageName 中提取的值。
additional.event__CallerProcessId principal.process.pid: %{additional.event__CallerProcessId} 直接从原始日志字段 additional.event__CallerProcessId 中提取的值。
additional.event__CallerProcessName principal.process.file.fullpath: %{additional.event_CallerProcessName} 直接从原始日志字段 additional.event__CallerProcessName 中提取的值。
additional.event__ClientProcessId principal.process.pid: %{additional.event__ClientProcessId} 直接从原始日志字段 additional.event__ClientProcessId 中提取的值。
additional.event__ClientProcessStartKey additional.fields.key: eventClientProcessStartKey
additional.fields.value.string_value: %{additional.event
ClientProcessStartKey}
直接从原始日志字段 additional.event__ClientProcessStartKey 中提取的值。
additional.event__CommandLine target.process.commandline: %{additional.event_CommandLine} 直接从原始日志字段 additional.event__CommandLine 中提取的值。
additional.event__ElevatedToken additional.fields.key: event__ElevatedToken
additional.fields.value.string_value: Yes/No
直接从原始日志字段 additional.event__ElevatedToken 中获取的值。
如果值为“%%1842”,则替换为“是”。
如果值为“%%1843”,则替换为“否”。
additional.event__FQDN principal.hostname: %{additional.event__FQDN} 直接从原始日志字段 additional.event__FQDN 中提取的值。
additional.event__FailureReason additional.fields.key: eventFailureReason
additional.fields.value.string_value: %{additional.event
FailureReason}
直接从原始日志字段 additional.event__FailureReason 中提取的值。
additional.event__ImpersonationLevel additional.fields.key: eventImpersonationLevel
additional.fields.value.string_value: %{additional.event
ImpersonationLevel}
直接从原始日志字段 additional.event__ImpersonationLevel 中提取的值。
additional.event__IpAddress target.ip: %{additional.event__IpAddress} 直接从原始日志字段 additional.event__IpAddress 中提取的值。
additional.event__IpPort target.port: %{additional.event__IpPort} 直接从原始日志字段 additional.event__IpPort 中获取的值,并转换为整数。
additional.event__KeyLength additional.fields.key: eventKeyLength
additional.fields.value.string_value: %{additional.event
KeyLength}
直接从原始日志字段 additional.event__KeyLength 中提取的值。
additional.event__KeyName additional.fields.key: eventKeyName
additional.fields.value.string_value: %{additional.event
KeyName}
直接从原始日志字段 additional.event__KeyName 中提取的值。
additional.event__KeyType additional.fields.key: eventKeyType
additional.fields.value.string_value: %{additional.event
KeyType}
直接从原始日志字段 additional.event__KeyType 中提取的值。
additional.event__LmPackageName additional.fields.key: eventLmPackageName
additional.fields.value.string_value: %{additional.event
LmPackageName}
直接从原始日志字段 additional.event__LmPackageName 中提取的值。
additional.event__LogonGuid target.resource.product_objectid: %{additional.event_LogonGuid} 直接从原始日志字段 additional.event__LogonGuid 中提取值,并移除大括号。
additional.event__LogonProcessName target.process.file.fullpath: %{additional.event_LogonProcessName} 直接从原始日志字段 additional.event__LogonProcessName 中提取的值。
additional.event__LogonType extensions.auth.authdetails: Logon Type: %{additional.event_LogonType} 直接从原始日志字段 additional.event__LogonType 中提取的值。
additional.event__MandatoryLabel additional.fields.key: eventMandatoryLabel
additional.fields.value.string_value: %{additional.event
MandatoryLabel}
直接从原始日志字段 additional.event__MandatoryLabel 中提取的值。
additional.event__NewProcessId target.process.pid: %{additional.event__NewProcessId} 直接从原始日志字段 additional.event__NewProcessId 中提取的值。
additional.event__NewProcessName target.process.file.fullpath: %{additional.event_NewProcessName} 直接从原始日志字段 additional.event__NewProcessName 中提取的值。
additional.event__ObjectServer security_result.categorydetails: %{additional.event_ObjectServer} 直接从原始日志字段 additional.event__ObjectServer 中提取的值。
additional.event__Operation additional.fields.key: eventOperation
additional.fields.value.string_value: %{additional.event
Operation}
直接从原始日志字段 additional.event__Operation 中提取的值。
additional.event__ParentProcessId principal.process.parentprocess.pid: %{additional.event_ParentProcessId} 直接从原始日志字段 additional.event__ParentProcessId 中提取的值。
additional.event__ParentProcessName principal.process.parent_process.file.fullpath: %{additional.event_ParentProcessName} 直接从原始日志字段 additional.event__ParentProcessName 中提取的值。
additional.event__ProcessId principal.process.pid: %{additional.event__ProcessId} 直接从原始日志字段 additional.event__ProcessId 中提取的值。
additional.event__ProcessName principal.process.file.fullpath: %{additional.event_ProcessName} 直接从原始日志字段 additional.event__ProcessName 中提取的值。
additional.event__PrivilegeList principal.user.attribute.permissions.name: %{additional.event__PrivilegeList} 直接从原始日志字段 additional.event__PrivilegeList 中提取的值。
additional.event__ProviderName additional.fields.key: eventProviderName
additional.fields.value.string_value: %{additional.event
ProviderName}
直接从原始日志字段 additional.event__ProviderName 中提取的值。
additional.event__RestrictedAdminMode additional.fields.key: eventRestrictedAdminMode
additional.fields.value.string_value: %{additional.event
RestrictedAdminMode}
直接从原始日志字段 additional.event__RestrictedAdminMode 中提取的值。
additional.event__ReturnCode additional.fields.key: eventReturnCode
additional.fields.value.string_value: %{additional.event
ReturnCode}
直接从原始日志字段 additional.event__ReturnCode 中提取的值。
additional.event__RpcCallClientLocality additional.fields.key: eventRpcCallClientLocality
additional.fields.value.string_value: %{additional.event
RpcCallClientLocality}
直接从原始日志字段 additional.event__RpcCallClientLocality 中提取的值。
additional.event__Service securityresult.description: %{additional.event_Service} 直接从原始日志字段 additional.event__Service 中提取的值。
additional.event__Status additional.fields.key: eventStatus
additional.fields.value.string_value: %{additional.event
Status}
直接从原始日志字段 additional.event__Status 中提取的值。
additional.event__SubStatus additional.fields.key: eventSubStatus
additional.fields.value.string_value: %{additional.event
SubStatus}
直接从原始日志字段 additional.event__SubStatus 中提取的值。
additional.event__SubjectDomainName principal.administrativedomain: %{additional.event_SubjectDomainName} 直接从原始日志字段 additional.event__SubjectDomainName 中提取的值。
additional.event__SubjectLogonId additional.fields.key: eventSubjectLogonId
additional.fields.value.string_value: %{additional.event
SubjectLogonId}
直接从原始日志字段 additional.event__SubjectLogonId 中提取的值。
additional.event__SubjectUserName principal.user.user_displayname: %{additional.event_SubjectUserName} 直接从原始日志字段 additional.event__SubjectUserName 中提取的值。
additional.event__SubjectUserSid principal.user.windowssid: %{additional.event_SubjectUserSid} 直接从原始日志字段 additional.event__SubjectUserSid 中提取的值。
additional.event__TaskContentNew additional.fields.key: eventTaskContentNew
additional.fields.value.string_value: %{additional.event
TaskContentNew}
直接从原始日志字段 additional.event__TaskContentNew 中提取的值。
additional.event__TaskName additional.fields.key: eventTaskName
additional.fields.value.string_value: %{additional.event
TaskName}
直接从原始日志字段 additional.event__TaskName 中提取的值。
additional.event__TargetDomainName target.administrativedomain: %{additional.event_TargetDomainName} 直接从原始日志字段 additional.event__TargetDomainName 中提取的值。
additional.event__TargetLinkedLogonId additional.fields.key: eventTargetLinkedLogonId
additional.fields.value.string_value: %{additional.event
TargetLinkedLogonId}
直接从原始日志字段 additional.event__TargetLinkedLogonId 中提取的值。
additional.event__TargetLogonId additional.fields.key: eventTargetLogonId
additional.fields.value.string_value: %{additional.event
TargetLogonId}
直接从原始日志字段 additional.event__TargetLogonId 中提取的值。
additional.event__TargetOutboundDomainName additional.fields.key: eventTargetOutboundDomainName
additional.fields.value.string_value: %{additional.event
TargetOutboundDomainName}
直接从原始日志字段 additional.event__TargetOutboundDomainName 中提取的值。
additional.event__TargetOutboundUserName additional.fields.key: eventTargetOutboundUserName
additional.fields.value.string_value: %{additional.event
TargetOutboundUserName}
直接从原始日志字段 additional.event__TargetOutboundUserName 中提取的值。
additional.event__TargetSid target.user.windowssid: %{additional.event_TargetSid} 直接从原始日志字段 additional.event__TargetSid 中提取的值。
additional.event__TargetUserName target.user.userid: %{additional.event__TargetUserName} 直接从原始日志字段 additional.event__TargetUserName 中提取的值。
additional.event__TargetUserSid target.user.windowssid: %{additional.event_TargetUserSid} 直接从原始日志字段 additional.event__TargetUserSid 中提取的值。
additional.event__TokenElevationType additional.fields.key: eventTokenElevationType
additional.fields.value.string_value: %{additional.event
TokenElevationType}
直接从原始日志字段 additional.event__TokenElevationType 中提取的值。
additional.event__TransmittedServices additional.fields.key: eventTransmittedServices
additional.fields.value.string_value: %{additional.event
TransmittedServices}
直接从原始日志字段 additional.event__TransmittedServices 中提取的值。
additional.event__VirtualAccount additional.fields.key: eventVirtualAccount
additional.fields.value.string_value: %{additional.event
VirtualAccount}
直接从原始日志字段 additional.event__VirtualAccount 中提取的值。
additional.event__WorkstationName target.hostname: %{additional.event__WorkstationName} 直接从原始日志字段 additional.event__WorkstationName 中提取的值。
additional.event_id security_result.rule_name: EventID: %{additional.event_id} 直接从原始日志字段 additional.event_id 中提取的值,并转换为字符串。
additional.query network.dns.questions.name: %{additional.query} 直接从原始日志字段 additional.query 中提取的值。
additional.response network.dns.answers.name: %{additional.response} 直接从原始日志字段 additional.response 中提取的值。
metadata.description metadata.description: %{metadata.description} 直接从原始日志字段 metadata.description 中提取的值。
metadata.eventTimestamp metadata.event_timestamp.seconds: Extracted from %{metadata.eventTimestamp}
metadata.event_timestamp.nanos: Extracted from %{metadata.eventTimestamp}
系统会使用日期解析功能从原始日志字段 metadata.eventTimestamp 中提取秒数和纳秒数。
metadata.eventType metadata.product_event_type: %{metadata.eventType}
metadata.event_type: %{metadata.eventType}
直接从原始日志字段 metadata.eventType 中提取的值。
metadata.logType metadata.product_event_type: %{metadata.logType}
metadata.event_type: %{metadata.logType}
直接从原始日志字段 metadata.logType 中提取的值。
network.applicationProtocol network.application_protocol: %{network.applicationProtocol} 直接从原始日志字段 network.applicationProtocol 中提取的值。
network.direction network.direction: %{network.direction} 直接从原始日志字段 network.direction 中提取的值。
network.ipProtocol network.ip_protocol: %{network.ipProtocol} 直接从原始日志字段 network.ipProtocol 中提取的值。
principal.assetId principal.asset_id: TANIUM:%{principal.assetId} 直接从原始日志字段 principal.assetId 中获取的值,并以“TANIUM:”为前缀。
principal.hostname principal.hostname: %{principal.hostname} 直接从原始日志字段 principal.hostname 中提取的值。
principal.process.companySpecificParentProcessId principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId} 直接从原始日志字段 principal.process.companySpecificParentProcessId 中获取的值,格式为“TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId}”。
principal.process.companySpecificProcessId principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId} 直接从原始日志字段 principal.process.companySpecificProcessId 中获取的值,格式为“TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId}”。
principal.process.commandLine target.process.command_line: %{principal.process.commandLine} 直接从原始日志字段 principal.process.commandLine 中提取的值,并移除了英文双引号,将连字符替换为英文 & 符号。
principal.process.file.fullPath target.process.file.full_path: %{principal.process.file.fullPath} 直接从原始日志字段 principal.process.file.fullPath 中提取的值。
principal.process.file.md5 target.process.file.md5: %{principal.process.file.md5} 直接从原始日志字段 principal.process.file.md5 中获取的值,并转换为小写。
principal.process.parentPid principal.process.pid: %{principal.process.parentPid} 直接从原始日志字段 principal.process.parentPid 中提取的值,仅适用于 PROCESS_LAUNCH 事件。
principal.process.pid target.process.pid: %{principal.process.pid} 直接从原始日志字段 principal.process.pid 中提取的值,仅适用于 PROCESS_LAUNCH 事件。
principal.process.productSpecificProcessId principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} 直接从原始日志字段 principal.process.productSpecificProcessId 中获取的值,格式为“TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}”。
principal.user.groupid principal.user.group_identifiers: %{principal.user.groupid} 直接从原始日志字段 principal.user.groupid 中提取的值。
principal.user.userid principal.user.userid: %{principal.user.userid} 直接从原始日志字段 principal.user.userid 中提取的值。
src.ip principal.ip: %{src.ip} 直接从原始日志字段 src.ip 中提取的值。
src.port principal.port: %{src.port} 直接从原始日志字段 src.port 中获取的值,并转换为整数。
target.file.fullPath target.file.full_path: %{target.file.fullPath} 直接从原始日志字段 target.file.fullPath 中提取的值。
target.file.md5 target.file.md5: %{target.file.md5} 直接从原始日志字段 target.file.md5 中提取的值。
target.port target.port: %{target.port} 直接从原始日志字段 target.port 中获取的值,并转换为整数。
target.registry.registryKey target.registry.registry_key: %{target.registry.registryKey} 直接从原始日志字段 target.registry.registryKey 中提取的值。
target.registry.registryValue target.registry.registry_value_data: %{target.registry.registryValue} 直接从原始日志字段 target.registry.registryValue 中提取的值。
target.user.userDisplayName target.user.user_display_name: %{target.user.userDisplayName} 直接从原始日志字段 target.user.userDisplayName 中提取的值。
target.user.windowsSid target.user.windows_sid: %{target.user.windowsSid} 直接从原始日志字段 target.user.windowsSid 中提取的值。
user-agent network.http.user_agent: %{user-agent} 直接从原始日志字段 user-agent 中获取的值,并移除了双引号。
不适用 extensions.auth.auth_mechanism: LOCAL/NETWORK/BATCH/SERVICE/UNLOCK/NETWORK_CLEAR_TEXT/NEW_CREDENTIALS/REMOTE_INTERACTIVE/CACHED_INTERACTIVE/MECHANISM_UNSPECIFIED 由解析器代码根据 additional.event__LogonType 的值确定。
不适用 extensions.auth.type: MACHINE 由解析器代码针对 USER_LOGINUSER_LOGOUT 事件添加。
不适用 metadata.event_type:PROCESS_LAUNCH/NETWORK_CONNECTION/FILE_OPEN/FILE_DELETION/REGISTRY_MODIFICATION/USER_LOGIN/STATUS_UPDATE/USER_LOGOUT/PROCESS_MODULE_LOAD/PROCESS_TERMINATION/USER_CHANGE_PERMISSIONS/SCHEDULED_TASK_MODIFICATION/SCHEDULED_TASK_DISABLE/SCHEDULED_TASK_ENABLE/SCHEDULED_TASK_DELETION/SCHEDULED_TASK_CREATION/PROCESS_UNCATEGORIZED 由解析器代码根据 metadata.logTypeadditional.event_id 的值确定。
不适用 metadata.log_type: TANIUM_TH 由解析器代码添加的硬编码值。
不适用 metadata.product_name:Stream 由解析器代码添加的硬编码值。
不适用 metadata.vendor_name: Tanium 由解析器代码添加的硬编码值。
不适用 principal.hostname: %{principal_hostname} 取自 principal.hostnameadditional.event__FQDN 的值。
不适用 principal.ip: %{srcIp} 如果存在 src.ip,则使用 grok 从原始日志消息中提取。
不适用 securityresult.about.resource.name: %{additional.event_AuthenticationPackageName} 直接从原始日志字段 additional.event__AuthenticationPackageName 中提取的值,用于特定 additional.event_id 值。
不适用 security_result.category: AUTH_VIOLATION 由解析器代码针对特定 additional.event_id 值添加。
不适用 security_result.rule_name: EventID: %{additional.event_id} 直接从原始日志字段 additional.event_id 中提取的值,并转换为字符串。
不适用 target.hostname: %{query_host} 如果原始日志字段 additional.query 包含主机名,则从中提取。
不适用 target.ip: %{dstIp} 如果存在 src.ip,则使用 grok 从原始日志消息中提取。
不适用 target.ip: %{query_ip} 如果原始日志字段 additional.query 包含 IP 地址,则从中提取。
不适用 target.process.command_line: %{principal_process_commandLine} 如果 principal.process.commandLine 不为空,则取自 principal.process.commandLine
不适用 target.process.file.full_path: %{principal_process_file_fullPath} 如果 principal.process.file.fullPath 不为空,则取自 principal.process.file.fullPath
不适用 target.process.file.md5: %{principal_process_file_md5} 如果 principal.process.file.md5 不为空,则取自 principal.process.file.md5
不适用 target.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} principal.process.productSpecificProcessId 中获取的值,格式为“TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}”。
不适用 target.resource.resource_type: TASK 由解析器代码针对特定 additional.event_id 值添加。
不适用 timestamp.seconds: Extracted from %{metadata.eventTimestamp}
timestamp.nanos: Extracted from %{metadata.eventTimestamp}
系统会使用日期解析功能从原始日志字段 metadata.eventTimestamp 中提取秒数和纳秒数。

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。