作者: 启明星辰ADLab

Bug/Vul/Patch

没有人可以逃离生老病死,我们都知道这是自然规律;同样,没有软件可以逃离Bug(缺陷)、Vul(漏洞)、Patch(补丁),其实这也是自然规律。因为软件开发是一项复杂的活动,在开发的时候是很难预计所有可能会发生的条件,甚至随着时间的推演,开发时安全的技术在后来也会变得不安全,比如一些软件采用 MD5 方式来存储口令,如今已经是不安全的了。

为了减少软件的缺陷,软件供应商一方面在"未雨绸缪":GS /DEP /SAFESEH /ASLR /SANDBOX /SIGNATURE /CFI /SDL等技术先后被提出并实施,在一定程度上主动地减少缺陷,也主动地阻止漏洞利用,保护软件用户的安全。除了主动出击,另外一方面,供应商针对发现的漏洞及时的开发补丁程序并分发部署,比如微软每个月定时“大补丸”、苹果的系统“升级包”等。针对高危漏洞,供应商往往会紧急发布补丁,以期最大限度降低软件用户的损失。

在互联网领域中,未雨绸缪和及时补丁已是常态化,漏洞造成的损失通常可以快速得到控制。然而,启明星辰积极防御实验室(ADLab)研究发现,在其他领域安全漏洞并没有得到重视,补丁修复滞后十分严重,用户长期处于高危漏洞的威胁中。例如,最近ADLab就发现某国际知名厂商智能锁的高危漏洞迟迟未修复,并且还发现了新的漏洞。

被冷落的Vulnerability

该国际知名厂商的智能锁具备多种打开方式:

1.传统钥匙开锁
2.面板密码开锁
3.APP蓝牙开锁

要使用蓝牙开锁功能,用户需要在APP中使用自己的手机号注册账号,然后扫描智能锁的二维码进行绑定。该厂商提供的APP可以在苹果官方应用商店、主流安卓应用商店下载。2017年3月,ADLab对安卓APP进行了安全性分析。

通过逆向分析APP的反汇编代码和网络数据报文交互逻辑,发现存在任意账户密码重置漏洞,漏洞细节如下。

1)该APP支持通过手机验证码"重置密码"

2)"重置密码"的数据请求报文如下,这个接口的使用没有任何限制,只需要提交待重置账户的手机号即可。

3)"重置密码"的数据应答报文如下,报文中的data字段就是发给重置账户手机号的验证码。这意味着,验证码不但发送给了手机,还直接返回给了请求者。从而导致请求者可以获取任意手机号码的验证码,进而重置任意账户的登陆密码。

4) 分析APP对"重置密码"的应答处理,发现只检查了status域是否为真,并没有使用data域。即只检查验证码是否发送成功,并没有期望返回验证码。

ADLab发现该高危漏洞后立即做了上报工作,其处理时间线如下:

5) 该高危漏洞距离公开时间已经一月有足,厂商至今仍然未修复,让广大用户持续暴露在风险中。为了验证这个漏洞的实际危害,ADLab进行了物理测试,证明通过该漏洞可以直接打开智能锁,前提只需知道锁绑定的手机号,如视频所示。

验证完重置漏洞的实际危害后,ADLab做了进一步安全分析,发现了一个更加高危的漏洞,通过该漏洞可以获取该智能锁产品的全部用户资料,包括手机号和开门密码。该漏洞不依赖手机验证码,利用起来会更加隐蔽,因此危害更大。ADLab已经对该漏洞做了上报工作,只是这一次要等到什么时候才能修复呢?

结束语

软硬件系统被爆出漏洞已经是常态了,顶尖科技公司(如:谷歌、微软)、起步微型公司(如:创业公司)、甚至是安全公司的产品都有定期漏洞披露。厂商在开发时可以通过使用带安全功能的IDE、开发框架、中间件等,也可以在产品发布前进行安全性测试,这些未雨绸缪手段可以大幅提升产品的安全。除此之外,厂商在应急响应和补丁修复上应当给予足够重视。对于高危漏洞不及时修复,不仅伤害厂商自身,更是伤害广大的用户。

所以我们怀揣着满满的情怀提醒:及时修复!


启明星辰积极防御实验室(ADLab)

ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员。截止目前,ADLab通过CVE发布Windows、Linux、Unix等操作系统安全或软件漏洞近300个,持续保持亚洲领先并确立了其在国际网络安全领域的核心地位。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。