3·15曝光深度剖析 | 窃取隐私的6种姿势及应对方法

发布者:Editor
发布于:2020-07-17 18:59
昨日,在备受瞩目的央视财经播“3·15”晚会上,曝光了与生活息息相关的养海参、汉堡王、毛巾生、宝骏560、万科尚城精装房、可诺丹婷美容院、“趣头条”、嗨学网的问题,以及老生常谈的知名手机APP收集用户隐私的现象,涉及软件包括酷音铃声、手机铃声、铃声大全等。

我们注意到,此次还重点揭露了App中的一些“窃贼插件——SDK”的恶劣行径。


SDK插件是由第三方服务商提供的,用来开发和实现软件产品某项功能的工具包。一般,软件工程师会用SDK插件来为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件。


在互联网开放的大环境下,一些功能性的SDK插件已经被当作一个产品来运营。开发者不需要再对产品的每个功能进行开发,只要选择合适稳定的SDK插件,就能花费很少的精力,在产品中集成某项功能。因此,SDK插件在手机软件中的应用十分广泛。

去年11月,上海市消费者权益保护委员会就委托第三方公司对一些手机软件中的SDK插件进行了专门测试。

但测试结果却揭露出了令人震惊的真相。

来自上海氪信信息技术有限公司、北京招彩旺旺信息技术有限公司两家公司的SDK插件都会在用户不知情的情况下,暗中窃取用户隐私。而这两个插件涉及的手机软件多达50多款,包括国美易卡、遥控器、最强手电、全能遥控器、91极速购、天天回收、闪到、萝卜商城、紫金普惠等。具体列表如下图:


检测人员表示,这些App的SDK插件会在未经用户同意的情况下,读取用户设备上的移动设备国际识别码(IMEI)、国际移动用户识别码(IMSI)、电话号码、短信内容 、通讯录、应用安装列表、运营商信息和传感器信息,甚至还会偷偷把数据传送到指定的服务器,存储起来。这就意味着有大量用户的敏感隐私数据可能遭到严重泄露。


并且,由于SDK插件能收集用户的短信记录,用户的网络交易验证码也很有可能被获取,造成用户严重的经济损失。


针对央视此次的曝光,我们有幸邀请到了看雪专家Lilang Wu吴东洋,从技术角度深度解剖SDK及手机App窃取用户隐私的话题。


Lilang Wu(吴东洋)


看雪安全专家,国内某安全厂商的安全专家,主要从事Mobile, Mac/Linux漏洞挖掘和恶意软件分析。曾参加过BlackHat USA 2018/2019, BlackHat EU/Aisa,HITB,CodeBlue等安全会议。


电影《来电狂响》以其丰富的故事情节展现手机对人的私密性。手机作为我们日常生活的一部分,在衣食住行方面给我们带来了无尽的便利。

图片来源自百度百科

然而,正是对于手机的依赖,使得手机上存储了我们绝大多数的隐私信息,包括一些身份信息、社交信息和财务信息等。从数学建模的角度来讲,这些信息基本可以构建一个特定的个体。

因此,出于一些灰产甚至黑产买卖等需求,很多厂商干脆冒大险来窃取用户的隐私信息。

下面我们从技术的角度来分析具体窃取用户隐私数据的方式,以及审计人员可以采用的检测方法,最后对普通用户提出一点自我防护建议。


●常见窃取用户隐私的方式●



常见的窃取用户隐私数据的方式主要有以下几种,不限315披露的方式:

1) 利用预授权的个体作案


这种方式通用的手法是通过用户“正常”授权之后,在后台静默的收集用户的数据,并通过网络发送C&C(command and control server)。
特点是实施成本低,基本不会用到高深的漏洞利用,或者奇技淫巧的malware手段。并且由于静默的特点,该类窃取行为不会表现出任何异样,因此普通用户很难察觉。

2) 利用SDK的团体作案


这种方式需要窃取者开发一套用来窃取用户隐私信息的SDK,类似昨天3·15曝光的“北京招彩旺旺信息技术有限公司的SDK”。
特点是可以大规模,批量地生产一些App,以广撒网的手段窃取用户信息,基本的手段跟1)类似,利用预授权的能力,静默获取用户的敏感信息。

3) 利用操作系统特性的协同作案


这种方式利用了现代操作系统的一些特定,例如Android系统可以通过sharedUserId等方式允许APPs共享数据,因此这类窃取行为可由两个独立的APP协同完成。

其中一个APP负责获取数据,另外一个APP负责发送数据。这种窃取方式不仅用户无法察觉,对于安全审计方面也大大提高了检测的难度。而且,同一家厂商基本会发布不止两款APP。

4) 利用辅助功能特性等的恶意作案


 Android系统提供了Accessibility功能,主要是面向动作,视力,听力等身体特殊的用户群体。
该功能可以通过自定义AccessibilityService服务使其基本能够模拟正常使用手机的各种行为(已经有很多文章描述,这里不再详细介绍,例如Freebuf上发表过《Android辅助类病毒研究报告》),因此也方便了窃取者对用户的各类隐私数据的获取。
然而,这类方式最大的特点是需要用户授权Accessibility能力,所以一般会以提供各种特殊功能,例如抢红包,游戏外挂等,诱惑用户开启相关功能。

5) 利用重打包等技术的中级作案

重打包一直是灰色或者黑色人员备受青睐的技术,他们能够在一款正常的APP中插入具有自己“想法”的代码,与正版APP的区别在于签名不同。
庆幸的是,这些APP在正规的应用市场难以上架,只能通过一些噱头来诱导用户安装,多发生在破解类软件中。

6) 利用漏洞提权的高级作案


现在操作系统对于APP运行的环境已经有了很好的保护机制,例如签名、沙盒隔离以及沙箱内部的各类访问控制。正常情况下,这些安全机制能够保护APP不被普通攻击者入侵。

然而,从2016年披露的“Pegasus”攻击套件到今年年初本人发现的《Operation Poisoned News: Hong Kong Users Targeted With Mobile Malware via Local News Links》攻击事件来看,APT或者Spyware的攻击目标有平民化转向的趋势。


攻击成功后都会收集用户社交软件、电话、地理位置甚至用户存储的秘钥信息等。如果遭受了这类攻击事件,用户的敏感信息基本暴露在攻击者的面前,也是用户最为可怕的一种攻击事件。



● 如何提高检测能力?●


那么基于这些获取用户隐私的手段。作为安全审计人员我们能通过哪些技术来提高检测能力:

1) 静态污染分析技术


对于隐私泄露检测来讲,静态审计最常用的方法是污染分析技术,目前学术界比较知名的检测工具有FlowDroid,Soot等。

这类方法通常将污染源APIs定义为Souce,将具有泄露能力的APIs定义为Sink,然后通过切片分析等程序分析的方法找到Souce点到Sink点的通路,从而发现隐私泄露的链路。

这种方法存在不少局限性,包括路径爆炸,不支持加壳APP和不支持JNI等问题,但是仍可作为普通APP的基础检测手段,并且对SDK的隐私泄露检测依然适用。

2) 动态污染分析技术


提到静态污染分析就不得不提动态污染分析技术,对于动态污染分析来讲,其采用的技术主要是在污染源点对敏感数据加上污染标签,通过对中间污染传播逻辑的实现,在泄漏点对发送数据进行监测,如果发现其具有污染标签,那么即可判定该次行为是隐私泄露行为。

这种方法虽然能够低误报地检测到泄露行为,但是由于开销问题,很难列出source点到sink点的完整路径信息。

因此,可通过动静结合的手段,在动态发现问题之后,利用静态分析方法获取完整路径信息。

3) 动态行为分析审计技术


相对于污染分析而言,动态行为分析只关注API的调用,以及HTTP、HTTPS等泄漏点未加密前数据的检测等,因此该方法的粒度比较粗,并且由于很多APP在拿到数据以后会对数据进行加密混淆等操作,隐私即使拿到了HTTPS未加密的数据也很难做到隐私数据的确认。因此也需要采用动静结合的手段,静态分析优先,行为分析验证。


● 我们如何应对?●



对于用户来讲,平时APP下载尽量选择正规的应用市场,在应用安装时Accessibility等敏感权限申请要谨慎授予。

另外,在应用的使用过程中,避免由于一些优惠等诱惑条件将自我的隐私信息输入或存储在App内部,当APP提示读取信息时,要确定相关业务场景是否需要这些信息。在发生资费情况下,谨慎付款。

如果遭受可疑扣费,应保存扣费证据并举报到响应部门。




声明:该文观点仅代表作者本人,转载请注明来自看雪