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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

不同的配方,相同的味道。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

相关文章
|
2月前
|
JSON API 数据处理
Winform管理系统新飞跃:无缝集成SqlSugar与Web API,实现数据云端同步的革新之路!
【8月更文挑战第3天】在企业应用开发中,常需将Winform桌面应用扩展至支持Web API调用,实现数据云端同步。本文通过实例展示如何在已有SqlSugar为基础的Winform系统中集成HTTP客户端调用Web API。采用.NET的`HttpClient`处理请求,支持异步操作。示例包括创建HTTP辅助类封装请求逻辑及在Winform界面调用API更新UI。此外,还讨论了跨域与安全性的处理策略。这种方法提高了系统的灵活性与扩展性,便于未来的技术演进。
196 2
|
2月前
|
机器学习/深度学习 缓存 数据处理
《零基础实践深度学习》2.3.3 校验数据有效性 基于飞桨Dataset和DataLoader API完成数据处理
这篇文章详细介绍了在深度学习任务中进行数据处理的步骤,包括数据校验、封装数据读取与处理函数、使用飞桨Dataset和DataLoader API完成数据加载,以及数据增强/增广的方法和实践,旨在确保数据的有效性和提高模型训练效果。
|
1天前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
19天前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
42 1
|
2月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
3天前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:
|
4天前
|
API 数据安全/隐私保护 开发者
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
|
5天前
|
安全 数据挖掘 API
解锁数据宝藏:Microsoft Graph API的统一数据革命
解锁数据宝藏:Microsoft Graph API的统一数据革命
14 0
|
5天前
|
SQL 安全 API
在API 接口的设计中,如何保证数据的安全性和完整性?
在API接口设计中,确保数据安全与完整至关重要。关键措施包括:采用HTTPS协议防数据泄露;强认证机制(如OAuth2/JWT)确保用户授权;敏感数据加密(如AES);签名加时间戳防重放攻击;输入验证防SQL注入等攻击;恰当错误处理避免敏感信息泄露;限频防滥用及DDoS攻击;详尽日志记录助安全审计;数据完整性校验(如哈希比对);版本控制保兼容;严格避免响应中泄露敏感信息;定期安全审计与测试。这些措施共同保障API安全。
28 0
|
1月前
|
XML JSON API
淘宝京东商品详情数据解析,API接口系列
淘宝商品详情数据包括多个方面,如商品标题、价格、图片、描述、属性、SKU(库存量单位)库存、视频等。这些数据对于买家了解商品详情以及卖家管理商品都至关重要。