收集 F5 VPN 日志
支持的语言:
Google SecOps
SIEM
本文档介绍如何使用 Bindplane 将 F5 VPN 日志注入到 Google Security Operations。解析器从日志中提取与安全性相关的信息。 它使用正则表达式来识别和解析时间戳、IP 地址和主机名等关键字段,然后将这些数据结构化为 Google SecOps 统一数据模型 (UDM) 格式以供分析。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows 2016 或更高版本,或者具有
systemd的 Linux 主机 - 如果在代理后运行,防火墙端口处于开放状态
- 对 F5 BIG-IP APM(Access Policy Manager)的特权访问权限
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安装资源
- 如需了解其他安装选项,请参阅此安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
- 访问配置文件:
- 找到
config.yaml文件。通常,它位于 Linux 上的/etc/bindplane-agent/目录中或 Windows 上的安装目录中。 - 使用文本编辑器(例如
nano、vi或记事本)打开该文件。
- 找到
按如下方式修改
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_file_path: '/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 log_type: 'F5_VPN' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- 根据基础架构的需要替换端口和 IP 地址。
- 将
<customer_id>替换为实际的客户 ID。 - 将
/path/to/ingestion-authentication-file.json更新为获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
为 F5 BIG-IP APM v11.x 及更高版本配置 Syslog
- 使用 CLI 或 SSH 登录 F5 BIG-IP APM。
输入以下命令以添加 syslog 服务器:
tmsh syslog remote server {<Name> {host <bindplane-ip> remote-port <bindplane-port>}}请务必替换以下参数:
<Name>:输入 F5 BIG-IP APM 源的名称(例如BIGIP_APM)。<bindplane-ip>:输入 Bindplane 代理 IP 地址。<bindplane-port>:输入 Bindplane 代理端口号。
输入以下命令以保存更改:
tmsh save sys config partitions all
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| cmd_data | principal.process.command_line | 该值提取自 msg 字段 |
| errdefs_msgno | additional.fields.errdefs_msgno.string_value | 该值提取自 msg 字段 |
| event_time | metadata.event_timestamp | 系统会解析该值并将其转换为时间戳 |
| 主机名 | principal.hostname、observer.hostname、principal.asset.hostname、observer.asset.hostname、hostip | 该值从消息字段中提取,用于填充 UDM 中的主机名字段。还用于填充 hostip 字段 |
| msg | security_result.description | 该值从消息字段中提取,并用于填充 security_result 对象中的说明字段 |
| prin_ip | principal.ip、principal.asset.ip | 该值从消息字段中提取,用于填充 UDM 中的 IP 地址字段 |
| additional.fields.Canonical_Info.string_value | 该值派生自日志消息 | |
| additional.fields.IDP.string_value | 该值派生自日志消息 | |
| additional.fields.Plugin_Support.string_value | 该值派生自日志消息 | |
| additional.fields.SMB Stage.string_value | 该值派生自日志消息 | |
| additional.fields.SP.string_value | 该值派生自日志消息 | |
| additional.fields.Timezone.string_value | 该值派生自日志消息 | |
| additional.fields.Tunnel Type.string_value | 该值派生自日志消息 | |
| additional.fields.UI_Mode.string_value | 该值派生自日志消息 | |
| additional.fields.Version.string_value | 该值派生自日志消息 | |
| additional.fields.from_rule_item.string_value | 该值派生自日志消息 | |
| additional.fields.policy_result.string_value | 该值派生自日志消息 | |
| additional.fields.ppp_id.string_value | 该值派生自日志消息 | |
| additional.fields.resource.string_value | 该值派生自日志消息 | |
| additional.fields.rule.string_value | 该值派生自日志消息 | |
| additional.fields.server_vip_ip.string_value | 该值派生自日志消息 | |
| additional.fields.server_vip_name.string_value | 该值派生自日志消息 | |
| additional.fields.to_rule_item.string_value | 该值派生自日志消息 | |
| additional.fields.tunnel_resource.string_value | 该值派生自日志消息 | |
| metadata.description | 该值派生自日志消息 | |
| metadata.event_type | 对于某些事件,该值在解析器代码中是硬编码的;对于其他事件,该值是从日志消息中派生出来的 | |
| metadata.log_type | 该值设置为批处理类型 | |
| metadata.product_event_type | 该值派生自日志消息 | |
| metadata.product_name | 该值在解析器代码中是硬编码的 | |
| metadata.vendor_name | 该值在解析器代码中是硬编码的 | |
| network.application_protocol | 该值派生自日志消息 | |
| network.direction | 该值派生自日志消息 | |
| network.http.method | 该值派生自日志消息 | |
| network.http.parsed_user_agent | 该值派生自 network.http.user_agent 字段 | |
| network.http.referral_url | 该值派生自日志消息 | |
| network.http.response_code | 该值派生自日志消息 | |
| network.http.user_agent | 该值派生自日志消息 | |
| network.ip_protocol | 该值派生自日志消息 | |
| network.received_bytes | 该值派生自日志消息 | |
| network.sent_bytes | 该值派生自日志消息 | |
| network.session_id | 该值派生自日志消息 | |
| network.tls.cipher | 该值派生自日志消息 | |
| network.tls.version | 该值派生自日志消息 | |
| observer.asset.hostname | 该值设置为主机名字段 | |
| observer.asset.ip | 该值会设为 hostip 字段 | |
| observer.hostname | 该值设置为主机名字段 | |
| observer.ip | 该值会设为 hostip 字段 | |
| principal.application | 该值派生自日志消息 | |
| principal.asset.hostname | 该值设置为主机名字段 | |
| principal.asset.ip | 如果存在,则将该值设置为 hostip 字段或 prin_ip 字段 | |
| principal.asset.product_object_id | 该值派生自日志消息 | |
| principal.hostname | 该值设置为主机名字段 | |
| principal.ip | 如果存在,则将该值设置为 hostip 字段或 prin_ip 字段 | |
| principal.location.country_or_region | 该值派生自日志消息 | |
| principal.platform | 该值派生自日志消息 | |
| principal.port | 该值派生自日志消息 | |
| principal.process.command_line | 该值派生自日志消息 | |
| principal.process.pid | 该值派生自日志消息 | |
| principal.resource.name | 该值派生自日志消息 | |
| principal.resource.type | 对于某些事件,该值在解析器代码中是硬编码的;对于其他事件,该值是从日志消息中派生出来的 | |
| principal.user.email_addresses | 该值派生自日志消息 | |
| principal.user.userid | 该值派生自日志消息 | |
| security_result.action | 该值派生自日志消息 | |
| security_result.description | 该值派生自日志消息 | |
| security_result.rule_name | 该值派生自日志消息 | |
| security_result.severity | 该值派生自日志消息 | |
| security_result.severity_details | 该值派生自日志消息 | |
| security_result.summary | 该值派生自日志消息 | |
| src.ip | 该值派生自日志消息 | |
| src.location.country_or_region | 该值派生自日志消息 | |
| src.port | 该值派生自日志消息 | |
| target.asset.hostname | 该值派生自日志消息 | |
| target.asset.ip | 该值派生自日志消息 | |
| target.hostname | 该值派生自日志消息 | |
| target.ip | 该值派生自日志消息 | |
| target.port | 该值派生自日志消息 | |
| target.process.command_line | 该值派生自日志消息 | |
| target.process.pid | 该值派生自日志消息 | |
| target.resource.id | 该值派生自日志消息 | |
| target.url | 该值派生自日志消息 | |
| target.user.userid | 该值派生自日志消息 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。