与质量和许多其他嵌入式系统属性一样 , 安全性必须在开发周期开始时加以考虑 。 开发人员无法构建他们的系统 , 然后在最后添加安全性 。 随着越来越多的系统开始连接到 Internet , 嵌入式开发人员应该遵循最佳实践来开始保护他们的系统 。 让我们探索几个任何团队都可以实现的方式 。
开始使用ARM Trustzone
ARM Trustzone 已经在应用处理器上使用了很长一段时间 , 并且已经宣布 ARM Trustzone 在新的微控制器上可用 。 开发人员应该探索它的含义以及如何使用它来编写更安全的软件 。 如果你有一个 ARM 应用处理器 , 那么现在是开始让 Trustzone 发挥作用的时候了 。
遵循语言和行业最佳实践
嵌入式软件开发人员应该使用多种编程语言和行业最佳实践标准 。 使用 MISRA-C/C++ 可以确保遵循使用所选语言的子集的最佳实践 。 无论如何都应该使用 MISRA , 但从安全的角度来看 , 如果开发人员使用 C , 那么强烈建议熟悉并遵循 Cert-C 中的最佳实践 。 Cert-C 旨在提供推荐的编码实践 , 以防止软件中的安全漏洞 。
数字签名和加密固件更新
任何连接到 Internet 的设备都需要推送功能更新和错误修复 。 为了防止未经授权的固件更新 , 嵌入式开发人员应考虑对其固件映像进行数字签名和加密 。
在启动时验证应用程序
潜在的黑客可能会在启动期间尝试将新软件注入系统 。 使用引导加载程序来验证存储在 ROM 中的当前映像和在 RAM 中运行的代码是否应该存在始终是一个好主意 。 有很多方法可以做到这一点 , 但一个非常简单的检查是放置一个在启动时验证的 CRC 。 总比没有好!
锁定闪存空间
它当然是防篡改的 , 但要在黑客面前面临的一个额外障碍是锁定 Flash 程序空间 。 在行尾锁定闪存将有助于防止对设备具有物理访问权限的人能够读取应用程序代码并对其进行逆向工程 。 如果有足够的时间 , 他们可以找到一种方法 , 但关键是他们必须更加努力地访问代码 , 这可能足以阻止他们 。
监控堆栈和缓冲区是否溢出
【软件|嵌入式开发:保护嵌入式系统的7个技巧】溢出堆栈或缓冲区可能是开始将恶意代码注入系统的好方法 。 嵌入式开发人员应该监控他们的缓冲区和堆栈空间 , 以确保它们不会溢出 。 这可以通过监视位置指针或创建警告即将溢出的警戒区来手动完成 。 大多数 RTOS 还包括堆栈溢出监视器 。 确保它不仅处于打开状态 , 而且在出现这种状态时有代码来处理系统 。
- 美团|一个聊天软件—陌陌,记录了我的9年青春
- 阿里巴巴|时代已经变了,中国软件被多国网友称赞,国产彻底崛起
- 软件|小心,这些APP,可能在偷看你的私密照片!
- 安卓|看似交友软件的陌陌,实则“约会神器”?背后“内幕”是啥?
- 电脑软件|这6个电脑软件凭什么被知乎20w人推荐?不会有人还没用过吧
- c语言|是什么让 React Web 开发如此受欢迎?
- 设计师|我们对软件创新的理解,不应止步于「国产替代」
- 软件|五款适合团队设计工具,试试不后悔
- 软件|比“缺芯”还严重!超90%大陆市场被美企垄断,该警惕了
- 英特尔|不学NVIDIA玩强制 Intel称Arc显卡驱动软件无需登录