10 大 IoT 安全挑战

随着越来越多 IoT 设备面世,部署在无法控制、复杂且通常恶劣的环境中,保护 IoT 系统面临着大量独特挑战。依据 Eclipse IoT 工作组 2017 年的 IoT 开发人员调查,安全是 IoT 开发人员关注的首要问题。

下面我将介绍我认为 IoT 安全面临的 10 大挑战:

• 保护资源受限的设备
• 授权和验证设备
• 管理设备更新
• 保护通信
• 保证数据隐私和完整性
• 保护 Web、移动和云应用程序
• 保证高可用性
• 检测漏洞和事故
• 管理漏洞
• 预测并抢先预防安全问题

1 – 保护资源受限的设备

许多 IoT 设备拥有有限的存储、内存和处理能力,它们常常需要能够在低功耗条件下运行,比如在使用电池运行时。
高度依赖于加密的安全方法不太适合这些资源受限的设备,因为它们执行复杂加密和解密的速度不足以让它们实时安全地传输数据。

这些设备常常容易受到旁路攻击,比如功耗分析攻击,这些攻击可用来对算法执行逆向工程。相反,资源受限的设备通常仅采用快速、轻量型的加密算法。

IoT 系统应使用多层防御来弥补这些设备局限,例如将设备隔离到单独的网络上并使用防火墙。

2 – 授权和验证设备

由于如此多设备在 IoT 系统中提供了潜在的故障点,设备验证和授权对保护 IoT 系统至关重要。

设备必须建立它们的身份,才能访问网关及上游服务和应用程序。但是,有许多 IoT 设备未能有效实现设备验证,例如使用弱基础密码验证或原封不动地使用默认密码。

采用默认提供了安全保护的 IoT 平台有助于解决这些问题,比如通过启用双因素验证 (2FA) 和强制使用强密码或证书。IoT 平台还提供了设备授权服务,用于确定每个设备有权访问系统中的哪些服务、应用程序或资源。

3 – 管理设备更新

对在 IoT 设备和网关上运行的固件或软件应用更新(包括安全补丁)存在着许多挑战。例如,需要不断跟踪可用的更新,跨包含异构设备(它们通过一系列不同的网络协议通信)的分布式环境而一致地应用更新。

不是所有设备都支持无线更新或无中断更新,所以可能需要物理地访问设备或临时停止生产来应用更新。另外,可能不是所有设备都能够获得更新,特别是旧设备或制造商不再提供支持的设备。

甚至在更新可用时,设备所有者也可能选择不应用更新。作为设备管理的一部分,您需要持续跟踪每个设备上部署的版本,以及哪些设备适合在不再提供更新后退役。

设备管理器系统常常支持向设备自动推送更新,以及在更新过程失败时设法回滚。它们也有助于保证仅应用合法的更新,例如通过使用数字签名。

4 – 保护通信

设备本身受到保护后,下一个 IoT 安全挑战是保证设备通过网络与云服务或应用程序的通信是安全的。

许多 IoT 设备在通过网络发送消息之前未进行加密。但是,最佳实践是使用传输加密,以及采用 TLS 这样的标准。使用不同网络来隔离设备,也有助于建立安全、私有的通信,使传输的数据保持机密。

5 – 保证数据隐私和完整性

同样重要的是,无论数据通过网络最终传输到何处,它都应该得到安全的存储和处理。实现数据隐私包括在存储之前编辑或匿名化敏感数据,或者使用数据分离措施从 IoT 数据载荷中分离出个人可识别的信息。不再需要的数据应安全地处置,而且如果数据已存储,保持遵守法律法规框架也是一项重要挑战。

保证数据完整性,这可能涉及到采用校验和或数字签名来保证数据未被修改。区块链 – 作为 IoT 数据的一种去中心化分布式账本 – 提供了一种可扩展且具有灾备能力的方法来保证 IoT 数据的完整性。

6 – 保护 Web、移动和云应用程序

Web、移动和云应用程序及服务用于管理、访问和处理 IoT 设备和数据,所以它们也必须在一种多层 IoT 安全方法中受到保护。

开发 IoT 应用程序时,保证应用安全工程实践来避免漏洞,比如 OWASP 10 大漏洞。像设备一样,应用程序也应该通过提供 2FA 等选项和安全密码恢复选项来支持安全验证,无论是对应用程序本身还是应用程序的用户。

7 – 保证高可用性

随着我们的日常生活越来越依赖 IoT,IoT 开发人员必须考虑 IoT 数据及依靠该数据的 Web 和移动应用程序的可用性,以及考虑我们访问 IoT 系统所管理的物理设备的能力。连接中断或设备故障,或者拒绝服务攻击等攻击导致的破坏潜力不只是带来不便。在一些应用程序中,缺乏可用性的影响可能意味着损失收入,损坏设备或者甚至失去生命。
例如,在互联城市 中,IoT 基础设施负责交通控制等基础服务;在医疗领域,IoT 设备包括起搏器和胰岛素泵。要保证高可用性,必须保护 IoT 设备免遭网络攻击和物理篡改。IoT 系统必须包含冗余性来消除单点故障,而且还应该采用具有灾备能力且容错的设计,以便在出现问题时快速适应和恢复。

8 – 检测漏洞和事故

尽管竭尽所能,但安全漏洞和破坏在所难免。您如何知道您的 IoT 系统是否受到了损害?在大规模 IoT 系统中,系统在连接的设备数量以及涉及的设备、应用程序、服务和通信协议的种类上非常复杂,这可能导致难以发现何时发生了故障。检测漏洞和破坏的策略包括监控网络通信和活动日志中的异常,参与渗透测试和道德黑客行动来揭示漏洞,以及应用安全智能和分析来识别何时发生事故并发出通知。

9 – 管理漏洞

IoT 系统的复杂性还使得很难评估漏洞的后果或破坏程度,以管控其影响。挑战包括识别哪些设备受到了影响,哪些数据或服务被访问或损害,以及哪些用户受到了影响,然后采取措施来解决该情形。

设备管理器维护着一个设备注册表,可使用它来临时禁用或隔离受影响的设备,直到可以修复它们。此特性对网关等重要设备特别重要,可用来限制它们导致危害或破坏的潜力,例如它们在受到攻击后可能会利用虚假数据让系统泛洪。可以通过基于漏洞管理策略的规则,使用规则引擎来自动应用操作。

10 – 预测并抢先预防安全问题

更长期的 IoT 安全挑战是,不仅应用安全智能来检测和减轻所发生的问题,还用来预测和前瞻性地防御潜在的安全威胁。威胁建模是一种用于预测安全问题的方法。其他方法包括应用监控和分析工具来实时关联事件和可视化显现出来的威胁,以及应用 AI 基于以前措施的有效性来自适应地调整所应用的安全策略。

结束语

要安全地管理设备、数据及移动和基于云的 IoT 应用程序和服务,以及处理出现的威胁或问题,务必为 IoT 开发采用多层安全设计方法。

整合默认安全保护 – 始终为安全特性配置最安全的设置,包括在开发之前、期间和之后 – 将使您能够维护数据隐私和完整性,同时提供高度可用的 IoT 数据、应用程序和服务。

译文转自:developerWorks中国
本文翻译自:Top 10 IoT security challenges

--电子创新网--
粤ICP备12070055号