导语:物联网作为一个新型行业,其设备安全问题不容小视。安全研究员们努力寻找更多的安全漏洞、设计缺陷,以在被不法分子利用之前将其修复。
物联网作为一个新型行业,其设备安全问题不容小视。安全研究员们努力寻找更多的安全漏洞、设计缺陷,以在被不法分子利用之前将其修复。
近日,Simone Margaritelli通过逆向工程破解了一台智能咖啡机,通过自己的终端设备即可完成对其的全部控制。Simone Margaritell是blackhat上的一名黑客,现在是Zimperium公司的移动安全研究员兼高级ASM/C/C++开发师,同时也是bettercap的开发者。
Simone平日里非常喜爱喝咖啡,所以他买了一台智能咖啡机,通过手机上的APP即可远程操作,冲泡一杯及其好喝的咖啡。
安全研究员骨子里都有一颗躁动的心,所以他决定对这台智能咖啡机解剖,于是便逆向工程了设备协议。
仔细分析APP源码中的类和方法之后,他在am.smarter.smarterandroid.models.a类中发现了一些有趣的事情。
Simone发现了APP和设备之间通信的方式,以及他们使用的协议。每个数据包都是发送到设备的2081端口,这个协议非常简单,下面详细解读一下。
第一字节:命令码 中间字节:选项数据(基于命令代码) 最后一个字节:通常为0x7e
响应数据包有所不同,但大多数指令都是:
第一字节:响应数据大小 第二字节:状态(0代表成功,否则为失败) 最后一个字节:通常为0x7e
比如,我们想让咖啡保温5分钟,其指令和响应代码是:
COMMAND : 0x3e0x05 0x7e RESPONSE : 0x030x00 0x7e”
随后,Simone便写了一个POC,并已公布在GitHub上。下面是一些简单的控制咖啡机的指令:
制作一杯咖啡:coffee make 用过滤的方式制作两杯咖啡:coffee make filter 咖啡保温10分钟:coffee warm-keep warm=10
由于缺乏验证的问题,只要和机器在同一局域网内,任何人都可以向设备发送指令。
即使移动APP会要求你注册一个账号,但是访问2081端口时是没有任何验证的。也就是说,只要在同一局域网下,任何人都能访问你的账户。
这虽是一个简单的问题,但却影响着大部分的用户,所以老老实实的制作一杯热乎乎的咖啡也不是一件容易的事。