在构建 IoT 解决方案时获得正确的安全性可能证明极具挑战性。
可以说,保护解决方案的”云”端并不新鲜,而且有许多成熟的实践和支持框架可以帮助您正确完成操作。当涉及到”硬件”方面——最终连接到公共网络的嵌入式设备——对大多数人来说,这仍然是未知的领域。
在本文中,我们将介绍在构建连接产品时应该问自己的几个问题,并提供一些答案,以帮助您使下一个 IoT 设备尽可能安全。
您可能还喜欢:DZone 研究:IoT 安全性
我的设备的身份是什么?不可伪造吗?
当您以个人身份对网站或任何形式的在线服务进行身份验证时,您通常依赖多重身份验证(MFA) 来避免冒名顶替和身份盗窃。多重身份验证使攻击者几乎不可能伪造您的在线身份,因为他们可能无法访问验证上述网站或服务所需的所有证据。
例如,他们可能已经了解了您的密码,他们甚至偷了您的手机,但他们不知道您的 6 位 PIN,也没有您的指纹。简而言之:他们无法完成登录过程并冒充您。
是否可以实施类似的机制来防止物理 IoT 设备的身份盗窃?
简而言之,此类设备保存受硬件保护的加密密钥。私钥在存储在模块中后永远不会离开模块,然后使用公钥来证明设备的身份。由于密钥无法伪造,因此模拟设备实际上等同于获得对它的物理访问权限(这当然会带来其他安全问题,我们稍后将讨论这些问题!
“我知道,这是两个问题在一起!
我的代码在哪里运行?
“可信计算库“(TCB) 是指对系统安全性至关重要的硬件、固件和软件组件集。从前面提到的 TPM 到操作系统的内核,IoT 设备有几个方面将在确保系统的整体安全性方面发挥作用。
在设计 IoT 设备时,必须记住受信任的计算基础应尽可能小。这样,您可以最大限度地减少攻击的表面,并降低 TCB 中 bug(或功能!)的风险,允许攻击者绕过安全保护并部署恶意负载,例如,他们窃取有价值的业务数据。
如果可以,请尝试在操作系统或实时操作系统之上进行构建,该操作系统允许您仅提供并启用您真正需要的功能。在任何情况下,应用程序代码都应在 TCB 之外运行,以便它可以在不影响安全性的情况下行为不当。
我的软件组件是否隔离?
我发现看门狗计时器是一个精致的概念-如果你的嵌入式系统的一个组件停止响应,一个完整的复位可以自动触发-但我有时也想知道,如果他们应该首先存在。
从历史上看,由于硬件限制,嵌入式代码被设计为一个相当单一的 blob,其中一个组件中的缺陷或漏洞可能会危及整个系统,因此需要监视程序来减轻软件故障。
现在,如果除了导致模块(和您的系统)挂起的无害软件错误之外,我们还在其中讨论一个漏洞,会发生什么情况?当然,您不希望攻击者由于您的软件模块中的一个缺陷而控制整个系统!
为了降低这种风险,安全的 IoT 设备应允许将其各种软件组件分割开来,并在它们之间实现硬件强制边界
我的安全机制的网播有多宽?
从分布式拒绝服务(DDoS) 或勒索软件攻击到使用 IoT 设备作为访问公司网络的方式,IoT 设备可能是黑客的多汁目标。您应该假定您的设备将受到黑客攻击,黑客通常比您想象的更具创造性和持久性。
纵深防御起源于军事,作为一种通过在前线部署资源(防御工事、军事单位等)来延缓攻击者的技术。这样,如果攻击者设法突破前线,当他们深入战场时,他们仍然会面临几层防御。
应用于 IoT 设备(以及 IT 一般),纵深防御包括实施多层安全控制,将几种类型的缓解措施放在每个潜在威胁的前面。
例如,控制对物理总线、网络防火墙和安全引导的访问的内部防火墙组合将大大减少设备受到威胁的可能性。如果攻击者通过安全启动并能够执行恶意负载,防火墙将阻止他们物理访问设备的外围设备或连接到远程第三方服务器。
身份验证是否基于密码或证书?
你听说过shodan.io吗?它是一个搜索引擎,本质上是揭露物联网最黑暗的秘密。是的,’1234′和’管理员‘密码是其中一些秘密…除其他事项外,肖丹shodan.io/search?query=%22default+password%22″rel=”nofollow”目标=”_blank”,默认密码可能尚未更改。哦,对吧?
除了由于公开访问的设备依赖于默认凭据而导致的明显威胁之外,基于密码的身份验证可能证明难以大规模管理。
例如,如何从被盗的密码中恢复,特别是当现场部署的数千台设备使用密码时?另一方面,基于证书的身份验证不依赖于共享的机密,并且支持相互身份验证,从而限制了中间人攻击的风险。
我的设备能否轻松自动更新?
说到物联网设备,俗话说:”如果你不能更新它,你无法保护它。时期。
设备要随着时间的推移保持安全,需要允许随着安全威胁的发展和攻击者发现新的攻击媒介而推出安全更新。例如,可再生设备安全性包括推出操作系统更新(例如,修复零日漏洞)或部署新证书的能力。
理想情况下,还应制定硬件措施,以防止设备在更新后恢复到已知的易受攻击状态。
我的设备是否报告其故障?
IoT 设备可能出现故障的原因有很多。例如,这可能是由于攻击者试图通过利用漏洞或试图暴力破解密码来控制密码。它也可能仅仅是由于设备击中一个角落的情况下,并切换到一个未定义的状态,使其易受攻击。
无论是什么原因,必须能够在整个舰队中跟踪这些故障,这样它们不仅可以被诊断和纠正,而且在它们被有效利用之前也可以用来隔离和缓解潜在的攻击媒介。
有几个解决方案可以帮助错误报告ms/iot 安全文档代理”rel=”nofollow”目标=”_blank”—IoT 的 Azure 安全中心及其关联的开源代理是如何自动收集和记录诸如登录尝试失败、异常 IP 地址连接等事件的良好示例。
结论
本文的灵感来自于”高度安全设备的七大特性“,这是必读的。如果您想深入了解本文中列出的每个高级安全主题附带的一些最佳实践,您应该了解一下。
最后,如果你像我一样,你可能喜欢用实际设备和实际代码来弄脏你的手,以熟悉一个新的领域。如果是这种情况,我只能推荐Azure Sphere 开发工具包作为工具,以掌握构建安全 IoT 设备需要什么。
此工具包基于开放式硬件参考设计,该设计基本上实现了本文中列举的所有属性,并使 IoT 设备安全。它具有安全、连接的微控制器单元 (MCU)、基于Linux的自定义高级操作系统以及基于云的安全服务,可提供持续、可再生的安全性。
有许多教程和代码示例可以帮助您开始使用 Azure Sphere,并开始熟悉构建下一个连接设备时应该想到的所有事项com/文章/iot 安全挑战-和 5-有效方式-到哈-1″rel=”不跟随”_IoT 安全挑战和 5 种有效处理方法