首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

与 IoT 网络威胁作斗争

与 IoT 网络威胁作斗争

创新、效率和省钱优势正推动物联网 (IoT) 快速兴起。撇开大受瞩目的智能家用电器和可穿戴设备产品不谈,IoT                还改进了每个行业领域的业务运营,而且成为了物流、仓储、生产线、管道运输和交通管理领域的一股经过考验的颠覆力量。连网设备的联网和远程管理,提供了全新的生产力和信息管理能力。
例如,Continental Tires                以前依靠手写笔记在其庞大的轮胎生产厂房内查找橡胶车;该体系往往导致员工很难找到车辆,给企业造成了高成本的生产延误。该问题通过 IoT                技术得到了解决,IoT                使橡胶车能通过无线网络直接与业务库存管理系统集成和连接。员工可以使用一个移动设备应用程序实时找到大型厂房中的任何车辆,而厂房管理团队知道每辆车上的货物,知道将车从当前位置转移到生产线所需的时间,这使得管理团队极大地提高了厂房生产效率。
另一个示例是 Kenya Pipeline Company,它使用能感知油压水平、温度和流速的连网 IoT                设备升级了管道基础设施。这些简单的联网设备不仅向操作管理团队提供了实时度量指标和警报,还能够感知危险并自动作出反应,在检测到石油泄漏时关闭管道。无论泄漏是意外还是盗油所导致,快速的检测和响应为该公司节省了数百万美元,而且通过即时关闭流往受损管道的石油,限制了任何泄露所导致的环境影响。
这个由 IoT 连接、数据收集和物理世界物体的管理组成的新时代带来了新的安全风险,从复杂的自动网络攻击到拼命窃取数据并导致严重破坏的黑客。IoT                设备的安全性高度依赖于用来管理它们的软件和应用程序,这将软件开发人员推到了网络前线,要求软件开发人员知道如何开发安全的 IoT 应用程序。
本文将概述一些安全编码技术和安全功能的最佳实践,这些最佳实践将帮助开发团队创建能降低 IoT 安全风险、具有灾备能力的 IoT 应用程序。
IoT 网络威胁示例 像所有联网计算机一样,IoT 设备会受到攻击,无论是通过它们所连接的网络直接进行攻击,还是通过控制它们的应用程序间接进行攻击。黑客出于多种原因而攻击                IoT 设备。网络罪犯通过控制 IoT 设备来窃取数据、勒索企业来追求利润,或者以付费客户的名义使用 IoT 设备执行大规模分布式拒绝服务                (DDoS) 攻击。众所周知,一些单一民族国家会攻击关键国家基础设施中涉及的 IoT                设备并进行间谍活动。一些黑客只想制造混乱,以获得社会关注和自身价值。甚至一些网络恐怖分子也有兴趣攻击 IoT 设备,因为他们深知一些 IoT                网络攻击能导致真实的损害,包括受伤和死亡。考虑这些 IoT 网络威胁示例:
  • 2014 年发布了一款名为“”的儿童智能门铃,该门铃使用语音识别、移动应用程序和互联网来与儿童交互、通话和回答问题。根据定义,这个门铃是一个 IoT                    设备,在发布后不久就被安全研究人员攻破,最初发现可以使用粗话,后来发现可用作一个恐怖阴险的刺探工具,攻击者可以使用门铃上的蓝牙默认设置从门外与儿童交流。该安全研究人员既利用了该门铃(IoT                    设备)上的糟糕的固件安全性,也利用了控制该门铃的应用程序上糟糕的应用层安全性。2017 年 2 月,德国政府建议家长销毁这款门铃。
  • 2016 年 10 月,历史上最大规模的一次导致互联网 DNS 服务提供商 Dyn 瘫痪。这次网络攻击导致                    GitHub、Twitter、Reddit、Netflix、Airbub、Starbucks、PayPal                    和其他许多公司网站离线。这次大规模网络攻击的背后是一个庞大的受害设备僵尸网络,其中包括超过 152,000 个被恶意软件损害的 IoT                    设备。这是第一次在一次 DDoS 攻击中使用如此大量的 IoT 设备。每个 IoT 设备都受到一个名为 Mirari                    的恶意软件的损害,该软件使攻击者能远程控制这些设备,让它们向 Dyn 发送大量网络流量。人们发现 IoT                    设备的安全性很差,而且它不是根据安全编码实践来设计和开发的,这意味着它们很容易快速遭受大规模损害。
  • 2015 年 2 月,一段 演示了一种名为应用程序缓冲区溢出的攻击,然后演示了如何远程控制一辆车,在该视频中,黑客甚至设法禁用了这辆车的刹车。另外在                    2015 年 5 月,一位使用娱乐应用程序攻击了一架空运飞机;随后的 FBI 调查表明他曾短暂地控制该飞机。在大部分已知的 IoT                    事故中,被利用的安全缺陷都在应用层。因此,如何开发 IoT 应用程序可能事关生死。
  • 在 2010 年 6 月,一种高度复杂且独特的。Stuxnet 的设计仅针对在伊朗核电厂使用的特定软件控件。它利用了                    Microsoft Windows 中的零天攻击漏洞,通过核电厂的网络传播并扫描存在的 Siemens Step7 软件。Stuxnet                    恶意软件成功地攻破了 Siemens 应用程序,并发出指令来快速提高和降低离心分离机的转速,这导致离心机由于振动而遭到破坏。2009 年                    11 月到 2010 年 1 月,估计有超过 1000 台离心机被 Stuxnet 恶意软件损坏,这导致伊朗核计划明显推迟。Stuxnet                    恶意软件证明了,可以通过损害控制物理世界中的连网机器的连网应用程序来破坏它们。
我们能够从这些 IoT 网络威胁中学到什么?IoT 设备的应用层为黑客提供了最大的攻击面。应用层包含任何连接 IoT 设备的应用程序,这可能包括本地                Web 应用程序、基于云的应用程序,以及智能手机或平板电脑应用程序。因此,应用程序安全性必须是所有 IoT 应用程序的软件开发生命周期 (SDLC)                不可或缺的一部分,尤其是在设计、开发(编写代码)和测试阶段。
设计安全的 IoT 应用程序在 IoT 应用程序的计划或设计阶段,必须对所计划的应用程序的安全和隐私需求执行一次正式的“自顶向下”评估。IoT                应用程序开发需要一种“安全设计”方法。此方法意味着在设计阶段考虑所有 IoT                应用程序功能的安全需求,而不是在开发过程的后期假设并应用安全特性。像其他任何错误或问题一样,在开发阶段后期更正安全问题不但代价更高,而且花费的时间也更长。因此,在应用程序设计阶段,必须考虑和计划                IoT 应用程序的所有可能的安全需求。
安全需求评审在设计阶段,完成一次安全需求评审,以评审 IoT 应用程序的安全需求。
  • 规划用户帐户管理功能。确保 IoT 应用程序会拥有适当的帐户自定义水平。
  • 设计一种安全的密码重置机制。为了实现用户便捷性,通常会忽视密码重置过程,但脆弱的密码重置过程可能为系统提供一个简易后门。
  • 设计一种用户帐户结构,根据“必须有”原则来限制管理帐户特权。明智的做法是将管理操作和权限与标准用户帐户分开,因为此配置会限制发生用户错误配置风险,错误配置可能导致严重的安全漏洞。
  • 确定应用程序将如何存储帐户密码。必须避免在数据库和平面文件中以明文形式存储密码。最佳实践是使用一种加盐的哈希算法,比如 SHA-256                    和盐,将密码计算为一个唯一的哈希值,这意味着无法通过反转密码得到明文。
  • 考虑添加双因素身份验证功能,尤其对那些将处理机密数据的应用程序,入侵者打算从不受信任网络访问这些机密数据。
  • 考虑添加对集成 IoT 应用程序与帐户管理系统(比如 Microsoft Active Directory                    Services)的支持。此功能有助于将 IoT 应用程序集成到商业企业环境中。
  • 如果计划将个人或机密数据存储在第三方或不受信任的环境中,可考虑使用加密技术来保护静止数据。
  • 设计一个软件更新功能,确保只有经过数字签名(真实)的更新可供使用,而且如果可行的话,可以考虑采用一种自动更新流程。
  • 提供安全通知功能,允许应用程序使用一个企业安全监控系统或系统日志服务器发送安全警报,比如登录尝试失败。
  • 邀请专业安全人员审核和批准应用程序安全功能和设计。
隐私影响评估IoT                应用程序收集、存储和处理个人数据时,需要以遵守适用的数据保护和隐私法律的方式进行。根据居民的数据属于哪个国家,数据隐私法律可能有不同程度的严格要求。需要执行一次隐私影响评估,确保应用程序和                IoT 设备遵守适用法律,包括任何云和第三方对个人数据的存储或处理。
  • 记录并证明应用程序对所有计划的个人数据的使用合理性。
  • 仅将个人数据收集限制到绝对必要的程度。
  • 考虑使用例程来匿名化个人数据;只要操作正确,流程可以消除满足数据隐私法律需求的负担。
  • 计划编写例程或使用解决方案(比如 SSL)来加密存储的所有个人数据,以及通过网络(包括私有网络)传输的所有个人数据。
  • 确保隐私功能对用户透明。任何个人数据收集、处理和存储(包括云存储),都必须在隐私声明中向用户阐明。使用个人数据之前,需要获得用户的明确同意,确保用户签署或同意隐私协议,隐私协议需要解释应用程序的所有个人数据用途。
  • 考虑其他遵守行业条例的数据类型。确保所有监管需求都得到充分理解,而且会在应用程序设计中得到遵守。
  • 考虑移动应用程序隐私。移动应用程序可与 GPS、SIM                    卡、设备标识码、设备数据和来自第三方移动应用程序的数据进行交互。所有这些交互都可能对应用程序产生隐私问题,必须考虑这些问题。
返回列表