SDK基本安全要求

a) 应确保分发过程具备有效的完整性校验机制,避免提供的代码、资源文件遭篡改。

b) 应确保分发包、Demo包内不包含病毒、木马等恶意程序。

c) 应避免调试信息函数输出通信日志、关键变量等敏感信息。

d) 应避免分发包、Demo包内残留内网URL、测试账号、测试数据等测试信息。

e) 应避免嵌入与业务功能无关的插件、代码,或在分发包中私自打包提供其他SDK产品。

f) 申请系统权限应遵循最小必要原则,避免索要非实现业务功能所必须的权限。

数据存储安全要求 SDK数据存储安全要求

a) 应对存储于最终用户设备上的含有个人信息、重要数据的文件进行加密(如库表加密、文件加 密等),避免被宿主App、其他App、恶意程序等非法访问、篡改。

b) 宜对与宿主App或其他本地程序共同处理、使用的数据进行加密处理,并约定安全有效的解密方 案,确保数据的合法授权访问。

c) 应对存储于最终用户设备上的数字证书文件进行加密,避免数字证书泄露或遭非法篡改。

d) 应对存储于最终用户设备上的备份数据进行加密,避免备份数据泄露。

e) 应限制本地存储的配置信息、用户偏好等轻量数据读写权限,避免遭其他程序越权访问、篡改。

f) 宜限制个人信息、重要数据本地存储时间,确保到期数据自动删除。

g) 应避免本地存储去标识化数据与原始标识的对应关系信息,防止相关信息泄露导致去标识化失 效。

h) 应避免本地存储明文的鉴权信息(如账号、密码等),宜采用加随机盐的哈希值方式存储相关 数据,避免用户个人敏感信息泄露。

数据交互安全要求 SDK与宿主App、服务端数据交互应满足的安全要求

a) 应采用安全的传输协议确保SDK与服务端数据交互的机密性、完整性、可用性。

b) 涉及个人信息、重要数据传输的场景,应采用HTTPS等加密传输协议或对相关数据单独加密,确保个人信息加密传输。

c) 使用HTTPS传输协议时,宜开启SDK与服务端的双向验证机制,确保服务端身份真实性。

d) 使用HTTPS自定义证书时,应对服务端主机名进行校验,验证服务端主机身份。

e) 应使用安全的加密算法、密钥生成机制,避免使用不安全的加密算法(如RC4、AES ECB或OFB 工作模式等),避免加密算法破解。

重要组件安全要求

SDK使用系统功能组件应满足的安全要求如下:

a) 应在使用组件调用系统功能时确保其配置安全性,避免出现配置不合理导致的安全风险。

b) 应在使用组件调用系统功能时遵循最小必要原则,避免调用与实现业务功能无关的功能。

c) 调用网页视图(WebView)应确保其配置安全性,避免出现配置不合理导致的安全风险。

d) 调用网页视图(WebView)实现与服务端交互时,应符合5.1.3章节各项要求。

e) 宜在调用Intent组件时验证接收方合法性并对参数进行过滤,避免出现越权调用、隐式调用等 风险。

f) 宜在调用Intent组件时增加异常捕获机制,避免出现程序崩溃等风险。

代码及资源文件安全要求 SDK代码及资源文件安全要求

a) 宜采用代码混淆、加固等手段提高逆向分析的难度,降低关键函数、逻辑等泄露风险。

b) 宜对本地存储的so文件进行加固/混淆处理,避免敏感信息泄露。

c) 宜对本地存储的h5资源文件进行加密处理,避免资源文件遭篡改。

d) 如采用资源文件热更新技术,宜对文件解压文件名进行限制,避免更新的资源文件被非法获取。

e) 宜对本地存储的so文件进行地址空间随机化,降低缓冲区溢出攻击风险。

f) 宜对本地存储的so文件进行编译器堆栈保护,避免栈溢出时系统不对程序进行保护。

g) 宜对本地存储的密钥、证书进行加密,避免本地密钥、证书泄露或遭篡改。

h) 宜避免代码内存在硬编码或强耦合的URL地址,避免链接遭篡改。

SDK 安全测试项

SDK分发缺少完整性校验

风险描述:分发过程缺少完整性校验机制可能导致APP提供者获取伪造、遭篡改的SDK代码

测试方式:访问SDK下载渠道,查验是否提供hash值对比、签名证书等完整性校验机制

内含恶意程序

风险描述:分发包内含有病毒、木马等恶意程度对APP提供者、最终用户可能造成安全威胁

测试方式:解压缩SDK分发包,扫描是否含有恶意代码、木马等恶意程序

调试日志输出敏感信息

风险描述:调试信息函数输出日志可能泄露代码逻辑等敏感信息,导致安全风险

测试方法:反编译SDK代码,查验调试信息函数是否禁用,如未禁用则查验输出日志是否含有敏感信息

残留测试信息

风险描述:残留测试数据可能导致测试服务器地址、测试账号等信息泄露,威胁运维安全

测试方式:反编译SDK代码,查验是否残留服务器地址、测试账号等信息

内嵌无关插件、SDK

风险描述:与业务功能无关的插件、SDK等可能会携带恶意程序或造成其他安全风险

测试方法:解压缩SDK分发包,查验资源文件中是否存在与业务功能无关的插件、SDK等

索要非必要权限

风险描述:索要与实现SDK业务功能无关的非必要权限可能导致合规性风险

测试方法:核验SDK权限声明情况,比照业务功能,判断是否申请与业务功能无关的系统权限

数据明文存储

风险描述:本地明文存储数据,可能导致个人信息、重要数据等遭非法访问、篡改

测试方法:进入SDK本地数据存储路径,查验是否存在明文存储的数据库文件,如有则查验其内容是否存在敏感信息

共享数据明文存储

风险描述:SDK与本地程序共同处理、使用的数据未加密,可能导致数据越权访问风险

测试方法:进入宿主APP及SDK本地数据存储路径,结合技术文件查验是否存在明文存储的共享文件,如有则查验其内容是否存在敏感信息

数字证书明文存储

风险描述:明文存储的数字证书可能遭窃取、篡改,导致传输数据被截获、伪造传输请求等安全风险

测试方法:反编译SDK代码,查验资源文件中是否存在明文存储的证书文件

备份数据明文存储

风险描述:如sdk开启数据备份功能并以明文存储备份数据,可能导致备份数据遭越权访问

测试方法:反编译SDK代码,查验是否开启了数据备份功能,如是则进入SDK备份数据存储目录,查验备份数据是否是明文存储

数据全局可读写

风险描述:如开启轻量数据全局读写权限,可能导致本地存储的配置信息、用户偏好等信息遭越 权访问、篡改

测试方法:查阅 SDK 技术信息,查验 SDK 开发过程中是否关闭或限制轻量数据读写权限

数据超期存储

风险描述:如未限制数据存储周期,可能导致个人信、重要数据超期存储

测试方法:查阅SDK技术信息,查验SDK开发过程中是否限制本地数据存储周期,进入SDK本地存储路径,查验超出存储期限数据是否删除

标识对应关系本地存储

风险描述:如本地存储区标识化数据与原始标识的对应关系信息泄露,可能导致去标识化失效

测试方法:结合SDK技术信息查询,进入SDK本地存储路径,查验是否存在本地存储的标识化数据与原始标识的对应关系信息

鉴权信息明文存储

风险描述:如本地明文存储鉴权信息(如账号、密码等)可能导致用户个人敏感信息泄露

测试方法:结合SDK技术信息,查验SDK是否仅存储鉴权信息哈希值,且哈希值计算过程中添加了随机盐

敏感信息HTTP协议传输

风险描述:HTTP协议通信使用明文传输且不验证通信方的身份及完整报文,可能导致数据泄露、中间人攻击等安全风险

测试方式:抓取HTTP协议数据包进行分析,查验是否存在明文的个人信息、重要数据等敏感信息

敏感信息明文传输

风险描述:明文传输的数据可能遭截获,导致敏感信息泄露

测试方法:抓取通信流量并分析内容,查验是否可截获明文个人信息、重要数据等敏感信息

HTTPS未开启双向认证

风险描述:未开始HTTPS双向证书校验可能导致加密数据遭劫持、解密。导致数据泄露等风险

测试方法:配置证书文件并进行流量分析,查验是否使用了HTTPS单项认证机制

HTTPS未验证主机名

风险描述:缺少主机名校验机制,SDK可能与仿冒的服务器建立通信,导致中间人攻击

测试方法:反编译样品文件,查验是否使用了自定义SSL证书,如是则查验HTTPS相关设置是否开启主机名校验

随机数不安全使用

风险描述:随机数生成机制设置不当可能导致生产的随机数可被预测,威胁秘钥安全性

测试方式:反编译样品,查验是否使用了不安全的随机数方法

加密算法不安全使用

风险描述:对称加密算法相关设置不当可能导致加密失效,导致加密文件遭破解、传输数据遭截获等

测试方法:反编译样品文件,查验是否使用了不安全的AES/DES加密算法

系统组件的不安全配置

风险描述:系统组件策略、规则不安全配置可能导致相关组件遭恶意调用,为恶意行为提供便利

测试方法:反编译样品文件,查验组件调用过滤规则、调用路径是否存在不安全的配置

webview组件不安全配置

风险描述:webview组件加载网页、功能、资源时,如果存在不安全配置,可能导致数据泄露、劫持、篡改等风险

测试方法:反编译样品文件,查验webview相关功能是否存在不安全配置

intent越权调用

风险描述:intent组件调用未进行严格过滤,可能导致构造特殊格式的URL越权调用activity组件

测试方法:反编译样品文件,查验intent调用是否进行了严格过滤

intent隐私调用漏洞

风险描述:使用隐式intent调用时,并未对消息接受方进行限制,可能导致intent内容泄露

测试方法:反编译样品文件,查验是否隐私调用了intent函数

应用本地拒绝服务漏洞

风险描述:如调用intent函数是未校验输入参数,如存在异常输入,可能导致崩溃

测试方法:对intent导出的组件传递一个不存在的序列化对象,查验是否导致程序进程崩溃

代码未混淆、加固

风险描述:代码未进行混淆、加固可能降低反编译难度,易暴露代码逻辑,导致安全机制遭绕过、破解等风险

测试方法:反编译文件,查验代码关键类名、逻辑、赋值等是否进行混淆处理

so文件未混淆、加固

风险描述:so文件包含动态链接库文件,未混淆、加固可能导致代码运行逻辑等信息泄露

测试方法:反编译样品文件,静态扫描代码文件,查看样品文件是否对so文件进行混淆加固

未限制解压文件名

风险描述:热更新禁止未限制解压文件名可能导致文件被解压到任意路径,导致恶意文件覆盖正常文件

测试方法:反编译样品文件,查验是否使用ziparchive实现解压功能且允许任意文件名

动态加载dex文件篡改

风险描述:热更新机制允许动态加载dex文件且未限制dex编辑,可能导致目标文件被篡改

测试方法:反编译样品文件,查验是否允许动态加载dex文件,如是,则检查dex文件是否可修改

未使用编译器堆栈保护技术

风险描述:向内存缓冲区内填充数据位超过缓冲区本身的容量,可能导致溢出的数据覆盖在合法数据上,导致内存中执行的程序地址被修改

测试方法:反编译样品文件,查验so文件是否使用了编译器堆栈保护技术

未使用地址空间随机化技术

风险描述:如应用程序的地址空间布局固定,其区域的基地址可能被获取,导致注入代码被执行

测试方法:反编译样品文件,查验so文件是否使用了地址空间随机化技术

秘钥明文硬编码

风险描述:代码中存在秘钥信息硬编码,可能导致鉴权信息泄露、加密流程遭破解

测试方法:反编译样品文件,查验代码内加密函数、方法是否存在明文的硬编码秘钥信息

URL信息硬编码

风险描述:代码内存在URL明文信息,可能导致后端服务器域名、接口等信息泄露

测试方法:反编译样品文件,查验代码内是否存在明文URL地址信息

隐私合规:移动SDK安全要求及测试内容相关推荐

  1. 隐私合规:收集SDK部分介绍

    com.meizu.cloud.pushsdk.SystemReceiver 魅族推送服务是由魅族公司为开发者提供的消息推送服务,开发者可以向集成了魅族 push SDK 的客户端实时地推送通知或者消 ...

  2. 移动应用中的第三方SDK隐私合规检测,早知道

    摘要: 在移动应用隐私合规检测中,第三方SDK隐私声明由于其展现位置展现形式的多样性,自动化提取与解析是比较困难的任务. 本文分享自华为云社区<移动应用中的第三方SDK隐私合规检测>,作者 ...

  3. 移动应用中的第三方SDK隐私合规检测

    [摘要] 概述:工信部164号文[1]要求对SDK违规处理用户个人信息进行整治,包括违规收集个人信息.超范围收集个人信息.违规使用个人信息.强制用户使用定向推送功能等违规内容.相关整治内容的检测需要结 ...

  4. 隐私合规:检测第三方SDK调用的隐私权限

    隐私合规:检测第三方SDK调用的隐私权限 原文地址 隐私合规:检测第三方SDK调用的隐私权限 前言 看了一圈各大网站目前关于隐私合规检测的分享,发现大家几乎都是自己写一套动态代理.Hook或者ASM来 ...

  5. 高德地图SDK未设置隐私合规而导致地图不显示的问题

    高德地图SDK未设置隐私合规而导致地图不显示的问题 问题描述 此时打开logcat,能够看到问题的描述: 原因:确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow.updat ...

  6. 踩雷1:Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updateP

    Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规 出现隐私合规校验失败这样的情况下,查找高德地图开发者平台开发 ...

  7. com.amap.api.services.core.AMapException: ***确保调用SDK任何接口前先调用更新 3dmap: 隐私合规校验失败

    高德地图最新版8.1.0隐私政策合规检查,高德地图不能正常使用解决办法: 1.首先看官网说明 https://lbs.amap.com/news/self-examination/ 言下之意,应该在A ...

  8. app获取个人信息是否合法_APP隐私合规介绍和实施方案

    近期咨询app隐私合规的人有点多,正好借这个机会把相关内容整理一下供大家学习参考. 一.背景 目前,大量的移动app在使用过程中,涉及个人隐私信息和敏感信息.在个人信息处理.共享.转让.公开披露过程中 ...

  9. App 不想被“点名”,mPaaS 隐私合规检测为开发者护航数字生态建设

    简介:<个人信息保护法>的即将落地,无疑是近年来政策法规及监管标准不断细化深化.监管查处力度不断加大.处置通报常规化的又一里程碑式的具象体现,App 开发企业如若违规将会面临的各类损失也在 ...

  10. APP隐私合规现状与防范措施

    背景 2021年11月1<个人信息保护法>正式施行,标志信息保护进入强监管时代,APP监管被提升到前所未有的高度,数据安全.用户隐私.甚至功能体验等各个方面都出台了相应的规则规范,监管的初 ...

最新文章

  1. 经验分享 怎么新建PDF文件
  2. htpc电脑方案_我终于定稿了客厅HTPC的方案: Matx机箱小喆B3卧倒
  3. python如何在手机上下载模块-Python 下载文件的 11 种方式
  4. C# 部署失败--上传文件缺失
  5. [总结] 平衡树总结
  6. R 调用 python
  7. C++判断一个数字是否是某个数字的阶乘(附完整源码)
  8. 程序员过关斩将--从未停止过的系统架构设计步伐
  9. sikuli 搜索例子
  10. php开启openssl的方法
  11. html背景图片尺寸位置百分比,css – 如何计算背景大小百分比?
  12. oracle集群数据库事务配置,在 .NET中使用Oracle数据库事务-安装配置-Oracle频道-中国IT实验室...
  13. switch的处理方法
  14. abp vnext_SQL Server vNext – Microsoft是否喜欢Linux?
  15. 无法向会话状态服务器发出回话状态请求
  16. 为什么mysql查询结果有前缀_字符串的公共前缀对Mysql B+树查询影响回溯分析
  17. 基于 Token 的身份验证
  18. Oracle 数据库安装教程(11g)
  19. 贴片发光二极管/LED灯正负极判断
  20. Java面向对象之创建和使用对象——定义学生/教师类并输出相关信息

热门文章

  1. C++第3次实验(基础班)—选择结构程序设计(参考答案)-项目1:个人所得税计算器
  2. STM32F4系列芯片RTC模块介绍
  3. Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;
  4. PHP添加PNG图片背景透明水印
  5. 古典文化欣赏交流PPT模板
  6. php 处理图像库,PHP图片处理库Grafika详细教程(1):图像基本处理
  7. 代理模式 :静态代理 +动态代理(jdk实现+cglib实现)
  8. mysql关于in子查询索引
  9. bigemap 下载器,91 功能对比
  10. com.motorola.home主屏幕意外停止 Defy+/Me525+