收集 Juniper Junos 日志

支持的平台:

本文档介绍了如何使用 Google 安全运营转发器收集 Juniper Junos 日志。

如需了解详情,请参阅将数据提取到 Google 安全运营中心

提取标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 JUNIPER_JUNOS 注入标签的解析器。

为 Juniper Networks SRX 设备配置结构化日志记录

结构化日志格式可从日志消息中提取信息。日志格式符合 Syslog 协议

  1. 使用 SSH 连接到 Juniper SRX CLI 的管理 IP 地址。
  2. 在 shell 提示符中输入 CLI,然后按 Enter 键。
  3. 输入 configure 并按 Enter 键进入设备的配置模式。
  4. 输入联系详情或客户参考点。
  5. 如需将字段映射到用户账号,请运行以下命令:

       set system syslog host FORWARDER_IP_ADDRESS any info
    
       set system syslog host FORWARDER_IP_ADDRESS structured-data
    
    

    FORWARDER_IP_ADDRESS 替换为 Google 安全运营转发器的 IP 地址。

  6. 如需为安全日志启用结构化日志记录,请使用以下命令:

       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 地址。

  7. 确保已为所有安全政策启用日志记录。如需启用日志记录,请运行以下命令:

       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
    
    
  8. 使用以下命令在设备上配置主机名:

       set system host-name HOSTNAME
    
    

    HOSTNAME 替换为分配的 Juniper Networks SRX 设备。

  9. 输入 commit 以将已执行的命令保存在配置中。

配置 Google Security Operations 转发器和 syslog 以提取 Juniper Junos 日志

  1. 依次选择 SIEM 设置 > 转发器
  2. 点击添加新转发器
  3. 转发器名称字段中输入一个唯一名称。
  4. 点击提交,然后点击确认。系统会添加转发器,并显示添加收集器配置窗口。
  5. 收集器名称字段中,为收集器输入一个唯一名称。
  6. 选择 Juniper Junos 作为日志类型
  7. 选择 Syslog 作为收集器类型
  8. 配置以下输入参数:
    • 协议:将协议指定为 UDP
    • 地址:指定收集器所在的位置并监听 syslog 数据的目标 IP 地址或主机名。
    • 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
  9. 点击提交

如需详细了解 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_valueFLAG 的值 与网络连接相关联的 TCP 标志。
ID additional.fields{}.key:“ID”,additional.fields{}.value.string_valueID 的值 IP 标识字段。
IN additional.fields{}.key:“IN”additional.fields{}.value.string_valueIN 的值 传入网络接口。
LEN additional.fields{}.key:“LEN”additional.fields{}.value.string_valueLEN 的值 IP 数据包的长度。
MAC principal.mac MAC 字段中提取的 MAC 地址。
OUT additional.fields{}.key:“OUT”additional.fields{}.value.string_valueOUT 的值 传出网络接口。
PREC additional.fields{}.key:“PREC”,additional.fields{}.value.string_valuePREC 的值 IP 标头中的优先级字段。
PROTO network.ip_protocol 网络连接中使用的 IP 协议。
RES additional.fields{}.key:“RES”additional.fields{}.value.string_valueRES 的值 TCP 报头中的预留字段。
SPT principal.port 网络连接的来源端口,已转换为整数。
SRC principal.ip 网络连接的来源 IP 地址。
TOS additional.fields{}.key:“服务条款”,additional.fields{}.value.string_valueTOS 的值 IP 报头中的 Type of Service 字段。
TTL network.dns.additional.ttl 存活时间值,已转换为无符号整数。
URGP additional.fields{}.key:“URGP”,additional.fields{}.value.string_valueURGP 的值 TCP 标头中的紧急指针字段。
WINDOW additional.fields{}.key:“WINDOW_SIZE”additional.fields{}.value.string_valueWINDOW 的值 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_valuecategorySignificance 的值 类别重要性。
command target.process.command_line 已执行的命令。
cs1Label additional.fields{}.keycs1Labeladditional.fields{}.value.string_value:相应 CEF 字段的值 CEF 消息中的自定义字符串字段 1 标签和值。
cs2Label additional.fields{}.keycs2Labeladditional.fields{}.value.string_value:相应 CEF 字段的值 CEF 消息中的自定义字符串字段 2 标签和值。
cs3Label additional.fields{}.keycs3Labeladditional.fields{}.value.string_value:相应 CEF 字段的值 CEF 消息中的自定义字符串字段 3 标签和值。
cs4Label additional.fields{}.keycs4Labeladditional.fields{}.value.string_value:相应 CEF 字段的值 CEF 消息中的自定义字符串字段 4 标签和值。
cs5Label additional.fields{}.keycs5Labeladditional.fields{}.value.string_value:相应 CEF 字段的值 CEF 消息中的自定义字符串字段 5 标签和值。
cs6Label additional.fields{}.keycs6Labeladditional.fields{}.value.string_value:相应 CEF 字段的值 CEF 消息中的自定义字符串字段 6 标签和值。
dhost target.hostname 目标主机名。
deviceCustomString1 additional.fields{}.keycs1Labeladditional.fields{}.value.string_valuedeviceCustomString1 的值 设备自定义字符串 1。
deviceCustomString2 additional.fields{}.keycs2Labeladditional.fields{}.value.string_valuedeviceCustomString2 的值 设备自定义字符串 2.
deviceCustomString3 additional.fields{}.keycs3Labeladditional.fields{}.value.string_valuedeviceCustomString3 的值 设备自定义字符串 3.
deviceCustomString4 additional.fields{}.keycs4Labeladditional.fields{}.value.string_valuedeviceCustomString4 的值 设备自定义字符串 4.
deviceCustomString5 additional.fields{}.keycs5Labeladditional.fields{}.value.string_valuedeviceCustomString5 的值 设备自定义字符串 5.
deviceCustomString6 additional.fields{}.keycs6Labeladditional.fields{}.value.string_valuedeviceCustomString6 的值 设备自定义字符串 6。
deviceDirection network.direction 网络流量的方向。
deviceEventClassId additional.fields{}.key:“eventId”,additional.fields{}.value.string_valuedeviceEventClassId 的值 设备事件类 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_valueeventId 的值 事件 ID。
event_time metadata.event_timestamp 事件发生的时间,从消息中解析得出。
firewall_action security_result.action_details 所采取的防火墙操作。
host principal.hostnameintermediary.hostname 生成日志的设备的主机名。在不同情况下,既可用于主要付款人,也可用于中介付款人。
msg security_result.summary 与事件关联的消息,用作安全结果的摘要。
name metadata.product_event_type 事件的名称。
process_name additional.fields{}.key:“process_name”,additional.fields{}.value.string_valueprocess_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{}.valuessh2 的值 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 专业人士寻求解答。