Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Veriexec 概述

已验证执行(也称为 veriexec)是一种文件签名和验证方案,可保护 Junos 操作系统 (OS) 免受可能损害设备完整性的未经授权的软件和活动的影响。最初为 NetBSD OS 开发时,veriexec Junos OS Junos OS版本 7.5 以后默认启用。

授权文件(即随 Junos OS提供的某些文件)具有关联指纹,通过 veriexec 检查以确定文件是否可用于(执行甚至打开)。需要验证输入的应用程序无法执行或读取任何缺乏有效指纹的文件。

请注意 ,/bin/sh 不需要经过验证的输入。它可用于运行任意脚本,因为从风险角度来看,这些脚本与交互式命令相同,这些命令已经通过用户身份验证和权限控制。但是,如果已验证的 shell 脚本包含运行任意脚本的说明,也就是说,文件在清单中没有签名,将阻止执行该文件。

Veriexec 工作原理

Veriexec 为内核提供一个数字签名声明,包含一组用于所有可执行文件和其他应保持不可变文件的指纹。veriexec 加载程序只有在成功验证了该清单的数字签名之后,才能将该清单的内容馈送内核。然后内核可验证文件是否与其指纹匹配。如果 veriexec 得到实施,将仅运行具有经过验证的指纹的可执行文件。受保护的文件不能写入、修改或修改。

每个安装映像都包含一个清单。该清单为只读。它包含以下条目:

如果文件已修改,并且产生的指纹与清单中的指纹不同,您将看到日志消息,例如以下示例:

日志消息的格式如下:

指纹不匹配表示文件已修改。不要试图运行此文件。其中可能包含损坏的代码。联系 JTAC。

Veriexec 的重要性

Veriexec 是一种有效且重要的工具,能够抵御那些试图破坏路由器、交换机和防火墙瞻博网络系统安全性的行为。它可阻止可能想在系统上立足、获得持久未经授权的访问或以其他方式将系统过渡到故障状态的威胁执行者。如果此类参与者可能运行任意未签名的二进制文件,他们可以进行未经授权的修改并运行违反安全策略的恶意软件或其他代码。

客户可添加已签名和授权代码,并采用 veriexec Junos OS使用应用程序JET SDK。有关该开发人员SDK,请参阅"开发人员 指南 "瞻博网络 扩展工具包 标题

如何验证正在运行的设备上是否实施 Veriexec Junos OS

以下小节提供如何检查是否实施 veriexec 的过程。

某些Junos OS平台提供了可选版本的 Junos OS veriexec 实施已禁用(称为 Junos 增强型自动化或 Junos Flex)。有关增强型自动化Junos,请参阅 无链接标题

使用 sysctl security.mac.veriexec.state 命令Junos OS版本 15.1 和更高版本

管理员可以检查 veriexec 是否通过运行来自 Junos OS CLI shell 的命令执行:

  1. 启动 shell。

  2. 使用 sysctl security.mac.veriexec.state 命令。

    如果执行 veriexec,输出为 security.mac.veriexec.state: loaded active enforce 。如果未实施 veriexec,输出为 security.mac.veriexec.state: loaded active

注意:

命令 security.mac.veriexec.state 在 15.1 Junos OS中才有效。

检查 Veriexec 是否工作的另一种方式

您可以将授权文件(此处为 /usr/bin/id)复制到新位置,以确认 veriexec 是否正在工作,如下所示。Veriexec 阻止操作,因为尽管 /usr/bin/id存在有效的指纹,但即使文件相同,也没有 /tmp/id 的指纹。正在发生的事情是 veriexec 评估此文件的底层 Linux 属性,在复制后不相同,而不是文件本身。

  1. 启动 shell。

  2. 更改目录,然后将示例文件 /usr/bin/id 复制到新位置。

结果

如果实施 veriexec,将显示认证错误。如果还没有,文件将正常运行。

强制实施 veriexec 时的输出(文件将被阻止):

未执行 veriexec(复制文件)时的输出:

支持 Veriexec 的 SRX 系列设备的加载程序

支持 veriexec 的加载程序Junos OS TFTP 服务器或 USB 存储设备中的 命令安装 install 安全映像。

  • 使用 Junos OS 命令从 tftp 服务器安装 install tftp://[host]/ Junos OS 映像。

  • 使用 Junos OS 命令从 USB 存储设备中安装 install file:/// Junos OS 映像。

支持 veriexec 的加载程序将验证Junos OS映像。支持 veriexec 的加载程序仅启动具有指纹Junos OS新映像,并且不会在无指纹或内核Junos OS现有 Junos OS映像。您可以使用 功能 nextboot 检查当前启动设备。

Bootupgrade 是应用程序包Junos OS工具,支持 BIOS 固件升级。您可以使用 命令 bootupgrade 升级、检查 uboot、手动加载和安装支持 veriexec 的较大加载程序。命令 bootupgrade -c loader 打印当前加载程序的版本字符串。

在将支持 veriexec 的加载程序安装到映像Junos OS之前,Junos OS在两个双根分区中执行一个指纹识别。只有在两个双根分区都使用Junos OS指纹时,才允许安装支持 veriexec 的加载程序。

从外壳安装支持 veriexec 的Junos OS CLI程序:

  1. 启动 shell。

  2. 使用 bootupgrade -l /boot/veloader 命令安装支持 veriexec 的加载程序。

  3. 您可以在此看到不同的场景:

    • 对于Junos OS及20.3R1,请使用 request system software add /var/tmp/xxx.tgz no-copy no-validate 命令安装指纹Junos OS的客户端。

    • 对于 20.3R1 之前的 Junos OS 版本,如果使用支持 veriexec 的加载程序,并且之前版本的目标 Junos OS 映像不受支持 veriexec 的加载程序支持,则使用 命令自动从支持 veriexec 的加载程序降级至旧加载程序。 request system software add /var/tmp/xxx.tgz no-copy no-validate

    • 使用 request system software add /var/tmp/xxx 命令检查 Junos OS 软件包是否与安装兼容。

      安装终止,因为之前版本不支持支持 veriexec Junos OS加载20.3R1。