在物联网的应用初期,物联网应用程序开发人员可以不必考虑安全性,因为他们构建了原型和最小可行的产品,旨在展示物联网可用于改变人们工作、娱乐和生活方式的不同方式。
但物联网发展到今天已经日渐成熟,2017年有84亿台物联网设备,Gartner公司预计到2020年将部署204亿台物联网设备。随着这一增长,物联网安全攻击的数量和复杂性大幅增加,开发人员不仅需要将安全作为优先事项,而且还需要将其作为首要事项。
正如Trendnet公司的SecurView摄像头、St.Jude公司的心脏监测设备和Jeep Cherokee物联网遭遇黑客攻击证明的那样,当安全性不是首要任务时,企业遭遇的物联网攻击可能会导致财务和声誉的重大损失。
虽然不可能使物联网应用程序(或任何类型的软件)100%安全,但物联网应用程序开发人员可以采用几种优秀实践来加强其物联网应用程序的安全性。这些优秀实践包括:
(1)在构建应用程序时遵循一组经过批准的加密标准。
(2)使用静态代码分析程序分析应用程序代码,以识别可能导致安全漏洞的常见编码错误。
(3)制定漏洞管理战略,在计划的、持续的基础上识别和修复物联网应用程序中的已知漏洞。
这三个优秀实践并不能使物联网应用程序完全免受恶意参与者的攻击。但是,它们可以显著减少物联网应用程序的漏洞和攻击面,从而降低开发人员应用程序被破坏的可能性,减少客户投诉和负面新闻。
遵循已批准的加密标准
大多数开发人员都明白,如果他们希望保持物联网数据的安全,他们应该对这些数据进行加密,特别是在数据从设备传输到云平台时,反之亦然。然而,面对严格的开发期限,以及需要充分利用其物联网设备的有限带宽和处理能力,一些开发人员选择不加密他们的数据或使用弱加密算法,这些加密算法承诺比他们更快或更轻,但没有提供适当的安全级别。
经验表明,采用加密快捷方式可能导致客户数据被盗、应用程序被禁用或出现其他问题。出于这个原因,开发人员需要与他们的安全团队密切合作,按照国际认可的专家(如美国国家标准与技术研究院(NIST))批准的标准和指南,适当地加密物联网应用数据。
选择使用此类经批准的标准不会对物联网应用程序开发时间、性能或功能产生重大影响。美国国家标准与技术研究院(NIST)为开发人员提供了如何简化加密标准与应用程序集成的指导方针。它们还提供了许多不同的标准供选择,因此开发人员可以找到一种可以为应用程序提供适当级别的安全性,而不会牺牲太多的性能或功能。这确实需要一些额外的工作和努力,但是如果物联网开发商想把安全作为首要任务,他们需要确保遵循批准的加密标准。
使用静态代码分析程序
许多开发人员熟悉静态代码分析程序及其发现常见编码错误的能力,这些错误可能导致影响软件质量的错误。但是,这些程序还可以识别不安全的编码实践,例如使用不正确终止的字符串,释放内存的指针和允许超出缓冲区末尾的缓冲区索引。这些常见的编码错误会造成安全漏洞,恶意参与者可以在其他功能应用程序中利用这些漏洞。
有多种静态代码分析工具可供使用,其中包括专有的和开放源码的工具,开发人员可以使用这些工具来提醒他们可能会造成安全漏洞的编码错误。开发人员应该研究哪些程序更好地支持他们的安全性和其他代码分析需求,然后确保在整个应用程序开发过程中,特别是在部署应用程序之前,他们使用这些静态代码分析程序来发现代码错误,这些错误将会导致出现安全漏洞。
同样,许多开发人员可能会尝试跳过这一步骤,因为程序所揭示的问题可能会阻止他们尽可能快地部署和商业化其他功能性应用程序。但是,正如上面提到的黑客采用物联网应用程序的例子所证明的那样,安全性的偷工减料通常会导致严重的问题。如果开发人员致力于向客户交付具有强大安全性的物联网应用程序,他们需要承诺使用静态代码分析程序来修复可能使其应用程序易受网络攻击的编码错误。
监视和修复已知的漏洞
例如媒体非常关注的所谓的“零日”漏洞,而这些漏洞是软件供应商事先不知道的。然而,对于大多数攻击者来说,其结果是,在物联网应用程序中使用的数百万个软件组件中存在的已知漏洞数量不断增加,这些软件组件未被修复,这可能是因为组件的用户不知道该漏洞,也可能是因为他们没有采取措施更新其应用程序以修复漏洞。
所有物联网应用程序开发人员都应了解其应用程序可能因将第三方软件组件纳入到其应用程序中而导致的已知漏洞,无论是开源组件(如Linux操作系统和相关软件)还是专有组件。但是,了解物联网应用程序的设备固件、操作系统和其他第三方软件组件中的所有已知漏洞的最新信息并非易事。构建这些软件组件的企业、政府机构和其他监管机构通常每月在这些类型的软件组件中识别出多达1,000个不同的漏洞。
幸运的是,有些资源可以帮助开发人员及时了解新的漏洞。例如,美国国家漏洞数据库(NVD)是由美国国家标准与技术研究院(NIST)运营的公共资源,它对所有类型的软件组件(包括专有软件和开源软件)中的已知漏洞进行分类。为了确保他们的物联网应用程序清除或没有任何已知的漏洞,物联网开发人员可以为其物联网应用程序编制一份安全物料清单(BOM),列出应用程序中使用的所有软件组件和版本,然后监视新的美国国家漏洞数据库(NVD)这些组件的已知漏洞。或者,有许多专有和开源工具利用免费API查询美国国家漏洞数据库(NVD),然后评估其组件的代码库或识别暴露服务的版本(如DNS,HTTP/S,网络接口上的NTP、SSH)。
但是,仅仅了解已知漏洞并不能解决这些漏洞。这就是开发人员不仅要持续检查新的已知漏洞的原因,还要制定计划,通过安全更新的补丁定期修复新的已知漏洞。在理想情况下,这样的计划应允许远程(无线通信)和自动执行这些更新。如今,许多消费者物联网应用程序已经包含一个启用远程自动更新的选项。许多开发人员构建的商业物联网应用程序有时需要更多的协调来实现这种远程的自动更新,但这应该只是目标。在任何情况下,即使无法远程或自动进行更新,物联网开发商也必须制定某种计划,及时部署针对其应用程序中已知漏洞的安全更新。
强大的安全性将使物联网的未来增长成为可能
物联网正处于一个重要的转折点。市场继续快速扩张,每天都在推出激动人心的农业、供应链、工业、公共安全、消费者和其他物联网应用。然而,其他引人注目的物联网应用程序漏洞可能会威胁到企业和消费者在物联网中的信任度,尤其是当它越来越多地用于收集敏感数据或完成关键任务时。
为了加强对物联网的信任,开发人员需要致力于将物联网安全作为首要任务。开发人员需要实施物联网安全最佳实践,其中包括采用经过批准的加密标准,使用静态代码分析程序发现可能产生安全漏洞的编码错误,以及定期识别和修复其应用程序中已知漏洞的策略。如果物联网开发人员通过实施这些物联网安全最佳实践,将安全性作为真正的首要任务,那么企业对物联网的信任将会提高,他们的业务也会随之增长。