收集 Palo Alto Cortex XDR 事件日志

支持的平台:

本文档介绍了如何使用 Google Cloud 存储空间将 Palo Alto Cortex XDR 事件日志注入到 Google 安全运营中心。解析器会从 Palo Alto Networks Cortex XDR JSON 日志中提取安全事件数据。它会根据与 event_typeevent_sub_type 字段相关联的条件逻辑,映射字段、转换数据类型,并使用供应商、产品和事件类型等元数据丰富事件,以便将数据标准化为统一数据模型 (UDM)。它还会处理网络连接、文件和注册表操作、进程信息和用户活动。

准备工作

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

  • Google SecOps 实例
  • Google Cloud 存储空间已在您的 Google Cloud 环境中设置并处于活动状态
  • 对 Google Cloud 的特权访问权限和适当的权限
  • 对 Palo Alto Cortex XDR 的特权访问权限

创建 Google Cloud 存储分区

  1. 登录 Google Cloud 控制台。
  2. 前往 Cloud Storage 存储分区页面。

    进入“存储桶”

  3. 点击创建

  4. 创建存储桶页面上,输入您的存储桶信息。完成以下每一步后,点击继续以继续执行后续步骤:

  5. 开始使用部分中,执行以下操作: * 输入符合存储桶名称要求的唯一名称(例如 cortex-xdr-events-googlesecops)。 * 如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储桶上启用分层命名空间

    Note: You can't enable hierarchical namespace in an existing bucket.
    
    * To add a bucket label, click the expander arrow to expand the **Labels** section.
    * Click **Add label** and specify a key and a value for your label.
    
  6. 选择数据存储位置部分中,执行以下操作: * 选择位置类型。 * 使用位置类型的菜单选择一个位置,用于永久存储存储桶中的对象数据。

    Note: If you select the **dual-region** location type, you can also choose to enable **turbo replication** by selecting the relevant checkbox.
    
    * To set up cross-bucket replication, expand the **Set up cross-bucket replication** section.
    
  7. 为数据选择一个存储类别部分中,为存储桶选择默认存储类别,或者选择 Autoclass 对存储桶数据进行自动存储类别管理。

  8. 选择如何控制对对象的访问权限部分中,选择以强制执行禁止公开访问,然后为存储桶对象选择访问权限控制模型

  9. 选择如何保护对象数据部分中,执行以下操作: * 在数据保护下,选择您要为存储桶设置的任何选项。 * 如需选择对象数据的加密方式,请点击数据加密展开箭头,然后选择数据加密方法

  10. 点击创建

配置 Cortex XDR 事件转发

  1. 登录 Cortex XDR 网页界面。
  2. 依次前往设置 > 配置 > 数据管理 > 事件转发
  3. 激活部分激活许可。
  4. 启用 GB 事件转发,以便按 GB 将 Cortex XDR Pro 的解析日志导出到外部 SIEM 进行存储。
  5. 启用端点事件转发,以便为 Cortex XDR Pro EP 和 Cloud Endpoints 导出原始端点数据。
  6. 保存所选内容。
  7. 复制显示的存储路径。
  8. 生成下载包含访问密钥的服务账号 JSON Web 令牌。
  9. 将其保存安全的位置

配置 Google Cloud Secret Manager

  1. 登录您的 GCP
  2. 前往 Secret Manager 页面。
  3. 如果这是您第一次使用,系统会提示您启用 Secret Manager API
  4. 创建一个名为 EVENT_FRWD_CRTX_KEY 的 Secret,并将您下载的 JSON xdr_sa_key.json 的内容复制为该 Secret 的值。

在 Google SecOps 中配置 Feed 以注入 Palo Alto Cortex XDR 事件日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 PANW Cortex XDR 事件日志)。
  4. 选择 Google Cloud Storage 作为来源类型
  5. 选择 Palo Alto Cortex XDR Events 作为日志类型
  6. 点击获取服务账号作为 Chronicle 服务账号
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 存储桶 URI: Google Cloud 存储桶网址(例如 gs://cortex-xdr-events-chronicle)。
    • URI 类型:选择包含子目录的目录
    • 来源删除选项:根据您的偏好设置选择删除选项。
    • 资产命名空间资产命名空间
    • 提取标签:应用于此 Feed 中的事件的标签。
  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

  11. 创建 Feed 后,在信息流列表中找到该 Feed,然后点击该行右侧的三点状操作图标。

  12. 选择停用 Feed

配置对 Cloud Storage 的 Secret JSON 访问权限

  1. 登录您的 GCP
  2. 前往 Secret Manager 页面。
  3. 选择 Secret EVENT_FRWD_CRTX_KEY
  4. 前往权限标签页。
  5. Storage Object AdminStorage Legacy Bucket Reader 授予对之前创建的存储桶 cortex-xdr-events-chronicle 的访问权限。

为 Cloud Storage 配置 Google SecOps 权限

  1. 依次前往 IAM 和管理 > IAM
  2. 找到 Chronicle 服务账号
  3. Storage Object Viewer (roles/storage.objectViewer) 授予对之前创建的存储桶 cortex-xdr-events-chronicle 的访问权限。

配置将 PANW Cortex XDR 事件日志提取到项目 Cloud Storage

  1. 在 Google Cloud中,依次前往 API 和服务 >
  2. 启用 Cloud RunArtifact Registry API。
  3. 点击顶部导航栏中的图标,打开 Cloud Shell
  4. 使用以下命令下载自定义代码:

    git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.git
    
  5. 运行以下命令,前往该目录:

    cd google-cloud-cortex-chronicle/
    
  6. 使用 vi 等编辑器打开文件 env.properties

  7. 提供以下配置详细信息:

    REGION=us-central1 # Update according to your project region
    REPO_NAME=panw-chronicle
    IMAGE_NAME=sync_cortex_bucket
    GCP_PROJECT_ID=chrxxxxxxxxx # Update according to your project ID
    JOB_NAME=cloud-run-job-cortex-data-sync # The Cloud Job name 
    ROJECT_NUMBER=80xxxxx9 # Update according to your project number
    # JOB ENV VARIABLES
    SRC_BUCKET=xdr-us-xxxxx-event-forwarding # Update with the Cortex XDR GCS bucket name
    DEST_BUCKET=cortex-xdr-events-chronicle # Update with the GCS name of the bucket you created
    SECRET_NAME=EVENT_FRWD_CRTX_KEY # Need to match the secret you created
    JOB_SCHEDULE_MINS=30
    
  8. deploy.sh 脚本提供必要的权限:

    chmod 744 deploy.sh
    
  9. 运行 deploy.sh 脚本:

    ./deploy.sh
    
  10. 从脚本输出中确定所用的 Cloud 作业服务账号。

  11. Cloud 作业服务账号授予 Secret Manager Secret Ancestor 权限,以访问您之前创建的 Secret(在我们的示例中为 EVENT_FRWD_CRTX_KEY)。

  12. 依次前往 Secret Manager > EVENT_FRWD_CRTX_KEY(密钥)> 权限

  13. 在 Google SecOps 平台中,依次选择 SIEM 设置 > Feed > XDR 事件 Feed 名称 > 启用 Feed

UDM 映射表

日志字段 UDM 映射 逻辑
action_file_path target.file.full_path 直接映射
action_file_size target.file.size 直接映射并转换为无符号整数
action_local_ip principal.ip 直接映射并与其他 IP 地址合并
action_local_port principal.port 直接映射并转换为整数
action_module_path target.process.file.full_path 直接映射
action_network_connection_id network.session_id 直接映射
action_network_protocol network.ip_protocol 已重命名为 protocol_number_src,使用 parse_ip_protocol.include 进行解析,并映射到 network.ip_protocol
action_process_image_command_line target.process.command_line 直接映射
action_process_image_md5 target.process.file.md5 直接映射
action_process_image_path target.process.file.full_path 直接映射
action_process_image_sha256 target.process.file.sha256 直接映射
action_process_os_pid target.process.pid 直接映射并转换为字符串
action_process_user_sid target.user.windows_sid 直接映射
action_process_username target.user.useridtarget.administrative_domain 转换为小写形式,解析出网域和用户,并进行相应映射
action_registry_data target.registry.registry_value_data 直接映射
action_registry_key_name target.registry.registry_key 直接映射
action_registry_value_name target.registry.registry_value_name 直接映射
action_remote_ip target.ip 直接映射并与其他 IP 地址合并
action_remote_port target.port 直接映射并转换为整数
action_total_download network.received_bytes 直接映射并转换为无符号整数
action_total_upload network.sent_bytes 直接映射并转换为无符号整数
agent_hostname principal.hostnameobserver.hostname 转换为小写并映射
agent_ip_addresses observer.ip 解析为 JSON,拆分为单独的 IP,然后合并
agent_os_sub_type target.platform_version 直接映射
event_id metadata.product_log_id 直接映射
event_sub_type metadata.product_event_type 转换为字符串,用于对 metadata.event_typemetadata.product_event_type 进行有条件的映射
event_timestamp metadata.event_timestamptimestamp 转换为字符串,解析为 UNIX_MS 时间戳,然后进行映射
event_type metadata.event_type 转换为字符串,用于对 metadata.event_typemetadata.product_event_type 进行有条件的映射
os_actor_process_command_line principal.process.command_line 直接映射
os_actor_process_image_md5 principal.process.file.md5 直接映射
os_actor_process_image_path principal.process.file.full_path 直接映射
os_actor_process_image_sha256 principal.process.file.sha256 直接映射
os_actor_process_instance_id principal.process.product_specific_process_id 带有“PAN:”前缀且已映射
os_actor_process_os_pid principal.process.pid 转换为字符串并映射
os_actor_primary_user_sid principal.user.windows_sid 如果以“S-”或“s-”开头,则已映射
os_actor_primary_username principal.user.useridprincipal.administrative_domain 转换为小写形式,解析出网域和用户,并进行相应映射
_action security_result.action 已合并到 _security_result,然后进行了映射
metadata.log_type metadata.log_type 已硬编码为“PAN_CORTEX_XDR_EVENTS”
metadata.product_name metadata.product_name 已硬编码为“Cortex XDR”
metadata.vendor_name metadata.vendor_name 已硬编码为“PAN”
target.platform target.platform 如果 agent_os_sub_type 包含“Windows”,则设置为“WINDOWS”

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。