译自Embedded Office Blog


小型微控制器中的特定风险和安全需求


在这篇文章中,我们将回顾各种安全挑战,以及特别关注小型微控制器在工业环境中嵌入式系统面对的课题。由于它们相对有限的处理能力和非常小的内存和闪存资源,这些小型微处理器芯片可能存在额外的安全风险。


虽然小型微控制器在规格和特性上与更大和更强的同类相比有一定的局限性,但它们对安全的需求是一样的。一些专家提倡小型微处理器上的安全级别应该与那些通常部署在计算机服务器上的安全级别相同。那么,技术上和成本都上可行吗?如此强大的安全级别需要更多的处理器开销,同时加大了成本控制压力。因此,制造商只能依赖(方案)研究和(针对性的特殊)设计来达到二者之间的平衡,并提供及时、高效和可靠的解决方案。


工业动态


然而,近年来,来自其他方面的压力和动态因素在工业领域内(对其发展方向)一直发挥着作用。物联网(IoT或德国工业4.0 )的外延将会持续扩展到住宅楼和住户。作为公共基础设施的核心部分,物联网微控制器和嵌入式系统构成了诸如医院、发电站、水处理、通信和运输等高度敏感领域中必不可少的一部分。

增强的安全规范需求与竞争成本和市场价格之间的矛盾,是否有令人满意的折中方案?此外,如果有,哪种解决方案又将足够安全和可靠呢?


威胁和漏洞


显然,嵌入式硬件系统和大型系统一样容易受到安全威胁,无论是大范围网络、本地连接或单机模式。在一则令人震惊的新闻报道中,报道了网络攻击和它带来的破坏性后果:在德国,2016年秋天黑客作了一个分布式拒绝服务(DDoS)攻击德国电信。虽然是相对原始的数字攻击,然而其破坏性却影响了大约900,000台路由器。


同样,在2017年5月,国际网络攻击在一些国家引起了广泛的混乱和相当大的系统停机时间。在英国,各医院急症室被迫关闭。他们的实验室分析和信息系统瘫痪了,而遭受影响的医生对于紧要病例患者,只能手写处方。


一个更高级水平的“震网”(Stuxnet)电脑蠕虫病毒操纵可编程逻辑控制器(PLC),最早在2010年被检测到,并主要以USB存储设备进行传播。该恶意软件甚至可以感染没有连接到互联网的本地网络和控制系统。一旦入侵,病毒将以制造自动化,化工厂,石油管道和炼油厂中的小型西门子PLC为传播和攻击对象。跟据阴谋论和相对可信的消息来源推测,“震网”电脑蠕虫病毒主要是针对在伊朗的布什尔铀浓缩核电站故意制造破坏。该蠕虫利用多个零日(zero-day)漏洞来破坏被感染主机。


发人深省的比喻


早在物联网出现之前,生产商和软硬件购买者就意识到需要通过(专门的)标准和认证来保证安全(safety and security)。现在,这显然也适用于微控制器领域。在小而关键的系统中,攻击者可能会利用它的致命弱点吗?不幸的是,它可能现在已经只是个时间问题了。目前微处理器已经演变为具有数据库和应用程序编程接口(API)的多用途处理器。


让我们考虑一个电动客车的例子,电机控制器和步进电机控制加速和制动。如果电机控制器被恶意编程,即使机械制动器有防止不受控加速的保证机制,这些安全备份也可能不会防止突然和不成比的制动。


为防止旅客受伤和列车损坏,软件代码和嵌入式系统中的交换机,电机和联锁装置必须妥善确认和检查。此外,设备必须配置运行只有确认签署过的代码,并拒绝执行未确认签署的指令。再例如火车的例子,想象一个可怕的画面场景:如果加速和制动控制信号是假的(一个虚假的信号,但是有明确意义),意味着火车可能加速前进到危险的境地。


类似的原则也适用于目前正在开发的无人驾驶汽车。


面向解决方案


因此,行业专家将会创建,开发和实施适当的解决方案。然而,如果一个系统的组成只有有限的内存和处理能力,那么高级的加密通常是行不通的。一种解决方案是分离加密任务到专门的处理(加密任务的)设备中。在少量数据加密中使用SHA(安全散列算法)技术,具有低功耗的优势及减少占用内存尺寸。

另外, TrustZone架构可提供抵御计数器威胁。TrustZone安全架构技术可使SoC设计者定制硬件和软件资源。芯片(应用)可细分为两个领域:针对安全加密系统的安全世界和针对其他的非安全世界。两者之间存在一个数字安全边界。


额外的分析


此外,使用后台安全分析(模块)将有助于降低微控制器和子系统中的风险。可以对收集的数据进行分析,先形成(比如前面提到的运输实例)一个性能基准,同样在电传航空电子设备、医疗设备、制造工厂和销售点系统等待领域,也可如是操作。有了这样的基准,安全分析(模块)将能够迅速发现异常,并帮助对付潜在的、隐蔽的威胁。

最后,除了所有前面的措施外,任何的总体方案都必须是全面的,才能成功。对访问限制,安全监控和锁定系统或设备柜而言,物理安全是更广泛的解决方案的一部分。安全的基石不容忽视。


总结


在这里,我们研究了嵌入式系统和小型微控制器的一些关键安全考虑——特别的,为什么保护是必要的,以及安全方法和分析如何有助于实现保护。这些问题在关键任务应用程序和核心业务系统中尤其重要。为了保护嵌入式软件不受当下和未来的安全威胁,各层面需要在代码开发和微处理器工程上达成一致并遵循全面的策略。


送STM32开发大礼包—第二期μC/OS-III入门培训火爆来袭!
CAN@net NT——无限应用领域

上一篇

下一篇

工业环境中的安全嵌入式系统

本网站由阿里云提供云计算及安全服务 Powered by CloudDream