SDK,APP开发者应该都很了解,开发者们或多或少都接触或安装过,而提到SDK安全性这个问题,开发者们的情绪可能都不会平静,这其中的利害关系确实有点儿复杂。

一方面,SDK方便开发者产品设计,帮助开发者简化开发步骤,提高开发效率,节约开发成本。像框架类、广告类、推送类、统计类、地图类、社交类、支付类、客服类、测试类等等,这些不同类型的SDK极大地方便了开发者。

而另一方面,对开发者来说,也不得不承担,因嵌入第三方SDK后带来的风险、后果。由于SDK开发者开发能力的参差不齐,可能因为技术原因或恶意‘留后门’而存在大量安全漏洞,还有一些SDK会违规读取和储存用户隐私,或执行越权操作等,这些问题轻则造成APP卡顿,重则被应用市场下架,更严重的情况是漏洞被攻击,就可能会给APP及APP用户带来严重损失。

早在2020年7月,延迟四个月举行的3.15晚会中,央视曝光了50多款App中内嵌SDK插件窃取用户隐私的问题,这些App通过内置SDK插件,在用户不知情的情况下,读取、上传用户电话号码、通讯录、短信记录、应用列表等信息,并窃取联系人、交易验证码等数据,严重侵犯用户隐私权益、财产安全……一时间,SDK成为“众矢之的”,令社会普遍认为,SDK是造成个人隐私数据泄露的“元凶”。上月,一则“滴滴出行”APP因严重违法违规收集使用个人信息被应用市场下架的消息,让个人信息安全问题重回热点,像滴滴这样的Hero APP都被下架了,更是令众多APP经营者风声鹤唳。

事实真的如此吗?SDK真的是“洪水猛兽”吗?让我们来看一组数据。

根据观研天下发布的《2019年中国移动APP行业分析报告》调查数据显示,截止2018年第四季度,全球APP平均安装SDK数量达18.2个/APP,100-500万下载量的APP的SDK平均安装数量最多,达27.7个。

2016-2018年全球APP平均安装SDK数量

2018年12月不同下载量级别APP的SDK数

2019年,南都个人信息保护研究中心委托中国金融认证中心针对使用率高的 SDK 做了隐私数据分析报告。

报告显示,在测评的 60 款常用应用软件中,共使用了至少 966 个 SDK,平均每款 App 使用19.3 个(注:移动金融类未计在内,因为该行业普遍对 App 进行加固,难以确切检测出使用的 SDK)。其中生活服务类 App 平均使用的 SDK 个数最多,为 20.2 个,旅游交通类最少,平均使用 15.4 个 SDK。由此我们可以看出,SDK之于APP开发者们,在风险可控的情况下,并不排斥。

《常用第三方 SDK 收集使用个人信息测评报告》/ 南都个人信息保护研究中心中国金融认证中心(CFCA)

广告SDK是绝大多数App开发者在考虑商业化变现时,经常要用到的。下面我们就对广告SDK的功能分类,集成规范,工作原理来详细解读,以便APP开发者对广告SDK有更深入的了解。

1.APP与广告SDK

根据2020年11月全国信息安全标准化技术委员会《网络安全标准实践指南-移动互联网应用程序(App)使用软件开发工具包(SDK)安全指引》中对SDK的分类,常见SDK类型分为16类(见下图),其中,对广告SDK的功能描述是提供广告展示功能,通过使用广告SDK,App提供者可以在App中展示广告商投放的广告,进而根据用户的点击赚取收益。

资料来源:《网络安全标准实践指南—移动互联网应用程序(App)使用软件开发工具包(SDK)安全指引》

广告SDK在众多SDK类型中,是比较特殊的一类,其他SDK主要是方便APP自身运营需要,而广告SDK它的功能目的是直接的商业化变现。因此,具备一定规模流量地想快速获得收益的APP开发者都会考虑接入广告SDK。

2.广告SDK分类及用途

广告SDK的功能是展示广告,从定义上来说,还分广义的和狭义的广告SDK。

广义的广告SDK:指为开发者提供广告相关功能(接入广告、广告监测等)的软件开发工具包。

狭义的广告SDK:指帮助App开发者接入广告,实现广告变现的软件开发工具包。

从用途上分:可以分为网页SDK和APP SDK,网页SDK用于网页(或小程序)的广告变现。APP SDK用于移动应用程序内的广告变现。

APP SDK从编写语言上分:又可分为Java SDK、Objective-C SDK。Java SDK适用于Android,Objective-C SDK适用于iOS。

按照不同广告领域:可分为展示广告SDK,激励广告SDK、互动广告SDK等。

(1)展示广告SDK一般用于仅展示广告素材类型的广告,使用范围最为普遍。

(2)激励广告SDK一般用于有激励场景的APP,像激励视频、积分墙等广告形式,游戏APP安装较多。

(3)互动广告SDK,多用于像抽奖、大转盘等类型的广告形式,使用范围广泛,工具类应用较多安装。

根据SDK商业性质来看:可以分为单一广告SDK和聚合广告SDK。

单一广告SDK直接用来进行广告投放,一般开发者多为广告联盟,仅用于需求方的广告投放。

聚合广告SDK集成多家广告联盟SDK,可实现多平台的广告投放,开发者多为广告技术公司,主要用于方便APP开发者在进行多广告联盟变现时的运营优化。

3.广告SDK如何接入

一般广告SDK的开发者都会有对接文档给到APP开发者,APP开发者根据文档步骤自助对接,有问题的话再以邮件或工单提交等形式联系广告SDK开发者。有的广告SDK开发者会安排专人跟踪对接服务,相对来说处理问题会比较及时。总的来说,不管哪种服务方式,集成过程都基本遵循这样一个步骤:

Step 1 加入文件:根据文档内容,将广告SDK嵌入指定项目目录中。

Step 2 创建关联:建立关联关系,向广告SDK添加引用,添加配置、权限等。

Step 3 代码写入:应用初始化及广告位开发,调用广告SDK提供的广告位模板。

Step 4 测试联调 :测试广告流程,是否正常触发广告请求、返回广告,广告素材下发、渲染、展示是否正常,是否流畅,广告数据统计是否正常等内容。

Step 5 更新软件: 将集成过广告SDK的APP上架到应用市场

完成以上步骤,广告位基本能够请求到广告,实现广告变现。

4.广告SDK的请求机制

对于单一广告SDK和聚合广告SDK来说,工作机制基本相同,都是APP启动,调用SDK,触发广告请求,发送给广告平台服务器,广告平台服务器返回广告,下发素材,展示广告,如下图。

广告SDK运行机制

区别在于,在发送广告请求上,聚合广告SDK会多一步转发请求的动作,将广告请求转发多家广告联盟平台。

广告SDK的工作流程已经很清晰,但对APP开发者来说,这些可能都不是难点,最大的顾虑还是在SDK的安全性上。主要问题,一是,SDK安全漏洞。二是,是否预留“后门”。三是,数据是否滥用。最后,问题还是落在这三点上,要避免这些问题,最好的方法是对广告SDK源码进行核查。

事实上,现在的做法也是这样的。一般开发者对接广告SDK的时候都会对SDK进行审查,但对于不是很了解广告行业或者技术能力不足的开发者,在SDK审查上,既有顾虑又可能无从下手,这里AdScope在SDK核查方面给出一些方法,以便于开发者操作。

5.广告SDK的核查

广告SDK的核查工作概括起来主要有两个方面:一查什么?二怎么查?

一、查什么?

(1)来源安全性评估

SDK提供者的基本信息,沟通反馈渠道,隐私政策链接地址,提供者安全能力,SDK基本功能,SDK版本号等。

(2)代码安全性评估

是否存在已知的恶意代码,是否存在已知的安全漏洞,是否申请敏感权限,是否嵌入其他SDK。

(3)行为安全性评估

调用的敏感权限、目的和频率,收集的个人信息类型、目的和频率,个人信息回传服务器域名、IP地址、所在地域,是否存在热更新行为及热更新是否可主动关闭,传输数据是否加密,是否存在单独收集用户个人信息的界面,是否存在后台自动启动和关联启动后收集个人信息的行为等。

二、怎么查?

(1)文档审核

在接入SDK前,对广告SDK开发者提供的文档进行核查,根据前面提到的几项主要内容,对照文档查看是否都符合要求,还有双方未达成一致或有争议的内容。

(2)工具抓包

接入SDK后,在进行测试过程中,使用工具对广告SDK网络工作流进行抓包操作。通过抓包主要验证安全性评估内容,并查看是否有在文档和商务谈判中未涉及到的隐秘及可疑行为。

市面上的抓包工具很多,这里主要介绍适合移动端开发者使用的抓包工具,Charles,Fiddler,Replica(移动端APP),这三款都不错,这里比较推荐Charles,它支持Windows,Mac,Linux,安装使用简单,功能强大。

(3)第三方认证

通过具有安全审核资质的第三方公司来对广告SDK进行审核工作,出具第三方评估报告,一般也是在接入后的测试环节进行。第三方认证机构也很多,比如360安全专家、网易易盾、腾讯安全等,但很多第三方的机构都是付费的。

作为一种对接方式,广告SDK在APP商业化变现的过程中扮演重要的角色,在移动广告事业的发展中也起着非常关键的作用。正是由于SDK在移动广告行业中的广泛使用,才创造了移动互联网广告市场的万亿规模,为社会带来巨大的经济价值。

SDK创造的价值不应被忽视,而只谈影响,SDK需要的是监管和合规,而不是取缔。欣喜的是,政府及监管部门正在出台多项法律法规积极治理,相信不久的将来,SDK将迎来一个净化过的市场环境,App开发者与SDK开发者终将以建立互信的商业合作关系结尾。

关于AdScope

国内专业的一对一媒体商业变现服务平台,帮助媒体主快速解决广告填充、过程损耗、单价、收益、渠道、时间、技术、人力成本等问题,实现媒体广告收益最大化,收益真实透明,100%对开发者收益负责。

解读广告SDK工作机制,保护App自身安全相关推荐

  1. 广告sdk窃取用户隐私:你家的App被下架了吗?

    来自新浪新闻的消息,因为涉及偷取用户的额外信息,苹果下架了包括爸爸去哪儿,找你妹等256个App,具体为什么下架呢?是因为这些App嵌入了有米的广告sdk,sdk说白了就是一段代码,用来增加开发者的收 ...

  2. 广告sdk是什么意思?广告SDK分类及用途介绍

    广告sdk是什么意思? SDK的英文全名是:software development kit,翻译成中文的意思就是"软件开发工具包"通俗一点的理解,是指由第三方服务商提供的实现软件 ...

  3. 打造APP广告变现利器,了解聚合广告SDK的选择技巧与优势

    ​随着移动互联网的快速发展和普及,APP已成为了人们日常生活中不可缺少的一部分,其涉及新闻.购物.游戏.生活服务等等. 而对于各类APP开发者来说,如何对自己的应用进行更好的广告变现,从而提升预算为客 ...

  4. 个人APP开发者如何对接聚合广告SDK平台?

    作为个人开发者要想通过APP广告变现是越来越难了,想在应用市场上架APP越来越难,需要提供软著.企业账号等,就连广告平台也不支持个人开发者接入,目前APP广告变现平台的穿山甲.优量汇.快手联盟从21年 ...

  5. ios工程广告添加:广告sdk、广告中介添加(出海App)

    ios工程广告添加:广告sdk.广告中介.firebase添加 设备/引擎:Mac(11.6)/cocos 开发工具:Xcode(13.0) 安装方式:通过Pods安装 开发需求:为ios添加广告 前 ...

  6. JavaWeb技术内幕二:Java IO工作机制

    IO问题是当今web应用所面临的主要问题之一,因为数据在网络中随处流动,在这个流动过程中都涉及IO问题,并且大部分应用的瓶颈都是IO瓶颈. 本章将从IO的角度出发,介绍IO类库的基本架构,磁盘IO的工 ...

  7. 移动广告SDK测试思路

    什么是移动广告SDK 移动广告SDK是嵌入到宿主APP中的一个jar或aar包,其提供了一系列API供开发者调用.这些API可以进行广告请求.广告打点等行为,可以对广告进行渲染.开发者只需要关注自身A ...

  8. java 广告sdk开发_supersonicads广告sdk逆向分析以及无源码debug java

    0x00 背景 最近看到一个小游戏,但是它使用了supersonicads的sdk,广告极其多,非常烦,所以我就逆向了一下它,顺便分析了一下supersonicads的工作原理. 0x01 super ...

  9. Android广告SDK聚合开发

    开发需求需要聚合多渠道广告SDK,并对外提供一套调用接口,中间控制层添加己方服务器交互以及控制逻辑(广告填充优先级等),初次开发sdk,整理遇到的问题希望可以帮到有缘人. 遇到的问题 aar嵌套引用C ...

最新文章

  1. ref和out的区别
  2. uda 3.C++二维向量
  3. build vue 选哪个_分析vue-cli项目,简单修改,来快速理解这个项目的结构
  4. mysql主从和dump_MySQL主从同步--原理及实现(一)
  5. Spring Cloud Alibaba 新一代微服务解决方案
  6. Hybrid 通信方式
  7. Redis 配置文件详解
  8. scrapy-redis3
  9. HTML:网页设计案例3
  10. CAS5.3版本对接Jenkins单点登录
  11. 多点温度检测上位机显示_多点温度检测系统设计(论文)
  12. pymysql操作MySQL数据库表-----爬虫豆瓣top250电影并存入数据库
  13. iphone通用设置里显示UDID(tweak)
  14. 对比学习用于推荐系统问题(SSL,S^3-Rec,SGL,DHCN,SEMI,MMCLR)
  15. 销售的几种层次-销售笔记
  16. 20200414-AMD的Ryzen5-4500U的性能对比测试(宏碁SF314(Acer)传奇 14英寸 )
  17. C++ accumulate()函数
  18. cubemax设置中断优先级
  19. 远程服务器访问 JupyterLab
  20. coreldraw带圈字符_coreldraw中如何使字体围绕一个圆形排列?

热门文章

  1. 云服务器1:云服务器能干什么
  2. srsLTE源码分析(一)---enb协议栈入口
  3. 一、计算机的基础知识
  4. 腾讯企业邮箱管理权限可实现什么?
  5. 【华人学者风采】刘庄 苏州大学
  6. xposed android debug,Android 手机开启全局调试xposed插件
  7. 平面设计证书怎么考,平面设计证书有用吗:夏雨老师
  8. Shell脚本常见问题
  9. (七)Zabbix实现微信报警通知
  10. 论文阅读笔记:A Network-based End-to-End Trainable Task-oriented Dialogue System