在构建物联网产品以确保物联网设备安全时,人们应该问自己一些问题。在构建物联网解决方案时确保安全是非常具有挑战性的。
可以论证的是,保护解决方案的“云”端并不是什么新鲜事,而且有很多完善的实践和支持框架可以帮助您做正确的事情。当涉及到“硬件”方面,最终连接到公共网络的嵌入式设备——这对大多数人来说仍然是未知的领域。
本文将介绍在构建连接产品时应该问自己的几个问题,并提供一些答案,以帮助企业使下一个物联网设备尽可能安全。
(1)我的设备的身份是什么?它是不可伪造的吗?
当您以个人身份对网站或任何形式的在线服务进行身份验证时,您通常依赖于多因素身份验证(MFA)来避免冒充和身份盗窃。多因素身份验证使得攻击者几乎不可能伪造您的在线身份,因为他们可能无法访问验证所述网站或服务所需的所有证据。
例如,他们可能知道你的密码,他们甚至偷了你的手机,但他们不知道你的6位数密码,也没有你的指纹。简而言之:他们将无法完成登录过程并冒充您。
(2)是否可以实施类似的机制来防止物理物联网设备的身份盗窃?
答案是使用专用硬件,如可信平台模块(TPM)。简而言之,这种设备持有由硬件保护的加密密钥。私钥一旦存储在模块中,就永远不会离开模块,然后使用公钥来证明设备的身份。由于密钥无法伪造,因此冒充设备实际上相当于获得对其的物理访问权限(当然,这会带来其他安全问题,我们将很快讨论!)。
(3)我的代码在哪里运行?
术语可信计算基础(TCB)是指对系统安全性至关重要的一组硬件、固件和软件组件。物联网设备有几个方面将在确保系统的整体安全性方面发挥作用,从前面提到的TPM到操作系统的内核(可能是实时的)。
在设计物联网设备时,必须记住,可信计算基础应尽可能小。这样,可以最小化攻击的表面,并降低TCB中允许攻击者绕过安全保护并部署恶意有效负载(例如,允许他们窃取有价值的业务数据)的错误(或功能!)的风险。
如果可以的话,尝试在一个操作系统或实时操作系统之上构建,它允许只发布和启用您真正需要的功能。在任何情况下,您的应用程序代码都应该在TCB之外运行,这样它就可以在不影响安全性的情况下出错。
(4)我的软件组件是划分的吗?
看门狗计时器是一个精妙的概念,如果嵌入式系统的一个组件停止响应,可以自动触发完全重置——我有时也想知道它们是否应该首先存在。
从历史上看,通常由于硬件的限制,嵌入式代码被设计成一个相当单一的整体,其中一个组件的缺陷或破坏可能会危及整个系统,因此需要监管机构来减轻软件故障的后果。
现在,除了一个无害的软件错误导致模块挂起之外,如果论的是该模块的破坏,会发生什么?当然,人们不希望攻击者因为某个软件模块的缺陷而控制整个系统。
为了降低这种风险,安全的物联网设备应该允许将其各种软件组件划分开来,并在它们之间实现硬件强制的边界。如果在RTOS之上构建,允许将模块作为独立的任务或进程运行,那么可能处于良好状态。
更重要的是,您的设备将理想地具有安全模型,允许限制每个软件模块可以访问的硬件资源。
(5)我的安全机制的网播范围有多广?
从分布式拒绝服务(DDoS)或勒索软件攻击到使用物联网设备作为访问企业网络的一种方式,物联网设备可能成为黑客的一个诱人目标。你应该假设你的设备会被黑客攻击,黑客通常比你想象的更有创造力和持久性。
纵深防御起源于军事领域,是一种通过将资源(防御工事,军事单位等)部署在前线并远远超出前线而延迟攻击者的技术。这样,即使攻击者设法突破前线,他们在深入战场时仍将面临几层防御。
应用于物联网设备(以及一般的IT),纵深防御包括实施多层安全控制,在每个潜在威胁面前放置几种类型的缓解措施。
例如,控制对物理总线的访问的内部防火墙、网络防火墙和安全引导的组合将大大减少您的设备受到威胁的机会。在不太可能发生的情况下,攻击者通过安全引导并能够执行恶意负载,防火墙将阻止他们物理访问设备的外围设备或连接到远程第三方服务器。
(6)鉴权是基于密码还是证书?
由于可公开访问的设备依赖于默认凭据,因此存在明显的威胁,除此之外,基于密码的身份验证在大规模管理时可能会很棘手。
例如,如何从被盗的密码中恢复,特别是当它被部署在现场的数千台设备使用时?另一方面,基于证书的身份验证不依赖于共享秘密,并且支持相互身份验证,从而限制了中间人攻击的风险。
(7)设备可以轻松自动更新吗?
说到物联网设备,俗话说:“如果你不能更新它,你就不能保护它。”
为了使设备在一段时间内保持安全,它需要允许随着安全威胁的发展和攻击者发现新的攻击媒介而推出安全更新。
在理想情况下,用户还应该有适当的硬件措施,以防止设备在更新后恢复到已知的易受攻击状态。
我的设备是否报告故障?
物联网设备可能出现故障的原因有很多。例如,它可能是由于攻击者试图通过利用漏洞或尝试暴力破解密码来控制它。它也可能仅仅是由于设备遇到角落情况并切换到未定义状态,使其易受攻击。
无论出于何种原因,能够跟踪整个机队的这些故障都是至关重要的,这样不仅可以诊断和纠正故障,还可以在攻击被有效利用之前隔离和减轻潜在的攻击向量。
有几种解决方案可以帮助处理错误报告。Azure物联网安全中心及其相关的开源代理是如何自动收集和记录事件的好例子,例如登录尝试失败,来自异常IP地址的连接等。
结论
人们可能喜欢亲自动手使用实际设备和实际代码来熟悉一个新领域。如果是这样的话,我只能推荐AzureSphere开发工具包作为工具来掌握构建安全物联网设备所需的工具。
该套件基于开放硬件参考设计,基本上实现了本文中列举的所有属性,并使物联网设备安全。它具有一个安全的,连接的微控制器单元(MCU),一个定制的高级基于linux的操作系统,以及一个基于云的安全服务,提供持续的,可更新的安全性。