iOS软件被曝使用私有API:你的数据被偷了

简介:

不同的配方,相同的味道。App Store 一直都在飞快地发展,现在这块蛋糕越来越大,尤其是在中国地区。所以,想要从这块蛋糕上尝到甜头的人也越来越多。做法正经的,我们叫他们商人;做法不正经的,我们只能称之为奸商甚至是犯罪份子了。可怜开发者,要背锅了。

罪恶之源被曝光

iOS软件被曝使用私有API:你的数据被偷了

“我们已经了解到,一系列采用第三方移动广告 SDK 进行开发的 iOS 软件会通过私人 API 擅自收集用户的个人信息,包括邮箱地址、设备序列号以及路由数据等等。然后,这些软件把用户数据传向一家名为有米的移动广告供应商所设的服务器,开发者所使用的 SDK 也是由这家供应商所开发的。

这种行为已经违反了我们的安全与隐私准则,所以使用有米SDK 进行开发的软件将会从 App Store 下架,提交的审核也会被拒绝。苹果正在与开发者进行紧密合作,帮助他们将自己的软件进行升级,以配合App Store 的准则,保证用户信息的安全,尽快让受到影响的软件回到App Store。”

上面这一段话,是苹果发言人向代码数据分析机构SourceDNA 发送的一次最新回应,因为后者在近日有一段了不得的发现:App Store 当中有一大批软件会通过私人API 收集用户资料,然后传向有米的服务器。有米,这是一家来自中国的移动广告供应商,他们自己有一套SDK,与之合作的开发者可以使用他们的SDK 来开发软件。

通过使用自家的检测工具,SourceDNA 在App Store 当中发现了至少256 款使用有米SDK来开发的软件,所收获的累计下载次数超过 100 百万次,这些软件将会被苹果一一下架(目前已经有一批被下架),其开发者基本上也都来自于中国。一直以来,苹果都不允许第三方 SDK 带私有 API,但这一次有米明显是绕过了 App Store 的审核机制。

根据 SourceDNA 公布的信息,使用有米 SDK 开发的软件会收集以下信息:

1:安装应用的具体列表

2:iOS 设备序列号(识别号)

3:硬件及外接设备的标识符等信息

4:Apple ID 邮件地址

据了解,有米通过私有 API 收集用户信息已经不是一天两天的事儿了,他们早在两年之前就开始这么干,并随着时间的推移越来越肆无忌惮。也许是因为有米有特别的隐藏数据收集行为的技巧,苹果也一直没有发现他们所干的勾当。收集了两年的用户资料才被发现,他们到底是怎么做到的呢,我们先来看看 SourceDNA 是怎么发现的。

背后的技术解析

iOS软件被曝使用私有API:你的数据被偷了

iOS 的二进制文件包括 ARM 机器代码,SourceDNA 会对这一些代码进行解析。调用一个 Objective-C 方案时,它是通过 objc_msgsend 来进行矢量导航的,而且它是以字符串的方式来接收类别及方案。一般情况下,在调用 objc_msgsend 之前这些字符串可以通过查看数据参考来完成静态解析。SourceDNA 会跟踪这些调用目标类别/方案的起源和目的,然后建立一个调用图,用来探测每个(受到影响的)应用程序是使用了哪种方案。

然而,在某些情况下,这些参数是不能被静态解析的。因为它们只是字符串,它们可以在运行时通过任何字符串操作例程来创建。所以,一些工具会利用这种特点来混淆类别和方案的名称,在调用 objc_msgsend 之前解扰字符串。

一款应用程序还可以通过调用 dlopen 来加载一个全新的资料库,然后通过调用 dlsym 在这个资料库里面访问相应的函数或数据。这样一来,动态链接器在指定的文件中就会进行勘查(首先检查它的代码签名),然后查找给定的符号地址。由于资料库和符号名称都是字符串,因此也可以在运行时创建。

SourceDNA 对这一个在数以百万计应用程序当中存在的代码行为进行了解析,主要是确认运行时间里的资料库加载是否被拿来访问私有的 API接口,SourceDNA 对他们所收集到(应用程序)资料进行排查,如果符合以下条件就证明应用程序会收集用户的个人信息:

-调用dlopen、dlsym 或 nsclassfromstring / nsselectorfromstring

-通过各种字符串控制函数来生成参数

iOS软件被曝使用私有API:你的数据被偷了

经过排查发现,有几百款应用程序符合他们的设定。这些应用程序使用的是 sprintf 和 %s 格式字符串以及 %@ 和 NSString stringwithformat:。SourceDNA 为此还通过使用附近的静态字符串写了一个脚本来扩展这些格式字符串,然后对重构的参数进行聚合。最后,就得到了有米 SDK 试图收集用户个人信息的证据。

至于为何有米通过私有 API 收集用户资料的行为这么久才被发现,主要是因为这家移动广告商通过枚举电池系统等外接设备突破了苹果的限制,并且又以硬件标识符的方式对设备的序列号进行搜集,因此很难被查到。据了解,这是自 App Store 在 2008 年上线以来,第一次有人以这样的方式来绕过苹果的审核机制。

苹果做法可点赞

这一次的有米 SDK 事件很容易让我们想起不久之前的 XcodeGhost,因为中招的都是 App Store,而且源头都是中国区。不过,其影响范围可不仅仅是中国。上一次的 XcodeGhost 事件,主要是因为开发者使用了来源不明的 Xcode 开发工具所致,影响到的都是像微信、铁路 12306、联通手机营业厅、高德地图等非常热门的软件,苹果也因此在第一时间对受到影响的软件进行了暂时下架处理。

在本次事件中,SourceDNA 并没有列出他们探测到的 256 款应用程序名单,目前我们所知中国版的麦当劳 App 已经因为该事件而遭到下架处理。我们还通过有米的官网了解到,像唯品会、淘宝网等知名 App 是他们的合作伙伴,至于是否受到影响目前还不得而知,有米方面至今还未对此报告作出回应。

好在,无论是涉及到用户安全还是隐私问题,苹果的态度一直都是“坚决拥护”。XcodeGhost 事件如是,有米 SDK 事件如是,苹果都在第一时间作出反应,该封杀的就封杀。

iOS 平台也不是没有出现过安全事故,但此前我们看到的恶意软件感染事件基本上都是黑客直接把病毒植入伪装的应用程序内,又或者是通过外部链接来引诱 iOS 上当。然而这一次的 SDK 以及上一次的 XcodeGhost 事件,不法份子则是通过开发软件的源头下手,《福布斯》杂志称之为“一种全新的方式”。

近段时间曾有调查发现,中国已经成为iOS 应用最重要的市场,因为中国区的 App Store 应用下载数已经超过了美国(收入上还落后)。随着 App Store 下载量的进一步提升,中国区应用市场这块蛋糕也越来越大,而盯上蛋糕的黑客也自然越来越多。也许不久之后,我们又会见到“一种全新的方式”。

最后说一句,在本次事件当中,开发者也很可怜的,因为他们很有可能也不知道自己开发的应用会搜集用户的信息,因为有米根本没有告诉他们。

作者:蓝雨泪


来源:51CTO

相关文章
|
1月前
|
数据采集 JSON Java
揭秘阿里巴巴:如何通过API实时捕获中国市场商品数据
阿里巴巴提供了丰富的API接口,使得第三方开发者可以实时捕获中国市场商品数据。以下是一些关键步骤和要点,帮助你揭秘如何通过阿里巴巴的API实现这一目标:
|
2月前
|
监控 数据挖掘 API
商品评价聚合:利用API从多个来源获取数据的详细指南
在当今电子商务的繁荣发展下,消费者在做出购买决策前越来越依赖商品评价。这些评价不仅反映了产品的实际使用体验,也直接影响着品牌信誉和销售业绩。为了全面了解消费者的声音并优化产品,企业需要从各种销售渠道收集和分析商品评价。本文将详细介绍如何通过API集成不同数据源的商品评价。
|
2月前
|
机器学习/深度学习 搜索推荐 API
商品信息全景图:API接口在聚合商品数据中的应用
在电子商务的世界中,API接口是连接不同服务和数据的桥梁。特别是在商品信息的聚合上,API接口扮演了至关重要的角色,它允许开发者从多个来源收集、整合并展示商品信息,从而为消费者提供全面且一致的购物体验。本文将深入探讨API接口在聚合商品数据中的应用,并通过具体的代码示例来揭示其工作原理。
|
2月前
|
XML 监控 API
跨平台销售策略:通过API同步不同市场的商品数据
在数字化时代,零售商和品牌经常需要在不同的在线市场上展示和销售商品。为了保持竞争力并确保一致的客户体验,商家必须确保其商品信息在所有渠道上保持同步和准确。这种需求催生了跨平台销售策略,其中一个关键组成部分就是利用应用程序编程接口(API)来同步不同市场的商品数据。
|
3月前
|
搜索推荐 安全 API
API接口的艺术:如何巧妙获取商品数据
在数字时代,API接口已经成为连接不同软件系统、共享数据的桥梁。尤其在电商领域,商品数据的实时获取和处理对于提供个性化服务、优化用户体验至关重要。本文将深入探讨API接口的艺术,以及如何通过它们高效地获取和管理商品数据。
|
2月前
|
数据采集 数据挖掘 API
主流电商平台数据采集API接口|【Python爬虫+数据分析】采集电商平台数据信息采集
随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、价格、评论等数据。 当然,如果是电商企业,跨境电商企业,ERP系统搭建,我们经常需要采集的平台多,数据量大,要求数据稳定供应,有并发需求,那就需要通过接入电商API数据采集接口,封装好的数据采集接口更方便稳定高效数据采集。
|
2月前
|
缓存 安全 API
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
公司对外开放的OpenAPI-Server服务,作为核心内部系统与外部系统之间的重要通讯枢纽,每天处理数百万次的API调用、亿级别的消息推送以及TB/PB级别的数据同步。经过多年流量的持续增长,该服务体系依然稳固可靠,展现出强大的负载能力。
55 9
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
|
1月前
|
JSON Java API
教你如何使用API接口获取数据
随着互联网技术的发展和应用的普及,越来越多的系统和应用提供API接口供其他系统和应用进行数据交互。通过API接口,我们可以获取到各种各样的数据,例如天气预报、股票行情、新闻摘要等等。本文将介绍如何使用API接口获取数据,并附有示例代码。
|
22天前
|
供应链 搜索推荐 BI
深入了解淘宝原数据:获取API接口及其使用场景
在当今数字化的时代,对于电商行业来说,数据具有极大的价值。淘宝作为中国最大的综合电商平台,拥有庞大的商品信息和用户数据。对于开发者和企业来说,淘宝原数据的获取和分析是实现个性化服务和精准营销的基础。本文将介绍如何通过API接口获取淘宝原数据,以及数据的使用场景。
|
1月前
|
数据采集 API 开发者
调用API接口获取小红书笔记详情数据(小红书怎么推广)
小红书平台对于其API的使用有严格的规定和限制,并且并非所有的功能和数据都通过公开API提供。关于获取小红书笔记详情的API,以下是一些建议和指导: