收集 F5 BIG-IP LTM 日志
本文档介绍如何使用 Google Security Operations 转发器收集 F5 BIG-IP 本地流量管理器 (LTM) 日志。
如需了解详情,请参阅将数据注入 Google Security Operations。
注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 F5_BIGIP_LTM
注入标签的解析器。
配置 F5 BIG-IP LTM
- 使用根凭据登录 SSH。
使用以下命令登录流量管理 Shell (tmsh):
tmsh
使用以下命令将过滤后的日志消息发送到远程 syslog 服务器:
modify /sys syslog remote-servers none
移除 remote-servers 语句,然后添加一个 syslog
include
语句,用于定义过滤规则和远程服务器。如需定义引用远程服务器的必需 syslog 过滤条件,请使用以下命令:
edit /sys syslog all-properties
将
include none
命令替换为以下过滤条件,并添加 IP 地址和端口号。include " filter f_remote_loghost { level(debug..emerg); }; filter f_ssl_acc { not match(\"ssl_acc\"); }; filter f_ssl_req { not match(\"ssl_req\"); }; destination d_remote_loghost { udp(IP_ADDRESS PORT); }; log { source(s_syslog_pipe); filter(f_remote_loghost); filter(f_ssl_acc); filter(f_ssl_req); destination(d_remote_loghost); }; "
将 IP_ADDRESS 替换为 Google Security Operations 转发器的 IP 地址,并将 port 替换为高端口号。
如需退出文本编辑器,请按 Esc 键,然后输入 wq!。
使用以下命令保存配置:
save /sys config
配置 Google Security Operations 转发器和 syslog 以注入 F5 BIG-IP LTM 日志
- 依次前往 SIEM 设置 > 转发器。
- 点击添加新转发器。
- 在 Forwarder Name(转发器名称)字段中,输入转发器的唯一名称。
- 点击提交。系统会添加转发器,并显示添加收集器配置窗口。
- 在收集器名称字段中,输入一个名称。
- 选择 F5 BIGIP LTM 作为日志类型。
- 选择 Syslog 作为收集器类型。
- 配置以下必需的输入参数:
- 协议:指定协议。
- 地址:指定 Google Security Operations 转发器的 IP 地址。
- 端口:指定端口。
- 点击提交。
如需详细了解 Google Security Operations 转发器,请参阅 Google Security Operations 转发器文档。 如需了解每种转发器类型的要求,请参阅按类型划分的转发器配置。
如果您在创建转发器时遇到问题,请与 Google Security Operations 支持团队联系。
字段映射参考
此解析器可将 F5 BIG-IP 本地流量管理器 (LTM) 日志规范化,并处理键值格式和 syslog 格式。它会提取 IP 地址、用户名、操作和说明等字段,将它们映射到 UDM,并根据日志内容和提取的字段对事件进行分类,包括网络连接、用户登录/退出和通用事件。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
Access_Profile |
event.idm.read_only_udm.additional.fields[].key:"Access_Profile", event.idm.read_only_udm.additional.fields[].value.string_value |
直接从已解析的键值对中的 Access_Profile 键映射。 |
Client_IP |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
直接从已解析的键值对中的 Client_IP 键映射。还用于填充主资产 IP。将 has_principal 设置为 true。 |
Country |
event.idm.read_only_udm.principal.location.country_or_region |
直接从已解析的键值对中的 Country 键映射。 |
Listener |
event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value |
直接从已解析的键值对中的 Listener 键映射。 |
Session_ID |
event.idm.read_only_udm.network.session_id |
直接从已解析的键值对中的 Session_ID 键映射。 |
State |
event.idm.read_only_udm.principal.location.state |
直接从已解析的键值对中的 State 键映射。 |
Virtual_IP |
event.idm.read_only_udm.target.ip[], event.idm.read_only_udm.target.asset.ip[] |
直接从已解析的键值对中的 Virtual_IP 键映射。还用于填充目标资产 IP。将 has_target 设置为 true。 |
about |
event.idm.read_only_udm.about |
如果原始日志中存在 snat 、vs_name 、path 、query 、node 、pool_member 、vs 、client 、blade 和 device 等字段,并且这些字段已成功解析,则会根据这些字段填充该字段。 |
action_data |
event.idm.read_only_udm.target.process.command_line |
直接映射到 scriptd 进程日志。 |
attack_type |
event.idm.read_only_udm.security_result.category_details[] |
直接映射。 |
blade |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"blade", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 blade 键映射。 |
bytes_in |
event.idm.read_only_udm.network.received_bytes |
直接映射,转换为无符号整数。 |
bytes_out |
event.idm.read_only_udm.network.sent_bytes |
直接映射,转换为无符号整数。 |
captcha_result |
event.idm.read_only_udm.additional.fields[].key:"captcha_result", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
client |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"client", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 client 键映射。 |
client_ip |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
直接映射。还用于填充主资产 IP。将 has_principal 设置为 true。 |
client_port |
event.idm.read_only_udm.principal.port |
直接映射,转换为整数。 |
collection_time |
event.timestamp |
日志条目的时间戳用作事件时间戳。 |
command_line |
event.idm.read_only_udm.target.process.command_line |
直接映射,适用于 CROND 进程日志和部分 logger 日志。 |
data |
message |
原始日志消息。系统会解析此字符串,并使用解析结果填充各种 UDM 字段。 |
dgl_count |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"DataGroup_Value", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
直接映射。 |
dgl_value |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"DataGroup_List", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
直接映射。 |
description |
event.idm.read_only_udm.metadata.description ,event.idm.read_only_udm.security_result.description |
直接映射(对于某些日志类型),或用作安全结果说明的一部分。 |
device |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.about.resource.attribute.labels[].key:"device", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接映射。还用于填充主资源主机名。将 has_principal 设置为 true。 |
dest_ip |
event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip |
直接映射。还用于填充目标资产 IP。将 has_principal 设置为 true。 |
dest_port |
event.idm.read_only_udm.target.port |
直接映射。 |
dvc |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname, event.idm.read_only_udm.intermediary.hostname |
已解析以提取主机名或 IP。用于填充主主机名或中间主机名。 |
errdefs_msgno |
event.idm.read_only_udm.additional.fields[].key:"errdefs_msgno", event.idm.read_only_udm.additional.fields[].value.string_value |
直接从已解析的键值对中的 errdefs_msgno 键映射。 |
error_reason |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"error_reason", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
直接映射。 |
false_positive |
event.idm.read_only_udm.additional.fields[].key:"false_positive", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
function_id |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"function_id", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
直接映射。 |
geoContinent |
event.idm.read_only_udm.principal.location.continent |
在提供的示例中未映射,但如果可用,则会映射到大洲。 |
geoCountry |
event.idm.read_only_udm.principal.location.country_or_region |
直接映射。 |
geoState |
event.idm.read_only_udm.principal.location.state |
直接映射。 |
header.Referer |
event.idm.read_only_udm.network.http.referral_url |
直接映射。 |
header.User-Agent |
event.idm.read_only_udm.network.http.user_agent, event.idm.read_only_udm.network.http.parsed_user_agent |
直接映射。也已转换为已解析的用户代理。 |
header.X-Forwarded-For |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
经过解析,提取 IP 并将其合并到主要 IP 和主要资产 IP 中。 |
host |
event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname |
直接映射。还用于填充目标资产主机名。将 has_target 设置为 true。 |
http_host |
event.idm.read_only_udm.target.hostname, event.idm.read_only_udm.target.asset.hostname |
直接映射。还用于填充目标资产主机名。将 has_target 设置为 true。 |
http_method |
event.idm.read_only_udm.network.http.method |
直接映射。如果存在,则将 event_type 设置为 NETWORK_HTTP 。 |
ip_client |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
直接映射。还用于填充主资产 IP。将 has_principal 设置为 true。 |
kv_msg |
各种字段 | 解析为键值对,用于填充各种 UDM 字段。 |
Level |
event.idm.read_only_udm.security_result.severity |
如果不存在 severity 字段,则映射到严重程度。转换为 UDM 严重程度值(例如,“Info”更改为“INFORMATIONAL”)。 |
Listener |
event.idm.read_only_udm.additional.fields[].key:"Listener", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
log_message |
event.idm.read_only_udm.principal.resource.attribute.labels[].value, event.idm.read_only_udm.security_result.description |
进一步解析以提取 request_uri 或 description 。 |
log_type |
event.idm.read_only_udm.metadata.log_type |
直接从原始日志的 log_type 字段映射。 |
loglevel |
event.idm.read_only_udm.security_result.severity |
已映射到严重程度。转换为 UDM 严重程度值(例如,“warning”->“MEDIUM”,“err”->“HIGH”)。还用于提醒/重大事件逻辑。 |
manage_ip_addr |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
直接映射。还用于填充主资产 IP。将 has_principal 设置为 true。 |
method |
event.idm.read_only_udm.network.http.method |
直接映射。将 event_type 设置为 NETWORK_HTTP 。 |
method_req |
event.idm.read_only_udm.network.http.method |
直接映射。 |
msg1 |
event.idm.read_only_udm.security_result.description |
如果未进一步解析,则用作安全结果说明。 |
node |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"node", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 node 键映射。 |
partition_name |
event.idm.read_only_udm.additional.fields[].key:"partition_name", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
path |
event.idm.read_only_udm.target.url, event.idm.read_only_udm.about.resource.attribute.labels[].key:"path", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接映射。 |
policy_name |
event.idm.read_only_udm.security_result.detection_fields[].key:"policy_name", event.idm.read_only_udm.security_result.detection_fields[].value |
直接映射。 |
pool_member |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"pool_member", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 pool_member 键映射。 |
principalHost |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname |
直接映射。还用于填充主资源主机名。将 has_principal 设置为 true。 |
principalIp |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[], event.idm.read_only_udm.observer.ip |
直接映射。还用于填充主资产 IP 和观测者 IP。将 has_principal 设置为 true。 |
principalPort |
event.idm.read_only_udm.principal.port |
直接映射,转换为整数。 |
process |
event.idm.read_only_udm.target.application |
直接映射。 |
product_event_type |
event.idm.read_only_udm.metadata.product_event_type |
直接映射。 |
proto |
event.idm.read_only_udm.network.ip_protocol |
使用查找功能将协议编号转换为协议名称后,映射到 IP 协议。 |
query |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"query", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 query 键映射。 |
query_string |
event.idm.read_only_udm.additional.fields[].key:"query_string", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
reason |
event.idm.read_only_udm.security_result.description |
直接映射到具有警告或错误日志级别的 apmd 进程日志。 |
reason_code |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"reason_code", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
直接映射。 |
req_status |
event.idm.read_only_udm.security_result.detection_fields[].key:"req_status", event.idm.read_only_udm.security_result.detection_fields[].value |
直接映射。 |
request |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"request_type", event.idm.read_only_udm.principal.resource.attribute.labels[].value, event.idm.read_only_udm.network.application_protocol |
用于确定应用协议 (HTTP),并映射为标签。 |
request_status |
event.idm.read_only_udm.additional.fields[].key:"request_status", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
request_uri |
event.idm.read_only_udm.target.url |
直接映射。 |
resp_code |
event.idm.read_only_udm.network.http.response_code |
直接映射,转换为整数。 |
response_code |
event.idm.read_only_udm.network.http.response_code |
直接映射,转换为整数。 |
rule_name |
event.idm.read_only_udm.security_result.rule_name |
直接映射。 |
sec_action |
event.idm.read_only_udm.security_result.action[] |
已映射到操作。“继续”已转换为“允许”。其他值会转换为“BLOCK”。 |
security_result |
event.idm.read_only_udm.security_result |
已合并到 security_result 对象中。 |
session_id |
event.idm.read_only_udm.network.session_id |
直接映射。 |
severity |
event.idm.read_only_udm.security_result.severity |
已映射到严重程度。转换为 UDM 严重程度值(例如,“Error”->“ERROR”,“Informational”->“INFORMATIONAL”)。 |
sig_ids |
event.idm.read_only_udm.additional.fields[].key:"sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
sig_names |
event.idm.read_only_udm.additional.fields[].key:"sig_names", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
sni_host |
event.idm.read_only_udm.network.tls.client.server_name |
直接映射。 |
snat |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"snat", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 snat 键映射。 |
snat_ip |
event.idm.read_only_udm.principal.nat_ip[] |
直接映射。 |
snat_port |
event.idm.read_only_udm.principal.nat_port |
直接映射,转换为整数。 |
src_ip |
event.idm.read_only_udm.principal.ip[], event.idm.read_only_udm.principal.asset.ip[] |
直接映射。还用于填充主资产 IP。 |
src_port |
event.idm.read_only_udm.principal.port |
直接映射。 |
ssl_cipher |
event.idm.read_only_udm.network.tls.cipher |
直接映射。 |
ssl_function |
event.idm.read_only_udm.principal.resource.attribute.labels[].key:"ssl_function", event.idm.read_only_udm.principal.resource.attribute.labels[].value |
直接映射。 |
ssl_version |
event.idm.read_only_udm.network.tls.version_protocol |
直接映射。 |
staged_sig_ids |
event.idm.read_only_udm.additional.fields[].key:"staged_sig_ids", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
staged_sig_names |
event.idm.read_only_udm.additional.fields[].key:"staged_sig_names", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
staged_sig_set_names |
event.idm.read_only_udm.additional.fields[].key:"staged_sig_set_names", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
staged_threat_campaign_names |
event.idm.read_only_udm.additional.fields[].key:"staged_threat_campaign_names", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
status |
event.idm.read_only_udm.security_result.summary |
直接映射到 scriptd 进程日志。 |
summary |
event.idm.read_only_udm.security_result.summary |
直接映射(适用于某些日志类型)。 |
support_id |
event.idm.read_only_udm.additional.fields[].key:"Support_Id", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
systems |
event.idm.read_only_udm.principal.asset.attribute.labels[].key, event.idm.read_only_udm.principal.asset.attribute.labels[].value |
经过解析,可提取系统信息并将其作为标签映射到主要资产。 |
targetFile |
event.idm.read_only_udm.target.file.full_path |
直接映射到 scriptd 进程日志。 |
targetIp |
event.idm.read_only_udm.target.ip, event.idm.read_only_udm.target.asset.ip |
直接映射。还用于填充目标资产 IP。将 has_target 设置为 true。 |
targetPort |
event.idm.read_only_udm.target.port |
直接映射,转换为整数。 |
threat_campaign_names |
event.idm.read_only_udm.additional.fields[].key:"threat_campaign_names", event.idm.read_only_udm.additional.fields[].value.string_value |
直接映射。 |
timestamp |
event.timestamp |
在解析和重新确定基准后直接映射。 |
tls_version |
event.idm.read_only_udm.network.tls.version |
直接映射。 |
tlsproto |
event.idm.read_only_udm.network.tls.version_protocol |
直接映射。如果值为 HTTP/1.1,则映射为“HTTP”。 |
unit_host |
event.idm.read_only_udm.principal.hostname, event.idm.read_only_udm.principal.asset.hostname |
直接映射。还用于填充主资源主机名。将 has_principal 设置为 true。 |
uri |
event.idm.read_only_udm.target.url |
直接映射。 |
uri_path |
event.idm.read_only_udm.target.url |
直接映射,如果存在,则与 uri_query 连接。 |
url |
event.idm.read_only_udm.principal.url |
直接映射。 |
url_string |
event.idm.read_only_udm.network.http.referral_url |
直接映射。 |
user_agent |
event.idm.read_only_udm.network.http.user_agent |
直接映射。 |
userId |
event.idm.read_only_udm.principal.user.userid, event.idm.read_only_udm.target.user.userid |
直接映射。还用于填充目标用户 ID。将 has_principal_user 设置为 true。 |
vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
硬编码为“F5”。 |
violations |
event.idm.read_only_udm.security_result.detection_fields[].key:"violations", event.idm.read_only_udm.security_result.detection_fields[].value |
直接映射。 |
vs |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"vs", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 vs 键映射。 |
vs_name |
event.idm.read_only_udm.about.resource.attribute.labels[].key:"vs_name", event.idm.read_only_udm.about.resource.attribute.labels[].value |
直接从已解析的键值对中的 vs_name 键映射。 |
不适用 | event.idm.read_only_udm.metadata.event_type |
由解析器逻辑根据是否存在某些字段来确定。默认为 GENERIC_EVENT 。 可以是 NETWORK_CONNECTION 、USER_LOGIN 、USER_LOGOUT 、USER_UNCATEGORIZED 、STATUS_UPDATE 或 NETWORK_HTTP 。 |
不适用 | event.idm.read_only_udm.metadata.product_name |
硬编码为“BIG-IP Local Traffic Manager (LTM)”。 |
不适用 | event.idm.read_only_udm.metadata.vendor_name |
硬编码为“F5”。 |
不适用 | event.idm.read_only_udm.metadata.event_timestamp |
从顶级 event.timestamp 复制。 |
不适用 | event.idm.read_only_udm.security_result.severity |
由解析器逻辑根据 severity 或 Level 字段(如果存在)确定。默认值为 UNKNOWN_SEVERITY 。 可以是 INFORMATIONAL 、LOW 、MEDIUM 、HIGH 或 CRITICAL 。 |
不适用 | event.idm.read_only_udm.security_result.summary |
对于特定的 apmd 日志,设置为“身份验证失败”。 |
不适用 | event.idm.read_only_udm.extensions.auth.type |
对于特定的 apmd 和 sshd 日志,请设置为“VPN”。否则,对于 USER_LOGIN 和 USER_LOGOUT 事件,请设置为 AUTHTYPE_UNSPECIFIED 。 |
不适用 | event.idm.read_only_udm.network.ip_protocol |
如果不存在 proto ,则默认为“TCP”。否则,由 proto 字段确定。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。