您是一家创建面向消费者的IoT设备的公司,在IoT产品/数据安全策略中应该做些什么?
最初的想法:隐私、控制门、密码学、用于质量规划的漏洞/决策树等。
发布于 2017-02-17 07:16:07
IoT设备涵盖范围广泛的功能,从智能仪表到Web。这包括非常简单的设备,如智能灯泡和更复杂的设备,如语音控制集线器。
在设置IoT设备时,方便是很重要的。大多数消费者选择更简单的设置,比如"WPS推送按钮“。这可能不是一个大问题,因为攻击者需要在特定的时间物理接近。
IoT设备有三种主要的网络安全模型:
该设备通过本地网络连接到自动化集线器。通常,设备将与它找到的第一个集线器配对。有一个很小的漏洞窗口,但是在通信被加密之后。敏感系统可能需要更安全的密钥分配。一旦连接,设备通常完全信任集线器。
该设备通过互联网与制造商连接。要安全地这样做,应该在验证SSL连接的设备上有一个硬编码的证书。一旦连接,设备通常完全信任制造商。
这依赖于提供者来保证他们的服务的安全和可用。一些消费者不喜欢信任第三方的要求。这种安排往往是安全的,但只适用于某些设备,例如智能仪表。
需要有一个安全的过程来将用户的在线帐户与制造商以及他们的设备相关联。如果不这样做,就会产生类似于此日产叶易损性的漏洞。
设备在端口上侦听,通常提供web服务器。用户可以使用端口转发将其公开给互联网;设备可以使用UPnP自动公开。
身份验证是必不可少的;通常使用密码进行验证。设置初始密码有三种方法:
许多用户希望将密码更改为令人难忘的内容。这带来了许多风险--用户往往会选择错误的密码,并多次重复使用密码。为了减轻这一点,必须有:密码强度策略、锁定策略和密码必须被存储散列,并使用咸的、计算昂贵的散列。
必须仔细编写IoT软件,以避免在IoT设备中普遍存在的可利用的漏洞,如命令注入。嵌入式系统是一个挑战,因为内存有限。许多路由器运行BusyBox,并让Bash脚本充当CGI脚本。这是有风险的,因为很容易意外引入命令注入缺陷。考虑使用不同的嵌入式系统,例如LUA。
该设备应要求对所有请求进行身份验证。这大大减少了攻击面。例如,如果只有经过身份验证的用户可以利用这个Netgear脆弱性,那么它就不会那么严重了。彻底的CSRF保护也是必需的,或者外部网站可以通过登录用户的浏览器发送跨域请求。
所有网络连接都应该加密。只在启用现代协议和密码的情况下使用SSL。有几个很好的嵌入式SSL库,比如微小的SSL。IoT设备通常具有自签名证书.这是可以接受的,只要证书在每个设备上是唯一的。
大多数设备使用大量的C代码,这可能容易导致内存损坏。启用所有可用的防利用功能(堆栈保护、DEP、ASLR等)
您需要检查您的代码是否有错误。这应该包括静态分析(代码评审)和动态分析(笔试和模糊化)。
大多数IoT设备并不能抵御物理上的本地攻击者。那些这样做的人(例如智能仪表)可以采取基本的预防措施,比如禁用JTag接口,从而使攻击更加困难。更先进的防篡改措施是可能的。
大多数设备应该具有默认启用的自动更新系统。设备必须只接受签名更新,并且需要有防止降级攻击的保护措施。
日志记录带来了隐私风险,特别是在带有麦克风的设备中。我们需要权衡日志对用户的有用性和隐私风险。在大多数情况下,IoT设备应该保留有限的日志。一个有用的日志:侦听服务应该记录所有连接尝试--通过成功和不成功的身份验证。
https://security.stackexchange.com/questions/151484
复制相似问题