容器化 Linux:物联网安全的秘诀
许多软件开发团队倾向于以常见的 Linux 发行套件为基础设计工业系统,甚至在内部开发自己的工业系统。从安全角度看,通常不建议这么做,因为实行正规的安全开发工作不但费用高昂,而且费时费力,与提供增值工业产品的目标背道而驰。
虽然开放源代码 Linux 社区的错误修复和安全补丁的悠久历史,但是随着时间的推移,此安全网可能会因开发团队的原因并随着内部的代码库远离社区基准发展而削弱。在工业嵌入式设备的整个部署生命周期中,软件开发团队必须承担的责任不但包括保护其核心 Linux 发行套件的安全,而且包括适应应用程序代码数量不断增长和复杂程度不断提高。
组织必须确定基于开放源代码 Linux 的开发环境的灵活性和敏捷性是否能够提供足够的价值,可抵消在其产品的整个生命周期内维持安全的代码库的费用。
安全软件的价值和成本
目前,超过 500 个生效的漏洞会影响 Linux 内核,范围从溢出和绕过到内存和隐私错误不等。
支持安全 Linux 发行套件的主要缺点之一很难从安全中牟利,并且在客户眼里,安全价值不大。目前,安全只有在它无法正常工作时会引起人们的注意。
但从安全软件开发生命周期 (SDLC) 的角度看,有许多需要高度重视的注意事项。这些注意事项包括在 SDLC 的评估、架构、设计、实施和部署阶段实施最佳实践,以及调配在物联网设备上现场部署软件之后,长时间监控和维护软件。
下面这些做法可铺设可满足技术、运营和生命周期要求的战略(图1)。这些注意事项包括软件堆栈如何与基础芯片进行交互、使用哪些开发和测试工具以及如何使用它们、集成第三方服务的方式、加密网络连接、设备管理和更新流程。
此外,物联网设备的性质意味着必须实施监控威胁(例如 MITRE 安全数据库中列出的通用漏洞披露 (CVE))的机制,以在新威胁出现时保护现场中的设备。这要求开发团队足够灵活,能够快速识别漏洞,通知客户,并在发生损坏之前以无线 (OTA) 方式提供安全补丁和错误修复。
此基础设施不仅要付出构建和投入使用成本,而且可能需要数年时间来适当精炼。
桥接开源灵活性与商业级安全性
备选方法是与已有实施安全 SDLC 和实践经验的供应商合作。例如,Wind River Linux 是基于 Yocto Project 工具和如下流程的容器化 Linux 发行套件:这些流程可为软件工程师提供开源环境的灵活性并支持商业级错误和漏洞修复(图2)。
Wind River Linux 的安全性和灵活性基于它的容器架构,其可将至关重要的软件组件(例如 Linux 内核和用户空间库)与会在工业设备上部署的应用程序隔离开来。在这些容器中,应用程序也会相互隔离,从而有效地隔离可能在一个应用程序中出现漏洞,避免影响其他敏感代码或资源。
此架构不但简化了从其它热门 Linux 发行套件(例如 Red Hat 或 Ubuntu)进行应用程序集成,而且通过隔离软件组件和减少依赖性简化了代码库更新和管理。
该操作系统可提供传统 Wind River Linux 中的许多精选软件包和中间件(包括特定于市场的配置文件),以获得安全性、虚拟化和运营商级别功能。该操作系统是使用 Wind River 的安全框架开发的,该框架利用了在英特尔®处理器上提供的安全功能,例如英特尔®可信执行技术(英特尔® TXT)、安全启动和采用英特尔®高级加密标准新指令(英特尔® AES-NI)的加密算法的硬件加速。
但面向工业组织和开发人员的 Wind River Linux 的主要优点是作为一站式软件基础设施平台。客户可以使用经过认证在选定的硬件目标上可用并由 Wind River 和 OEM 维护的二进制映像,而不是创建并维护他们自己的发行套件。
在维护过程中,Wind River 会监控 MITRE 等安全数据库以了解可能会影响软件组件的漏洞,并获得可由用户直接从在线支持系统存储库下载的问题补丁。然后可以在任何适用的操作系统容器上安装这些补丁。
您是要获得开源灵活性、商业级安全性还是两者兼备?
随着工业物联网技术市场不断成熟,工程的价值在应用层而不是系统的底层基础设施中日益增加。
通过将商业级安全发行套件与经过认证的硬件平台打包在一起,使得工程团队能够在熟悉的开放源代码环境中将精力集中在应用程序开发上,Wind River Linux 将此概念提升到新的水平。组合的解决方案可作为包含维护的单个物料清单 (BOM) 项目提供。
Wind River 研究表明,商业 Linux 解决方案可在物联网产品的整个生命周期内,为工业组织节省高达 53% 的开发、部署和维护安全 Linux 发行套件的总拥有成本 (TCO) - 更不用说安全漏洞的可能后果。
有关 Wind River Linux 如何让软件工程组织变得更加灵活的更多详细信息,请观看“在边缘提供安全的物联网平台”网络研讨会。