终身学习、持续学习、原创学习、前沿研究
小肩膀教育
这篇来自佐治亚理工和Google的联合研究,2025年11月发在ACM CCS(计算机与通信安全顶会)。核心问题:Android生态中有多少SDK在做设备指纹追踪,它们是谁,用于什么目的?答案震撼:22.8万个SDK中有723个家族(1.4万个版本)在做指纹追踪,但广告SDK只占30.56%,23.92%的SDK目的不明,安全/反欺诈SDK占11.7%。更惊人的是:包含指纹SDK的App虽然只占3.2%,但按安装量算占39.4%——指纹SDK集中在最流行的App中,是普通App的10倍流行度。
这篇论文的价值在于:它是第一篇从市场角度系统研究移动端指纹追踪的论文,揭示了一个被严重低估的事实——指纹追踪不是广告行业的专属问题,而是整个移动生态的系统性问题。Apple的App Tracking Transparency和Google的Privacy Sandbox都聚焦于广告,但论文发现70%的指纹行为来自非广告SDK(分析、反欺诈、工具类、目的不明)。更关键的是,论文用t-SNE可视化发现:广告SDK和安全SDK的指纹行为高度重叠,无法通过行为特征自动区分——这意味着"允许反欺诈指纹,禁止广告指纹"的政策在技术上不可行。
技术上,论文建立了一个完整的分析管道:(1) 从9个Maven仓库爬取22.8万个SDK + 从Google Play采集17.8万个App(>1万活跃设备);(2) 手工逆向14个自称做指纹的SDK(Seed Set),提取504个独特信号;(3) 用污点分析(taint tracking)扫描所有SDK,找出采集≥20个信号的723个家族(Extended Set);(4) 5个专家用HCI编码技术给723个SDK打标签(Krippendorff's alpha = 0.804,信度很高);(5) 用代码相似度匹配App和SDK。数据规模和方法严谨性都是顶级的。
扣分点:(1) 只研究了Android——iOS生态完全没覆盖(论文承认iOS的DRM限制了大规模分析);(2) 信号计数过于简单——只看采集了多少个API,没有考虑熵值(有些API比其他API更能识别设备);(3) Seed Set可能有偏差——14个自称做指纹的SDK可能不代表所有指纹技术(比如没有发现硬件侧信道指纹);(4) 23.92%的SDK目的不明——这是一个巨大的黑洞,论文没有深入挖掘这些SDK到底在做什么。
但瑕不掩瑜。这是移动端指纹研究的里程碑式工作,数据规模空前(22.8万SDK + 17.8万App),方法论严谨(多轮人工标注 + 自动化分析),发现有冲击力(指纹不是广告专属问题),对政策制定和技术防御都有深远影响。
一、这篇论文在解决什么问题
来自佐治亚理工和Google的联合研究,2025年11月发在ACM CCS。核心问题用一句话概括:Android生态中有多少SDK在做设备指纹追踪,它们是谁,用于什么目的,影响了多少用户?
这个问题的背景是:移动操作系统厂商(Apple和Google)近年来推出了一系列反指纹追踪措施:
Apple的措施:
- App Tracking Transparency (ATT)
- Required Reason API
- Privacy Nutrition Labels
Google的措施:
- Privacy Sandbox for Android
- Data Safety Section:Google Play要求开发者声明数据采集行为
但这些措施有一个共同的假设:指纹追踪主要来自广告行业。
ATT明确允许"反欺诈目的"的指纹采集,Privacy Sandbox只隔离"第三方广告库"。但没有人系统地验证过这个假设——指纹追踪真的主要来自广告吗?还是有大量非广告SDK也在做指纹?
论文的三个研究问题(RQ):
RQ1:自称做指纹的SDK有什么行为特征?
RQ2:做指纹的SDK的目的是什么?
RQ3:指纹SDK的市场影响力如何?
- 不同App类别之间共享指纹SDK的概率有多高(跨App追踪风险)?
二、数据集和方法论拆解
数据集规模(§3.1)
SDK数据集:
- 来源:9个Maven仓库(JCenter、Maven Central、Google、Sonatype、Spring.io、Jitpack、Bintray、Artifactory)
- 规模
- 过滤"alpha"、"beta"、"test"、"dev"、"debug"、"qa"的SDK
App数据集:
- 来源
- 时间跨度
- 原始规模
- 过滤条件:只保留2024年4月13日 - 5月13日期间活跃设备数>1万的App
- 最终规模
为什么用"活跃设备数>1万"作为过滤条件?
论文的解释是:避免样本偏差——大量长尾App可能从未被真正使用,包含它们会稀释分析结果。活跃设备数是一个更好的指标,因为它反映了"设备在过去30天内至少开机一次",说明App确实在被使用。
Seed Set:14个自称做指纹的SDK(§3.2)
论文从22.8万个SDK中筛选出14个在广告文案或开发者文档中明确承认"我们做设备指纹"的SDK,作为Seed Set。
Table 2:Seed Set SDK列表
| | |
|---|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| ThreatMetrix (LexisNexis) | | |
| | |
| | |
| | |
| | |
| 总计(去重) | 504 | |
关键观察:
最少20个信号,平均75.5个:这成为后续Extended Set的阈值——只有采集≥20个信号的SDK才被认为在做指纹。
504个独特信号:虽然14个SDK总共采集了1043个信号,但去重后只有504个独特信号。这说明不同SDK采集的信号有重叠,但重叠度不高。
反欺诈占主导:14个SDK中有9个(64%)是反欺诈/身份验证SDK,只有1个(Microsoft Dynamics 365)是CRM/分析,0个是广告SDK。这已经暗示了一个重要发现:自称做指纹的SDK主要不是广告SDK。
没有硬件侧信道:论文发现所有14个SDK都只用框架级API(Android SDK提供的API),没有一个使用硬件侧信道(如加速度计指纹、音频指纹、GPU时钟指纹)。这和Web指纹研究的发现不同——Web指纹大量使用Canvas、WebGL、AudioContext等侧信道。
手工逆向流程:
每个Seed Set SDK都被两个分析师独立逆向,提取采集的信号列表,然后对比结果。如果有分歧,由全组5个专家讨论解决。这个双盲验证流程确保了Seed Set的准确性。
Extended Set:723个指纹SDK家族(§3.3)
论文开发了一个静态污点分析工具,扫描所有22.8万个SDK,识别哪些SDK采集了≥20个信号(Seed Set中最少的信号数)。
污点分析逻辑:
污点源(Taint Source):所有可以返回设备信息的API调用(如Build.MODEL、TelephonyManager.getDeviceId()、Settings.Secure.ANDROID_ID)
污点传播(Taint Propagation):跟踪污点数据在代码中的流动(赋值、函数调用、数据结构操作)
污点汇(Taint Sink):所有可以向外发送数据的API调用(如HttpURLConnection.getOutputStream()、Socket.send()、SharedPreferences.edit().putString())
判定标准:如果一个SDK从≥20个不同的污点源采集数据,并且这些数据最终流向污点汇,就认为这个SDK在做指纹。
结果:
为什么用"≥20个信号"作为阈值?
论文的解释是:保守估计,避免假阳性。
Seed Set中最少的SDK(Kaspersky)采集20个信号,如果一个SDK采集的信号比这还少,就很难说它在做指纹(可能只是正常的App功能需要这些信息)。这个阈值可能导致假阴性(漏掉一些真正做指纹但采集信号较少的SDK),但可以最大程度避免假阳性(把不做指纹的SDK误判为指纹SDK)。
SDK标签:5个专家的HCI编码(§3.4)
Maven仓库不要求SDK提供详细的功能描述,很多SDK只有一个简短的名字和一个URL。论文需要给723个SDK家族打标签(广告、分析、安全、工具、目的不明),但这是一个主观任务——不同人可能有不同判断。
论文借鉴了HCI(人机交互)社区的编码技术:
Step 1:Codebook开发
5个专家从723个SDK中随机抽取100个,独立给每个SDK打标签,然后开会讨论分歧,迭代定义标签的含义,直到达成共识(saturation)。
Step 2:独立标注
剩余623个SDK分配给5个专家,每个SDK由2个专家独立标注。
Step 3:信度检验
用Krippendorff's alpha测量标注者之间的一致性,得分0.804(>0.8被认为是高信度)。
Step 4:冲突解决
所有标注不一致的SDK由全组5个专家开会讨论,达成最终标签。
Table 1:SDK标签定义
| | |
|---|
| Advertising | 展示广告、广告竞价、广告定向、广告中介、或用于变现/转化的分析 | |
| Analytics | 监控App健康状况(崩溃报告、性能监控)或采集用户行为数据 | TOAST Logger、RichAPM Agent、Pushwoosh、Acoustic Tealeaf |
| Security & Authentication | | Passbase、Ondato、Incognia、SEON、Alipay、PayPal |
| Tools / Other | 导航、物体/人员追踪、社交网络通信、或其他明确定义的功能 | Tencent Map Nav、Radar、BeaconsInSpace、Foursquare Movement、Facebook、Chat SDK、iZooto App Push、GameUp |
| Unclear / Not Found | | |
为什么需要这么严格的标注流程?
因为SDK标签直接影响论文的核心发现——"指纹SDK的目的分布"。如果标注有偏差(比如把一些广告SDK误标为"目的不明"),就会得出错误的结论。Krippendorff's alpha = 0.804证明了标注的可靠性。
App-SDK匹配:代码相似度算法(§3.5)
最后一步是确定"哪个App包含哪个SDK"。这不是一个简单的字符串匹配问题,因为:
- SDK可能被混淆
- SDK可能被部分集成
- SDK可能被修改
论文开发了一个基于代码相似度的匹配算法:
特征提取:
- 系统API调用
- Opcode频率:如
invoke-virtual、iget-object的出现次数 - 框架API调用:如
androidx.appcompat.app.AppCompatActivity - 字符串常量:如
"https://api.example.com"
相似度计算:
对每个App和每个SDK,计算它们的特征向量的余弦相似度。如果相似度超过阈值(论文没有公开具体阈值,但说"优先避免假阳性"),就认为App包含这个SDK。
结果:
论文在17.8万个App中识别出了723个指纹SDK家族的存在情况,构建了一个App-SDK关系矩阵。
三、核心发现
RQ1:Seed Set的行为特征
Figure 2:信号分布的长尾效应
论文画了一个散点图,X轴是504个独特信号,Y轴是"有多少个Seed Set SDK采集了这个信号"。
关键发现:
80%的信号只被<50%的SDK采集:大多数信号是某个SDK独有的,不是通用的指纹特征。
只有2%的信号被>75%的SDK采集:只有10个左右的信号是"核心指纹特征",被绝大多数SDK采集。这10个信号可能是:
Build.MODELBuild.BRANDBuild.VERSION.SDK_INTTelephonyManager.getNetworkType()DisplayMetrics.widthPixelsDisplayMetrics.heightPixelsDisplayMetrics.densityDpiSettings.Secure.ANDROID_IDPackageManager.getInstalledPackages()LocationManager.getLastKnownLocation()
信号空间非常稀疏:不同SDK采集的信号集合差异很大,没有一个"标准指纹配方"。
Figure 3:Seed Set SDK之间的余弦相似度
论文把每个SDK表示为一个504维的one-hot向量(采集了某个信号就是1,否则是0),计算两两之间的余弦相似度。
结果:只有2个SDK(TransUnion和Ravelin)的相似度>0.5,其他所有配对都<0.5。
这说明:即使都是自称做指纹的SDK,它们采集的信号集合也高度不同。
对防御的含义:
Apple的Required Reason API策略(限制30个高熵API的使用)可能效果有限,因为指纹SDK可以用其他API组合达到同样的效果。论文发现504个信号中只有21个被>50%的SDK采集,如果只限制这21个API,攻击者可以转向其他483个API。
RQ2:Extended Set的目的分布
Figure 4:723个指纹SDK家族的目的分布
| | |
|---|
| Advertising | | |
| Unclear / Not Found | | |
| Tools / Other | | |
| Security & Authentication | | |
| Analytics | | |
三个震撼的发现:
广告SDK只占30.56%:虽然是最大的单一类别,但不到三分之一。这挑战了"指纹追踪主要来自广告"的假设。
23.92%的SDK目的不明:这是第二大类别。这些SDK在Maven仓库中没有足够的描述,开发者网站也没有明确说明功能。它们可能是:
- 中国/俄罗斯/其他非英语国家的SDK(文档是外语,论文作者看不懂)
安全/反欺诈SDK占11.75%:虽然比例不高,但绝对数量不少(85个家族)。这些SDK的指纹行为是"合法"的(用于反欺诈),但从隐私角度看和广告指纹没有区别。
Figure 5:t-SNE可视化——广告和安全SDK无法区分
论文把723个SDK表示为504维的one-hot向量,用t-SNE降维到2D平面,用颜色标记SDK的目的。
关键观察:
广告SDK(◆)主要在左侧,安全SDK(×)主要在右侧:这说明两类SDK的指纹行为有一定差异。
但有大量安全SDK在左侧,和广告SDK混在一起:这说明两类SDK的指纹行为有显著重叠,无法通过行为特征自动区分。
目的不明的SDK(●)分散在整个平面:这说明它们的指纹行为和所有其他类别都有相似性,可能包含各种类型的SDK。
对政策的含义:
Apple和Google的政策都允许"反欺诈目的"的指纹采集,但禁止"广告目的"的指纹采集。但论文发现:从技术上无法自动区分这两类SDK——它们采集的信号高度重叠,行为模式相似。
这意味着:
- 自动化执行这个政策非常困难
- 需要依赖SDK开发者的自我声明:但这容易被滥用——广告SDK可以声称自己是"反欺诈SDK"。
- 需要人工审核:但这不可扩展——Google Play有数百万个App,每个App可能包含几十个SDK。
敏感信号的使用(§4.2末尾)
论文手工识别了3类敏感信号:
| | |
|---|
| 粗粒度位置 | | |
| 细粒度位置 | | |
| 至少一种位置 | | |
| 账户列表 | | |
| App使用信息 | | |
86.29%的指纹SDK采集位置信息——这是一个巨大的隐私风险。位置信息本身就是高熵数据(可以唯一识别用户),结合设备指纹可以做跨App追踪。
RQ3:市场影响力
Figure 6:指纹SDK集中在流行App中
论文画了三个图:
(a) 按App数量统计:
(b) 按安装量统计:
- 最低5.5%(Libraries and Demo类App)
(c) 流行度对比:
- 在23个App类别中,包含指纹SDK的App的安装量是不包含指纹SDK的App的10倍以上
关键洞察:指纹SDK不是均匀分布的,而是高度集中在最流行的App中。
这意味着:
- 大多数用户会被指纹追踪:虽然只有3.2%的App包含指纹SDK,但这些App占了39.4%的安装量。随机安装一个流行App,有39.4%的概率被指纹。
- 流行App更依赖指纹SDK:可能是因为它们需要更复杂的分析、反欺诈、广告变现功能。
- 长尾App很少用指纹SDK:可能是因为它们的开发者资源有限,没有集成第三方SDK。
Figure 7a:不同App类别中指纹SDK的目的分布
论文画了一个热力图,X轴是App类别(如Art and Design、Finance、Game),Y轴是SDK目的(Ads、Analytics、Security、Tools、Unclear),颜色深度表示该类SDK在该类App中的占比。
关键发现:
广告SDK在几乎所有App类别中占主导:除了Finance、Food and Drink、Shopping这三个类别,其他所有类别中广告SDK都是最多的。
Finance、Food and Drink、Shopping类App更多使用Analytics SDK:这些App通常有用户账户系统,不需要通过指纹来识别用户(用户已经登录了),但需要分析用户行为来优化产品。
目的不明的SDK在所有类别中都占很大比例:这是第二大类别,仅次于广告SDK。
Figure 7b:跨App追踪风险热力图
论文计算了一个概率:从App类别A和App类别B各随机选一个App,它们共享至少一个指纹SDK的概率。
关键发现:
Game类App和几乎所有其他类别共享指纹SDK:Game类App使用的指纹SDK也被Art and Design、Beauty、Books and Reference、Comics、Communication、Dating、Entertainment、Health and Fitness等20多个类别使用。
Finance和Medical类App很少和其他类别共享指纹SDK:这两个类别的App通常处理高度敏感数据(银行账户、医疗记录),可能有更严格的隐私政策,不使用第三方指纹SDK。
跨App追踪风险很高:如果用户同时安装了Game类App和Dating类App,它们很可能共享同一个指纹SDK,该SDK可以关联用户在两个App中的行为。
对隐私的含义:
跨App追踪是指纹追踪最严重的隐私威胁——第三方SDK可以知道"用户A在约会App中喜欢什么类型的人,在游戏App中玩什么类型的游戏,在购物App中买什么类型的商品",构建一个完整的用户画像。
四、实战建议:这些发现对你意味着什么
给普通用户:你的手机可能比你想象的更"透明"
现实情况:你安装的流行App很可能在追踪你
论文发现了一个令人不安的事实:虽然只有3.2%的App包含指纹追踪SDK,但这些App占了所有安装量的39.4%。换句话说,如果你随机安装一个流行App,有接近40%的概率它在做设备指纹追踪。更糟糕的是,包含指纹SDK的App的流行度是普通App的10倍——你越喜欢用的App,越可能在追踪你。
这意味着什么?想象一下:你打开一个游戏App玩了半小时,然后打开一个约会App浏览了几个人的资料,最后打开一个购物App买了一件衣服。如果这三个App都使用了同一个指纹SDK(论文发现这种情况很常见),那个SDK的开发者就能知道"某个设备的用户喜欢玩什么游戏、对什么类型的人感兴趣、买什么风格的衣服"——即使你从未在这些App中登录同一个账号。
你能做什么?
优先选择知名度高、隐私政策透明的App。大公司(如Google、Microsoft、Amazon)虽然也采集数据,但至少有明确的隐私政策和法律约束。小公司或个人开发者的App可能集成了目的不明的SDK(论文发现24%的指纹SDK目的不明),你根本不知道数据被发送到哪里。
定期检查App权限,撤销不必要的权限。虽然论文研究的是"无需权限"的指纹追踪,但限制位置、相机、麦克风等敏感权限仍然有意义——论文发现86%的指纹SDK会采集位置信息,如果你不给位置权限,至少能减少一部分数据泄露。
使用隐私增强工具。Android用户可以考虑:
- Private DNS
- VPN
- App Ops或Permission Manager X(更细粒度地控制App权限)
- Shelter
不要过度依赖"隐私模式"或"无痕浏览"。这些功能只能防止浏览器保存历史记录,对设备指纹追踪完全无效——因为指纹追踪不依赖Cookie或浏览历史,而是依赖你的设备硬件特征(屏幕分辨率、CPU型号、已安装的App列表等),这些特征在隐私模式下和正常模式下完全一样。
给App开发者:你集成的SDK可能在做你不知道的事
现实情况:第三方SDK是一个黑盒
论文发现,大多数指纹追踪不是App开发者自己实现的,而是通过集成第三方SDK引入的。最典型的例子是京东小程序模板和Google Play中的各种分析/广告SDK。这些SDK通常承诺"帮你提高用户留存率"、"优化广告收入"、"防止欺诈",但它们在背后做什么,你可能完全不知道。
更麻烦的是,论文发现24%的指纹SDK目的不明——它们在Maven仓库中没有足够的描述,开发者网站也没有明确说明功能。如果你集成了这样的SDK,你根本不知道它在采集什么数据、发送到哪里、用于什么目的。万一这个SDK是恶意的(比如窃取用户数据卖给数据经纪商),你的App会被Google Play下架,你的声誉会受损,你甚至可能面临法律诉讼。
你能做什么?
在集成任何第三方SDK之前,做尽职调查。不要只看SDK的功能介绍和代码示例,还要检查:
- 开发者是谁? 是知名公司(如Google、Facebook、Amazon)还是不知名的小公司?
- 隐私政策在哪里? 如果SDK没有隐私政策,或者隐私政策含糊不清("我们可能采集设备信息用于改善服务"),这是一个危险信号。
- 其他开发者的评价如何? 在Stack Overflow、Reddit、GitHub Issues中搜索这个SDK,看看有没有人抱怨隐私问题。
- SDK的权限需求合理吗? 如果一个"崩溃报告SDK"要求访问位置、相机、麦克风,这明显不合理。
优先使用开源SDK,或者至少能看到源代码的SDK。开源SDK的代码是公开的,任何人都可以审查它在做什么。即使你自己没有时间审查,社区中的其他开发者也可能已经审查过了。论文中提到的Fingerprint.js就是一个开源的指纹库——虽然它明确承认自己在做指纹,但至少是透明的。
定期审计你的App中集成的SDK。SDK会更新版本,新版本可能引入新的数据采集行为。建议:
- 每次更新SDK时,检查更新日志(changelog),看看有没有新的权限需求或API调用
- 使用静态分析工具(如Exodus Privacy、ClassyShark)扫描你的APK,看看有哪些SDK、它们调用了哪些敏感API
- 如果发现某个SDK的行为变得可疑(比如突然开始采集位置信息),考虑换一个替代品或自己实现相关功能
考虑"最小权限原则"——只集成你真正需要的SDK。很多开发者会集成一大堆SDK(广告、分析、崩溃报告、推送通知、社交分享、地图、支付……),但其中很多可能根本没用上。每多集成一个SDK,就多一个潜在的隐私风险。问自己:
- 这个SDK提供的功能对我的App核心体验是必需的吗?
- 我能用更简单的方式实现同样的功能吗?(比如用Android自带的API而不是第三方SDK)
如果你的App处理敏感数据(金融、医疗、儿童),要格外小心。论文发现Finance和Medical类App很少使用指纹SDK,可能是因为这些领域有更严格的隐私法规(如HIPAA、PCI DSS)。如果你的App属于这些类别,集成第三方SDK前一定要咨询法律顾问,确保不违反相关法规。
给平台和监管者:现有的反指纹政策有巨大漏洞
现实情况:反指纹政策只针对广告,但广告只占30%
Apple的App Tracking Transparency(ATT)和Google的Privacy Sandbox都有一个共同的假设:指纹追踪主要来自广告行业。但论文用22.8万个SDK和17.8万个App的数据证明了这个假设是错误的——广告SDK只占指纹追踪的30.56%,剩下70%来自分析SDK(10.65%)、安全/反欺诈SDK(11.75%)、工具类SDK(23.09%)、以及目的不明的SDK(23.92%)。
这意味着什么?即使Privacy Sandbox完美地隔离了所有广告SDK,仍然有70%的指纹追踪不受影响。更糟糕的是,论文发现广告SDK和安全SDK的指纹行为高度重叠(通过t-SNE可视化),无法通过API调用模式自动区分——这意味着"允许反欺诈指纹,禁止广告指纹"的政策在技术上不可行。
你能做什么?
扩展反指纹政策的范围,不要只针对广告。建议:
- 所有采集超过一定阈值(如20个)设备信号的SDK都需要用户明确同意,不管它的目的是广告、分析、反欺诈还是其他。论文发现指纹SDK平均采集75.5个信号,远超正常App功能所需。
- 不要依赖SDK的自我声明("我是反欺诈SDK所以可以豁免"),因为这容易被滥用。应该基于实际行为(采集了多少信号、发送到哪里)来判断。
- 对"目的不明"的SDK格外警惕。论文发现24%的指纹SDK目的不明,这是一个巨大的黑洞。可以要求所有SDK在上架前提供详细的功能描述和隐私声明,否则不允许被App集成。
大幅扩展"需要用户同意"的API列表。Apple的Required Reason API目前只限制30个API,但论文发现504个独特的指纹信号,其中只有21个被超过50%的SDK采集。这说明指纹技术非常多样化,攻击者可以用各种不同的API组合达到同样的效果。建议:
- 采用"默认禁止,白名单允许"的策略——所有可以返回设备信息的API默认需要用户同意,除非开发者能证明必要性(比如"我的相机App需要知道屏幕分辨率来调整预览画面")。
- 特别关注位置API。论文发现86%的指纹SDK采集位置信息,这是最严重的隐私风险之一。位置信息本身就是高熵数据(可以唯一识别用户),结合设备指纹可以做跨App追踪。
- 限制批量API调用。论文发现指纹SDK的典型特征是"在短时间内调用大量不同的设备信息API"。可以在操作系统层面检测这种行为,如果一个App在1秒内调用了20个不同的设备信息API,弹窗警告用户"这个App可能在做设备指纹追踪"。
建立SDK透明度机制,让开发者和用户知道SDK在做什么。建议:
- 强制SDK提供"营养标签"(类似App Store的Privacy Nutrition Labels),列出采集的所有数据类型、用途、是否与第三方共享。
- 建立公开的SDK数据库(类似Google Play SDK Index),让任何人都可以查询某个SDK的隐私行为。论文发现很多SDK在Maven仓库中没有足够的元数据,这让开发者和用户都无法做出知情决策。
- 要求App在隐私政策中列出所有集成的第三方SDK,而不是只说"我们使用第三方服务来改善用户体验"。用户有权知道他们的数据被分享给了哪些公司。
投资于自动化检测技术,但不要完全依赖它。论文开发的污点分析工具可以检测SDK是否采集了大量设备信号,但这只是第一步。还需要:
- 动态分析——在沙箱中运行App,监控它实际发送了哪些数据到哪些服务器。静态分析只能看到代码,但代码可能被混淆或动态生成。
- 行为聚类——用机器学习识别"典型的指纹行为模式",即使SDK使用了不同的API组合。论文的t-SNE可视化是一个好的起点。
- 人工审核——对于高风险的SDK(采集大量敏感信息、目的不明、来自不知名开发者),应该由专家团队人工审核代码和隐私政策。
小肩膀教育作为国内十年逆向老机构,数十年如一日录制教程,涵盖网络爬虫、JS逆向、安卓逆向、IOS逆向、小程序逆向,AI逆向和指纹浏览器开发等多个版块,完全从零基础开始教学。加入小肩膀,是加入了逆向技术圈子,互相学习、资源共享,欢迎加入小肩膀教育。
海外IP代理做的人很多,有贵的也有便宜的,那为什么和小肩膀合作呢?因为和我们合作我们就有了联系,来找小肩膀合作购买海外动态、静态住宅和包月不限量IP的,价格绝对优惠。
只要是有海外的数据采集需求:亚马逊、谷歌、ebay、雅虎、领英、X、youtube、TIKTOK等等,都可以来合作。
小肩膀本人联系方式↓