随着物联网 IOT 的飞速发展, 各类嵌入式设备, 路由器安全研究也越来越火. 但因为跟以往纯软件安全研究的要求不同, 这类研究往往需要结合相应的硬件知识. 很多朋友困惑如何开始, 甚至卡在了该选何种工具上. 因此汪汪将会在系列文章中分享一些实战案例和个人经验. 希望能对嵌入式安全研究起到抛砖引玉作用.
在WINKHUB这个案例中我们将使用几款简单的入门工具如万用表; UART 转接头和导线等. 同时将介绍一种通过芯片阻断的方式, 获取系统ROOT 权限. 这种方法是俗称边信道攻击中最容易上手的一种. 汪汪希望可以借此小文让大家体验下, 并不是所有的边信道攻击都那么的高不可攀.
正所谓工欲善其事必先利其器, 拥有得心应手的辅助工具, 对我们研究嵌入式设备安全将起到事半功倍的作用. 而说起嵌入式设备不管是开发还是安全研究,都会用到这个UART转接头.
(如图所示: 各类UART 转接头)
Baudrate
终于到今天的主角上场了, 本次的攻击目标是这款名为WINKHUB 的物联网关. 你是否好奇为何需要此类网关设备呢? 玩过IOT设备的朋友就会发现, 现有的IOT产品仅同时支持1到2种互联方式. 比如Philips的HUE智能灯系列采用Zigbee作为联接技术. 而用户若是想把HUE跟使用Bluetooth的智能门锁互联,还需要在添加额外设备. 这从用户体验的角度上来说是非常不方便的. 而WINKHUB网关的优势就在于其同时支持WIFI; Bluetooth4.0; Zigbee; Z-Wave 和 RF 等主流的IOT 联接方式. 换句话说用户只需要买一个这样的网关, 就不用担心不同IOT产品间的兼容问题.![img]
然而成也萧何,败也萧何. WINKHUB 在功能上的优势, 也给攻击者提供了更多的攻击向量. 作为一款智能网关以往家用路由器上的安全隐患也依然存在. 譬如在早期的固件版本中就存在Command execution 漏洞 (set_dev_value.php). 而在官方修复的新版本中又被发现了SQL Injection漏洞.
图上为包含Command execution 漏洞的PHP 代码段. 通过此漏洞我们可以root 权限执行任何系统命令. 比如读取shadow 文件.![img]
(视频演示 WinkHubVuln1)
这里必须夸奖下WINKHUB的厂商,他们通过软件升级的方式迅速修复了这几个漏洞. 但对厂商来说, 还有一种攻击方式却没那么容易修复. 这便是用硬件芯片作为切入点, 通过边信道攻击来得到ROOT权限.
有很多朋友一提到边信道攻击,就觉得是个特别高大上. 其实边信道攻击也分好几种方式. 除了大家普遍了解的信息泄露之外, 错误注入攻击(Fault Glitch) 也是很常见的一种攻击方式.
(视频演示 WinkHubVuln2)
通过这个案例, 相信大家对嵌入式攻击方式有了更多的了解. 同时汪汪也希望在开发一款嵌入式设备的时候, 开发者们也可以多从攻击者的角度考虑. “Think like an attacker” 绝不仅仅是说说而已, 因为剑走偏锋, 逆其道行之. 攻击者往往会从你想不到的地方作为攻击点.