给物联网打补丁:灵活的硬件能够使物联网设备不会那么容易受黑客攻击

━━━━━━

2016年10月21日,包括推特、贝宝、声田、网飞公司、《纽约时报》和《华尔街日报》在内的多家大型网站突然瘫痪。其原因是分布式拒绝服务(DDoS)攻击,受到攻击的不是这些网站本身,而是为这些网站和许多其他网站提供域名系统(DNS)支持的供应商,DNS是将网站名称转换成互联网上的数字地址的一种系统。本次事件中的DNS供应商是一家名为Dyn的公司,其服务器收到大量虚假DNS查找请求,以致无法回答真实的请求。

DDoS攻击非常普遍。但本次攻击有两点非常特别。首先,攻击使一个大型的DNS供应商瘫痪,从而导致许多不同的网站陷入混乱。此外,这些虚假请求不是来自被侵入台式机或笔记本电脑中的常见僵尸网络。更确切地说,这次攻击是通过数千万个小型连接设备,如互联网摄像机、家庭路由器等那些通常被称为物联网(IoT)的组件进行策划的。

几年来,手机、智能手表、健身追踪器、家用恒温器和各种传感器等互联网设备的数量已经超过人口数量。到2020年,网络上将出现数以百亿计的此类小装置。物联网的快速发展反映出各行各业正经历着人类文明史上最快的经济增长。

在很大程度上,这一发展为工程师和全社会带来了极大的兴奋和更多的机会。但是,物联网的上空却乌云密布:随之而来的对安全和隐私的威胁也将达到前所未有的规模。

我们的数字系统很容易受到恶意黑客的攻击,他们试图获得未经授权的访问权限,窃取个人数据和其他信息,用窃取的信息来勒索赎金,甚至令系统完全瘫痪,正如Dyn公司所遭遇到的攻击一样。最终的结果就是黑客和计算机安全专家之间的持续军备竞赛,迫使我们周而复始地为各种计算机上运行的软件进行安全更新。

当前黑客攻击和软件补丁日益复杂,这种猫捉老鼠式的模式给物联网带来了特别棘手的挑战。一个原因是对物联网的安全攻击可能给我们的电网、供水系统和医院带来灾难性后果,这里只列出几个易受攻击的关键基础设施。另一个令人担忧的原因是,大规模生产的智能设备可能根本没有可编程的硬件,无法抵御其使用寿命内出现的所有威胁。这样的现实不禁让人怀疑,我们是否做好了准备来迎接无处不在的计算设备。然而,我们已经没有时间了。

我们在这里探讨一种可能摆脱这种困境的方法。简而言之,我们建议制造出构成物联网的各种小装置,并使它们的硬件能够适应未来的安全威胁。这并不容易设计,但在我们看来,这就是设计智能设备的明智之举。

为什么

物联网设备

极易遭到黑客攻击?

一个明显的原因就是它们的数量。在周围的数十亿个设备中,总会有数以百万计的设备在恶意运行或已被黑客入侵。此外,每个被入侵的联网设备都可能会感染许多其他设备。因此,对物联网的密集型攻击将是数量巨大且不间断的。

可料想到的另一个原因是个性化因素,这些设备的安全漏洞将产生格外严重的灾难性后果。我们现在拥有的小型数字系统,可以追踪和记录我们的许多日常活动:睡眠、彼此联系、医疗措施、浏览模式等等。来自这些设备的信息通常通过互联网传送到中央存储库和服务器,进行存储和分析,并且攻击者攻破通信环节的任何一点,都可以访问最私密的个人信息。

对这些设备的攻击还引发了另一个担忧,与它们和物理世界的交互作用有关。家中的智能面包机或工厂的传感器被黑客入侵后,可能会导致影响机器控制的灾难性后果。

保持计算机安全的传统机制很可能将无法满足需求。一方面,大多数保护功能是为笔记本电脑、台式机、服务器甚至是电话设计的,会消耗大量的电量。它们不能用于诸如手表或传感器节点之类的小型装置,这些装置必须使用很少的能量来操作。

此外,保护机制通常是为那些只运行了几年的计算系统设计的。人们往往会每三四年更换台式机或笔记本电脑,智能手机和平板电脑的更换就更频繁了。但是,智能汽车、联网智能电表或智能交通信号灯的使用寿命则可能长很多,在某些情况下可能会达到几十年。所以你不能指望通过更新换代来解决旧物的安全问题。同样制造商也不能预测他们的设备可能需要什么样的硬件资源,以阻止它们在遥远的将来会遇到的各种攻击。

事实上,如今很难想象这些设备将如何使用,更不用说10年或20年后会遇到什么样的威胁了。也许到时候你的冰箱将与你的自驾汽车沟通,以便它可以在需要时自动获取生活食品,但是厨房里的一个被入侵的智能灯泡可能窃听这些信息,并扰乱这些信息。我们根本就无法预测未来不同智能小装置的使用情况,或者是它们遭到入侵的后果。所以我们需要以某种方式对这些系统进行设计,来保护我们免受以后才会发现的攻击。

那么工程师如何才能使物联网安全?在寻求解决方案的过程中,我们进入了一个具有高度不确定性的领域,有很多未知数,且很少有具体的答案。因此,安全专家不仅要针对已知威胁全力开发保护措施,还要对装置进行设计,以便在遇到意外的漏洞和攻击时能够进行重新配置和升级。我们实现的方法就是所谓的硬件补丁。

━━━━━━

“补丁”是计算领域的一个熟悉概念,至少在软件领域是这样。现在人们非常了解软件更新的必要性,以确保手机和电脑的持续安全运行。我们大多数人源源不断地收到通知,新的软件已经准备好安装了——越执着的提醒,我们忽视得越彻底,直到最后软件无法运行时,我们才不再坚持并同意更新。

通常情况下,一些应用程序停止运行之后,需要自动更新,花费更多时间,有时甚至会导致重大的中断,这就是为什么大多数用户不情愿进行软件更新。然而,这些安全更新是必要的,因为一般的计算设备每月会暴露出数十个新的漏洞。

到目前为止,打补丁针对的只是软件或“固件”,后者常用来指代运行在小型设备上的系统代码。基础硬件本身是不可变的。对于那些将成为物联网一部分的设备,我们主张,工程师不仅必须允许软件可以打补丁,还必须允许硬件可以打补丁。为什么?因为只修改软件可能无法修复所有的安全漏洞。例如,通过硬件实现的加密算法如今是安全的,但远未到系统生命周期结束就可能会过时。解决这种潜在问题的唯一方法是使设备制造完成后,其硬件仍可以重新配置。

需要可修补硬件的另一个的原因是小型的连接设备通常必须使用极少的能量运行,并且对于同一项功能,软件往往会比硬件消耗更多的能量。因此,工程师通常无法设计出仅凭运行在通用硬件上的软件来实现所需功能的低功耗小型设备,这种设备必须使用专用硬件。因此,软件修补可能不足以进行所需的安全升级。

显然,适用于物联网的可修补硬件设计的一个要求是,它必须在非常严格的能量约束条件下工作——例如,一些无线传感器平均只需要几微安培就可进行工作。我们的工作提供了一个可以在这种限制条件下运行良好的设计。实现这一目标的一种方法是使用一种被称为现场可编程门阵列(FPGA)的通用芯片,这种芯片可以在制造之后配置相应的逻辑。我们对这一系列研究的贡献是开发了一种围绕FPGA构建的架构,可以满足不同安全要求。

为了解这种方法的作用如何,可以想想将长期部署在物联网上的小型设备,其中将用到一个芯片。这个设备可以是一个智能灯泡、冰箱或者其他装置。在我们所提出的架构中,由一块被称为“安全策略引擎”的核心硬件管理着一系列全面的安全关键事件,包括系统中其他设计模块之间以及与外部世界之间的通信。

作为示例,安全策略引擎可能要求用于通信的机密密钥仅能够被某些特定的硬件模块访问。为了执行此规则,安全策略引擎必须管理模块之间的密钥共享,禁止不满足指定安全性要求的交流和往来。如果某天你获悉一个硬件模块包含安全漏洞,不应该再允许其访问密钥,将会怎样?如果这个硬件是不可变的,你就无能为力了。

现在想象这个安全策略引擎是使用FPGA构建的。FPGA可以升级,因此你可以对其打补丁。尤其是,如果你需要保护设备抵御新发现的威胁,你可以修补硬件以执行一组新的安全要求,同样仍然只需要几微安的电流。

原则上,这种方法听起来很简单。但实际操作起来,有很多细节需要解决。这是因为,即使是小型数字设备,通常也包含许多不同的硬件模块,它们都是由不同的第三方来源设计的。用行话说,它们被称为知识产权(IP)。安全策略引擎需要跟踪不同IP之间的通信,以便它可以强制执行安全性要求并识别违规行为。此外,安全策略引擎需要访问每个IP模块中的安全关键事件,以便可以正确地标记这些事件并进行响应。

为此我们需要一个特殊的接口,它允许每个IP供应商使用一个通用的机制来完成硬件模块与安全策略引擎之间的通信。这个接口目前还不存在,并且这种接口的标准可能也需要很长时间才能出现。而幸运的是,大多数的IP已经有了所谓的调试接口,通常用于在硅芯片制造之后来检查IP是否正常工作。如果我们将安全策略引擎连接到此接口,该引擎就可以跟踪所讨论模块内的大量不同事件。如果一个新的安全性要求涉及对已经被认为是验证IP至关重要的事件进行监控或做出反应,那么最有可能的是,硬件补丁可以允许安全策略引擎直接跟踪相关事件,完全不需要改变IP。

当然,如果一个新的安全性要求涉及IP中无法通过其调试接口访问的事件,那么你就不走运了。我们希望这种情况不会频繁出现,并且随着时间的推移,IP供应商只会使调试接口更加丰富——至少直至开发出IP的标准安全接口之前,都是这样。

从长远来看,随着安全专家更好地了解需求,他们也将为这些低功耗设备开发更灵活的保护机制。像现在普遍使用的软件安全补丁一样,硬件补丁将成为物联网上的例行事件。我们面临的挑战是找出一种相对容易的方法实现这些系统的定期自动升级,同时不会像现在的软件升级那样让人担心和厌烦。

目前已经有人在研究如何为手机等各种小型联网设备提供自动软件更新,这个过程被称为无线下载(OTA)升级。这样的机制当然必须确保只有可信的软件升级才能加载,并且它们必须足够稳定,以便在升级期间处理电源或通信的损失,而不会“砖化”设备。当自动进行硬件配置更新时,也会考虑类似的问题。而在小型物联网设备中,这些要求将难以满足,因为这些设备通常不具备这种复杂任务所需的硬件或软件。

在不要求用户或系统管理员手动升级几十乃至上百台不同设备的情况下,保证物联网的安全肯定会有挑战性,但我们充满希望:我们能够取得进展,而且自动升级系统将随着设备自身数量的增加而激增。如果是这样,并且构成物联网的组件具有足够的灵活性,我们认为,即使这些设备的数量增长到数万亿,我们也可以将安全性保持在合理的水平。这一天可能会比你想象的更早到来。

作者:Sandip Ray, AbhishekBasak, Swarup Bhunia

>>>本文为原创,转载请回复。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180107G0BJQM00?refer=cp_1026

扫码关注云+社区