收集 SonicWall 日志
支持的平台:
Google SecOps
SIEM
本文档介绍了如何使用 Google Security Operations 转发器收集 SonicWall 日志。
如需了解详情,请参阅将数据注入到 Google Security Operations。
注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 SONIC_FIREWALL 注入标签的解析器。
配置 SonicWall 安全设备
- 登录 SonicWall 控制台。
- 依次前往日志 > Syslog。
- 在 Syslog 服务器部分,点击添加。系统随即会显示添加 syslog 服务器窗口。
- 在名称或 IP 地址字段中,提供 Google Security Operations 转发器主机名或 IP 地址。
- 如果您的 syslog 配置未使用默认的 514 端口,请在端口号字段中指定端口号。
- 点击确定。
- 点击接受以保存所有 Syslog 服务器设置。
配置 Google Security Operations 转发器和 syslog 以注入 SonicWall 日志
- 依次前往 SIEM 设置 > 转发器。
- 点击添加新转发器。
- 在 Forwarder Name(转发器名称)字段中,输入转发器的唯一名称。
- 点击提交。系统会添加转发器,并显示添加收集器配置窗口。
- 在收集器名称字段中,输入一个名称。
- 选择 SonicWall 作为日志类型。
- 选择 Syslog 作为收集器类型。
- 配置以下必需的输入参数:
- 协议:指定收集器将用于监听 syslog 数据的连接协议。
- 地址:指定收集器所在的目标 IP 地址或主机名,并监听 syslog 数据。
- 端口:指定收集器所在的并监听 syslog 数据的目标端口。
- 点击提交。
如需详细了解 Google Security Operations 转发器,请参阅 Google Security Operations 转发器文档。
如需了解每种转发器类型的要求,请参阅按类型划分的转发器配置。
如果您在创建转发器时遇到问题,请与 Google Security Operations 支持团队联系。
字段映射参考
此解析器可从 SonicWall 防火墙 syslog 消息中提取键值对,对时间戳、IP 地址和端口等各种字段进行归一化处理,并将其映射到 UDM 格式。它可处理 IPv4 和 IPv6 地址,区分允许的事件和被屏蔽的事件,并提取与安全相关的信息,例如规则名称和说明。
支持的 SonicWall 示例日志
标准防火墙事件
{ "type": "SONIC_FIREWALL", "log": "<134> id=SONICWALL_FIREWALL\n" " sn=DEADD00D1234\n" " time=\"2020-04-08 13:28:45\"\n" " fw=192.0.2.1\n" " pri=6\n" " c=1024\n" " gcat=2\n" " m=97\n" " msg=\"Web site hit\"\n" " srcMac=00:00:5E:00:53:01\n" " src=192.0.2.10:12345:X0\n" " srcZone=LAN\n" " natSrc=192.0.2.10:12345\n" " dstMac=00:00:5E:00:53:02\n" " dst=198.51.100.20:443:X0\n" " dstZone=WAN\n" " natDst=198.51.100.20:443\n" " proto=tcp/https\n" " sent=1247\n" " rcvd=59996\n" " rule=\"14 (LAN->WAN)\"\n" " app=49175\n" " appName=\"General HTTP\"\n" " op=1\n" " dstname=sanitized-host.com\n" " arg=/sanitized/path/file.cab?id=REDACTED\n" " code=27\n" " Category=\"Information Technology/Computers\"\n" " n=3451648" }SSL-VPN 会话事件
{ "type": "SONIC_FIREWALL", "log": "<181>SSLVPN: id=sslvpn\n" " sn=DEADD00D1234\n" " time=\"2020-04-10 10:07:11\"\n" " vp_time=\"2020-04-10 08:07:11 UTC\"\n" " fw=192.0.2.1\n" " pri=5\n" " m=2\n" " c=102\n" " src=203.0.113.50\n" " dst=192.0.2.1\n" " user=\"internal_user@company.com\"\n" " usr=\"internal_user@company.com\"\n" " msg=\"NetExtender disconnected\"\n" " rule=access-policy\n" " duration=731\n" " bytesIn=47360\n" " bytesOut=10\n" " agent=\"SonicWALL NetExtender for Windows (REDACTED)\"" }高级威胁/应用控制
{ "type": "SONIC_FIREWALL", "log": "<129> id=PD_Firewall sn=DEADD00D1234 time=\"2024-03-06 12:33:40\"\n" " fw=192.0.2.1 pri=1 c=0 m=1154 msg=\"Application Control Detection\n" " Alert: PROTOCOLS DNS Protocol -- Standard Query A\" sid=5183\n" " appcat=\"PROTOCOLS DNS Protocol -- Standard Query A\" appid=1283 catid=74\n" " n=3235773 src=192.0.2.15:58482:X0 dst=203.0.113.1:53:X2\n" " srcMac=00:00:5E:00:53:03 dstMac=00:00:5E:00:53:04 proto=udp/dns\n" " fw_action=\"NA\"" }
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| 代理 | event.idm.read_only_udm.network.http.user_agent |
agent 字段的值会分配给 UDM 字段。 |
| appcat | event.idm.read_only_udm.security_result.summary |
appcat 字段的值会分配给 UDM 字段。如果 appcat 包含“PROXY-ACCESS”,则 event.idm.read_only_udm.security_result.category 设置为“POLICY_VIOLATION”,且 event.idm.read_only_udm.security_result.action 设置为“BLOCK”。 |
| appid | event.idm.read_only_udm.security_result.rule_id |
appid 字段的值会分配给 UDM 字段。 |
| 参数 | event.idm.read_only_udm.target.resource.name |
arg 字段的值会分配给 UDM 字段。 |
| avgThroughput | event.idm.read_only_udm.target.resource.attribute.labels |
系统会将一个键为“avgThroughput”、值为 avgThroughput 字段的标签添加到 UDM 字段中。 |
| bytesIn | event.idm.read_only_udm.network.received_bytes |
bytesIn 字段的值会转换为无符号整数并分配给 UDM 字段。 |
| bytesOut | event.idm.read_only_udm.network.sent_bytes |
bytesOut 字段的值会转换为无符号整数并分配给 UDM 字段。 |
| bytesTotal | event.idm.read_only_udm.target.resource.attribute.labels |
系统会将一个键为“bytesTotal”、值为 bytesTotal 字段的标签添加到 UDM 字段。 |
| 类别 | event.idm.read_only_udm.security_result.category_details |
Category 字段的值会分配给 UDM 字段。 |
| cdur | event.idm.read_only_udm.security_result.detection_fields |
向 UDM 字段添加了一个检测字段,该字段的键为“连接时长(毫秒)”,值为 cdur 字段中的值。 |
| dst | event.idm.read_only_udm.target.ip,event.idm.read_only_udm.target.port |
IP 和端口是从 dst 字段中提取的。如果 dstV6 不为空,则从 dstV6 中提取 IP。 |
| dstMac | event.idm.read_only_udm.target.mac |
dstMac 字段的值会分配给 UDM 字段。 |
| dstV6 | event.idm.read_only_udm.target.ip |
IP 地址提取自 dstV6 字段。 |
| dstname | event.idm.read_only_udm.target.hostname |
如果 dstname 不是 IP 地址,则其值会分配给 UDM 字段。 |
| 时长 | event.idm.read_only_udm.network.session_duration.seconds |
duration 字段的值会转换为整数并分配给 UDM 字段。 |
| fw | event.idm.read_only_udm.principal.ip |
fw 字段的值会分配给 UDM 字段。如果 fw 包含“-”,则会将键为“fw”且值为 fw 字段的标签添加到 event.idm.read_only_udm.additional.fields。 |
| fw_action | event.idm.read_only_udm.security_result.action_details、event.idm.read_only_udm.security_result.summary、event.idm.read_only_udm.security_result.action |
fw_action 字段的值已分配给 event.idm.read_only_udm.security_result.action_details。如果 fw_action 为“drop”,则 event.idm.read_only_udm.security_result.action 设置为“BLOCK”,event.idm.read_only_udm.security_result.summary 设置为 msg 的值。 |
| gw | event.idm.read_only_udm.intermediary.ip |
系统会从 gw 字段中提取 IP 地址,并将其分配给 UDM 字段。 |
| id | event.idm.read_only_udm.principal.hostname,event.idm.read_only_udm.principal.asset.hostname |
id 字段的值会同时分配给这两个 UDM 字段。 |
| maxThroughput | event.idm.read_only_udm.target.resource.attribute.labels |
系统会将一个键为“maxThroughput”、值为 maxThroughput 字段的标签添加到 UDM 字段。 |
| msg | event.idm.read_only_udm.security_result.summary,event.idm.read_only_udm.metadata.description |
如果 fw_action 不是“drop”或 appcat 为空,则将 msg 字段的值分配给 event.idm.read_only_udm.security_result.summary。否则,该值会分配给 event.idm.read_only_udm.metadata.description。 |
| natDst | event.idm.read_only_udm.target.nat_ip |
系统会从 natDst 字段中提取 IP 地址,并将其分配给 UDM 字段。 |
| natSrc | event.idm.read_only_udm.principal.nat_ip |
系统会从 natSrc 字段中提取 IP 地址,并将其分配给 UDM 字段。 |
| note | event.idm.read_only_udm.security_result.description |
提取 dstip、srcip、gw 和 sec_desc 后,note 字段的值会分配给 UDM 字段。 |
| packetsIn | event.idm.read_only_udm.target.resource.attribute.labels |
系统会将一个键为“packetsIn”、值为 packetsIn 字段的标签添加到 UDM 字段。 |
| packetsOut | event.idm.read_only_udm.target.resource.attribute.labels |
系统会将一个标签(键为“packetsOut”,值为 packetsOut 字段中的值)添加到 UDM 字段。 |
| packetsTotal | event.idm.read_only_udm.target.resource.attribute.labels |
系统会将一个键为“packetsTotal”、值为 packetsTotal 字段的标签添加到 UDM 字段中。 |
| pri | event.idm.read_only_udm.security_result.severity |
pri 字段的值决定了 UDM 字段的值:0、1、2 -> CRITICAL;3 -> ERROR;4 -> MEDIUM;5、7 -> LOW;6 -> INFORMATIONAL。 |
| proto | event.idm.read_only_udm.network.ip_protocol、event.idm.read_only_udm.network.application_protocol、event.idm.read_only_udm.metadata.event_type |
如果 proto 包含“udp”,则将 UDM ip_protocol 设置为“UDP”,并将 event_type 设置为“NETWORK_CONNECTION”。如果 proto 包含“https”,则 UDM application_protocol 设置为“HTTPS”。 |
| rcvd | event.idm.read_only_udm.network.received_bytes |
rcvd 字段的值会转换为无符号整数并分配给 UDM 字段。 |
| 规则 | event.idm.read_only_udm.security_result.rule_name |
rule 字段的值会分配给 UDM 字段。 |
| sec_desc | event.idm.read_only_udm.security_result.description |
sec_desc 字段的值会分配给 UDM 字段。 |
| sent | event.idm.read_only_udm.network.sent_bytes |
sent 字段的值会转换为无符号整数并分配给 UDM 字段。 |
| sess | event.idm.read_only_udm.security_result.detection_fields |
系统会向 UDM 字段添加一个检测字段,该字段的键为“会话类型”,值为 sess 字段中的值。 |
| sn | event.idm.read_only_udm.additional.fields |
系统会将一个键为“SN”、值来自 sn 字段的标签添加到 UDM 字段。 |
| spkt | event.idm.read_only_udm.network.sent_packets |
spkt 字段的值会转换为整数并分配给 UDM 字段。 |
| src | event.idm.read_only_udm.principal.ip,event.idm.read_only_udm.principal.port |
IP 和端口是从 src 字段中提取的。如果 srcV6 不为空,则从 srcV6 中提取 IP。 |
| srcMac | event.idm.read_only_udm.principal.mac |
srcMac 字段的值会分配给 UDM 字段。 |
| srcV6 | event.idm.read_only_udm.principal.ip |
IP 地址提取自 srcV6 字段。 |
| srcip | event.idm.read_only_udm.additional.fields,event.idm.read_only_udm.principal.ip |
如果 srcip 包含“-”,则会将一个键为“srcip”、值为 srcip 字段的标签添加到 event.idm.read_only_udm.additional.fields。否则,将 srcip 的值分配给 event.idm.read_only_udm.principal.ip。 |
| 时间 | event.idm.read_only_udm.metadata.event_timestamp |
系统会解析 time 字段的值并将其转换为时间戳,然后将该时间戳分配给 UDM 字段。 |
| 类型 | event.idm.read_only_udm.network.ip_protocol |
如果 proto 字段为“icmp”,则 UDM 字段设置为“ICMP”。 |
| 用户/usr | event.idm.read_only_udm.principal.user.email_addresses、event.idm.read_only_udm.principal.user.user_display_name、event.idm.read_only_udm.principal.user.userid |
如果 user 为空,则改用 usr 的值。如果该值包含“@”,则将其视为电子邮件地址并添加到 email_addresses。如果其中包含空格,则将其视为显示名称。否则,系统会将其视为用户 ID。 |
| vpnpolicy | event.idm.read_only_udm.security_result.detection_fields |
系统会将一个检测字段(键为“vpnpolicy”,值为 vpnpolicy 字段中的值)添加到 UDM 字段中。硬编码为“SonicWall”。硬编码为“防火墙”。硬编码为“SONIC_FIREWALL”。由基于其他字段值的逻辑确定。默认为“GENERIC_EVENT”,也可以是“STATUS_UPDATE”“NETWORK_CONNECTION”或“NETWORK_HTTP”。 |
op |
event.idm.read_only_udm.network.http.method |
从变更日志映射 |
appName |
event.idm.read_only_udm.target.application |
从变更日志映射 |
srcZone |
event.idm.read_only_udm.principal.location.name |
从变更日志映射 |
dstZone |
event.idm.read_only_udm.target.location.name |
从变更日志映射 |
change |
event.idm.read_only_udm.security_result.detection_fields |
从变更日志映射 |
app |
event.idm.read_only_udm.metadata.product_log_id |
从变更日志映射 |
Network_data |
event.idm.read_only_udm.additional.fields |
从变更日志映射 |
dpi |
event.idm.read_only_udm.additional.fields |
从变更日志映射 |
src_interface |
event.idm.read_only_udm.principal.resource.attribute.labels |
从变更日志映射 |
dst_interface |
event.idm.read_only_udm.target.resource.attribute.labels |
从变更日志映射 |
syslog_priority |
event.idm.read_only_udm.security_result.detection_fields |
从变更日志映射 |
net_application |
event.idm.read_only_udm.network.application_protocol |
从变更日志映射 |
firewall_serial_number |
intermediary.asset_id |
从变更日志映射 |
vpnpolicyDst |
additional.fields |
从变更日志映射 |
FileId |
additional.fields |
从变更日志映射 |
firewall_hostname |
intermediary.hostname |
从变更日志映射 |
sn |
intermediary.asset_id |
从变更日志映射 |
fw |
observer.ip |
从变更日志映射 |
id |
target.resource.id |
从变更日志映射 |