婴儿监视器的安全状况不容乐观
在这篇文章中,我们将跟大家分享我们对婴儿监视器的安全状况研究报告。婴儿监视器在保护我们挚爱方面起着非常重要的作用,但不幸的是,我们所分析的“Mi-Cam“(制造商为miSafes)受到了多个严重安全漏洞的影响,而这足以引起我们对婴儿监视器安全情况以及隐私方面的担忧。在这些漏洞的帮助下,攻击者不仅能够访问并与任意视频婴儿监视器交互,而且还可以劫持其他用户的账号。
根据我们从云端API以及Google Play商店提取出来的用户识别符数据,我们估计目前已经有超过52000个用户账号以及视频婴儿监视器已经受到了影响(受影响的账号和设备数量比约为1:1)。由于这些安全问题在本文发稿时都还没有被修复,所以我们建议各位Mi-Cam用户暂时不要上线自家的视频婴儿监视器。
婴儿监视器与隐私
视频婴儿监视器原本的功能是帮助我们保护孩子的安全,这对于所有家庭来说都是一项非常重要的服务。随着物联网设备的不断兴起,这种趋势也会影响传统的婴儿监视器制造商,因此新一代的婴儿监视器也席卷了全球市场。这样一来,市场上便出现了各种价格区间的可选对象,而这种竞争环境则会给用户带来非常多的好处(价格更低,功能更多,性价比更高)。比如说,现在很多婴儿监视器都引入了联网功能,但这种功能又会带来很多新的安全问题,而这些问题又跟市场上长期存在的问题有着千丝万缕的关系,因此广大消费者应该对此予以重视。
接下来,我们会给大家介绍我们对此类产品的安全分析结果。
miSafes的“Mi-Cam“
Mi-Cam是一款远程视频监视设备,由香港公司miSafes生产制造,而这家公司同时也在出售多款联网设备(例如宠物监视器和家庭安保设备)。就该公司的产品线来看,miSafes算是一家联网监控设备领域内的专业公司了。
视频婴儿监视器以及配对的移动端应用可以给用户提供以下服务:
- HD(720p)视频及音频监控;
- 双向音频传输;
- 支持SD卡记录;
- 语音和行为警报,可触发移动端应用程序发送通知消息;
- 同时管理多台婴儿监视器;
- 邀请多位家庭成员访问或管理多台婴儿监视器;
- 通过移动端App访问设备(iOS+Android);
网络通信
婴儿监视器的Android端应用使用了大量HTTPS请求以及响应来与云端服务进行交互,所有的请求都会发送给域名为ipcam.qiwocloud2.com的主机进行解析,而该主机则托管在亚马逊AWS上。网络通信使用的是HTTPS POST请求,并使用JSON对象作为数据格式,整个网络通信功能是基于一个RESTful API实现的。除此之外,它还支持用户身份验证和设备设置/恢复配置等功能。
我们在对婴儿监视器和云端服务之间的HTTPS通信数据进行分析和观察之后发现,婴儿监监视器设备上使用了一个客户端SSL证书来实现用户验证功能。如果无法提供有效的客户端证书,那我们就不可能观察并拦截到婴儿监视器的HTTPS通信数据。但是通过利用一个已知漏洞并提取出客户端SSL证书(几乎全世界所有的婴儿监视器使用的都是相同的证书!)和静态私钥,我们就可以观察并拦截到婴儿监视器的HTTPS通信数据了。
我们提取出的客户端证书如下:
-----BEGIN CERTIFICATE-----
MIIDAzCCAmygAwIBAgIBDzANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQGEwJjbjES
MBAGA1UECAwJZ3Vhbmdkb25nMREwDwYDVQQHDAhzaGVuemhlbjENMAsGA1UECgwE
cWl3bzENMAsGA1UECwwEc2RjcDEXMBUGA1UEAwwOcWl3b2Nsb3VkMS5jb20wHhcN
MTUwNTI1MDkzMzU4WhcNMzgwMTIwMDkzMzU4WjCB0TELMAkGA1UEBhMCQ04xEzAR
BgNVBAgMCkd1YW5nIERvbmcxEjAQBgNVBAcMCVNoZW4gWmhlbjETMBEGA1UECgwK
UUlXTyBHcm91cDENMAsGA1UECwwEUWl3bzERMA8GA1UEAwwIcWl3by5jb20xHDAa
BgkqhkiG9w0BCQEWDWNlcnRAcWl3by5jb20xRDBCBgkqhkiG9w0BCQIMNXsicHJv
ZHVjdFR5cGUiOiJxaXdvX2lwY2FtIiwiYmF0Y2hOdW1iZXIiOiIyMDE1MDUyNSJ9
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDW8KwHzU5aNgDQwXEmKBrXrEY/
TKbwK3r4XKUlH2eUM0UmVBpnHzz9JQy0WSNs28CSpQlqwOTrODw4QS7PJcXrpqgA
V2E85DSx4RG/NAwD0bZdBIUEUHJfuTmSQ+Hwn8gXivjPBXjQb1oJ9BNu+SGLx8p+
MQTbj6/YIkjKV1qcKQIDAQABo1AwTjAdBgNVHQ4EFgQUHaGks8jt/3onjRiasDwP
MJxzOTQwHwYDVR0jBBgwFoAUpnSBwb/95nsc7+xVvn76i82QYMMwDAYDVR0TBAUw
AwEB/zANBgkqhkiG9w0BAQUFAAOBgQBB8fPH2WoIVr75Ik4QWwK37ANClpapfKUe
oTjvWOehYjBB+AndkVi6yFPwUj54vwdO3XBxYaxsGwuK4UsF8XwYWCA5aprmQqka
LjJvJAeCdvEWRA0WNTg8yGD4l2i+OsUgmK4kxS5BWuPje18y3Cbq/DHqeQiwoKFj
1zGuTI6+Kg==
-----END CERTIFICATE-----
你可以看到, Mi-Cam设备所使用的客户端证书有效期是非常非常久的。
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=cn, ST=guangdong, L=shenzhen, O=qiwo, OU=sdcp, CN=qiwocloud1.com
Validity
Not Before: May 25 09:33:58 2015 GMT
Not After : Jan 20 09:33:58 2038 GMT
Subject: C=CN, ST=Guang Dong, L=Shen Zhen, O=QIWO Group, OU=Qiwo, CN=qiwo.com/emailAddress=cert@qiwo.com/unstructuredName={"productType":"qiwo_ipcam","batchNumber":"20150525"}
SHA1 Fingerprint= DF:E0:C0:30:B9:0D:7D:F1:43:F8:FB:EE:19:8A:08:3A:3E:11:41:25
SHA256 Fingerprint= 79:9F:92:BD:D2:DD:06:3F:B9:93:55:F5:ED:EA:DC:D4:E8:7D:70:AF:D0:A9:92:48:A5:D7:E4:98:F6:F6:F1:E1
我们可以从观察到的网络数据中了解到,这款设备虽然没有使用常见的音频和视频传输协议,但是它却使用了一种设计混淆视频流字符的专有音频/视频传输协议。我们能够对Mi-Cam与云端服务器之间的网络数据进行反混淆处理,然后自动解码并从捕捉到的数据(pcap)中提取出视频流数据。
漏洞分析
接下来,我们会给大家介绍Android端应用、云端服务、以及视频婴儿监视器硬件中存在的安全漏洞。在我们的研究过程中,我们的主要注意力将放在分析App、视频婴儿监视器和云端基础设施之间网络通信的身上,而不是应用程序本身(iOS+Android)。比如说:
- 会话管理漏洞&不安全的直接对象引用
- 修改密码时出现验证码无效
- 可用的串行接口
- 默认凭证安全性较弱
- 枚举用户账号
过时/不安全的软件
注:由于目前厂商还没有发布相应的漏洞修复补丁,因此我们现在还不能对外公布漏洞的详细信息,请各位同学谅解。更多详细内容可参考我们的【技术公告】。
1) 中断会话管理&不安全的直接对象引用
Android端应用与视频婴儿监视器之间的通信涉及到多个不同的中央云端API服务调用,而攻击者将能够利用任意会话令牌访问其中的多个关键API调用。下面给出的视频演示了攻击者如何通过修改HTTP请求来访问并与任意视频婴儿监视器进行通信交互,这将允许攻击者获取目标账号以及相关联的视频婴儿监视器信息(根据提供的UID实现)。
在进行这种攻击的过程中,攻击者其实并不需要客户端SSL证书,他们需要的这是App和一台拦截代理服务器:
视频地址:https://youtu.be/SsYnXRUhpL0
2) 修改密码时出现验证码无效
为了设置一个新的密码,忘记密码功能会向用户所提供的电子邮箱发送一个六位数字验证密钥(有效时长为30分钟)。攻击者将能够通过暴力破解攻击绕过这种保护机制,并轻松接管任意账号。
3) 可用的串行接口
视频婴儿监视器的印刷电路板(PCB)拥有一个未标记的通用异步接收器/发送器(UART)接口,这将允许攻击者获取设备的硬件级别访问权限,比如说使用IoT Inspector提取固件系统进行进一步分析。
下图显示的是视频婴儿监视器的正面内部结构,包括PCB板以及UART接口等等:
下图显示的是视频婴儿监视器的背面内部结构,包括PCB板以及UART接口等等:
UART接口
为了访问这个接口,我们需要使用USB串行转换器与之连接,结构图如下所示:
4) 默认凭证安全性较弱
通过分析提取出的固件,或对运行中的系统进行简单的暴力破解攻击,攻击者将能够扫描出婴儿视频监视器root用户的四位数默认凭证:
root:<redacted>
5) 枚举用户账号
其中有一个API调用将会泄露用户账号(电子邮件地址)的信息,攻击者将能够枚举出用户的邮箱地址,并使用收集到的信息来接管用户账号。
6) 过时/不安全的软件
从婴儿视频监视器中提取出固件之后,攻击者将能够使用IoT Inspector来对固件进行自动化分析,我们也从固件中的多个软件组件中发现了很多公开已知的安全漏洞,具体的已过期固件版本信息可以从我们所发布的安全公告中获取到。
安全公告:https://www.sec-consult.com/en/blog/advisories/hijacking-of-arbitrary-misafes-mi-cam-video-baby-monitors/index.html
总结
我们希望这份研究报告能够唤起社区对联网婴儿监视器安全状况的关注,实际上,除了本文所分析的Mi-Cam之外,还有很多厂商的视频监控设备同样存在类似的问题。因此,我们不仅要建议广大用户及时更新自己的物联网设备固件,而且我们也建议厂商在不断推出新一代产品时,将更多的注意力放在设备的安全上。