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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 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

目录
打赏
0
0
0
0
15465
分享
相关文章
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
不写一行代码,用MCP+魔搭API-Inference 搭建一个本地数据助手! 附所有工具和清单
还在为大模型开发的复杂技术栈、框架不兼容和工具调用问题头疼吗?MCP(Model Context Protocol servers)来拯救你了!它用统一的技术栈、兼容主流框架和简化工具调用的方式,让大模型开发变得简单高效。
454 1
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
Python 原生爬虫教程:京东商品详情页面数据API
本文介绍京东商品详情API在电商领域的应用价值及功能。该API通过商品ID获取详细信息,如基本信息、价格、库存、描述和用户评价等,支持HTTP请求(GET/POST),返回JSON或XML格式数据。对于商家优化策略、开发者构建应用(如比价网站)以及消费者快速了解商品均有重要意义。研究此API有助于推动电商业务创新与发展。
微店商品详情API接口实战指南:从零实现商品数据自动化获取
本文介绍了微店商品详情API接口的应用,涵盖申请与鉴权、签名加密、数据解析等内容。通过Python实战演示了5步获取商品数据的流程,并提供了多平台同步、价格监控等典型应用场景。开发者可利用此接口实现自动化操作,提升电商运营效率,降低人工成本。文中还总结了频率限制、数据缓存等避坑指南,助力开发者高效使用API。
微店API开发全攻略:解锁电商数据与业务自动化的核心能力
微店开放平台提供覆盖商品、订单、用户、营销、物流五大核心模块的API接口,支持企业快速构建电商中台系统。其API体系具备模块化设计、双重认证机制、高并发支持和数据隔离等特性。文档详细解析了商品管理、订单处理、营销工具等核心接口功能,并提供实战代码示例。同时,介绍了企业级整合方案设计,如订单全链路自动化和商品数据中台架构,以及性能优化与稳定性保障措施。最后,针对高频问题提供了排查指南,帮助开发者高效利用API实现电商数智化转型。适合中高级开发者阅读。
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析

热门文章

最新文章

  • 1
    苹果app上架-ios上架苹果商店app store 之苹果支付In - App Purchase内购配置-优雅草卓伊凡
    117
  • 2
    苹果app上架app store 之苹果开发者账户在mac电脑上如何使用钥匙串访问-发行-APP发布证书ios_distribution.cer-优雅草卓伊凡
    64
  • 3
    uniapp云打包ios应用证书的获取方法,生成指南
    105
  • 4
    iOS|解决 setBrightness 调节屏幕亮度不生效的问题
    139
  • 5
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
    43
  • 6
    iOS各个证书生成细节
    64
  • 7
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    290
  • 8
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    91
  • 9
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    100
  • 10
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    86
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等