信息安全主题 | 嵌入式系统软件漏洞与安全隔离
以前开发者在谈到嵌入式设备的时候,常常忽略嵌入式设备的安全性问题,想当然地认为嵌入式设备不易受到网络攻击,也不是黑客攻击的目标,或者只需要做加密和身份验证
▲点击上方关注STM32 以前开发者在谈到嵌入式设备的时候,常常忽略嵌入式设备的安全性问题,想当然地认为嵌入式设备不易受到网络攻击,也不是黑客攻击的目标,或者只需要做加密和身份验证就能达到足够的安全性。 但在万物智联的今天,联网设备成指数级增长,嵌入式设备受攻击的量级及复杂度也在同步增长。嵌入式系统需要更多的安全措施是开发者们的共识。 本文基于STM32为大家梳理了嵌入式软件漏洞及安全隔离措施。 典型的嵌入式设备安全威胁和对策 对于安全通信、安全存储、安全启动、安全升级等等大家可能多有耳闻,对于相关的概念也相对熟悉。而软件漏洞可能带来的风险往往被忽视,对于与之相关的安全隔离的概念可能也还比较陌生。 安全隔离 隔离到底解决什么问题,有什么用处呢? 首先,隔离主要针对逻辑攻击,它的一个假设前提是软件可能存在漏洞,软件漏洞可能被利用,导致关键信息受到损害,被盗取、被修改等等。 隔离的思想首先是区分资源的不同访问权限,然后软件运行在不同状态,对资源的访问权限是不同的操作系统安全,这里的资源可能是存储器,也可能是外设,甚至是内核的中断、寄存器之类,从而对不同软件进行区分,关键资源只允许一小部分代码能够访问,其他的应用程序部分即使存在漏洞,关键资源也还是一个安全的状态,不能够被恶意代码获取。比如说有 buffer overflow 可能导致恶意代码的注入和执行,即使有这样的情况发生,关键资源仍是安全的。这样的隔离可以降低软件漏洞可能带来的风险。 哪些应用场景用到了隔离? 其实我们每天使用的手机上的 TEE 就是隔离的一个典型例子,指纹匹配算法、支付相关的交易认证、手机银行App的关键操作等等,其实都是运行在 TEE 中的,TEE 是从区别于 RichOS 单独隔离出来的一个独立的部分,这些关键操作都运行在TEE的安全环境中。 MCU上的隔离的概念可能大家听的不多,但是其实MCU中也带有隔离功能,随着 V8-M TZ 的出现,Trustzone以及TEE概念也可以在MCU上使用了。 利用软件漏洞窃取MCU代码的攻击演示以及对抗攻击可采取的STM32硬件安全防护 接下来我们就来看一个逻辑攻击的示例,这个示例通过利用软件漏洞的一个常见问题 —— stack/buffer overflow,实施攻击,从通信端口注入恶意代码,绕过调试端口直接获取MCU内部数据,这意味着即使调试端口已经完全保护,软件漏洞依旧可能使攻击者有机可乘,造成关键数据从其他端口泄露。 STM32 MCU 的隔离机制 利用Arm Cortex内核自带的MPU的隔离功能 STM32 MCU不同系列的硬件特性实现隔离 STM32 MCU的双核间隔离 STM32基于TrustZone架构的系统级隔离 ▲STM32L5系列课程 总结:STM32 MCU的安全隔离特性 ? THE END (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |