Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS Evolved 上的第三方应用程序概述

总结 您可以在 Linux 容器内运行第三方应用程序,也可以使用签名密钥在 Junos OS 演化版上运行第三方应用程序。应用程序使用 Juniper API 与 Junos OS Evolved 系统进行交互,并使用 Linux API 执行网络任务。通过称为完整性测量架构 (IMA) 的完整性解决方案可以防止未经验证的应用程序。

Junos OS 演化版上的第三方应用程序简介

Junos OS Evolved 在 Linux 上原生运行,这意味着您可以将为 Linux 开发的第三方应用程序和工具集成到 Junos OS 演化版中。Linux 开发工具还使您能够在 Junos OS Evolved 上创建和运行自己的应用程序。可以选择在容器内运行这些应用程序,也可以选择使用签名密钥在设备上本机运行这些应用程序。

在容器中运行应用程序

Junos OS 演化版支持在 Docker 容器内运行应用程序。容器在 Junos OS 演化版上运行,应用程序在容器内运行,使其与操作系统隔离。您可以使用预构建的 Docker 容器映像,并在容器内安装其他工具和库。可以使用 Linux 工作流升级容器。

容器已经是运行 Linux 应用程序的常用方法,因此通过将许多现有的第三方应用程序部署在容器内,可以轻松地将其导入 Junos OS 演化版。容器的隔离性使其易于部署和删除,而不会影响 Junos OS 演化版的完整性。此外,Junos OS 演化版对容器的资源使用设置了默认限制,以确保恶意容器不会使您的系统不堪重负。

Docker 容器服务不会在系统初始化时自动启动。要启用 Docker 容器服务的自动启动,请从 Linux 外壳中输入以下命令:

# systemctl enable --now docker.service

有关在容器中运行应用程序的更多信息,请参阅 在容器中运行第三方应用程序

使用签名密钥以本机方式运行应用程序

第三方应用程序可以使用签名密钥在 Junos OS 演化版上本机运行。您可以生成签名密钥,并使用它们对可执行文件或共享对象进行签名。对可执行文件进行签名即可授予其在设备上运行的权限,从而允许您批准受信任的应用程序与授权的瞻博网络软件一起运行。

签名密钥由名为完整性测量体系结构 (IMA) 的 Linux 子系统控制。IMA 策略包含一些规则,这些规则定义在执行文件之前需要执行哪些操作。IMA 衡量策略将测量和存储文件的哈希值,IMA 评估策略将确保文件具有有效的哈希值或数字签名。仅当此验证成功时,IMA 才允许文件运行。

Junos OS 演化版要求用户对所有将映射到内存中执行的文件进行签名。IMA 验证有助于确保这些文件未被意外或恶意更改。容器和容器内的文件不需要签名。

有关使用签名密钥的详细信息,请参阅 对第三方应用程序进行签名以在 Junos OS 演化版上本机运行

申请先决条件

以下 Junos OS 演化版支持第三方应用程序:

  • Junos OS 演化版 20.1R1 及更高版本,适用于容器中的应用程序。

  • 适用于本机应用程序的 Junos OS 演化版 22.4R1 及更高版本。

  • Junos OS 演化版 23.2R1 及更高版本,适用于双路由引擎应用。

应用程序必须支持在 Junos OS 演化版上运行的 Linux 内核版本才能正常工作。使用 show version 命令查看当前运行的 Linux 内核版本。

为 Junos OS 演化版编写的应用程序通常需要能够读取和修改网络状态、发送和接收数据包以及读取和修改配置。Junos OS 演化版支持的 API 数量有限,因此在配置应用程序时必须考虑这些 API。

应用程序 API

应用程序使用的 API 分为两类:

  • 用于读取和修改网络状态以及发送和接收数据包的 Linux API。

  • 用于与系统交互的瞻博网络 API。

Junos OS 演化版支持这两类 API。 表 1 提供了应用程序使用的 API 集的高级视图:

表 1:应用程序 API

Api

功能

数据包 IO 和 Linux 套接字 API

能够通过管理和/或数据接口发送和接收数据包。

标准 libc – 发送、接收、收听等。

rtnetlink

能够使用 rtnetlink 查询网络状态,如接口、路由等。

网络设备

能够配置网络设备。

过程

能够使用 Linux 内核提供的标准接口查询内核数据结构。

Junos API

能够访问瞻博网络北向 API - NetConf/JET/Telemetry。

注意:

有关瞻博网络北向 API 的更多信息,请参阅以下内容:

安全注意事项

Junos OS 演化版在设计初衷时充分考虑了安全性。IMA 和 Linux 容器有助于控制第三方应用程序对 Junos OS Evolved 的安全影响,但第三方应用程序仍有可能通过恶意代码引入安全漏洞。

始终考虑将第三方应用程序添加到 Junos OS 演化版的安全隐患。确保您添加到 Junos OS 演化版的所有应用程序都经过全面审查,以发现潜在的安全风险。

使用 IMA 实现文件安全

运行 Junos OS 演化版的网络设备受到称为完整性测量架构 (IMA) 的完整性解决方案的保护。

完整性是一项基本的安全属性,代表信任、完整性和不可更改的自由。在计算机安全中,完整性保护的常见目标是操作系统文件。确保完整性的常用方法是将文件与已知良好的文件进行比较。

在 Junos OS 演化版环境中,安全目标是确保设备上运行的软件未被意外或恶意更改。设备上运行的软件可以是瞻博网络的正版 Junos 软件,也可以是客户部署的授权软件。

网络设备的威胁模型包括恶意参与者试图部署违反设备所有者隐式或显式策略的恶意软件。此类恶意软件可能包括后门、特洛伊木马或植入物,可能对设备或网络的安全可靠运行产生不利影响。恶意行为者使用各种工具、技术和过程来破坏完整性,包括物理攻击、本地攻击和远程攻击。

许多监管计划都要求文件完整性,包括 PCI-DSS - 支付卡行业数据安全标准(要求 11.5)、SOX - 萨班斯-奥克斯利法案(第 404 条)、NERC CIP - NERC CIP 标准 (CIP-010-2)、FISMA - 联邦信息安全管理法案 (NIST SP800-53 Rev3)、HIPAA - 1996 年健康保险流通和责任法案(NIST 出版物 800-66)和 SANS 关键安全控制(控制 3)。

为了确保文件完整性并降低恶意软件风险,Junos OS Evolved 运行 IMA 和配套机制:扩展验证模块 (EVM)。这些开源保护是一组 Linux 安全模块的一部分,这些模块符合行业标准,并且与可信计算组指定的信任机制一致。

瞻博网络将数字签名应用于 Junos OS 演化版文件,并允许客户也应用数字签名。数字签名是使用受保护的私钥创建的,然后使用嵌入到一个或多个密钥环中的公钥进行验证。

IMA/EVM 子系统通过执行运行时检查来保护系统。如果文件未通过验证,则不会打开或执行该文件。

这意味着,运行 Junos OS 演化版的设备上会阻止未经验证的软件。