硬件安全|智能门锁安全研究方法总结
0x01智能门锁安全发展趋势
2017年智能门锁产值超过百亿元,市场规模接近800万把,预计2020年智能门锁市场规模将达到4000万把。
智能门锁是一个典型的物联网系统,这个系统是由感知层,传输层和应用层组成,包括智能门锁设备,智能家庭网关,手机APP,云端服务组件组成。
传输层和应用层技术现有的互联网技术,相对成熟稳定。
在感知层,用户身份认证方式主要有固定密码,临时密码,指纹,掌纹,人脸识别,RFID,NFC和APP。
近场接入技术主要有:WiFi,蓝牙,ZigBee,433MHz,315MHz。
随着智能门锁普及,各种安全漏洞也爆出来:指纹复制,密码猜解,强磁干扰,APP漏洞,近场通信劫持,WIFI流量劫持,云端服务器漏洞。
智能门锁的安全性问题将直接导致家庭生命财产安全问题,我会梳理智能门锁的各种分析和开锁技术。
广义上来说,有密码门锁,指纹门锁,APP门锁,蓝牙门锁的任一功能的门锁都可以称之为智能门锁。
从技术发展趋势方面说,智能门锁的联网方式目前主要是WIFI和蓝牙,此外还有Zigbee、433MHz和 315MHz等,由于WIFI和NB-IoT优势非常明显,未来将会成为智能门锁的主流联网方式。
目录
智能门锁安全发展趋势
智能门锁技术发展现状
1.智能门锁组网技术
2.智能门锁开锁模式
1.固定密码开锁模式
2.临时密码开锁模式
3.生物钥匙开锁模式
4.智能卡钥匙开锁模式
5.手机APP开锁模式
智能门锁安全分析和案例研究
1.安全风险模型
2.智能门锁安全风险
1.生物钥匙攻击
2.固定密码安全
3.固件窃取逆向
4.无线馈电攻击
3.移动应用安全风险
4.近场通信安全风险
1.FRID门锁攻击
2.315MHz无线电门锁攻击
5.网络通信安全风险
6.云平台服务安全风险
1.用户身份鉴别漏洞
2.访问控制漏洞
3.云管理系统平台存在web漏洞
智能门锁漏洞挖掘测试
0.了解门锁的使用方法
指纹开锁:
蓝牙开锁:
密码开锁:
授权管理异常状况
1.逆向分析
APP攻击面分析
android 模糊测试
具体分析
2.用burp搭建云端-手机-门锁的测试环境
对数据包进行测试
3.搭建云端-门锁的抓包环境
对数据包进行测试
4.寻找门锁固件包
没有的话研究固件提取方法
分析总结
0x02智能门锁技术发展现状
1.智能门锁组网技术
智能门锁的整体组网机构是物联网三层结构:感知层,传输层,应用层。
感知层由智能门锁和APP组成;传输层包括家庭智能网关和移动基站;应用层是智能门锁云平台。
下图列出了现在常见的智能门锁的联网方案:
在感知层由于受到功耗的限制,大部分智能门锁采用电池供电,其通信方式主要有蓝牙、ZigBee、NB-IoT、433MHz和315MHz。
在传输层,主要通信方式是家用宽带(WIFI)和移动通信。
应用层就是智能门锁的云端服务,主要负责智能门锁的设备接入,身份认证,逻辑控制,数据分析和业务展示。目前智能门锁云端服务主要部署在公有云上,比如阿里云,AWS,Azure。
2.智能门锁开锁模式
1.固定密码开锁模式
用户在安装固定密码智能门锁的时候,需要先进行密码初始化,并完成密码设置,该密码存储在智能门锁的固态存储空间中,同时也会上传云端进行存储。
用户开锁时,输入密码,比对成功就会开锁
2.临时密码开锁模式
在临时密码开锁模式下,户主通过手机APP从云端获取当前时段开锁的临死密码,通过微信短信将密码发送给访客。
访客在门锁输入密码,门锁会将该密码与云端生成的该时段的密码进行比对,如果成功就开锁。
3.生物钥匙开锁模式
目前市面上稳定且可靠的智能门锁开锁技术主要是指纹,掌纹,虹膜和人脸。
该类门锁会将用户的指纹,掌纹,虹膜和人脸生物信息存储到智能门锁固态存储或者云端设备上。
用户开锁时,需要采集用户的指纹,掌纹,虹膜和人脸特征,传到云端和特征信息进行对比。
4.智能卡钥匙开锁模式
用于智能门锁开锁的智能卡主要有FRID卡,NFC卡和CPU卡三类,这种门锁在酒店随处可见。
使用FRID卡的门锁,门禁管理系统会在FRID卡中写入代表该卡身份的的字符串,在开锁时,门锁提取FRID卡中的字符串,并传到云端进行对比。
使用NFC卡和CPU卡的门锁,门禁管理系统会在NFC卡和CPU卡中写入代表该卡身份的私钥和公钥,开锁时,卡通过门锁与云端进行双向认证。
5.手机APP开锁模式
采用手机APP开锁的门锁,在初始化过程中,云端会将门锁和指定APP绑定。
在用户开锁时,用户在手机APP上完成认证,然后在手机上点击开锁按钮,智能门锁会接收到云端发送的开锁指令。
0x03智能门锁安全分析和案例研究
1.安全风险模型
根据智能门锁的组网体系结构,安全风险模型可以划分为以下五个方面:智能门锁安全风险(针对智能门锁设备的攻击)、移动应用安全风险(针对智能门锁手机APP的攻击)、近场通信安全风险(针对WIFI、ZigBee、蓝牙、433和315等通信方式的攻击)、网络安全风险(针对家庭智能网关和有线数据拦截的攻击)和应用安全风险(针对智能门锁云平台的攻击)。
2.智能门锁安全风险
1.生物钥匙攻击
智能门锁的生物钥匙中,虹膜和人脸的伪造难度较高,已知攻击风险较小;但是掌纹和指纹有较高的伪造风险。
2.固定密码安全
在使用固定密码的智能设备中,经常出现使用默认密码,后门密码,密码逻辑漏洞和短密码等问题,并存在密码泄露问题。
3.固件窃取逆向
攻击者提取固件内容,然后逆向分析固件中的漏洞,再结合其他手段对漏洞进行利用。
4.无线馈电攻击
(1)原理分析
无线馈电是一项应用广泛的技术,包括电磁炉、无线充电、非接触卡等。一些智能门锁由于设计缺陷,在布线及电路设计时没有考虑电磁干扰问题。攻击者可以利用特斯拉线圈通过无线电波干扰,使得智能门锁的内部电路产生直流馈电。
如果这种直流馈电足够高,将触发智能门锁小型电机驱动锁芯实现开锁。或者导致MCU的逻辑异常而重启,有的智能门锁默认重启后会自动开锁。
特斯拉线圈通电后,可能产生两种效果:一是利用智能门锁电路的馈电系统驱动电流打开门锁;二是该线圈产生强电磁脉冲攻击智能门锁芯片,会造成芯片死机并重启,有的智能门锁默认重启后会自动开锁。
3.移动应用安全风险
(1)原理分析
移动应用APP中存在各种常见的安全风险:
移动端APP代码或者固件中使用固定的加解密秘钥;
移动端APP代码没有采用加固或者混淆技术导致代码被完整逆向;
开发人员遗留的代码BUG,导致绕过相关权限认证;
移动端操作系统出现相关漏洞,导致被植入恶意代码,进而控制手机;
移动端APP和设备之间出现通信漏洞;
攻击者利用智能门锁对应的APP中存在的缺陷,绕过智能门锁,APP和云端服务预先设定好的逻辑,实现非授权的开锁行为。
(2)攻击案例
某品牌智能门锁存在任意密码重置漏洞,通过逆向智能门锁APP和云端网络交互的报文,掌握了相关云端接口的定义。攻击者利用重置后的密码完成登录后,可以进行开锁和修改用户信息等操作。
在此研究基础上,我们又做了进一步的安全分析,发现了一个影响更大的安全问题:攻击者通过该漏洞可以获取该智能门锁产品的全部用户资料,包括手机号和开门密码。由于该漏洞不依赖手机验证码,这种攻击具有更大的隐蔽性,因此危害更大。
4.近场通信安全风险
1.FRID门锁攻击
(1)原理分析
FRID卡中存储代表持卡人身份信息的字符串,一般的FRID卡中的信息都是以明文形式存储的,攻击者可以读取里面的信息,并复制到其他卡中,从而获得持卡人的授权信息。
(2)案例分析
某智能门锁是FRID门锁,测试人员从淘宝购买简单的FRID读写器,就可以从已有的FRID卡中读取信息,写入到新卡中,并可以正常开锁。
该类RFID卡常常以小区门禁、楼宇门禁和酒店房卡等形式出现,造成的影响面极大。
2.315MHz无线电门锁攻击
(1)原理分析
无线电门锁响应指定的无线电信号,一般的无线电门锁的信号是固定的,攻击者可以重放无线电信号,或者对信号进行修改,从而伪造真实用户的开锁行为。
(2)案例分析
某智能门锁存在无线电重放攻击漏洞,该门锁为无线电门锁,测试人员从淘宝上购买简单的无线电收发器,即可抓取无线电门锁开关门信号,并存储此无线电数据包到本地,通过重放包含开锁信号的无线电数据包即可打开门锁。
该类无线电门锁常常以车库门禁、家庭门禁和汽车门等形式出现,这种攻击行为可形成巨大安全隐患。
5.网络通信安全风险
(1)原理分析
有些智能门锁可以通过wifi直接连接到公网上,手机在远端也会通过WIFI连接到智能门锁和云端,考虑到大量的智能门锁通信协议采用明文传输,通过攻击WIFI路由器,智能家居网关,或者劫持WIFI信号,可以实现对智能门锁的控制。
(2)案例分析
某品牌智能门锁存在设计漏洞(漏洞编号CNVD-2016-12586)。测试人员通过WIFI信号抓取,分析出APP与智能门锁云端服务之间的通信是明文传输,并识别出智能门锁开门和关门的特定数据包。
测试人员在劫持WIFI信号后,即可通过WIFI信号重放攻击的方式,实现对门锁的控制。
6.云平台服务安全风险
1.用户身份鉴别漏洞
未限制密码长度,未限制非法登录次数,重置密码的短信验证码又在本地产生,或者存在于返回的数据包中。
2.访问控制漏洞
后端信息系统没有对数据包中重要访问控制参数进行验证,导致越权操作。还可能存在远程代码执行漏洞,root权限执行任意命令。
3.云管理系统平台存在web漏洞
常见的web漏洞同样存在于智能门锁云管理平台上,比如:SQL注入,XSS,SSRF,任意文件上传,安全配置错误,敏感信息泄露,访问控制缺失,使用已经存在漏洞的组件,未验证的重定向。
0x04 某品牌智能门锁漏洞测试
0.了解门锁的使用方法
通过说明手册进行基本配置:
将门锁外面板和内面板接通,安装电池后智能门锁通信模块开启,下载APP添加搜索设备,APP会自动通过蓝牙搜索到附近设备,长按功能键两秒后和手机配对成功。
APP功能和攻击面分析:
指纹开锁:
录入指纹后,通过指纹可以开锁,之前已经分析过,是将已经录入的指纹上传到云端,开锁时放上指纹,传到云端进行对比
蓝牙开锁:
将手机和门锁配对后,可以使用手机滑动开锁。在初始化过程中,云端会将门锁和指定APP绑定。开锁时,在手机上点击开锁按钮,智能门锁会接收到云端发送的开锁指令
设备共享功能可以添加访客的手机APP与门锁绑定。
密码开锁:
在APP中录入密码,就可以通过密码开锁,密码开锁分为普通密码和一次性密码
该固定密码存储在智能门锁的固态存储空间中,同时也会上传云端进行存储。用户开锁时,输入密码,比对成功就会开锁
在临时密码开锁模式下,户主通过手机APP从云端获取当前时段开锁的临死密码,通过微信短信将密码发送给访客。
访客在门锁输入密码,门锁会将该密码与云端生成的该时段的密码进行比对,如果成功就开锁。
授权管理
使用手机APP添加或者删除用户,授权开锁方式
异常状况
输入密码错误报警:连续输入5次密码错误,将在30秒内无法输入密码
输错指纹报警:连续使用未录入指纹15次,将无法在30秒内再次输入指纹
撬锁报警:门锁被暴力拆下,将发出高分贝报警声
注意事项:半年以上未使用APP和门锁进行连接,除了管理员,其他账户不能连接,无法使用蓝牙功能开锁
1.逆向分析APP
看看APP里面有没有什么漏洞,androidkiller反编译发现mainActivity不能访问
使用GDA看java源码
如果这样静态分析,就只能代码审计找一些接口位置,但是人工成本太高
先分析了解一下,Android软件层面有什么漏洞,学习了解漏洞攻击面和漏洞挖掘方法
攻击面分析:
应用权限问题:开发者会申请比应用实际更高的权限
敏感数据不安全传输:
不安全 的数据存储:
通过日志的信息泄露:
不安全的IPC端点:
远程攻击面:协议栈的溢出漏洞,暴露的网络服务,手机web浏览器漏洞,客户端假冒证书漏洞
本地攻击面:系统调用,套接字,文件系统,共享内存,基带接口
android 模糊测试
对Boardcast Receiver进行模糊测试;
对Android上的Chrome进行模糊测试;
对USB攻击面进行模糊测试。
具体分析
android逆向分析漏洞挖掘,可以通过《Android安全攻防权威指南》系统学习,通过对照攻击面和APP的实际情况,分析是否存在漏洞。
android fuzzing技术也可以通过本书学习,APP逆向分析的三大难题是:要对java代码非常熟悉,通过静态跟踪代码审计挖掘漏洞;需要搭建调试环境,动态调试so库文件,动态调试java代码;大多数用户量很大的APP都是加壳的,需要学习脱壳技术,脱壳后才能分析
这一块先放一下,APP漏洞先挖掘通信层面的漏洞,底层逆向比较吃力。
2.用burp搭建云端-手机-门锁的测试环境,对数据包进行测试
使用burpsuite搭建app测试抓包环境:
设备-APP-云端 测试环境已经搭建完成:
经过测试后发现,门锁与APP之间的通信是基于蓝牙的,通过抓包验证测试猜测本智能门锁并没有云端,密码和指纹通过蓝牙传输存储在门锁固件芯片中,门锁与APP的通信也是基于蓝牙。
是一个伪智能门锁,因此决定抓取设备和APP之间的数据包做分析,root了一台android手机,安装了tcpdump用于抓取数据包
抓取了数据包,缺点是数据包不是实时的,需要过滤分析
3.搭建云端-门锁的抓包环境,对数据包进行测试
测试发现没有云端,一点都不智能,无法分析应用层数据包,只能抓取蓝牙数据包了
使用root后的手机,在开发者模式下,勾选:启用蓝牙HCI信息收集日志
然后用APP和设备进行通信,会在sdcard目录下生成一个文件,将文件提取出来
用wireshark打开
可以看到都是蓝牙数据包,查看手机的mac
所以可以确定设备的Mac地址
可以看到对设备操作的大量读写请求
4.寻找门锁固件包,没有的话研究固件提取方法
这个门锁现在没法拆,固件提取不了,所以通过tcpdump抓取固件升级包,现在只能用wireshark分析固件升级数据包
0x05 分析总结
分析了智能锁的漏洞挖掘方法,学习总结智能门锁的工作原理和分析方法,中间遇到一些需要补充学习的知识,虽然只是简单分析了攻击面,但总是拉开了A智能门锁漏洞挖掘的序幕。
0x06参考信息
http://it.sohu.com/20180927/n550759660.shtml
ADLab:智能门锁安全研究
《智能硬件安全》
更多资料在github:
https://github.com/streetleague/0xbird.github.io/
◆来源:青云奋羽
◆本文版权归原作者所有,如有侵权请联系我们及时删除
最新评论