sdk (软件开发工具包)软件开发工具包是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的**,它可以为某个程序设计语言提供应用程序功能接口。
Andorid SDK,即为在 Android 系统中,为辅助移动应用软件( APP )的相关文档、工具的**。对于移动 APP 开发者来说,为了提高开发效率,或者引用其他三方功能如支付、扫码、注册等,往往会集成不同的第三方 SDK 工具包。现如今,APP 开发者使用第三方 SDK 已经成为普遍现象,实际上,SDK 作为服务提供商提供的手段,也已经成为目前主流的集成方式。例如百度地图 SDK、微博登录 SDK、个推 SDK、腾讯 Bugly、友盟 SDK 等,均为市面上广泛使用的 SDK。
曾有相关专业 IT 人员对 15 个类别、1000 多款主流 App 使用第三方 SDK 的统计分析结果显示,App 使用最为广泛的第三方 SDK 类型为第三方登录分享类、推送类、数据统计类 SDK,以及一些基础库(例如:GSON、OkHttp、EventBus 等),且所有 APP 均使用过第三方服务提供的 SDK。
图源自: https://www.luoxudong.com/225.html
尽管第三方 SDK 被广泛使用,可对于 SDK 使用者即 APP 开发者来说,第三方 SDK 是为黑盒存在,APP 开发者是无法得知其中的详细代码流程及开发流程。这导致,在 APP 开发完毕之后,SDK 成为 APP 开发者遗忘以及忽略的环节。
例如,今年上半年,中国某科技企业被曝光利用 SDK 隐瞒收集用户联系人信息、QQ 登录信息、位置信息,该 SDK 存在于第三方商店提供的多达 12 个 Android 应用程序中,受感染的应用程序已下载至少 1.11 亿次。
通过分析,不难查看出该 SDK 的部分内容:
以上图片资料均源自: https://research.checkpoint.com/2019/operation-sheep-pilfer-analytics-sdk-in-action/
不难看出,由于第三方的 SDK 侧重于功能性,导致 App 开发者在使用第三方 SDK 时,完全忽略其安全性,使其可以搜集隐私信息,或借助合法 App 执行恶意操作!如果存在工具能够在集成之前进行安全审计,便可以避免使用第三方危险的 SDK,保证自身 SDK 安全。
github 项目地址: https://github.com/wulio/Coeus
python 3.x / java
安装 :git clone https://github.com/wulio/Coeus.git
一键扫描:python coeus.py xxx.aar
相关政策代码及隐私代码检测策略,均在 scrpit 文件夹中,json 格式便于添加与修改
相应的工具也存储在 tool 文件夹下
具体代码逻辑均可在项目组查看。
生成的扫描文件,输出在 result 文件夹下,分别有对应的 log 文件和输出的 report.xml 文件。
一键运行 python getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar
getui_2.13.3.0-gisdk_3.1.9.1-gssdk_2.3.0.0.aar 为个推官网最新 SDK,可于个推官网下载。http://docs.getui.com/download.html
打开对应的 result.xml 文件:
部分截图如下:
可以看到文件将 sdk 违反政策相关以及部分安全问题代码均有展示,更多详细信息可以于项目 project,result/xxx/report.xml 中查看。
作为 Coeus 的开发者,后续将会持续更进该项目的开发与更新,欢迎使用及 star~