收集 F5 BIG-IP ASM 日志

支持的平台:

本文档介绍了如何使用 Bindplane 将 F5 BIG-IP Application Security Manager (ASM) 日志注入到 Google 安全运营中心。解析器会处理各种日志格式(syslog、CSV、CEF 等),并将其标准化为 UDM。它使用 Grok 模式和键值提取功能来解析字段、对违规详情进行 XML 过滤、对事件进行分类和严重程度映射的条件逻辑,并将提取的字段合并到 UDM 架构中。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用了带有 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 F5 BIG-IP ASM 的超级用户访问权限。

获取 Google SecOps 提取身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次选择 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 Bindplane 代理

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

  • 如需了解其他安装选项,请参阅此安装指南

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:

    1. 找到 config.yaml 文件。通常,在 Linux 上,该目录位于 /etc/bindplane-agent/ 目录中;在 Windows 上,该目录位于安装目录中。
    2. 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: F5_ASM
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 根据基础架构中的需要替换端口和 IP 地址。

  4. <customer_id> 替换为实际的客户 ID。

  5. 获取 Google SecOps 提取身份验证文件部分中,将 /path/to/ingestion-authentication-file.json 更新为身份验证文件的保存路径。

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

在 F5 BIG-IP ASM 上配置远程日志记录

  1. 登录 ASM 控制台 Web 界面。
  2. 依次选择安全性 > 事件日志 > 日志配置文件
  3. 点击创建
  4. 提供以下配置详细信息:

    • 配置文件名称:为配置文件输入一个唯一名称。
    • 选择应用安全
    • 在应用安全保障标签页中,选择 Advanced(高级,如果需要进行其他配置)。
    • 存储目的地:选择远程存储空间
    • 日志记录格式:选择“通用事件格式 (CEF)”。
    • 清除本地存储
    • 协议:选择 UDPTCP(具体取决于您的 Bindplane 代理配置)。
    • 服务器地址:输入 Bindplane 代理 IP 地址。
    • 端口:默认处于选中状态 514。根据您的 Bindplane 代理配置更新端口设置。
    • 点击添加
    • 选择保证日志记录
    • 选择报告检测到的异常
    • 设施:选择 LOG_LOCAL6(您可以选择要记录的流量的设施类别,可能的值为 LOG_LOCAL0LOG_LOCAL7)。
  5. 点击 Finished

将日志记录配置文件与安全政策相关联

  1. 依次点击 Local Traffic > Virtual Servers
  2. 点击安全政策使用的虚拟服务器的名称。
  3. 安全菜单中,选择政策
  4. 确保应用安全政策设置为已启用,并且政策已设置为您所需的安全政策。
  5. 确保将日志配置文件设置设为已启用
  6. 可用列表中选择要用于安全政策的配置文件,然后将其移至已选列表。
  7. 点击更新

UDM 映射表

日志字段 UDM 映射 逻辑
act security_result.action 如果 actblocked,则映射到“屏蔽”。如果 actpassedlegal,则映射到 ALLOW。如果 act 包含 alerted,则映射到 QUARANTINE。否则,对于 Splunk 格式,默认为 ALLOW。
app network.application_protocol 如果原始日志中存在,则直接映射到 HTTPS。
attack_type security_result.category_detailsmetadata.description 与其他字段结合使用,用于确定 security_result.category。如果没有其他说明,则此说明将成为事件说明。对于 Splunk 格式日志,如果 violations 为空,则用于确定类别和摘要。
client_ip principal.ipprincipal.asset.ip 直接映射到主 IP。
cn1 network.http.response_code 直接映射到 HTTP 响应代码。
cn2 security_result.severity_details 直接映射到安全结果严重程度详细信息。与 response_code 搭配使用,用于确定事件是否为提醒。
column1 principal.ipprincipal.asset.ip 与某些 CSV 格式日志的主要 IP 地址相对应。
column2 target.port 用于将特定 CSV 格式日志映射到目标端口。
column3 target.iptarget.asset.ip 将特定 CSV 格式日志映射到目标 IP。
column4 security_result.severity 与某些 CSV 格式日志的安全结果严重程度相对应。值 InformationInformational04 会映射到“INFORMATIONAL”(信息性)。Warning13 会映射到“中”。Error2 会映射到 ERROR。CriticalCRITICALcritical 会映射到“严重”。
column7 security_result.detection_fieldsnetwork.http.response_code 包含 XML 数据。系统会提取 request-violations 中的 viol_name,并将其添加为键为 Request Violation Name_index 的检测字段。系统会提取 response_violations 中的 viol_name,并将其添加为键为 Response Violation Name_index 的检测字段。response_violations 中的 response_code 映射到 network.http.response_code
column8 security_result.rule_name 与某些 CSV 格式日志的安全结果规则名称相对应。
cs1 security_result.rule_name 直接映射到安全结果规则名称。
cs2 security_result.summary 直接映射到安全结果摘要。
cs5 principal.ipprincipal.asset.ipadditional.fields 如果 cs5 包含 JNDI LDAP 网址,则会作为键为 JNDI_LDAP_URL 的附加字段添加。否则,如果它包含以英文逗号分隔的 IP 地址,则系统会将与 principal_ip 不同的任何 IP 地址添加为额外的主 IP 地址。
cs6 principal.location.country_or_region 直接映射到主要地点所在的国家/区域。
data network.session_idnetwork.sent_bytesnetwork.tls.version 如果存在,则解析为 JSON 以提取 sessionidbits(映射到 sent_bytes)和 version
date_time metadata.event_timestamp 在解析并转换为正确格式后,直接映射到事件时间戳。
dest_ip target.iptarget.asset.ip 直接映射到目标 IP。
dest_port target.port 直接映射到目标端口。
dhost target.hostname 直接映射到目标主机名。
dpt target.port 直接映射到目标端口。
dst target.ip 直接映射到目标 IP。
dvc intermediary.ip 直接映射到中继 IP。
dvchost target.hostnameintermediary.hostname 直接映射到目标主机名和中继主机名。
errdefs_msgno additional.fields 作为键为 errdefs_msgno 的额外字段添加。
externalId additional.fields 作为键为 Support_Id 的额外字段添加。
f5_host target.hostnameintermediary.hostname 直接映射到目标主机名和中继主机名。
geo_info principal.location.country_or_regionsecurity_result.detection_fields 对应于主要地点所在的国家/区域。还添加为键为 geo_info 的检测字段。
host target.hostname 直接映射到目标主机名。
ids additional.fields 解析为支持 ID 的逗号分隔列表。每个 ID 都会添加到键为 supportid 的列表值附加字段中。
ip_addr_intelli security_result.detection_fields 已添加为键值为 ip_addr_intelli 的检测字段。
ip_client principal.ip 直接映射到主 IP。
ip_route_domain principal.ipprincipal.asset.ip 系统会提取 IP 部分并将其映射到主 IP。
irule security_result.rule_name 直接映射到安全结果规则名称。
irule-version security_result.rule_version 直接映射到安全结果规则版本。
level security_result.severitysecurity_result.severity_details 用于确定安全结果的严重程度。errorwarning 会映射到 HIGH。notice 映射到“中等”。informationinfo 映射到“低”。原始值也会映射到 severity_details
logtime metadata.event_timestamp 在解析后直接映射到事件时间戳。
management_ip_addressmanagement_ip_address_2 intermediary.ip 直接映射到中继 IP。
method network.http.method 直接映射到 HTTP 方法。
msg security_result.summarymetadata.description 对于某些日志格式,直接映射到安全结果摘要。如果没有其他说明,则此说明将成为事件说明。
policy_name security_result.about.resource.namesecurity_result.rule_name 直接映射到安全结果资源名称或规则名称。
process target.application 直接映射到目标应用。
process_id principal.process.pid 直接映射到主进程 ID。
protocol network.application_protocolnetwork.ip_protocolapp_protocol 直接映射到应用协议或 IP 协议,具体取决于日志格式。
proxy_id security_result.rule_id 直接映射到安全结果规则 ID。
query_string additional.fields 作为键为 query_string 的额外字段添加。
referrer network.http.referral_url 直接映射到 HTTP 引荐来源网址。
req_method network.http.method 直接映射到 HTTP 方法。
req_status security_result.actionsecurity_result.action_detailssecurity_result.detection_fields 如果为 blocked,则将 security_result.action 映射到 BLOCK。如果为 passedlegal,则映射为 ALLOW。如果包含 alerted,则映射到 QUARANTINE。系统还会将原始值映射到 action_details,并将其作为键为 req_status 的检测字段添加。
request target.url 直接映射到目标网址。
requestMethod network.http.method 直接映射到 HTTP 方法。
resp security_result.detection_fields 已添加为键值为 resp 的检测字段。
resp_code network.http.response_code 直接映射到 HTTP 响应代码。
response security_result.summary 直接映射到安全结果摘要。
response_code network.http.response_code 直接映射到 HTTP 响应代码。
route_domain additional.fields 作为键为 route_domain 的额外字段添加。
rt metadata.event_timestamp 在解析后直接映射到事件时间戳。
sev security_result.severitysecurity_result.severity_details 用于确定安全结果的严重程度。ERROR 映射到 ERROR。原始值也会映射到 severity_details
severity security_result.severitysecurity_result.severity_details 用于确定安全结果的严重程度。Informational 映射到“低”,Errorwarning 映射到“高”,critical 映射到“严重”,notice 映射到“中”,informationinfo 映射到“低”。原始值也会映射到 severity_details
sig_ids security_result.rule_id 直接映射到安全结果规则 ID。
sig_names security_result.rule_name 直接映射到安全结果规则名称。
snat_ip principal.nat_ip 直接映射到主要 NAT IP。
snat_port principal.nat_port 直接映射到主 NAT 端口。
src principal.ipprincipal.asset.ip 直接映射到主 IP。
spt principal.port 直接映射到主端口。
sub_violates security_result.about.resource.attribute.labels 已作为键为 Sub Violations 的标签添加到安全结果资源属性。
sub_violations security_result.about.resource.attribute.labels 已作为键为 Sub Violations 的标签添加到安全结果资源属性。
summary security_result.summary 直接映射到安全结果摘要。
support_id metadata.product_log_id 前缀为 support_id -,并映射到商品日志 ID。
suid network.session_id 直接映射到网络会话 ID。
suser principal.user.userid 直接映射到主要用户 ID。
timestamp metadata.event_timestamp 在解析并转换为正确格式后,直接映射到事件时间戳。
unit_host principal.hostnameprincipal.asset.hostname 直接映射到主主机名。
uri principal.url 直接映射到主要网址。
user_id principal.user.userid 直接映射到主要用户 ID。
user_name principal.user.user_display_name 直接映射到主要用户显示名称。
username principal.user.userid 直接映射到主要用户 ID。
useragent network.http.user_agentnetwork.http.parsed_user_agent 直接映射到 HTTP 用户代理。还会解析并映射到解析后的用户代理。
virtualserver network.tls.client.server_name 直接映射到 TLS 客户端服务器名称。
violate_details security_result.detection_fieldsnetwork.http.response_code 包含 XML 数据。系统会提取 request-violations 中的 viol_name,并将其添加为键为 Request Violation Name_index 的检测字段。系统会提取 response_violations 中的 viol_name,并将其添加为键为 Response Violation Name_index 的检测字段。response_violations 中的 response_code 映射到 network.http.response_code
violate_rate security_result.detection_fields 已添加为键值为 violate_rate 的检测字段。
violation_rating security_result.about.resource.attribute.labels 已作为键为 Violations Rating 的标签添加到安全结果资源属性。
violations security_result.description 直接映射到安全结果说明。对于 Splunk 格式日志,该字段用于确定是否存在摘要。
virus_name security_result.threat_name 直接映射到安全结果威胁名称。
vs_name network.tls.client.server_name 直接映射到 TLS 客户端服务器名称。
websocket_direction network.direction 如果为 clientToServer,则映射到 INBOUND。如果为 ServerToclient,则映射到 OUTBOUND。
websocket_message_type security_result.detection_fields 已添加为键值为 WebsocketMessageType 的检测字段。
x_fwd_hdr_val principal.ipprincipal.asset.ip 直接映射到主 IP。

变化

2025-02-11

增强功能

  • column3 映射到 principal.ipprincipal.asset.ip

2025-02-04

增强功能

  • 添加了 gsub,以便在 uri 字段包含非 UTF-8 字符时从中移除非 UTF-8 字符,以便解析日志。

2025-01-30

增强功能

  • _intermediary.ip_intermediary.asset.ip 中移除了 cs5 字段。
  • src 映射到 principal.nat_ip
  • cs5 映射到 principal.ipprincipal.asset.ip

2025-01-17

增强功能

  • 移除了用于解析包含非 utf8 字符的日志的丢弃条件。

2024-12-11

增强功能

  • 修改了 Grok 模式,以支持新格式的 Syslog 日志。

2024-11-28

增强功能

  • Referer 的映射从 network.http.referral_url 更改为 target.url

2024-11-07

增强功能

  • exec_data 映射到 target.process.command_line
  • src 映射到 principal.hostnameprincipal.asset.hostname
  • cs3 映射到 additional.fields

2024-10-30

增强功能

  • 添加了对处理 CSV 日志的支持。

2024-10-28

增强功能

  • 修改了现有的 Grok 模式,以处理 ISP 屏蔽和 ISP 地理位置屏蔽。

2024-10-25

增强功能

  • form_data 映射到 additional.fields

2024-10-23

增强功能

  • SOAPAction 映射到 additional.fields

2024-09-30

增强功能

  • link 映射到 target.url
  • 如果消息包含 DROP,请将 security_result.action 设置为 BLOCK
  • 如果消息包含 allowed,请将 security_result.action 设置为 ALLOW

2024-08-07

增强功能

  • 修改了现有的 Grok 模式,以处理 CEF 日志。
  • suid 映射到 principal.user.userid
  • suser 映射到 principal.user.user_display_name
  • device_version 映射到 metadata.product_version
  • severity 映射到 security_result.severity

2024-07-15

增强功能

  • 添加了对处理 SYSLOG + KV 日志的支持。

2024-06-17

增强功能

  • 添加了对新模式的 CSV 日志的支持。

2024-06-11

增强功能

  • 添加了 KV 块来处理未解析的 KV 日志。
  • 使用 gsub 解析 CSV 日志的格式化 CSV 日志。

2024-05-13

增强功能

  • 添加了 KV 块以解析 KV 日志。
  • 添加了 gsub 以移除不需要的字符。

2024-04-19

增强功能

  • 处理了未解析的 CSV 日志。
  • 向映射 resp_code 添加了 Grok 模式。
  • errdefs_msgnosupport_id_arrayaudit_component 映射到 additional.fields
  • descrip 映射到 metadata.description

2024-04-08

增强功能

  • 添加了对解析新提取的未解析日志的支持。

2024-04-05

bug 修复

  • 添加了用于解析丢弃的 ASF CEM 日志的条件。

2024-02-27

bug 修复

  • 如果 cs5 字段包含有效的 IP 地址,则映射到 principal.ip
  • 对齐了 principal.ipprincipal.asset.ip 映射。
  • 对齐了 principal.hostnameprincipal.asset.hostname 映射。
  • 对齐了 target.iptarget.asset.ip 映射。
  • 对齐了 target.hostnametarget.asset.hostname 映射。

2024-01-12

增强功能

  • severity 映射到 security_result.severity_details
  • resp_code 映射到 http.response_code
  • virus_name 映射到 security_result.threat_name
  • ip_route_domain 映射到 principal.ip
  • geo_inforespreq_statusviolate_rateip_addr_intelli 映射到 security_result.detection_fields

2023-12-15

增强功能

  • 处理了新提取的一组日志,其中 metadata.event_typeGENERIC_EVENTnetwork.application_protocolHTTP
  • 如果消息包含 UDP,则将 network.ip_protocol 设置为 UDP
  • 移除了 network.application_protocol 的硬编码值。
  • 如果 message 分别具有 HTTP 和 `HTTPS,请将 network.application_protocol 设置为 HTTPHTTPS
  • 如果 metadata.event_typeNETWORK_HTTP,将 network.application_protocol 设置为 HTTP
  • 添加了两个 Grok 模式,用于解析新提取的日志中的 principal_ipsrc_port
  • message_body 映射到 metadata.description
  • tmm_msg 映射到 metadata.description

2023-12-07

增强功能

  • 添加了新的 Grok 模式,用于解析新的 KV+XML 日志。
  • 添加了 KV 过滤器来解析未解析的 KV 日志。
  • 添加了 XML 过滤器来解析未解析的 XML 日志。
  • policy_name 映射到 security_result.about.resource.name
  • viol_name 映射到 security_result.detection_fields
  • response_code 映射到 network.http.response_code
  • 修改了 Grok 模式,以将完整的 Referer 字段映射到 network.http.referral_url
  • parseduseragent 映射到 `network.http.parsed_user_agent。

2023-11-08

增强功能

  • 添加了新的 Grok 模式来解析新的 KV 日志。
  • 添加了 KV 过滤器来解析经过修复的 KV 日志。
  • bigip_mgmt_ipclient_ip_geo_locationclient_portclient_request_uridevice_versionhttp_methodroute_domainvirtual_server_name 分别映射到 principal.ipprincipal.location.country_or_regionprincipal.portprincipal.urlmetadata.product_versionnetwork.http.methodadditional.fieldsnetwork.tls.client.server_name
  • request_status 条件添加了 legal,以将 security_result.action_details 映射为 ALLOW
  • profile_nameactionprevious_actionbot_signaturebot_signature_categorybot_nameclassanomaly_categoriesanomaliesmicro_services_namemicro_services_typemicro_services_matched_wildcard_urlmicro_services_hostnamebrowser_configured_verification_actionbrowser_actual_verification_actionnew_request_statusmobile_is_appenforced_byapplication_display_nameclient_typechallenge_failure_reason 映射到 additional.fields

2023-10-19

增强功能

  • 添加了 Grok 模式,以便从 CEF 日志中将 Referer 字段的值提取为 referer
  • referer 映射到 network.http.referral_url

2023-09-27

bug 修复

  • 对于包含 request_status = blocked 的日志,将 security_result.action 设置为 BLOCK,并将 security_result.action_details 设置为 blocked
  • 对于包含 request_status = passed 的日志,将 security_result.action 设置为 ALLOW,并将 security_result.action_details 设置为 passed
  • 对于包含 request_status = alerted 的日志,将 security_result.action 设置为 QUARANTINE,并将 security_result.action_details 设置为 alerted

2023-08-07

增强功能

  • management_ip_address 映射到 metadata.intermediary.ip
  • request_status 映射到 security_result.action
  • query_string 映射到 additional.fields
  • sig_ids 映射到 security_result.rule_id
  • sig_names 映射到 security_result.rule_name
  • username 映射到 principal.user.userid
  • policy_name 映射到 security_result.about.resource.name
  • sub_violations 映射到 security_result.about.resource.attribute.labels
  • violation_rating 映射到 security_result.about.resource.attribute.labels
  • websocket_direction 映射到 network.direction
  • websocket_message_type 映射到 security_result.detection_fields

2023-07-27

bug 修复

  • 添加了新字段 target_app,用于包含与 target.application 对应的值。
  • 仅当字段 target_app 的值为 null 时,才将字段 process 映射到 target.application
  • 如果字段 process 不是字符串,则将其转换为 string

2023-07-03

增强功能

  • externalId 映射到 `additional.fields
  • 将事件时间映射到了 `metadata.event_timestamp

2023-05-12

增强功能

  • 对于 CEF 格式日志,将有关攻击的信息映射到 security_result.description

2023-04-06

增强功能

  • 登录事件被解析为“USER_LOGIN”,而不是“STATUS UPDATE”。
  • 解析了“firstname.lastname”中的用户名值,并映射到“principal.user.userid”。

2023-02-09

增强功能

  • 通过添加新的 Grok 模式解析了包含 type=irule 的日志,并映射了以下字段:
  • type 映射到 metadata.product_event_type
  • data.sessionid 映射到 network.session_id
  • data.bits 映射到 network.sent_bytes
  • data.version 映射到 network.tls.version
  • client_ip 映射到 principal.ip
  • client_port 映射到 principal.port
  • snat_ip 映射到 principal.nat_ip
  • snat_port 映射到 principal.nat_port
  • server_ip 映射到 target.ip
  • server_port 映射到 target.port
  • irule 映射到 security_result.rule_name
  • irule-version 映射到 security_result.rule_version
  • proxy_id 映射到 security_result.rule_id
  • virtualserver 映射到 network.tls.client.server_name

2022-11-03

增强功能

  • 添加了未解析的 CEF 格式日志的条件。
  • 添加了一个条件,用于检查 sshd 和 httpd user_login 日志。
  • 添加了 Grok 模式,用于解析 httpd 和 sshd user_login 成功/失败日志。
  • event_id 映射到 metadata.product_log_id
  • application 映射到 target.application
  • prin_ip 映射到 principal.ip
  • ttysshapplicaitionsshd 时,将 SSH 映射到 app_protocol
  • 映射了 user_id principal.user.user_id
  • 将 httpd/sshd user_login 日志的 USER_LOGIN 映射到 metadata.event_type
  • auth_level 映射到 principal.user.attribute.roles
  • 将日志中的 addr 映射到 target.ip
  • 将日志中的 port 映射到 target.port

2022-09-21

增强功能

  • 将客户专用解析器迁移到了默认解析器。

2022-05-17

增强功能

  • 增强了解析器,以解析 HTTP 请求的标头。

2022-04-27

bug 修复

  • 增强了解析器,以解析采用 ASM: 格式的日志。

2022 年 4 月 26 日

增强功能

  • 增强了解析器,以处理未解析的原始日志

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