收集 Juniper Junos 日志
本文档介绍了如何使用 Google 安全运营转发器收集 Juniper Junos 日志。
如需了解详情,请参阅将数据提取到 Google 安全运营中心。
提取标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 JUNIPER_JUNOS
注入标签的解析器。
为 Juniper Networks SRX 设备配置结构化日志记录
结构化日志格式可从日志消息中提取信息。日志格式符合 Syslog 协议。
- 使用 SSH 连接到 Juniper SRX CLI 的管理 IP 地址。
- 在 shell 提示符中输入
CLI
,然后按 Enter 键。 - 输入
configure
并按 Enter 键进入设备的配置模式。 - 输入联系详情或客户参考点。
如需将字段映射到用户账号,请运行以下命令:
set system syslog host FORWARDER_IP_ADDRESS any info set system syslog host FORWARDER_IP_ADDRESS structured-data
将
FORWARDER_IP_ADDRESS
替换为 Google 安全运营转发器的 IP 地址。如需为安全日志启用结构化日志记录,请使用以下命令:
set security log mode stream set security log source-address SRC_IP_ADDRESS set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS set security log stream SYSLOG_STREAM_NAME format sd-syslog
替换以下内容:
SRC_IP_ADDRESS
:Juniper SRX 设备的 IP 地址。SYSLOG_STREAM_NAME
:分配给 syslog 服务器的名称。FORWARDER_IP_ADDRESS
:Google 安全运营转发器的 IP 地址。
确保已为所有安全政策启用日志记录。如需启用日志记录,请运行以下命令:
set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
使用以下命令在设备上配置主机名:
set system host-name HOSTNAME
将
HOSTNAME
替换为分配的 Juniper Networks SRX 设备。输入
commit
以将已执行的命令保存在配置中。
配置 Google Security Operations 转发器和 syslog 以提取 Juniper Junos 日志
- 依次选择 SIEM 设置 > 转发器。
- 点击添加新转发器。
- 在转发器名称字段中输入一个唯一名称。
- 点击提交,然后点击确认。系统会添加转发器,并显示添加收集器配置窗口。
- 在收集器名称字段中,为收集器输入一个唯一名称。
- 选择 Juniper Junos 作为日志类型。
- 选择 Syslog 作为收集器类型。
- 配置以下输入参数:
- 协议:将协议指定为 UDP。
- 地址:指定收集器所在的位置并监听 syslog 数据的目标 IP 地址或主机名。
- 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
- 点击提交。
如需详细了解 Google Security Operations 转发器,请参阅 Google Security Operations 转发器文档。如需了解每种转发器类型的要求,请参阅按类型配置转发器。 如果您在创建转发器时遇到问题,请与 Google 安全运营支持团队联系。
字段映射参考文档
此解析器会从 Juniper JUNOS syslog 消息中提取字段,同时处理键值对格式和非键值对格式。它使用 Grok 模式来匹配各种消息结构,包括防火墙日志、SSH 活动和命令执行,然后将提取的字段映射到 UDM。该解析器还会使用包含文件处理 CEF 格式的日志,并根据消息内容执行特定操作,例如将 IP 地址和用户名合并到适当的 UDM 字段中。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
DPT |
target.port |
网络连接的目标端口,已转换为整数。 |
DST |
target.ip |
网络连接的目标 IP 地址。 |
FLAG |
additional.fields{}.key :“FLAG”additional.fields{}.value.string_value :FLAG 的值 |
与网络连接相关联的 TCP 标志。 |
ID |
additional.fields{}.key :“ID”,additional.fields{}.value.string_value :ID 的值 |
IP 标识字段。 |
IN |
additional.fields{}.key :“IN”additional.fields{}.value.string_value :IN 的值 |
传入网络接口。 |
LEN |
additional.fields{}.key :“LEN”additional.fields{}.value.string_value :LEN 的值 |
IP 数据包的长度。 |
MAC |
principal.mac |
从 MAC 字段中提取的 MAC 地址。 |
OUT |
additional.fields{}.key :“OUT”additional.fields{}.value.string_value :OUT 的值 |
传出网络接口。 |
PREC |
additional.fields{}.key :“PREC”,additional.fields{}.value.string_value :PREC 的值 |
IP 标头中的优先级字段。 |
PROTO |
network.ip_protocol |
网络连接中使用的 IP 协议。 |
RES |
additional.fields{}.key :“RES”additional.fields{}.value.string_value :RES 的值 |
TCP 报头中的预留字段。 |
SPT |
principal.port |
网络连接的来源端口,已转换为整数。 |
SRC |
principal.ip |
网络连接的来源 IP 地址。 |
TOS |
additional.fields{}.key :“服务条款”,additional.fields{}.value.string_value :TOS 的值 |
IP 报头中的 Type of Service 字段。 |
TTL |
network.dns.additional.ttl |
存活时间值,已转换为无符号整数。 |
URGP |
additional.fields{}.key :“URGP”,additional.fields{}.value.string_value :URGP 的值 |
TCP 标头中的紧急指针字段。 |
WINDOW |
additional.fields{}.key :“WINDOW_SIZE”additional.fields{}.value.string_value :WINDOW 的值 |
TCP 窗口大小。 |
action |
security_result.action |
防火墙执行的操作,从 CEF 消息中提取。 |
agt |
observer.ip |
代理的 IP 地址。 |
amac |
target.mac |
目标的 MAC 地址,会转换为小写,并且将连字符替换为英文冒号。 |
app |
target.application |
事件涉及的应用。 |
artz |
observer.zone |
观察器所在的时区。 |
atz |
target.location.country_or_region |
目标时区。 |
categoryBehavior |
additional.fields{}.key :“类别行为”,additional.fields{}.value.string_value :移除斜线后的 categoryBehavior 的值 |
类别行为。 |
categoryDeviceGroup |
additional.fields{}.key :“类别设备组”,additional.fields{}.value.string_value :移除了斜线的 categoryDeviceGroup 的值 |
类别设备组。 |
categoryObject |
additional.fields{}.key :“Category Object”additional.fields{}.value.string_value :移除了斜线的 categoryObject 的值 |
类别对象。 |
categoryOutcome |
additional.fields{}.key :“类别结果”,additional.fields{}.value.string_value :移除了斜线的 categoryOutcome 的值 |
类别结果。 |
categorySignificance |
additional.fields{}.key :“类别重要性”,additional.fields{}.value.string_value :categorySignificance 的值 |
类别重要性。 |
command |
target.process.command_line |
已执行的命令。 |
cs1Label |
additional.fields{}.key :cs1Label 、additional.fields{}.value.string_value :相应 CEF 字段的值 |
CEF 消息中的自定义字符串字段 1 标签和值。 |
cs2Label |
additional.fields{}.key :cs2Label 、additional.fields{}.value.string_value :相应 CEF 字段的值 |
CEF 消息中的自定义字符串字段 2 标签和值。 |
cs3Label |
additional.fields{}.key :cs3Label 、additional.fields{}.value.string_value :相应 CEF 字段的值 |
CEF 消息中的自定义字符串字段 3 标签和值。 |
cs4Label |
additional.fields{}.key :cs4Label 、additional.fields{}.value.string_value :相应 CEF 字段的值 |
CEF 消息中的自定义字符串字段 4 标签和值。 |
cs5Label |
additional.fields{}.key :cs5Label 、additional.fields{}.value.string_value :相应 CEF 字段的值 |
CEF 消息中的自定义字符串字段 5 标签和值。 |
cs6Label |
additional.fields{}.key :cs6Label 、additional.fields{}.value.string_value :相应 CEF 字段的值 |
CEF 消息中的自定义字符串字段 6 标签和值。 |
dhost |
target.hostname |
目标主机名。 |
deviceCustomString1 |
additional.fields{}.key :cs1Label ,additional.fields{}.value.string_value :deviceCustomString1 的值 |
设备自定义字符串 1。 |
deviceCustomString2 |
additional.fields{}.key :cs2Label ,additional.fields{}.value.string_value :deviceCustomString2 的值 |
设备自定义字符串 2. |
deviceCustomString3 |
additional.fields{}.key :cs3Label ,additional.fields{}.value.string_value :deviceCustomString3 的值 |
设备自定义字符串 3. |
deviceCustomString4 |
additional.fields{}.key :cs4Label ,additional.fields{}.value.string_value :deviceCustomString4 的值 |
设备自定义字符串 4. |
deviceCustomString5 |
additional.fields{}.key :cs5Label ,additional.fields{}.value.string_value :deviceCustomString5 的值 |
设备自定义字符串 5. |
deviceCustomString6 |
additional.fields{}.key :cs6Label ,additional.fields{}.value.string_value :deviceCustomString6 的值 |
设备自定义字符串 6。 |
deviceDirection |
network.direction |
网络流量的方向。 |
deviceEventClassId |
additional.fields{}.key :“eventId”,additional.fields{}.value.string_value :deviceEventClassId 的值 |
设备事件类 ID。 |
deviceFacility |
observer.product.subproduct |
设备设施。 |
deviceProcessName |
about.process.command_line |
设备进程名称。 |
deviceSeverity |
security_result.severity |
设备严重程度。 |
deviceTimeZone |
observer.zone |
设备时区。 |
deviceVendor |
metadata.vendor_name |
设备供应商。 |
deviceVersion |
metadata.product_version |
设备版本。 |
dpt |
target.port |
目标端口。 |
dst |
target.ip |
目标 IP 地址。 |
duser |
target.user.user_display_name |
目标用户。 |
eventId |
additional.fields{}.key :“eventId”,additional.fields{}.value.string_value :eventId 的值 |
事件 ID。 |
event_time |
metadata.event_timestamp |
事件发生的时间,从消息中解析得出。 |
firewall_action |
security_result.action_details |
所采取的防火墙操作。 |
host |
principal.hostname ,intermediary.hostname |
生成日志的设备的主机名。在不同情况下,既可用于主要付款人,也可用于中介付款人。 |
msg |
security_result.summary |
与事件关联的消息,用作安全结果的摘要。 |
name |
metadata.product_event_type |
事件的名称。 |
process_name |
additional.fields{}.key :“process_name”,additional.fields{}.value.string_value :process_name 的值 |
进程的名称。 |
p_id |
target.process.pid |
已转换为字符串的进程 ID。 |
sha256 |
principal.process.file.sha256 |
从 SSH2 密钥信息中提取的文件的 SHA256 哈希值。 |
shost |
principal.hostname |
来源主机名。 |
source_address |
principal.ip |
来源 IP 地址。 |
source_port |
principal.port |
来源端口,已转换为整数。 |
src |
principal.ip |
来源 IP 地址。 |
src_ip |
principal.ip |
来源 IP 地址。 |
src_port |
principal.port |
来源端口,已转换为整数。 |
ssh2 |
security_result.detection_fields{}.key :“ssh2”,security_result.detection_fields{}.value :ssh2 的值 |
SSH2 密钥信息。 |
subtype |
metadata.product_event_type |
事件的子类型。 |
task_summary |
security_result.description |
任务摘要,用于作为安全结果的说明。 |
timestamp |
metadata.event_timestamp |
事件的时间戳。 |
user |
target.user.userid |
与事件关联的用户。 |
username |
principal.user.userid |
与事件相关联的用户名。 |
user_name |
principal.user.userid |
用户名。 |
metadata.vendor_name |
已硬编码为“Juniper Firewall”。已硬编码为“Juniper Firewall”。已硬编码为“JUNIPER_JUNOS”。由解析器逻辑根据日志内容确定。如果不是 CEF 消息且未识别出其他特定事件类型,则默认为“STATUS_UPDATE”。对于 CEF 消息,将其设置为“NETWORK_HTTP”。如果不存在 desc 字段,则此字段会填充从原始日志消息中提取的 message_description 。 |
变化
2024-05-02
- 增强功能-
- 添加了 Grok 模式,以支持新的 SYSLOG + KV 格式日志。
2023-10-25
- 增强功能-
- 添加了 Grok 模式来解析未解析的日志。
- 将“source_port”映射到“principal.port”。
- 将“source_address”映射到“principal.ip”。
- 将“user_name”映射到“target.user.userid”。
- 将“application_name”映射到“target.application”。
- 将“p_id”映射到“target.process.pid”。
- 在 KV 映射之前添加了“invalid_pattern”检查。
- 添加了 Grok 模式,以便在“description_present”为 false 时映射“security_result.description”。
2023-08-17
- 增强功能-
- 向已解析的日志添加了 Grok 模式。
- 将“msg”映射到“security_result.summary”。
- 将“src_ip”映射到“principal.ip”。
- 将“user”映射到“target.user.userid”。
- 将“username”映射到“principal.user.userid”。
- 将“command”映射到“target.process.command_line”。
- 将“src_port”映射到“principal.port”。
- 将“ssh2”映射到“security_result.detection_fields”。
- 将“sha256”映射到“principal.process.file.sha256”。
- 将“desc”映射到“sec_result.summary”。
- 将“mac-address”映射到“principal.mac”。
- 如果 event_type 为“STATUS_UPDATE”,则将“host”映射到“principal.hostname”。
2023-01-15
- 增强功能-
- 修改了 Grok 模式,以支持包含类型“UI_CMDLINE_READ_LINE”“UI_COMMIT_PROGRESS”“UI_CHILD_START”
- "UI_CFG_AUDIT_OTHER", "UI_LOGIN_EVENT", "UI_CHILD_STATUS", "UI_LOGOUT_EVENT", "UI_LOAD_EVENT",
- "JTASK_IO_CONNECT_FAILED", "UI_AUTH_EVENT", "UI_NETCONF_CMD", "UI_COMMIT_NO_MASTER_PASSWORD", "UI_CFG_AUDIT_SET", "UI_JUNOSCRIPT_CMD",
- "SNMPD_AUTH_FAILURE", "UI_CFG_AUDIT_NEW", "UI_COMMIT" , "LIBJNX_LOGIN_ACCOUNT_LOCKED", "UI_COMMIT_COMPLETED",
- "PAM_USER_LOCK_LOGIN_REQUESTS_DENIED", "RTPERF_CPU_USAGE_OK", "RTPERF_CPU_THRESHOLD_EXCEEDED", "LIBJNX_LOGIN_ACCOUNT_UNLOCKED",
- “JSRPD_SET_OTHER_INTF_MON_FAIL”“JSRPD_SET_SCHED_MON_FAILURE”“UI_CHILD_WAITPID”“UI_DBASE_LOGIN_EVENT”。
2022-05-02
- 新的默认解析器。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。