美国国土安全部和商务部在一份联合报告中指出:“固件构成了一个庞大且不断扩大的攻击面。”这份2022年发布的报告是对2021年网络安全行政命令的回应,报告指出了固件供应链中存在的重大漏洞。与其他攻击相比,固件攻击具有独特的优势,因为它们能够执行恶意代码,而操作系统和大多数安全解决方案都无法检测到这些代码。
所有设备——无论是服务器、台式机、移动设备还是联网设备——都包含固件,而固件攻击通常是通过固件更新引入恶意代码。这种漏洞的存在是因为固件从创建到分发的整个过程中都可能被篡改,而启用固件的组件则贯穿整个供应链。LoJax和 MoonBounce就是UEFI固件攻击的例子,它们不仅存在于包含启动固件的非易失性 SPI 闪存中,而且执行权限甚至高于操作系统内核。单个被攻破的设备就可能被网络犯罪分子用作入口,造成数据泄露,从而给企业带来经济和声誉损失。
加强固件安全可减少供应链攻击面
虽然没有一种万能的办法可以确保供应链中固件的安全,但以下五种最佳编码实践可以应用于提高整个供应链中固件的安全性。
1. 安全设计方法
固件开发的早期阶段就应融入安全性。在开发周期的早期阶段识别并实施安全措施,是部署固件前预防安全漏洞的一种经济有效的方法。优秀的开发人员能够理解硬件设计,考虑潜在的安全风险,并实施预防措施。如果硬件本身也注重安全性,则固件安全性将得到进一步提升。诸如硬件信任根之类的组件可以检测并保护固件免受攻击。
2. 测试与验证
开发和使用能够充分利用静态和动态测试工具的测试计划至关重要。静态工具有助于识别不良编码实践并提高代码质量。动态工具则通过各种技术(例如黑盒测试、渗透测试和压力测试等)帮助识别运行时环境中的漏洞。输入验证、内存安全以及针对威胁模型中指定的威胁向量的测试,都是完善的测试和验证计划的组成部分。
3. 利用源代码控制和协作
源代码控制系统使开发人员能够维护变更历史记录、实施自动化测试并实现可复现的构建。优秀的源代码控制系统促进了现代固件开发实践,将工作分解成更小的部分,以便与团队的其他工作频繁集成。“尽早提交,频繁推送”的理念,以及团队成员和其他利益相关者之间的持续协作,确保固件满足需求,并为安全审查和同行评审铺平道路。
4.实施软件物料清单(SBOM)
维护固件物料清单正日益成为增强固件安全性的必要工具,因为它能提供固件供应链的完整视图。这将使开发人员及其组织能够了解固件及其第三方组件相关的潜在安全风险,并使他们能够就固件供应链做出明智的决策。
5. 维护固件安全生态系统
即使开发出安全固件后,仍需维护一个涵盖开发者、固件和客户的生态系统。开发者需要及时了解最新的开发趋势、技术和工具,以便不断提升自身知识、技能和最终产品。此外,开发者还需要便捷的漏洞报告和修复机制,以便及时实施固件更新。
漏洞不可避免,但最佳编码实践可以最大限度地减少漏洞。
保护固件最终用户需要一个完善的、系统化的、以安全为先的生态系统,该生态系统围绕固件构建。通过安全设计理念以及开发和测试方面的最佳实践,可以提高固件在整个供应链中的安全性。该生态系统还必须包含相关功能,以便在发现潜在漏洞时向下游利益相关者发出警报,并提供动态固件更新,使用户能够在发现漏洞后立即自动更新固件。
凭借在为计算机行业开发和交付固件方面的深厚经验,AMI 拥有独特的优势,能够开发、部署固件并帮助保护整个供应链(包括云计算、电信、汽车行业、边缘计算等)的安全。
要了解有关 AMI 如何保护您的平台固件的更多信息,请访问AMI 零信任固件。