设备是任何物联网架构的关键,这里的设备指的是架构中所涉及的任何关于硬件设备(网关、传感器、遥控器等)
在许多IoT智能环境中,设备通常包括网关和操作设备,网关作为其他设备的控制中心,而操作设备是执行实际行动的设备(如按键遥控器)或监控传感器(烟雾探测器、水侵传感器、红外探测器等)
设备漏洞指的是嵌入式设备中常见的漏洞,比如:串口root权限访问,内存中提取固件等…
物联网设备中软件和云组件包括如下元素:
设备固件 WEB应用 用于控制、配置和监控设备的移动应用程序无线电通信是IoT架构安全的重要方面,基于无线电通信,简单说任何通信都是发生于设备与设备或应用程序与设备之间。IoT中常用的通信协议有:WiFi、BLE(蓝牙)、ZigBee(传输范围短,低功耗)、ZWave(最低功耗和最低成本的技术)、6LowPAN(IPv6低速无线个域网)和蜂窝数据等。
如何发现物联网设备的攻击面评估IoT攻击面的技术相比于评估WEB应用程序、移动应用程序并没有改变很多,多数仍是以WEB攻击面为主,比如市面上常见的网关+路由器的组合,然而这里将涉及很多IoT架构中的“组件”攻击面分析。
遵循以下步骤可以更快的发现IoT的攻击面:
下表是IoT架构中一个“组件”的攻击面分析:
上述分析步骤完成,我们就可以执行实际的测试攻击,既然我们已经有了明确的想法接下来看看我们可以使用什么样的攻击技术。
下面内容记录了对某款物联网设备的攻击面及安全分析,包括网关、设备、云端、移动客户端之间的通信安全,云端API接口逻辑、网关与设备绑定和解绑等关键操作的安全情况。
网关-云端-移动客户端:
在套用上面的攻击面分析模型后可以发现待测设备的机密性得到了良好的保护。联合报警网关、设备、云端系统、移动客户端四者之间的通信,除了日志统计信息(对于与 logs.***.com服务器的通信)外全部是加密通信,TCP 链接使用 TLS1.2 通信,使用 HTTPS 传输,UDP 数据使用 AES-128-ECB 加密后传输。
完整性通用得到了良好的保护。HmacSHA256,HmacSHA1,HmacMd5 的方式保护,Hmac 的 Key 来自于用户登录之后服务端下发的 token,联合报警设备的旧系统固件将数据本地明文存储在 xml 文件中,新版本中本地数据是加密存储的。虽然保证了机密性和完整性但仍存在安全问题,云端接口无法抵御重放攻击。
POST /api/*****/version/check HTTP/1.1
Host: api.******.com
api.******.com无防重放机制,通过api.******.version.check获取当前APP版本,通过更改客户端版本到较低版本,再重放该请求,可以返回需要升级的Response包。
POST /api/*****/login HTTP/1.1
Host: api.*****.com
api.*****.login通过传输用户名和加密的密码和短信验证码结合才可登录,该接口可以重放,通过分析业务安全防护逻辑可发现虽然云端有IP登录次数限制,但在次数限制内更换代理IP可以持续爆破用户名和密码。
POST /api/*****/getit HTTP/1.1
Host: api.*****.com
api.*****.getit仍可以重放,客户端退出账户,云端未将客户端sessionid做过期处理,导致云端还可以接受该sessionid并且返回相应的返回值。
客户端与服务端的通信安全:
客户端逆向分析通信的系统和认证方式:
移动客户端访问云端系统使用不同的认证方式,有 token 和 session 校验这两种。在IoT架构设计层面,云端为了验证每次移动客户端的请求都要求附带token,而每次移动客户端向云端请求token将增加云端服务的压力,故该联合网关报警产品允许单次批量获取token存储本地供请求时调用。默认每次申请10个token,将count值改为100甚至更多仍可获取相应数量的token。
如果你接触过IoT设备,你会知道联合报警网关可搭配:烟雾探测器、水浸传感器、红外探测器等使用。实际上传感器与网关设备的绑定、解绑也存在安全问题。
遥控、传感器与网关通信的频率为868MHZ,如下图所示:
抓取到的报警信号如下图所示:
休眠模式波形如下:
静默模式:
使用HackRF抓取传感器向联合报警网关发送的告警信号并重放,发现联合报警网关没有防重放机制,将抓取到的信号重放警报声马上响起。