IoT 设备是一种连接互联网的计算机。尽管 IoT 设备与计算机有所不同,但您应该对 IoT 设备采用保护计算机所用的所有措施。举几个重要的例子,您需要确保仅向互联网开放受到恰当保护的服务器进程,使它们不会被用来攻入设备;加密您传输的任何信息;并强制用户更改管理帐户的默认凭证。
IoT 设备与通用计算机之间存在一个重要的区别。通用计算机拥有非常灵活的使用模式。IoT 设备即使能执行多得多的工作,但通常以高度受限的方式来执行一个或多个功能。要查看如何利用这一区别实施更好的安全保护,请阅读我的另一篇 developerWorks 文章保护嵌入在 IoT 设备中的 Raspberry Pi。
开放一些网络端口是有必要的。如果设备拥有基于 web 的接口,它需要向 HTTP 服务器开放一个端口(最好是 443,而且最好使用 HTTPS)。例如,如果 IoT 设备使用 MQTT 作为客户端(它很可能这么做,因为 MQTT 常常被视为 IoT 解决方案的最佳网络协议之一),那么这个端口需要对一个传出连接开放。
但是,通过网络建立的每个连接都是一个潜在的安全威胁。CVE Details 网站提供了一个漏洞列表,其中仅包含已发布的漏洞。还有无数未发布的漏洞,它们可能会影响您在 IoT 设备中使用的程序。尽管我们需要为 IoT 设备提供一些网络访问权限来执行其工作,但除此之外的任何权限都是不必要的风险,应该加以拒绝。此流程就是称为 “最小特权” 的基本安全原则。
在使用通用操作系统时,拦截网络访问的最简单方法是使用防火墙。如果您的 IoT 设备使用了 Linux,那么您可以使用 iptables 应用程序来确保防火墙的正常运行时间和安全性(可在这篇 developerWorks 文章中了解详情)。
使用专用操作系统(比如 NodeMCU)的设备开放不需要的网络端口的可能性要小得多。但是,使用 nmap 验证开放或使用的端口是一个不错的主意。
从网络安全角度讲,信息在互联网上传输时可能发生两种攻击,无论是从 IoT 设备传到中央服务器还是从该服务器传回 IoT 设备:
可以使用加密和证书来预防这些类型的攻击,您可以在 developerWorks 文章 “保护网络上的 IoT 数据” 中了解详情。行业标准解决方案 TLS 存在一个可能的问题是中间人攻击。TLS 包含一个解决方案,也就是标识服务器的证书,但这些证书只有在您实际验证了其中编码的身份时才能保护您。
IoT 设备通常是通过网络进行远程管理的。通常,设备从工厂发出时使用了默认凭证(用户名和密码),用户应更改它们。如果用户没有更改默认凭证,攻击者可能会利用它们来控制设备。这种攻击已在 IoT 设备上发生过 - Mirari、BrikerBot 和 Amnesia 恶意软件程序曾使用默认凭证攻入 IoT 设备。要避免此问题,用户需要在首次登录时立即更改默认密码,然后再执行任何其他操作。
您可以根据这篇对 IoT 设备面临的安全威胁的总体概述,思考您自己的设备面临的威胁和如何规避它们。没有完美的安全措施,但安全措施可以让您的 IoT 设备比其他目标更难攻击。
来源: http://www.ibm.com/developerworks/cn/analytics/library/ba-cn-dashdb-local-cloud8/index.html