引言:为什么安全强化至关重要 #
在关键环境中,如国防系统、医疗设备和工业自动化,安全性和可靠性是不可妥协的 。正如医院在手术前遵循严格的安全规程一样,实时操作系统 (RTOS) 的开发人员必须遵循严格的标准,以降低网络攻击和人为错误的风险 。
对于 VxWorks,Wind River 提供了一个安全强化内核配置文件,该文件直接映射到 NIST 800-53 控制措施 。这种方法有助于合规性,提高弹性,并确保任务关键型嵌入式系统免受漏洞侵害 。
构建强化 VxWorks 内核的先决条件 #
要遵循本指南,您需要:
- 支持 TPM 和 安全引导 的 Intel 目标硬件(例如,戴尔 Latitude E6540) 。
- 两个 USB 闪存盘(每个至少 4 GB) 。
- 一个带有以下软件的 Windows 工作站:
- Wind River VxWorks 7, SR21.07
主要参考资料和文档 #
-
Wind River
- VxWorks 强化指南方法
- VxWorks 强化指南
-
NIST
理解 NIST 800-53 及其在 RTOS 安全中的作用 #
NIST 800-53 定义了一套用于安全系统设计的结构化结果集 。它没有规定严格的步骤,而是概述了组织必须实现的安全目标:
- 组织准备 – 协调流程和技术以生产安全软件 。
- 软件保护 – 防止对软件组件的未经授权访问 。
- 生产安全良好的软件 – 在设计和实现中将漏洞最小化 。
- 应对漏洞 – 发布后快速检测并处理风险 。
该框架是 VxWorks 强化配置文件的基础 。
VxWorks 强化配置文件:NIST 合规性的实践 #
Wind River 通过强化配置文件将 VxWorks 与 NIST 800-53 对齐,该配置文件围绕五个网络安全功能构建:
- 识别
- 保护
- 检测
- 响应
- 恢复
该配置文件定义了三个级别的要求:
- 强制性 – Wind River 和开发人员都必须遵守 。
- 酌情性 – 可选但建议遵守 。
- 不适用 – 与 RTOS 无关(特定于桌面) 。
VxWorks 强化配置文件功能 #
应用该强化配置文件后,会自动包含:
- 磁盘加密(保护静态数据) 。
- 密钥库(安全存储密钥和凭证) 。
- SSH 支持以实现安全访问 。
- 内核强化保护 。
- 安全加载程序 。
- RTP 中的堆栈粉碎保护 。
🔐 开发人员仍然必须实施硬件安全功能,例如安全引导、防篡改保护和补丁管理 。
强化内核配置 #
您可以通过三种模式构建强化的 VxWorks 内核:
- 必需控制 – NIST 800-53 控制措施的基础集 。
- 必需 + 酌情控制 – 增加了网络保护 。
- 开发(带 shell) – 仅用于测试;切勿在生产环境中部署 。
第 1 步:创建强化 VxWorks 项目 #
-
打开 Wind River Workbench 。
-
导航到 File → New → Example → VxWorks System Setup 。
-
选择 VxWorks Security Hardened System 。
-
设置基本名称:
hssHardenedVx1
。 -
选择镜像:
development (with shell)
。 -
Workbench 生成:
hssHardenedVx1_develop_vsb
hssHardenedVx1_develop_vip
hssHardenedVx1_develop_rtp
-
应用与安全相关的更改:
// 在 rtpPartition.c 中 – 设置默认 RTP 路径
#define EX_USE_ROMFS
// 在 scapVxWorks.c 中 – 禁用 SCAP 机制
#define EX_CONFIG_CHECK_SKIP
- 使用有效的 IP 更新
DEFAULT_BOOT_LINE
并构建项目 。
第 2 步:强化 VxWorks 内核的 USB 设置 #
- 闪存盘 1:复制安全引导密钥(
db.sig
、KEK.sig
、PK.sig
)和引导加载程序文件 。 - 闪存盘 2:创建一个 2 GB FAT 分区用于加密内核存储 。
第 3 步:在 BIOS 中配置安全引导 #
- 插入闪存盘 1 并引导进入 BIOS 。
- 添加安全引导密钥(
db.sig
、KEK.sig
、PK.sig
) 。 - 重启系统;VxWorks 应该会随内核 shell 启动 。
使用 devs
命令识别闪存盘名称:
-> devs
drv refs name
4 [ 3] /ata0a
...
8 [ 3] /romfs
1 [ 3] /ttyS0
示例:闪存盘 1 = /bd0a
,闪存盘 2 = /bd16a
。
第 4 步:阶段性强化项目 #
使用更新的设备名称重新创建项目:
- 信任存储库根目录 →
/bd0a
- 加密分区 →
/bd16a
然后重复 USB 准备和引导步骤 。
至此,您将拥有一个强化 VxWorks 内核的开发配置 。
接下来的步骤:从开发转向生产 #
现在您有了一个强化的开发环境,您可以:
- 构建和测试安全 RTP 应用程序 。
- 将
.vxe
二进制文件部署到/romfs
。 - 使用 Wind River 工具进行调试 。
对于生产部署:
- 使用**“必需控制”或“必需 + 酌情控制”**重新构建项目 。
- 这将移除内核 shell,并确保只包含强化组件 。
常见问题 (FAQ) #
❓ 什么是 NIST 800-53? #
NIST 800-53 是由美国国家标准与技术研究院发布的框架 。它为联邦信息系统提供安全和隐私控制,并被国防、航空航天和工业领域广泛采用 。
❓ 我可以在基于 ARM 的目标上使用 VxWorks 强化配置文件吗? #
目前,强化配置文件仅支持 itl_generic BSP(Intel 目标) 。ARM 目标可能不支持合规性所需的所有安全引导和 TPM 功能 。
❓ 为什么不应该部署“开发(带 shell)”内核? #
开发配置包含 VxWorks 内核 shell,它提供了强大的调试功能 。然而,它也暴露了安全风险,绝不应在生产系统中使用 。
❓ 强化配置文件会自动启用哪些安全功能? #
它启用了磁盘加密、密钥库、SSH 支持、内核强化、安全加载程序和堆栈粉碎保护 。开发人员必须添加硬件级别的保护措施,如防篡改和补丁管理 。
❓ VxWorks 强化配置文件是否符合 STIG 要求? #
是的 。VxWorks 强化指南以 STIG(安全技术实施指南)格式呈现,并直接映射到 NIST 800-53 控制措施 。
结论 #
构建安全强化的 VxWorks 内核可确保符合 NIST 800-53 标准,增强嵌入式系统安全性,并为您的应用程序在关键环境中的部署做好准备 。
通过遵循本指南中的步骤——涵盖安全引导、USB 设置、BIOS 配置和项目重建——您可以为开发安全、可靠和具有弹性的基于 RTOS 的应用程序创建坚实的基础 。
✅ 最佳实践:始终将强化配置文件用于生产,并在设计早期集成硬件级别的保护措施 。