高级会员
- 积分
- 762
- 金钱
- 762
- 注册时间
- 2021-5-18
- 在线时间
- 28 小时
|
对我来说,实现完全分区隔离是微控制器单元 (MCU) 系统安全的圣杯,因为黑客在与系统其余部分完全隔离的分区内部几乎无能为力。使用内存管理单元 (MMU)实现进程之间的完全隔离相对容易,但需要耗电的处理器才能实现可接受的进程切换时间,而且在任务级别并不合适。使用内存保护单元 (MPU) 实现 MCU 的完全分区隔离是可能的,但难度很大。
这是讨论如何在 MCU 系统中实现完全分区隔离的系列论文中的第一篇。已经写了许多关于 MPU 的论文。参考 1 是让·拉布罗斯 (Jean Labrosse) 写得特别好的对该主题的介绍,我建议您在本文之前阅读它,作为 MPU 概念的介绍。参考文献 2 和 3 也很有帮助。参考文献的主要问题。1 是它不足以实现完全分区隔离。然而,在本系列的几个地方回顾了它的内容,以说明不同方法对 MPU 使用和分区隔离的其他方面的影响。
比赛计划
你可能是一个非常好的程序员。但是,要编写不可破解的代码,您不应假设:
你比黑客聪明,也不是那个
你可以向黑客隐藏你的代码中的缺陷,或者
小概率是安全的。
关于后者,假设有一个小缺陷,您估计在一百万次尝试中只能破解一次。安全,对吗?错误的!为便于讨论,假设您有一个只有 50 MHz 时钟的慢速越野车,并且每秒只能执行大约 10M 条指令。还假设攻击您的缺陷需要大约 100 条指令。然后黑客需要大约 1000 秒或 17 分钟才能闯入!所以,你最好修复它。
毫无疑问,您可以编写少量的防黑客代码。但是以这种方式编写整个系统显然是不切实际的——这将花费太长时间并且花费太多资金。底线是我们需要一种更好的方法来编写嵌入式系统代码。呈现这样一种方法论是本系列文章的目的。
让我们开始吧
图 1 显示了一个典型的嵌入式系统的结构。没有结构,也没有分区。如果黑客闯入他可以访问的任何地方 - 密钥,关键数据,一切。这是不好的。
图 1:典型的嵌入式系统结构(来源:作者) 图 2 显示了将网络安全添加到现有的、无防御的嵌入式系统的问题的解决方案。此处显示它是为了讨论系统分区的基础知识 - 请参阅参考资料。3 有关解决方案的更多信息。
图 2:安全网络解决方案(来源:作者) 粗线上方是umode(非特权模式或用户模式,任您选择)。粗线下方是pmode(特权或保护模式)。我们将粗线称为pmode Barrier,因为它是由处理器强制执行的,而 umode 代码无法突破它。如图所示,以太网驱动程序和 TCP/IP 堆栈(这两者都非常容易受到黑客攻击)位于 umode 分区中。该分区只能看到传入或传出的加密数据。它通过隧道门户连接到网络应用程序分区,并通过软件中断 (SWI)获取系统服务界面,这两者都严重限制了可以从该分区内部执行的操作。请注意,只有安全分区连接到保管库,保管库包含系统所有者的钥匙、珠宝和其他有价值的财产。
在上图中,整个嵌入式应用程序代码已被分组到单个 pmode 分区中,因此也可以防止通过 Internet 进行入侵。图 2 是遗留系统的解决方案,不适用于新系统,这是本系列论文的主要主题。
隔离分区的优势
将嵌入式系统软件划分为隔离的分区有很多好处:
防止黑客攻击。
更高的可靠性和安全性。
隔离低质量或未知质量的软件 (SOUP)。
更好的插件模块化。
更规范的设计。
现场检测空指针和野指针以及堆栈和缓冲区溢出。
使用隔离分区更轻松地合并旧版软件。
分区重新启动以恢复而不是完整的系统重新启动,这可能会中断重要操作。
支持一个或几个分区的部分更新。
安全性和可靠性是一枚硬币的两个方面。首先,黑客是故意的;其次,错误和故障是偶然的。但是,两者都会损坏财产并危及生命。改善一个的措施往往会改善另一个。完全隔离的硬件实施可实现系统内模块的互换性以及未来系统中更好的模块可重用性。更好的设计实践的硬件实施也有助于提高系统安全性和可靠性。部分重启和部分更新可节省时间。这些都是分区的好理由。
原文链接:https://www.yunduoketang.com/article/zbjiaoxuejq.html
|
|