还记得当年红极一时的黑客操控大厦电力玩起坦克大战的视频吗?(就是这个)视频真实性抛开不论,带给围观群众的震撼效果绝对是十级。
雷锋网今天带来的是另一组大片。
视频中的神操作者是来自腾讯安全平台部Blade团队的两位小哥Nicky、Xbalien。没错,就是这两位⇊
▲左xbalien,右Nicky
这两位还在不久前举办的欧洲顶级安全会议HITB大会上分享了如何以上帝视角,完成操控大楼灯光的壮举。
月黑风高夜,某座大厦的36楼突得陷入黑暗。
一片静谧中有人屏息以待,心中默念:1,2,3!一间屋子亮起了灯光,又一间亮了起来……
监控器前的拍摄团队大喊一声“卡”,录制结束了。
Nicky和Xbalien长舒了一口气,拍了三次,终于搞定了。
这不是大电影的拍摄现场,主角不是明星,而是一台无人机和一层高楼。这波操作也并非你所预想的特效制作,而是真实上演的针对智能楼宇设备 ZigBee 通信协议新的攻击方式——有别于以往针对某一厂商的某一产品进行攻击,而是通用、快速的批量攻击。
当然要实现视频中的炫酷动作需要三步。
第一就是利用无人机,使其载着树莓派(Raspberry PI)设备以较慢速度围绕某一楼宇进行网络信息搜集。
具体来说,要发送一些信标包探测 ZigBee 信道的网络网关信息,比如设备ID信息,还会进一步探测其使用的密钥并进行解析。
这些结果信息都会被反馈回来进行半自动化分析。
所谓的半自动化分析是什么?
这就要回到ZigBee协议本身了,ZigBee广泛应用于智能家居系统中,诸如ABB、三星、小米等厂商都有生产ZigBee设备。为了使用户更方便地连接第三方厂商生产的ZigBee设备,许多制造商使用ZigBee联盟通用密钥,允许设备在不同的供应商之间进行配对。也就是说你可以用小米的网关控制三星设备,而控制灯光、窗帘、空调等也有标准的实现指令。
所谓知己知彼,半自动化分析就是让你更清楚的了解“彼方”,通过分析 ZigBee 设备来源厂商以及其控制指令是否标准,如果是兼容协议,就可以自动生成攻击指令。假如遇上特立独行的厂商,懒得去兼容协议,或者在控制指令中加入了特殊指令,就需要预先进行简单的人工分析及提取指令。
完成半自动化分析后,无人机第二次起飞进行自动化批量攻击,此时就会出现视频中的画面,无人机“操控”灯光,窗帘,空调等设备自动打开与关闭。
此处有个大胆脑洞,是不是以后求婚可以有这种操作……(据说两位小哥哥也有此想法)
当然批量攻击的实现是借前两步中收集 ZigBee 密钥和网络信息的光,通过模拟网络节点发送包含攻击载体的广播包,控制所有灯一起开或者关。
但要知道,一个楼层可能有几百个ZigBee设备,它们分布在不同房间中处于不同信道。而每次攻击却只能针对一个信道,还存在要攻击的信道距离无人机稍远的可能,这会拖慢整个测试速度。
“我们做了一个新的改变!”Nicky兴奋地告诉雷锋网编辑,他们在树莓派上同时使用了两个嗅探设备和两个发送设备,以便在前期搜集网络信息时可以加快速度。同理,在发射 ZigBee 数据包进行攻击时,也可以同时使用两个发射器发射信号,加速攻击流程。
ZigBee并非没有防御措施,但Nicky和Alien利用一些漏洞绕过这些防御措施。比如Blade团队还发现了一种新的绕过ZigBee协议重放防御机制的方法:通过在ZigBee网络中创建一个虚拟节点,并将这个虚拟节点的设置一个随机的MAC地址,和一个与网络中节点设备相同的网络地址,这样在以当虚拟节点身份发送广播包时,序列号与计数器都会从0开始计数,完全可以随心所欲的控制所有设备。
Nicky和Alien研究这种批量攻击方式时间不算短,从2017年6月开始,历经两三个月,中间也有不少难题。比如攻击高层楼宇的智能设备可能面临信号发射功率不够,需要寻找载体——无人机,对无人机的控制技术也有一定要求。另外为了不影响大楼中的工作人员办公,测试往往选择深夜进行……
不过这两位研究员也乐在其中,他们在不久前举办的HITB大会上分享了针对 ZigBee 协议的批量攻击方式以及对应的安全加密机制,主要有以下几点。
如果不需要兼容其它厂商的设备,厂商可以避免使用通用安全密钥。
以“新”代“旧”,目前市面上不少芯片厂商提供较老的芯片只支持老版本的ZigBee协议栈,但老版本的ZigBee协议是存在漏洞的,建议使用高版本的ZigBee协议栈。
制定自定义加密方案,ZigBee包含物理层、网络层、应用层等,建议厂商在应用层,用非对称算法实现自己的认证加密方案,这样即使密钥泄露,网络通信也有一定的安全保证。
密钥存储,市面上一些厂商的 ZigBee 固件或者硬件的flash芯片会明文存储一些密钥。黑客只要购买这种智能设备就可以从固件中提取密钥进而攻击同类产品。因此密钥不应该以明文方式存储在固件或芯片中,应该做一些加密或打散方式存储,提高黑客攻击成本。
拿下一层楼不算什么,Blade团队的下一个目标是整栋酒店,他们瞄准的是KNX协议。
目前,智能家居的通信协议多使用ZigBee协议,而KNX常用于大型公共场所,如体育场馆、机场、豪华酒店以及核电站、工厂等一些工业设施。Nicky和Xbalien从去年11月开始研究这一协议,发现这一协议相关的研究及安全工具极少,他们前期花费了大量时间和精力去分析这一协议。
早前在 DEFCON 大会上,曾有安全研究员通过WiFi网络入侵了深圳京基100大楼瑞吉酒店的 KNX系统,并控制了酒店的照明系统。但 Nicky和Xbalien在实地测试时发现多数酒店的KNX网关网络与酒店本身的WiFi网络相隔离,其 KNX 设备的最后网关在单独的控制室内,旁人接触不到。
通过对KNX协议的分析,他们发现可以通过接入KNX电缆网络来修改KNX/IP路由器的配置,在不影响整个原有KNX网络设备的正常使用情况下,攻击KNX网络中的任何设备或嗅探KNX网络流量,这种攻击同时可以导致整个KNX网络的设备拒绝服务。
当然这只是一个思路,能否实现还需亲自接触KNX设备进行测试。
于是两位小哥哥自己添置了KNX设备,搭建起小型KNX网络,并在上面完成了整套攻击流程。
“但这种小型网络无法完全模拟大型网络的攻击场景,于是我们决定,去某五星级酒店开房。”
选择某五星级酒店开房是有原因的,当然不是你想的某些不正经原因,而是因为该酒店的所有房间以及走廊或大厅都用到了KNX设备。这是一个较大型的网络,其中可能使用了几千甚至上万个KNX设备,以此为研究目标就可以实现大型KNX网络的批量攻击。
于是,Nicky和Xbalien一拍即合,跑去酒店花了1800开了一间房,在里面测试了一天一夜,成功验证了利用上述攻击方式可以操纵酒店走廊灯,以及客房“请勿打扰”灯牌亮灭。
(试想若是这波操作被心怀不轨的黑客利用,在男女主人公在床上酣战之时,窗帘慢慢打开……好吧,以上情节只是编辑的无良脑洞……)
他们也在HITB大会上分享了针对KNX协议的安全防护建议:
目前国内外多数厂商仍在使用老旧KNX设备,这些设备不兼容最新版KNX协议,更不支持最新版协议中的加密机制,暴露出来的漏洞有很多,应该将设备升级到新版协议。
KNX网关要做好网络隔离,不能将KNX网关开放在公网上,会带来很大安全风险。
另外,最新版的KNX协议支持数据包加密,但很多厂商没有开启这一安全选项。我们建议厂商开启这一选项,对数据进行加密。
针对这两种协议的攻击是否会被黑客利用?
Nicky告诉雷锋网,目前新闻中并未出现过黑客大规模攻击这些设备。究其原因可能是ZigBee和KNX皆偏向控制设备一类的通信协议,本身不会包含一些敏感信息或者数据。而黑客攻击往往带有逐利性,攻击这两种协议所能得到的回报不高,通常只是为了炫技。
但实际上这类攻击同样可能被恐怖分子用于攻击城市电力与照明系统,制造社会恐慌等。
“我们选择研究的这两种协议是智能楼宇领域使用最广泛的、最具代表性的协议,通过这两种协议的研究,我们认为智能楼宇领域普遍使用协议的安全性不高。”
这种安全性不高的原因主要源于厂商。
这倒不是说厂商对协议安全性毫不关注,而取决于在部署安装设备时的安装人员是否有开启安全选项或者用正确的网关及路由设备部署网络。也就是说,就算设备是安全的,安全人员却没有正确部署设备,同样会造成安全问题。另外,还有一些国内外厂商缺少由于安全技术人员,基本只要实现设备可用性就不会再考虑设备的安全性的原因。
当然,这些都只是冰山一角,智能楼宇的安全攻防之战还任重道远。