硬件安全|智能门锁安全研究方法总结

iso60001  1753天前

1.png

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组成;传输层包括家庭智能网关和移动基站;应用层是智能门锁云平台。

下图列出了现在常见的智能门锁的联网方案:


2.png

在感知层由于受到功耗的限制,大部分智能门锁采用电池供电,其通信方式主要有蓝牙、ZigBee、NB-IoT、433MHz和315MHz。

在传输层,主要通信方式是家用宽带(WIFI)和移动通信。

应用层就是智能门锁的云端服务,主要负责智能门锁的设备接入,身份认证,逻辑控制,数据分析和业务展示。目前智能门锁云端服务主要部署在公有云上,比如阿里云,AWS,Azure。

2.智能门锁开锁模式

1.固定密码开锁模式

用户在安装固定密码智能门锁的时候,需要先进行密码初始化,并完成密码设置,该密码存储在智能门锁的固态存储空间中,同时也会上传云端进行存储。

用户开锁时,输入密码,比对成功就会开锁


3.png


2.临时密码开锁模式

在临时密码开锁模式下,户主通过手机APP从云端获取当前时段开锁的临死密码,通过微信短信将密码发送给访客。

访客在门锁输入密码,门锁会将该密码与云端生成的该时段的密码进行比对,如果成功就开锁。

4.png


3.生物钥匙开锁模式

目前市面上稳定且可靠的智能门锁开锁技术主要是指纹,掌纹,虹膜和人脸。

该类门锁会将用户的指纹,掌纹,虹膜和人脸生物信息存储到智能门锁固态存储或者云端设备上。

用户开锁时,需要采集用户的指纹,掌纹,虹膜和人脸特征,传到云端和特征信息进行对比。


5.png


4.智能卡钥匙开锁模式

用于智能门锁开锁的智能卡主要有FRID卡,NFC卡和CPU卡三类,这种门锁在酒店随处可见。

使用FRID卡的门锁,门禁管理系统会在FRID卡中写入代表该卡身份的的字符串,在开锁时,门锁提取FRID卡中的字符串,并传到云端进行对比。

使用NFC卡和CPU卡的门锁,门禁管理系统会在NFC卡和CPU卡中写入代表该卡身份的私钥和公钥,开锁时,卡通过门锁与云端进行双向认证。


6.png


5.手机APP开锁模式

采用手机APP开锁的门锁,在初始化过程中,云端会将门锁和指定APP绑定。

在用户开锁时,用户在手机APP上完成认证,然后在手机上点击开锁按钮,智能门锁会接收到云端发送的开锁指令。


7.png


0x03智能门锁安全分析和案例研究

1.安全风险模型

根据智能门锁的组网体系结构,安全风险模型可以划分为以下五个方面:智能门锁安全风险(针对智能门锁设备的攻击)、移动应用安全风险(针对智能门锁手机APP的攻击)、近场通信安全风险(针对WIFI、ZigBee、蓝牙、433和315等通信方式的攻击)、网络安全风险(针对家庭智能网关和有线数据拦截的攻击)和应用安全风险(针对智能门锁云平台的攻击)。


8.png


2.智能门锁安全风险

1.生物钥匙攻击

智能门锁的生物钥匙中,虹膜和人脸的伪造难度较高,已知攻击风险较小;但是掌纹和指纹有较高的伪造风险。

2.固定密码安全

在使用固定密码的智能设备中,经常出现使用默认密码,后门密码,密码逻辑漏洞和短密码等问题,并存在密码泄露问题。

3.固件窃取逆向

攻击者提取固件内容,然后逆向分析固件中的漏洞,再结合其他手段对漏洞进行利用。

4.无线馈电攻击

(1)原理分析

无线馈电是一项应用广泛的技术,包括电磁炉、无线充电、非接触卡等。一些智能门锁由于设计缺陷,在布线及电路设计时没有考虑电磁干扰问题。攻击者可以利用特斯拉线圈通过无线电波干扰,使得智能门锁的内部电路产生直流馈电。

如果这种直流馈电足够高,将触发智能门锁小型电机驱动锁芯实现开锁。或者导致MCU的逻辑异常而重启,有的智能门锁默认重启后会自动开锁。

特斯拉线圈通电后,可能产生两种效果:一是利用智能门锁电路的馈电系统驱动电流打开门锁;二是该线圈产生强电磁脉冲攻击智能门锁芯片,会造成芯片死机并重启,有的智能门锁默认重启后会自动开锁。

3.移动应用安全风险

(1)原理分析

移动应用APP中存在各种常见的安全风险:

移动端APP代码或者固件中使用固定的加解密秘钥;

移动端APP代码没有采用加固或者混淆技术导致代码被完整逆向;

开发人员遗留的代码BUG,导致绕过相关权限认证;

移动端操作系统出现相关漏洞,导致被植入恶意代码,进而控制手机;

移动端APP和设备之间出现通信漏洞;

攻击者利用智能门锁对应的APP中存在的缺陷,绕过智能门锁,APP和云端服务预先设定好的逻辑,实现非授权的开锁行为。

(2)攻击案例

某品牌智能门锁存在任意密码重置漏洞,通过逆向智能门锁APP和云端网络交互的报文,掌握了相关云端接口的定义。攻击者利用重置后的密码完成登录后,可以进行开锁和修改用户信息等操作。

在此研究基础上,我们又做了进一步的安全分析,发现了一个影响更大的安全问题:攻击者通过该漏洞可以获取该智能门锁产品的全部用户资料,包括手机号和开门密码。由于该漏洞不依赖手机验证码,这种攻击具有更大的隐蔽性,因此危害更大。


9.png


4.近场通信安全风险

1.FRID门锁攻击

(1)原理分析

FRID卡中存储代表持卡人身份信息的字符串,一般的FRID卡中的信息都是以明文形式存储的,攻击者可以读取里面的信息,并复制到其他卡中,从而获得持卡人的授权信息。

(2)案例分析

某智能门锁是FRID门锁,测试人员从淘宝购买简单的FRID读写器,就可以从已有的FRID卡中读取信息,写入到新卡中,并可以正常开锁。

该类RFID卡常常以小区门禁、楼宇门禁和酒店房卡等形式出现,造成的影响面极大。

10.png

2.315MHz无线电门锁攻击

(1)原理分析

无线电门锁响应指定的无线电信号,一般的无线电门锁的信号是固定的,攻击者可以重放无线电信号,或者对信号进行修改,从而伪造真实用户的开锁行为。

(2)案例分析

某智能门锁存在无线电重放攻击漏洞,该门锁为无线电门锁,测试人员从淘宝上购买简单的无线电收发器,即可抓取无线电门锁开关门信号,并存储此无线电数据包到本地,通过重放包含开锁信号的无线电数据包即可打开门锁。

该类无线电门锁常常以车库门禁、家庭门禁和汽车门等形式出现,这种攻击行为可形成巨大安全隐患。


5.网络通信安全风险

(1)原理分析

有些智能门锁可以通过wifi直接连接到公网上,手机在远端也会通过WIFI连接到智能门锁和云端,考虑到大量的智能门锁通信协议采用明文传输,通过攻击WIFI路由器,智能家居网关,或者劫持WIFI信号,可以实现对智能门锁的控制。

(2)案例分析

某品牌智能门锁存在设计漏洞(漏洞编号CNVD-2016-12586)。测试人员通过WIFI信号抓取,分析出APP与智能门锁云端服务之间的通信是明文传输,并识别出智能门锁开门和关门的特定数据包。

测试人员在劫持WIFI信号后,即可通过WIFI信号重放攻击的方式,实现对门锁的控制。


11.png


6.云平台服务安全风险

1.用户身份鉴别漏洞

未限制密码长度,未限制非法登录次数,重置密码的短信验证码又在本地产生,或者存在于返回的数据包中。

2.访问控制漏洞

后端信息系统没有对数据包中重要访问控制参数进行验证,导致越权操作。还可能存在远程代码执行漏洞,root权限执行任意命令。

3.云管理系统平台存在web漏洞

常见的web漏洞同样存在于智能门锁云管理平台上,比如:SQL注入,XSS,SSRF,任意文件上传,安全配置错误,敏感信息泄露,访问控制缺失,使用已经存在漏洞的组件,未验证的重定向。


0x04 某品牌智能门锁漏洞测试

0.了解门锁的使用方法

通过说明手册进行基本配置:

将门锁外面板和内面板接通,安装电池后智能门锁通信模块开启,下载APP添加搜索设备,APP会自动通过蓝牙搜索到附近设备,长按功能键两秒后和手机配对成功。

12.png


APP功能和攻击面分析:

指纹开锁:

录入指纹后,通过指纹可以开锁,之前已经分析过,是将已经录入的指纹上传到云端,开锁时放上指纹,传到云端进行对比


13.png


蓝牙开锁:

将手机和门锁配对后,可以使用手机滑动开锁。在初始化过程中,云端会将门锁和指定APP绑定。开锁时,在手机上点击开锁按钮,智能门锁会接收到云端发送的开锁指令

14.png

设备共享功能可以添加访客的手机APP与门锁绑定。


密码开锁:

在APP中录入密码,就可以通过密码开锁,密码开锁分为普通密码和一次性密码

该固定密码存储在智能门锁的固态存储空间中,同时也会上传云端进行存储。用户开锁时,输入密码,比对成功就会开锁

15.png

在临时密码开锁模式下,户主通过手机APP从云端获取当前时段开锁的临死密码,通过微信短信将密码发送给访客。

访客在门锁输入密码,门锁会将该密码与云端生成的该时段的密码进行比对,如果成功就开锁。

16.png


授权管理

使用手机APP添加或者删除用户,授权开锁方式

异常状况

输入密码错误报警:连续输入5次密码错误,将在30秒内无法输入密码

输错指纹报警:连续使用未录入指纹15次,将无法在30秒内再次输入指纹

撬锁报警:门锁被暴力拆下,将发出高分贝报警声

注意事项:半年以上未使用APP和门锁进行连接,除了管理员,其他账户不能连接,无法使用蓝牙功能开锁

1.逆向分析APP

看看APP里面有没有什么漏洞,androidkiller反编译发现mainActivity不能访问


17.png使用GDA看java源码


如果这样静态分析,就只能代码审计找一些接口位置,但是人工成本太高

先分析了解一下,Android软件层面有什么漏洞,学习了解漏洞攻击面和漏洞挖掘方法

攻击面分析:

应用权限问题:开发者会申请比应用实际更高的权限

敏感数据不安全传输:

不安全 的数据存储:

通过日志的信息泄露:

不安全的IPC端点:

19.png

远程攻击面:协议栈的溢出漏洞,暴露的网络服务,手机web浏览器漏洞,客户端假冒证书漏洞

本地攻击面:系统调用,套接字,文件系统,共享内存,基带接口

android 模糊测试

对Boardcast Receiver进行模糊测试;

对Android上的Chrome进行模糊测试;

对USB攻击面进行模糊测试。

具体分析

android逆向分析漏洞挖掘,可以通过《Android安全攻防权威指南》系统学习,通过对照攻击面和APP的实际情况,分析是否存在漏洞。

android  fuzzing技术也可以通过本书学习,APP逆向分析的三大难题是:要对java代码非常熟悉,通过静态跟踪代码审计挖掘漏洞;需要搭建调试环境,动态调试so库文件,动态调试java代码;大多数用户量很大的APP都是加壳的,需要学习脱壳技术,脱壳后才能分析

这一块先放一下,APP漏洞先挖掘通信层面的漏洞,底层逆向比较吃力。

2.用burp搭建云端-手机-门锁的测试环境,对数据包进行测试

使用burpsuite搭建app测试抓包环境:

设备-APP-云端  测试环境已经搭建完成:

20.png

经过测试后发现,门锁与APP之间的通信是基于蓝牙的,通过抓包验证测试猜测本智能门锁并没有云端,密码和指纹通过蓝牙传输存储在门锁固件芯片中,门锁与APP的通信也是基于蓝牙。

是一个伪智能门锁,因此决定抓取设备和APP之间的数据包做分析,root了一台android手机,安装了tcpdump用于抓取数据包

21.png


抓取了数据包,缺点是数据包不是实时的,需要过滤分析

22.png


3.搭建云端-门锁的抓包环境,对数据包进行测试

测试发现没有云端,一点都不智能,无法分析应用层数据包,只能抓取蓝牙数据包了

使用root后的手机,在开发者模式下,勾选:启用蓝牙HCI信息收集日志


23.png


然后用APP和设备进行通信,会在sdcard目录下生成一个文件,将文件提取出来


24.png


用wireshark打开


25.png

可以看到都是蓝牙数据包,查看手机的mac

26.png

所以可以确定设备的Mac地址


27.png

可以看到对设备操作的大量读写请求


28.png


4.寻找门锁固件包,没有的话研究固件提取方法

这个门锁现在没法拆,固件提取不了,所以通过tcpdump抓取固件升级包,现在只能用wireshark分析固件升级数据包


29.png


0x05 分析总结

分析了智能锁的漏洞挖掘方法,学习总结智能门锁的工作原理和分析方法,中间遇到一些需要补充学习的知识,虽然只是简单分析了攻击面,但总是拉开了A智能门锁漏洞挖掘的序幕。


0x06参考信息

http://it.sohu.com/20180927/n550759660.shtml

ADLab:智能门锁安全研究

《智能硬件安全

更多资料在github:

https://github.com/streetleague/0xbird.github.io/


◆来源:青云奋羽

◆本文版权归原作者所有,如有侵权请联系我们及时删除

最新评论

昵称
邮箱
提交评论