SDK是如何窃取信息的?

昨晚,315晚会上曝光一些APP中植入某种功能或服务的插件(SDK),就能将个人信息全部转走。迟来的315,没有让正义缺席。

那到底什么是SDK呢?SDK 插件是怎么窃取用户隐私的?

以我做了几年saas和iaas的经验,这个问题可以给朋友们扫扫盲。

SDK是非常常见的插件,全称software development kit,它们是用来干嘛的呢?

简单来说,就是在某个软件1中融合了另一个软件2(包),用来帮助软件1完成某项工作。

举个简单的例子,当你打开国货之光瑞幸咖啡,准备点一杯咖啡的时候,查看地图你会发现,瑞幸的地图下方有个小角标,是的,瑞幸并不会自己专门去开发一个地图,瑞幸(软件1)就是调用了腾讯地图提供的sdk(软件2)
在这里插入图片描述

这个sdk是怎么工作的呢?

在瑞幸这个case中,当该程序启动的时候,会给腾讯地图sdk发送一条指令,腾讯地图sdk接收到指令后,会检查用户当前的位置及搜索门店的位置,当发现地点后,就会返回一条结果给瑞幸,瑞幸接到结果显示出来,我们就可以看到位置信息了。

这是一个很简单的sdk的案例,实际上,在真实的app开发中,为了尽量降低开发成本,很多app都会使用sdk,例如瑞幸根本没必要去开发一款地图产品,这对团队而言成本太高,还没啥收益,非常不划算,而且提供sdk的厂商大多也都是拥有成熟技术的能力方,他们不仅给某一个产品提供sdk,大多数情况下都是给某一类甚至全品类产品提供统一的sdk。

就好比自己能做物流当然好,但是外包物流更轻松不是嘛。所以当工程师需要实现一个功能,又没条件重复开发的情况下,使用sdk是最快捷最高效的方法了。

说了这么多,本意是告诉大家,sdk并不是个坏东西。而且sdk的种类非常多,像我之前做过的智能客服系统,就会提供客服sdk,同理还有支付sdk,推送sdk,地图sdk,图片标注sdk,游戏sdk等等。

为什么sdk和信息泄露会有关?

这里需要引入一个新的名词,api(application program interface),应用程序接口,其实sdk可以理解成是某个系统,为了方便别的系统对接他们的api而提供的一系列软件开发工具包。而api的目的是为了能够让两个需要通讯和共享数据的系统/平台,以双方都可理解,认可的方式,收发彼此信息。

所以问题来了,很多第三方的sdk会被接入不同的app中,所以提供sdk的第三方可以从各种各样的渠道(app)收集到我们不同的信息碎片,有了这么多数据,自然就可以进行数据分析,然后把这些数据成果进行出售。

在一个app获取某类权限了以后,它采集到的数据会通过sdk传给sdk提供方,很多sdk可以偷偷采集到蓝牙信息,移动设备内app列表,程序任务信息,用户账户信息,电话号码,通讯录等等,甚至还可以上传这些信息到指定的服务器。一旦被它用,很容易造成很严重的后果。

当然,现在部分应用商店对采集数据指标有着比较严苛的规定,不过也有个别第三方sdk会通过别的方式对信息进行采集,比如执行shell获取移动设备上已安装app信息,这种跨过系统接口采集用户隐私数据的行为非常可耻。

如何避开的话,说实话我没有什么特别好的建议。

当然,MIUI12做的不错,小米用户建议可以更新以后体验一下,实际上我一直觉得国内sdk泛滥的首要原因是因为国内没法用FCM(Google官方提供的推送服务,因为某些原因,国内没法用),所以如果想收到app推送信息,就必须要在后台运行,然后国内大部分app都是使用第三方sdk进行推送,而某些sdk在接入的时候可以配置成允许互相唤醒,这样就很容易导致凡是用了这个sdk的app们,在启动了以后一个,会唤醒所有和它使用了相同推送组件的app。

这就是为啥MIUI12会出现显示A程序唤醒了B程序1000多次这种魔幻操作的主要原因之一。

不过小米是有自己的推送组件的,如果厂商愿意适配的话最大头的这个麻烦就可以解决掉了,不过目前为止这个操作还比较繁琐,所以对开发端而言成本比较高。

这块的解决办法,从用户侧来说,一个就是换手机 (开玩笑的),一个就是在一开始就拒绝app自启动,但这样会导致接收不到应用消息。剩下的基本就是端侧了,要么安卓统一推送组件,要么用上FCM,要么各大app厂商良心发现。。
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值