系列文章:
一、前言
APP作为个人隐私保护的一个主要应用场景,在APP上线时会遇到个人隐私的诸多法规方面的要求,以及APP自身数据保护和安全性的需要。目前,许多企业均在建设移动应用,针对每次APP打包发版都需要有大量的工作,所以事后安全检测修复产生许多额外的成本,并且发布市场后随时会面临违规的处罚。
企业人工自主排查检测会占用大量的人力资源,并且检测周期比较长,再加上SDK的问题,APP开发者会引入SDK满足开发需求,可能会借助合法的宿主APP执行恶意的操作或违规操作,从而对APP安全合规造成影响,这些问题都在APP安全检测中比较难以解决。
目前APP自动化检测是一个比较好的选择,也可以使用第三方商业产品,但是第三方产品由于需要适配和兼容所有主流APP,往往针对性不强,自研系统部分检测规则可以根据自身APP进行定制化配置,并根据国家要求,市场变化随时更新,使检测规则更准确,更灵活。
二、APP检测平台架构
在企业应用中个人隐私的安全检测对业务影响相对较大,检测的问题和修复方案许多设计前端和底层逻辑,需要和业务方。并且找到契合企业移动研发的流程,能够提前发现隐私合规问题以减低问题修复和测试打包消耗的成本。安全团队应在此找到自己和业务方各自的角色的定位和切入点,构建合理运营机制。
介绍分为两种模式:
对接发布平台实现自动化检测,可以实现每次发布/提测任务自动监测和卡点机制;
主动提测上传APK启动任务,手动检测未接入发布平台APP或者历史APP;
构建APP统一发布平台比较适合移动应用较多的企业场景,对应用发布进行集中管理的同时,可以进行检测卡点。
主动提测是一种提供服务和安全赋能的模式,需要配合在公司建立一些管理制度来推进业务方提测,比如:明确业务方案个人隐私责任,版本更新时的检测要求,修复要求,嵌入测试流程等
检测系统主要功能总结:
规则收集与整理:覆盖SDK指纹数据库,OWASP移动APP十大安全漏洞及乙方安服检测业务常用人工检测项目,市场渠道检测等
隐私检测:权限检测检测申请权限隐私合规性,第三方SDK使用和个人收集工作,个人信息检测字符串收集信息的流程是否合规。
安全检测:代码安全检测,网络URL检测,病毒检测,三方工具检测,二进制文件检测(Android libs),Manifest检测等
合规检测:能够自动化识别加固应用查看是否使用规定加固,代码安全基线和配置基线检测。
动态检测:常用的动态检测借助xposed和drozer实现,但兼容性都较为一般,并且主流app均会对此类检测进行排斥,使用Frida完成动态检测项目
检测报告:
检测报告检测问题描述,一定要附加问题出现的位置,帮助快速定位
前端或者隐私政策问题,应联动产品或法务等相关部门确定解决方案,并做好方案沉淀,后续参照执行等机制
三、APP检测功能
3.1. 静态检测:
Android:
1.APK签名证书检测模块:获取APP版本和基本信息,对于APP多次检测时可判断是否是相同APP。
签名版本:记录APK签名版本
签名信息:签名基本信息和签名HASH,用于APP比对
签名安全状态:签名是否存在漏洞风险
2.渠道检测:支持主流APP市场,用于监测盗版
APP发布记录比对:主流市场APP是否是发布平台发布,用于内部流程合规性检测
3.权限检测(Permission):Android官方权限的安全等级分类
隐私权限检测:检测APK是否使用和具体使用了网络交互,隐私API,反射,IO流,内部通信等较隐私的接口
隐私权限比对:检测隐私权限是否被隐私政策声明,建立隐私权限规则库
4.SDK检测:检测APK集成了哪些三方商用SDK(能识别出SDK版本更佳),
SDK收集个人信息情况:SDK收集了哪些个人信息,建立SDK版本,指纹,收集信息的规则库
SDK隐私比对:SDK隐私声明中是否声明该SDK,及收集信息是否准确
SDK漏洞检测:如FastJson存在漏洞时可以预警
5.字符串检测:解析APK获取当前所有APK字符串。
用于检测如硬编码:敏感信息,邮箱,手机号等
敏感信息隐私政策比对:敏感信息是否声明
敏感信息违规收集检测:隐私弹窗前,用户授权前,后台运行时等
6.重打包检测:判断当前APP是否可以被重打包
合规检测:是否使用了公司内部的加固机制,是否可以被重新打包
色情图片检测:针对重打包后应用,对资源图片进行识别
7.二进制文件检测(Android libs):针对Android So文件进行检测,主要检测是否开启PIE
8.Manifest检测:检测四大组件(Activities,Service,Provider,Broadcast)导出,权限控制
9.网络URL检测:解析APK提取URL判断URL是否存在恶意接口,需借助三方数据
10.代码安全检测:通过反编译工具解析APK获取伪Java代码用于规则匹配,识别是否存在漏洞和风险情况CWE,如证书未校验,WEBView未授权访问等
11.三方工具检测:APKiD用于检测文件是否存在某种特性,如反模拟器,加固,混淆
12.病毒检测:检测APK是否存在恶意行为,需借助三方平台
IOS:
1.渠道检测:检测当前APP是否为appstore版本
APP发布记录比对:主流市场APP是否是发布平台发布,用于内部流程合规性检测
2.隐私权限检测:
隐私权限检测:针对Plist文件判断是否存在敏感权限
隐私权限比对:检测隐私权限是否被隐私政策声明,建立隐私权限规则库
3.字符串检测:解析APK获取当前所有APK字符串。
用于检测如硬编码:敏感信息,邮箱,手机号等
敏感信息隐私政策比对:敏感信息是否声明
敏感信息违规收集检测:隐私弹窗前,用户授权前,后台运行时等
4.编译指令检测:对当前二进制MachO文件进行检测,判断是否使用PIE,arc等
5.代码安全检测:对当前二进制文件进行分析,判断是否使用如加密函数,广告ID函数,C函数,敏感API等
6.病毒检测:检测APK是否存在恶意行为,需借助三方平台
3.2. 动态检测:
1.敏感函数检测
对隐私函数进行监听,判断收集隐私信息是否符合隐私政策明示范围
流程中分为两部分:
建立匹配规则,生成功能模块,隐私对应规则库
判断收集信息类型,是否能够匹配规则库
结果应有三种:
功能中生明个人信息一一对应:合规
收集个人信息未在规则库中匹配到(隐私中未声明):违规
规则库中部分个人信息,实际未收集(过多收集):违规(误报较多,建议人工复测)
自动收集个人信息
个人信息收集检测 |
APP运行过程中收集 |
匹配隐私政策条款判断是否超出范围 |
隐私弹窗前信息收集 |
违规 |
|
后台运行时信息收集 |
违规 |
|
退出APP后信息收集 |
违规 |
隐私政策识别:隐私政策个人信息收集章节,识别功能项,对应收集个人信息项。
来源:freebuf.com 2021-01-12 10:57:18 by: Alkaid13
请登录后发表评论
注册