嵌入式软件的安全金字塔之概述

1、重新思考安全的定义是什么?

安全的核心是保护有价值的资产免受威胁,无论这种威胁是窃取资产的价值,还是以不用于本应用途的方式控制资产。在进行威胁分析时,将确定资产最有可能面临风险的暴露点。无论是它们的存储方式,还是在运行时的利用方式,或者它们是如何从一个设备转移到另一个设备的,这些暴露点都将是您的安全推动者的重点。这些促成因素将帮助保护这些资产,使其免受基于认为基于系统的暴露点的威胁,并将其作为最危险的使用。

嵌入式软件安全是确保嵌入式系统(如物联网设备、汽车电子控制系统、工业自动化系统、医疗设备等)在其运行过程中免受恶意攻击、未经授权的访问、数据泄露和意外失效的关键环节。随着技术的发展,尤其是物联网(IoT)和自动驾驶车辆的增长,嵌入式软件的安全性变得更加重要。

c104b404f2e04066b4a8fb20388f885f.png

此图片来自网络

2、嵌入式软件的安全金字塔

嵌入式软件的安全漏洞的分析可以被视为一个金字塔结构,安全基础从一个真正的基石开始,它被称为安全引导。

8dacbe5c7a9945cead1dce4fec4d16dd.png

此图片来自网络

3、安全引导

安全引导实际上是确保系统将运行其设计运行的代码,并确保它不能运行其他人可能试图注入系统的代码,从软件和硬件的角度真正保证系统的完整性,并为系统上运行的其他软件建立信任根。设备标识和密钥用于确保在网络上通话的设备是已知设备。这不是一个流氓设备,也不是一个运行本不应该运行的软件并试图将不良信息或错误信息传达给系统其他部分的设备。

4、加密

加密加速实际上是实现安全的标志之一。它不仅将用于安全引导,还将用于加密系统中发送的数据。加速器对此是必要的,尤其是在高功率处理器无法进行加密操作的早期启动阶段,因此加速将有助于启动过程的其余部分,并使系统更容易。它保证了更多的安全性,例如,因为这些硬件实现的加速器本质上比软件加速器更安全。

5、调试安全性

最后一个是调试安全性,这只是锁定JTAG端口,这是用于设计系统的调试端口,并且是设计和开发所必需的很多时间,但不是可能希望有人在生产系统中访问的端口。因此,我们将看到调试安全性如何允许禁用它。这些基本架构元素中的每一个都需要被加到系统的架构中,或者被用于构建系统的SOC架构中。安全性确实需要成为体系结构方面的一个基本元素,以确保其真正安全。

6、设备标识

设备标识是指能够以安全的方式与网络或系统中的其他设备进行通信。设备想要与云中的东西进行通信,而云可以做一个挑战-响应类型的系统来说,是否被允许在此网络上进行通信,以确保保护网络免受不良行为者或试图做不该做的事情的设备的影响。因此,这一切都基于硬件唯一标识,非常适合网络身份验证。另一方面,它也非常适合检测未经授权的访问。

7、小结

保护嵌入式软件安全的措施通常包括在设计阶段进行详细的安全需求分析,并识别潜在的安全威胁。建立威胁模型来理解可能的攻击向量和漏洞点。使用安全编码规范和架构设计原则,减少常见编程错误和漏洞。实施权限分离、最小权限原则和安全服务接口设计。进行单元测试、集成测试以及专门的安全测试,包括模糊测试、渗透测试和静态代码分析。对于安全关键型系统,遵循功能安全标准(如ISO 26262、IEC 61508)进行形式化验证或基于模型的验证。设计并实现安全可靠的远程升级机制,以便及时修复已知漏洞。管理生命周期内的固件版本控制和安全性更新流程。实时监控系统行为,设置入侵检测系统以发现异常活动。制定应急响应计划,一旦发生安全事件能够迅速采取行动减小损失。此外,硬件层面的安全也至关重要,例如使用专用安全芯片、实施硬件加密、启用物理不可克隆功能(PUF)、以及采用可信启动技术来确保从底层硬件到上层应用的完整性。综上所述,确保嵌入式软件安全是一个涵盖整个产品开发生命周期的过程,需要全面的安全策略、严格的质量保证方法论和持续的安全维护与更新。

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>