揭秘第三方跟踪器对密码管理的威胁 – 作者:idguardoffline

➊ TL;DR(太长了,不想读)

第三方跟踪器集成在app内部,有权限访问app内的任何数据。跟踪器的网络通信暴露了更多攻击面,其安全漏洞、内部坏员工,被黑客入侵,都可能威胁到用户存储的密码安全。


近期德国安全研究员 Mike Kuketz发表了一篇博客 LastPass安卓版:第三方模块会监控每一步(LastPass Android: Drittanbieter überwachen jeden Schritt)指出:Lastpass内置了7个跟踪器,会跟踪用户操作的每一步,甚至连注册LastPass账号的操作(注册事件相关信息,不包括密码)也会发送给第三方跟踪器。博客一发表,立即引发了大量讨论,Google搜索已经有超过28万条结果:

search

国内知名大号扩展迷Extfans在 知名安全软件翻车?免费功能变收费后,又被曝疑似收集用户数据传给广告公司进一步讨论了这些追踪器,指出 AppsFlyerMixPanelSegment这几个跟踪器会大量收集用户数据用于大数据营销。

LastPass官方回应:

没有敏感的个人数据和加密数据库可以被这些跟踪器获取。这些跟踪器只收集使用LastPass时有限的统计数据。该数据用于帮助我们改进和优化产品。 (No sensitive personally identifiable user data or vault activity could be passed through these trackers. These trackers collect limited aggregated statistical data about how you use LastPass which is used to help us improve and optimize the product.)


很高兴看到越来越多的研究,越来越多的用户开始关注密码管理器的安全问题。

密码管理器作为安全产品,管理用户所有密码,安全至关重要。不能用看待普通软件产品的方式来看待密码管理器。

目前能够看到的讨论,基本上都在关注跟踪器对用户隐私的侵犯,几乎没有人讨论跟踪器是否会威胁到密码管理的安全。

先说结论:跟踪器能威胁到密码管理的安全!

事实上,软件供应链攻击是近年来发展迅猛的一种攻击方法,去年爆出席卷美国数千政企的太阳风黑客攻击正是使用了供应链攻击:微软承认该公司遭到黑客入侵,微软同样使用太阳风软件也被供应链攻击

从LastPass官方的回应可以看出:他们显然并没有认识到,集成第三方服务可能威胁密码安全。

密码管理器,不是看谁最炫酷最方便,而是看谁最能抵御攻击不泄密。

接下来,我们从 权限威胁攻击三个方面逐步深入揭秘集成跟踪器的安全风险。

➋ 权限

图片[2]-揭秘第三方跟踪器对密码管理的威胁 – 作者:idguardoffline-安全小百科

Exodus Privacy Report

app的权限就是操作系统允许app做的事情,比如使用网络、读写公共存储区的文件、摄像头拍照和录像等。

现代智能手机操作系统管理权限以app为基本单位,并不是以app内部的模块为单位。

什么意思呢?就是说,app内置的跟踪器(以及其他第三方模块)具备和app一样的权限。

读取app运行时内存(以下简称内存)

第三方跟踪器也是app的一部分,可以不受限制的读取app使用的任何内存数据,包括内存中的主密码

读取app沙盒中的内部存储

相比传统的桌面操作系统,移动操作系统的沙盒能够防止恶意app访问其他app的内部数据,大大提升了数据安全。但并不能阻止app内部的第三方跟踪器(模块)读取内部存储的数据,包括加密数据库

很多密码管理器用户的一个认知误区是:加密数据库暴露也无所谓,只要主密码足够安全。

首先,密码管理器要正确使用加密算法。TeamSIK在2016年的一项密码管理器研究(Password-Manager Apps)发现,诸多密码管理器厂商(最近的主角LastPass也名列其中)并不会正确使用加密算法,被轻松破解。

其次,“主密码足够安全”现实中很难做到,泄密的可能性实在是太多了:

  • 前面提到:恶意程序从运行时内存中提取主密码
  • 使用了不安全的输入法输入主密码
  • 恶意程序通过伪造解锁界面,诱导用户输入
  • 恶意程序通过截屏、录屏获得
  • 密码重用
  • 被有心人偷窥
  • 使用密码字典破解

密码管理器进化史(下)中讲到,密码管理器安全主要取决于解锁条件。加密数据库一旦暴露,就只剩下唯一一个保护因素——主密码,保护能力大打折扣。

解锁因素

完全网络访问

跟踪器的工作原理就是把收集到的用户数据发送到云端,集成跟踪器的app必然会要求网络权限。

网络既可以把收集的数据发送到云端,也可以被云端控制,执行云端发送的指令

➌ 威胁

再来看看,采用第三方服务跟踪器,可能带来哪些威胁呢?

跟踪器的安全漏洞

跟踪器完全可能存在安全漏洞,这些跟踪器具备的权限都可能被黑客利用,包括读取内存中缓存的主密码,内部存储的加密数据库。

一般来说,跟踪器并不会为密码管理器专门防护优化,防范密码泄漏。

他们大多就没想过:跟踪器提供给密码管理器厂商是否需要不一样的安全防护。隔行如隔山,他们往往不懂密码管理器的特殊需求。

更不用说这还需要增加额外的培训、学习和研发成本。

第三方供应商的内部坏员工

又有新鲜瓜上市了,百度92年程序员被抓:篡改数据给赌博网站”大开方便之门”,只需调用一个接口这么简单!

陈某睿在公司电脑上使用CURL命令发送给公司的服务器,调用一个接口,这个接口可以自动审核网站,发送的CURL命令包括需要快速通过审核的网站,然后发送的网站就通过了承接百度联盟广告资质的审核。

图片[2]-揭秘第三方跟踪器对密码管理的威胁 – 作者:idguardoffline-安全小百科

从内部攻破,轻而易举!

黑客入侵

一旦黑客入侵,就如同内部坏员工一般,可以从内部攻击app的防护。

通常合格的密码管理器厂商会做一些防范措施,阻止黑客入侵(包括客户端和云端),以及被入侵后,提升偷取用户密码的难度。第三方服务商就很难说了。

第三方服务商,不懂密码管理器是怎样保护用户密码的,也不懂怎样提升这方面的防护能力,在安全管理方面也不如密码管理器厂商严格,更不愿意为此承担额外成本。

密码管理器厂商,对第三方服务没有足够的控制力和透明度。既不了解第三方的安全防护水平,也没有权限审核第三方服务的源代码,更不能干预其内部安全管理。

➍ 攻击

本文不会覆盖具体的攻击技术和方法,只列举几个大的攻击框架。

恶意代码直接读取

内部员工或者入侵黑客,可能直接在跟踪器中植入恶意代码,随着版本更新一起发布。太阳风黑客攻击就是利用软件更新发布的恶意代码:

真正当成跳板的是美国太阳风公司的网络管理软件,这些软件更新后携带恶意软件并且可以接受黑客下发的指令。值得注意的是微软公司也同样使用太阳风软件,这导致微软公司也同样被黑客渗透,微软检测后已经确认该事实。

由于用户输入的主密码通常会被缓存在操作系统的UI组件中,app很难完全擦除,被恶意代码读取并不难。

不少密码管理器在解锁后还会解密出存储的全部密码,当然也能被跟踪器读取。

recovering the master password

ISE一位研究员轻松从内存中提取主密码(Password Managers: Under the Hood of Secrets Management)。

顺便说一下,很多密码管理器还会收集崩溃信息,改进产品,很可能整个运行时内存(heapdump)都被收集到云端,甚至有密码管理器使用第三方的崩溃收集服务。

在跟踪器中,直接读取内存中的主密码、加密数据库,发送到自己控制的云端服务器,也可以破解用户所有密码。

钓鱼主密码

跟踪器中的恶意代码可以伪造锁定界面,让用户输入主密码。

和普通钓鱼攻击不同,由于跟踪器也是app的一部分,根本无法区分要求输入主密码的是跟踪器还是app主体程序。

热更新技术发动远程攻击

热更新技术常用于紧急修复bug,可以绕过应用商店审核、发布、以及用户更新app的漫长过程,直接更新程序。

既然可以通过热更新远程更新程序,那同样也可以远程植入恶意代码,为所欲为!

尽管苹果和谷歌的应用商店都禁止使用热更新技术执行远程代码,但是无法从技术上彻底限制。React Native,小程序等技术执行远程代码甚至得到官方允许。只要没有引起应用商店注意,app执行远程代码的方法很多很多。

➎ 总结

跟踪器为了收集用户数据,都会将收集到的信息通过网络发送到云端。我们知道,信息领域绝大多数的安全事故都与网络有关,网络是最大的攻击面。

攻击面(Attack Surface)指软件可能被黑客破坏的所有入口。把攻击面限制到最小化是一项基本安全原则。

本来联网就会让密码管理器面临很大的安全威胁,即使LastPass集成的跟踪器本身没有问题,也可能因为下载恶意数据泄密。集成不受控的第三方服务,还一下子集成了7个,安全隐患可想而知。

来源:freebuf.com 2021-03-25 18:36:50 by: idguardoffline

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论