收集 F5 BIG-IP APM 日志

支持的语言:

本文档介绍了如何使用 Google Security Operations 转发器收集 F5 BIG-IP Access Policy Manager (APM) 日志。

如需了解详情,请参阅将数据注入 Google Security Operations

注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 F5_BIGIP_APM 注入标签的解析器。

配置 F5 BIG-IP APM

  1. 使用管理员凭据登录 BIG-IP 配置实用程序门户。
  2. 依次选择主菜单 > 系统 > 日志 > 配置 > 远程日志记录
  3. 属性部分中,执行以下操作:

    • 远程 IP 字段中,输入 Google Security Operations 转发器的 IP 地址。
    • 远程端口字段中,输入一个高端口号。
  4. 点击添加

  5. 点击更新

    对于来自 APM 的日志,仅支持 Berkeley Software Distribution (BSD) syslog 格式。

    根据 APM 中的签名,收集器仅处理 APM 日志。 F5 BIG-IP APM 事件收集器还支持来自 LTM 11.6 到 12.1.1 设备的线程化日志。

    如果您使用的是 iRule,请使用建议的 iRule 格式。Google Security Operations 仅支持以下 iRule 格式:

    # log_header_requests
    ###################################################################################
    #################################################
    # Purpose: logs header information to Local Traffic log
    # #
    #
    # Update-Log Date By Description
    # Created 02/07/2020 E01961 Initial implementation
    #
    #
    ###################################################################################
    ################################################
    when HTTP_REQUEST {
    set LogString "Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host]
    [HTTP::uri]"
    log local5. "================="
    log local5. "$LogString (request)"
    foreach aHeader [HTTP::header names] {
    log local5. "$aHeader: [HTTP::header value $aHeader]"
    }
    # set UserID [URI::query "?[HTTP::payload]" "UserID"]
    # log local0. "User $UserID attempted login from [IP::client_addr] and referer:
    [HTTP::header "Referer"]"
    # log local0. "============================================="
    }
    when HTTP_RESPONSE {
    log local5. "=================="
    log local5. "$LogString (response) - status: [HTTP::status]"
    foreach aHeader [HTTP::header names] {
    log local5. "$aHeader: [HTTP::header value $aHeader]"
    }
    # log local0. "============================================="
    

配置 F5 BIG-IP DNS

如需配置 F5 BIG-IP DNS,请执行以下任务:

创建远程日志记录服务器池

  1. 标签页上,依次选择 DNS > 交付 > 负载均衡 > 池或本地流量 >
  2. 在随即显示的池列表窗口中,点击创建
  3. 在随即显示的新池窗口中,于名称字段中为池提供一个唯一名称。
  4. 新成员部分,添加您要纳入池中的每个远程日志记录服务器的 IP 地址:
    1. 地址字段中,输入 Google Security Operations 转发器 IP 地址,或从节点列表中选择一个节点地址。
    2. 服务端口字段中,输入服务编号或从列表中选择服务名称。确保您已配置正确的远程日志记录端口。
  5. 点击添加,然后点击完成

创建远程高速日志目标位置

  1. 标签页中,依次选择系统 > 日志 > 配置 > 日志目的地
  2. 在随即显示的日志目标位置窗口中,点击创建
  3. 名称字段中,为此目的地提供一个唯一且可识别的名称。
  4. 类型列表中,选择远程高速日志
  5. 池名称列表中,选择您希望 BIG-IP 系统向其发送日志消息的远程日志服务器池。
  6. 协议列表中,选择高速日志记录池成员使用的协议。
  7. 点击 Finished

创建格式化的远程高速日志目标位置

  1. 标签页上,依次选择系统 > 日志 > 配置 > 日志目的地
  2. 在随即显示的日志目标位置窗口中,点击创建
  3. 名称字段中,为此目的地提供一个唯一且可识别的名称。
  4. 类型列表中,选择格式化日志记录目标,即远程 syslog。 现在,BIG-IP 系统已配置为向日志服务器发送格式化的文本字符串。
  5. 类型列表中,选择日志的格式。
  6. 转发到标签页上,选择高速日志目标位置列表,然后选择指向远程 syslog 服务器池的目标位置,您希望 BIG-IP 系统将日志消息发送到该服务器池。
  7. 点击 Finished

创建发布商

  1. 标签页中,依次选择系统 > 日志 > 配置 > 日志发布者
  2. 在随即显示的日志发布者窗口中,点击创建
  3. 名称字段中,为发布商提供一个可唯一标识的名称。
  4. 日志发布者列表中,从可用列表中选择之前创建的目标位置。
  5. 如需将目的地移至所选列表,请点击 << 移动
  6. 如果您使用的是格式化目标位置,请选择与您的日志服务器匹配的新建目标位置,例如远程 syslogSplunkArcSight
  7. 点击 Finished

创建自定义 DNS 日志记录配置文件

  1. 标签页中,依次选择 DNS > 传送 > 配置文件 > 其他 DNS 日志记录本地流量 > 配置文件 > 其他 > DNS 日志记录
  2. 在随即显示的 DNS 日志记录配置文件列表窗口中,点击创建
  3. 名称字段中,为配置文件提供一个唯一名称。
  4. 日志发布者列表中,选择 BIG-IP 系统将 DNS 日志条目发送到的目标位置。
  5. 如果您希望 BIG-IP 系统:
    • 如需记录所有 DNS 查询,请在 Log queries(记录查询)设置中,确保已选中启用复选框。
    • 如需记录所有 DNS 响应,请在记录响应设置中选中已启用的复选框。
    • 如需在日志消息中包含客户端发送的查询 ID,请在包含查询 ID 设置中选中已启用的复选框。
  6. 点击 Finished

向监听器添加 DNS 日志记录配置文件

  1. 标签页中,依次选择 DNS > 传送 > 监听器 > DNS 监听器
  2. 服务部分中,从 DNS 配置文件列表中选择您之前配置的 DNS 配置文件。
  3. 点击更新

配置 Google Security Operations 转发器以注入 F5 BIG-IP APM 日志

  1. 依次前往 SIEM 设置 > 转发器
  2. 点击添加新转发器
  3. Forwarder Name(转发器名称)字段中,输入转发器的唯一名称。
  4. 点击提交。系统会添加转发器,并显示添加收集器配置窗口。
  5. 收集器名称字段中,输入一个名称。
  6. 选择 F5 BIGIP Access Policy Manager 作为日志类型
  7. 选择 Syslog 作为收集器类型
  8. 配置以下必需的输入参数:
    • 协议:指定协议。
    • 地址:指定收集器所在的 syslog 数据目标 IP 地址或主机名。
    • 端口:指定收集器所在的并监听 syslog 数据的目标端口。
  9. 点击提交

如需详细了解 Google Security Operations 转发器,请参阅通过 Google Security Operations 界面管理转发器配置

如果您在创建转发器时遇到问题,请与 Google Security Operations 支持团队联系。

字段映射参考

此 F5 BIG-IP APM 解析器从 syslog 消息中提取字段,并根据应用来源(tmsh、tmm、apmd、httpd 或其他)对这些字段进行分类。然后,它会将这些提取的字段映射到 UDM,处理各种日志格式,并使用严重程度、位置和用户信息等元数据来丰富数据。

UDM 映射表

日志字段 UDM 映射 逻辑
应用 principal.application 该值取自 grok 过滤器提取的 application 字段。
bytes_in network.received_bytes 该值取自 grok 过滤器提取的 bytes_in 字段,并转换为无符号整数。
bytes_out network.sent_bytes 该值取自 grok 过滤器提取的 bytes_out 字段,并转换为无符号整数。
cmd_data principal.process.command_line 该值取自 kv 过滤器提取的 cmd_data 字段。
destination_ip target.ip 该值取自 grok 过滤器提取的 destination_ip 字段。
destination_port target.port 该值取自 grok 过滤器提取的 destination_port 字段,并转换为整数。
文件夹 principal.process.file.full_path 该值取自 kv 过滤器提取的 folder 字段。
geoCountry principal.location.country_or_region 该值取自 grok 过滤器提取的 geoCountry 字段。
geoState principal.location.state 该值取自 grok 过滤器提取的 geoState 字段。
inner_msg security_result.description 如果没有其他具体说明,则该值取自 grok 过滤器提取的 inner_msg 字段。
ip_protocol network.ip_protocol 该值取自 grok 过滤器提取的 ip_protocol 字段。
principal_hostname principal.hostname 该值取自 grok 过滤器提取的 principal_hostname 字段。
principal_ip principal.ip 该值取自 grok 过滤器提取的 principal_ip 字段。
process_id principal.process.pid 该值取自 grok 过滤器提取的 process_id 字段。
角色 user_role.name 该值取自 grok 过滤器提取的 role 字段。如果 role 字段包含“admin”(不区分大小写),则该值设置为“ADMINISTRATOR”。
和程度上减少 security_result.severity_details 此处存储来自 syslog 消息的原始值。该值是使用条件逻辑从 severity 字段派生的:
CRITICAL -> CRITICAL
ERR -> ERROR
ALERT、EMERGENCY -> HIGH
INFO、NOTICE -> INFORMATIONAL
DEBUG -> LOW
WARN -> MEDIUM
source_ip principal.ip 该值取自 grok 过滤器提取的 source_ip 字段。
source_port principal.port 该值取自 grok 过滤器提取的 source_port 字段,并转换为整数。
状态 security_result.summary 该值取自 kv 过滤器提取的 status 字段。
时间戳 metadata.event_timestamp, timestamp 该值取自 grok 过滤器提取的 timestamp 字段,并解析为时间戳对象。顶级 event 对象中的 timestamp 字段也会获得此值。
用户 principal.user.userid 该值取自 grok 过滤器提取的 user 字段,并移除了“id”或“ID”前缀。该值根据是否存在其他字段派生得出:
如果存在 user:USER_UNCATEGORIZED
如果存在 source_ipdestination_ip:NETWORK_CONNECTION
如果存在 principal_ipprincipal_hostname:STATUS_UPDATE
否则:GENERIC_EVENT 硬编码为“BIGIP_APM”。硬编码为“F5”。如果 result 字段为“failed”,则值设置为“BLOCK”。

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