收集 F5 BIG-IP APM 日志
本文档介绍了如何使用 Google 安全运营转发器收集 F5 BIG-IP Access Policy Manager (APM) 日志。
如需了解详情,请参阅将数据提取到 Google 安全运营中心。
注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 F5_BIGIP_APM
注入标签的解析器。
配置 F5 BIG-IP APM
- 使用管理员凭据登录 BIG-IP 配置实用程序门户。
- 依次选择主要 > 系统 > 日志 > 配置 > 远程日志记录。
在属性部分中,执行以下操作:
- 在远程 IP 字段中,输入 Google 安全运营转发器的 IP 地址。
- 在远程端口字段中,输入一个较高的端口号。
点击添加。
点击更新。
对于来自 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,请执行以下任务:
创建远程日志记录服务器池
- 在 Main 标签页中,依次选择 DNS > Delivery > Load balancing > Pools or local traffic > Pools。
- 在随即显示的池列表窗口中,点击创建。
- 在随即显示的新建池窗口中,在名称字段中为池提供一个唯一的名称。
- 在新成员部分,添加您要添加到池中的每个远程日志记录服务器的 IP 地址:
- 在地址字段中,输入 Google 安全运营转发器 IP 地址,或从节点列表中选择节点地址。
- 在服务端口字段中,输入服务编号或从列表中选择服务名称。确保您已配置正确的远程日志记录端口。
- 点击添加,然后点击完成。
创建远程高速日志目的地
- 在主要标签页中,依次选择系统 > 日志 > 配置 > 日志目的地。
- 在随即显示的日志目的地窗口中,点击创建。
- 在名称字段中,为此目标位置提供一个唯一且可识别的名称。
- 在类型列表中,选择远程高速日志。
- 在池名称列表中,选择您希望 BIG-IP 系统向其发送日志消息的远程日志服务器池。
- 在协议列表中,选择高速日志记录池成员使用的协议。
- 点击 Finished。
创建格式化的远程高速日志目的地
- 在主要标签页中,依次选择系统 > 日志 > 配置 > 日志目的地。
- 在随即显示的日志目的地窗口中,点击创建。
- 在名称字段中,为此目标位置提供一个唯一且可识别的名称。
- 在类型列表中,选择格式化的日志记录目的地为远程 syslog。 BIG-IP 系统现在已配置为向日志服务器发送格式化的文本字符串。
- 在类型列表中,为日志选择一种格式。
- 在转发到标签页中,选择高速日志目的地列表,然后选择指向您希望 BIG-IP 系统向其发送日志消息的远程 syslog 服务器池的目标位置。
- 点击 Finished。
创建发布商
- 在主要标签页中,依次选择系统 > 日志 > 配置 > 日志发布方。
- 在随即显示的日志发布方窗口中,点击创建。
- 在名称字段中,为发布商提供一个唯一且可识别的名称。
- 在日志发布方列表中,从可用列表中选择之前创建的目标位置。
- 如要将目标文件夹移至所选列表,请点击 << 移动。
- 如果您使用的是格式化目标,请选择与您的日志服务器匹配的新创建的目标,例如远程 syslog、Splunk 或 ArcSight。
- 点击 Finished。
创建自定义 DNS 日志记录配置文件
- 在主要标签页中,依次选择 DNS > 传送 > 配置文件 > 其他 DNS 日志记录或本地流量 > 配置文件 > 其他 > DNS 日志记录。
- 在随即显示的 DNS 日志记录配置文件列表窗口中,点击创建。
- 在 Name 字段中,为配置文件提供一个唯一的名称。
- 在 Log publisher(日志发布方)列表中,选择 BIG-IP 系统将 DNS 日志条目发送到的目标位置。
- 如果您希望 BIG-IP 系统:
- 如需记录所有 DNS 查询,请确保在记录查询设置中选中“已启用”复选框。
- 如需记录所有 DNS 响应,请在记录响应设置中,选中“已启用”复选框。
- 如需在日志消息中包含客户端发送的查询 ID,请在 Include query ID(包含查询 ID)设置中,选中已启用复选框。
- 点击 Finished。
向监听器添加 DNS 日志记录配置文件
- 在主要标签页中,依次选择 DNS > 传送 > 监听器 > DNS 监听器。
- 在服务部分,从 DNS 配置文件列表中,选择您之前配置的 DNS 配置文件。
- 点击更新。
配置 Google Security Operations 转发器以提取 F5 BIG-IP APM 日志
- 依次前往 SIEM 设置 > 转发器。
- 点击添加新转发器。
- 在转发器名称字段中,为转发器输入一个唯一的名称。
- 点击提交。系统会添加转发器,并显示添加收集器配置窗口。
- 在收集器名称字段中,输入名称。
- 选择 F5 BIGIP Access Policy Manager 作为日志类型。
- 选择 Syslog 作为收集器类型。
- 配置以下必需的输入参数:
- 协议:指定协议。
- 地址:指定收集器所在的目标 IP 地址或主机名,以及 syslog 数据的地址。
- 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
- 点击提交。
如需详细了解 Google Security Operations 转发器,请参阅通过 Google Security Operations 界面管理转发器配置。
如果您在创建转发器时遇到问题,请与 Google 安全运营支持团队联系。
字段映射参考文档
此 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_ip 和 destination_ip 存在:NETWORK_CONNECTION 如果 principal_ip 或 principal_hostname 存在:STATUS_UPDATE 否则:GENERIC_EVENT 硬编码为“BIGIP_APM”。已硬编码为“F5”。如果 result 字段为“failed”,则值设为“BLOCK”。 |
变化
2023-06-06
- 新创建的解析器。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。