查看原文
其他

刚刚,ofo 共享单车又被破解了!百度安全技术小哥是如何做到的?

谢幺 浅黑科技 2019-06-09


ofo 这回又该愁了。


继 ofo 第一代机械锁被曝存在“记住密码就能免费骑”漏洞后,最新一代 ofo 电子锁也被破解了。



今天(2017年9月6日)上午,在一个名为 “Xpwn 未来安全盛会”的黑客大会上,百度安全实验室的研究员小哥高树鹏(业内花名:小灰灰)和黄正展示了破解 ofo 小黄车最新一代电子锁的技术。



呃不不不不,放错图了不好意思,这是第一代机械锁,我们今天说的是第二代电子锁。


一人,一台电脑,一个简单的设备,不到1分钟,咔哒一声响,破解完成。



浅黑科技谢幺有幸观看了破解现场,并第一时间勾搭上了百度安全实验室的小灰灰和黄正本人。


本文将让你看懂破解 ofo 小黄车背后的技术原理和故事。


Let's  Rock !





1.为什么选择的破解对象是OFO小黄车而不是别的 ?


小灰灰:共享单车最近火得不行,作为我们生活中最常见的智能设备之一,自然就成为我们研究的对象了。(翻译:啥火研究啥)


破解OFO,是因为我们觉得 ofo 是目前市场占有率是 Top1,所以就拿它作为目标了。做技术研究当然要选择影响范围最广的产品,同时也是对我们技术实力的证明。


比如今天上半年,百度安全实验室在 Geekpwn 大会上还破解过某款广泛应用于自如、小猪、途家等公寓的智能门锁,也是市场占有率第一的。


谢幺:破解一个小众的设备,都不好意思拿出来说,是这个意思吗?


小灰灰:你这个人啊,瞎说啥大实话?!不过话说回来,这可能是第一个影响千万级单体设备的破解



2.破解过程用到了哪些技术原理,大致流程是怎样的呢?


ofo 和摩拜等共享单车的电子锁里都有SIM模块(类似于我们手机里装的SIM卡),用于和云服务器通信。


但是 ofo 和摩拜的通信原理不一样:


摩拜有发电装置,所以电子锁可以一直和服务器保持连通; ofo 的没有发电花鼓,为了省电,它在正常情况下不和服务端通信,只有在上锁的一瞬间和服务器发生短暂通信。


大致场景是这样子滴 ↓


我们(百度安全实验室)利用一台小型网络信号嗅探设备,截获了车辆和云服务器之间的通信,发现通信做了强加密


加密后,云服务器变成了不知所云 ▼



于是我们利用逆向工程技术,分析出了加密协议的弱点,从而解密了经通信协议加密的数据。


谢幺:咳咳……通俗解释就是:他们从万能的某宝买到了一个小黄车的电路板模块,皮鞭滴蜡严刑拷打,终于逼问出了它和服务器的接头暗号和交流方式。)


成功破解了通信协议之后,我(小灰灰)立马就想到了4种破解 ofo 单车的方法:



第一式:佯装还车术         


既然我们已经搞懂了单车和服务器的通信协议,那么只要模拟小黄车发出一段锁车信号,就能欺骗 ofo 服务器,让它误以为用户已经还车



接下来你只要不锁车,就可以随便骑啦!


不过这种攻击手法还是需要花一块钱来解锁,不够高级。



第二式:密码拦截术


我们知道,最新的小黄车电子锁每一次还车都会自动更换密码。它的实现原理是这样的:


每一次锁车,单车都向服务器发起请求,询问下一次密码是多少,服务器会返回单车下一次的密码,比如2134。当有用户想解锁该辆单车,服务器再把密码2134通过手机APP下发给用户。



按照这个思路,只要我站在一个正在还车的用户旁边,利用通信嗅探设备截获这段通信数据,就能直接拿到下一次解锁密码。



这种方法可以不花一分钱解锁小黄车,但需要等别人还车才能用,还是不够高级。


所以我想到了第三招:



第三式:误导小黄车大法


既然小黄车的密码由服务器下发,那我也可以伪装成 ofo 的服务器,给单车下发一个特定的密码,比如:1111,然后用1111去解锁车辆了。



同样,我也可以把设备放在地铁口,不断发出指令,就能把附近所有的小黄车密码都变成1111,让 ofo 公司失去对小黄车的控制权。


这还不是最绝的。



第四终极奥义:强制更新,完全控制小黄车


小黄车的电子锁里有一个 ROM 固件,相当于手机的系统。


我们通过分析找到了一个办法,可以伪装成服务器给小黄车下发一个固件版本更新,然后把我们自己做的 ROM 固件包刷进去,这样就能获得电子锁的完整控制权。(相当于给电子锁重装了一套系统)


正常情况下更新固件需要做服务端签名校验,不允许随意刷入其他非官方固件。然而,我们发现 ofo 存在一个 OTA 漏洞,并没有做校验,所以……



刷完固件之后,这辆车除了印着 ofo 的 logo,长得是黄色之外,就再也和 ofo 公司无关了。—— 它再也受 ofo 的控制了


如果我愿意,完全可以控制一大堆 ofo 小黄车,把它们刷成绿色,然后自己搭建一个服务器,写一个APP,然后零成本运营一家共享单车公司来。


现场演讲PPT ↓


小灰灰:好吧我只是开玩笑的,不过,不法分子确实可以利用这种手法控制大量单车锁,想想都可怕。)



3.不识相的问一句,百度安全实验室把 ofo 的锁破解了,不怕 ofo 会来怼你们么?(挖鼻)


小灰灰:啊?为什么要来怼我们?(黑人问号脸)我们是本着安全研究的目的去破解的,帮他们发现了程序漏洞,避免被黑产利用,薅羊毛什么的。维护了他们的利益啊和用户的权益啊。


比如,最近ofo正在搞七夕集卡活动,集齐卡片可以换77元钱,如果黑产利用这个漏洞去大量集卡,就可能给 ofo 带来巨额的紧急损失,并且干扰正常的活动秩序,让用户无法正常参与。


后期我们(百度安全)也会积极配合厂商修复漏洞,希望通过百度的安全能力为更多智能设备厂商解决安全问题


谢幺:那看样子我想错了,他们不仅不怼你,还应该来感谢你们了……



4.其他品牌的锁存在类似的安全问题吗?


不光是共享单车,很多物流、家居等其他领域也有使用类似的智能锁,我们研究了市面上很多智能锁,发现这类隐患是广泛存在的,


现场PPT展示的大量同类型车锁 ↓



虽然我们破解了 ofo 的电子锁,但发现其实 ofo 的车锁在安全防护上做得已经是同类产品中比较好的了


市面上部分品牌车锁,甚至没有对服务端通讯做加密,直接使用信号嗅探装置就能获得车锁和服务器的通讯内容。


甚至,在和一些锁厂的交流中,我们发现不少锁厂的工作人员对的网络安全意识相对缺乏,他们并不太相信有人能截获并解开通信流量。


所以这次破解展示也算是轻敲一下网络安全的警钟吧,未来智能锁的应用会越来越普及,也希望锁在智能化的同时,网络安全性也能跟上。


谢幺:期待看到你们的下一次破解。


谢谢~


好的本次勾搭到此结束,大家还有什么问题,请在留言区继续……


- 本期完 -



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存