freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

个人隐私保护之四:APP自动化检测
2021-01-12 10:57:18

系列文章:

个人隐私保护系列文章

一、前言

APP作为个人隐私保护的一个主要应用场景,在APP上线时会遇到个人隐私的诸多法规方面的要求,以及APP自身数据保护和安全性的需要。目前,许多企业均在建设移动应用,针对每次APP打包发版都需要有大量的工作,所以事后安全检测修复产生许多额外的成本,并且发布市场后随时会面临违规的处罚。

企业人工自主排查检测会占用大量的人力资源,并且检测周期比较长,再加上SDK的问题,APP开发者会引入SDK满足开发需求,可能会借助合法的宿主APP执行恶意的操作或违规操作,从而对APP安全合规造成影响,这些问题都在APP安全检测中比较难以解决。

目前APP自动化检测是一个比较好的选择,也可以使用第三方商业产品,但是第三方产品由于需要适配和兼容所有主流APP,往往针对性不强,自研系统部分检测规则可以根据自身APP进行定制化配置,并根据国家要求,市场变化随时更新,使检测规则更准确,更灵活。

二、APP检测平台架构

在企业应用中个人隐私的安全检测对业务影响相对较大,检测的问题和修复方案许多设计前端和底层逻辑,需要和业务方。并且找到契合企业移动研发的流程,能够提前发现隐私合规问题以减低问题修复和测试打包消耗的成本。安全团队应在此找到自己和业务方各自的角色的定位和切入点,构建合理运营机制。

介绍分为两种模式:

对接发布平台实现自动化检测,可以实现每次发布/提测任务自动监测和卡点机制;

主动提测上传APK启动任务,手动检测未接入发布平台APP或者历史APP;

构建APP统一发布平台比较适合移动应用较多的企业场景,对应用发布进行集中管理的同时,可以进行检测卡点。

主动提测是一种提供服务和安全赋能的模式,需要配合在公司建立一些管理制度来推进业务方提测,比如:明确业务方案个人隐私责任,版本更新时的检测要求,修复要求,嵌入测试流程等

1610420262_5ffd10268f6742e1f346b.png!small

检测系统主要功能总结:

规则收集与整理:覆盖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.敏感函数检测

对隐私函数进行监听,判断收集隐私信息是否符合隐私政策明示范围

流程中分为两部分:

建立匹配规则,生成功能模块,隐私对应规则库

判断收集信息类型,是否能够匹配规则库

结果应有三种:

功能中生明个人信息一一对应:合规

收集个人信息未在规则库中匹配到(隐私中未声明):违规

规则库中部分个人信息,实际未收集(过多收集):违规(误报较多,建议人工复测)

1610420439_5ffd10d7ae9f32da29a4a.png!small?1610420440762

自动收集个人信息

个人信息收集检测

APP运行过程中收集

匹配隐私政策条款判断是否超出范围

隐私弹窗前信息收集

违规

后台运行时信息收集

违规

退出APP后信息收集

违规

隐私政策识别:隐私政策个人信息收集章节,识别功能项,对应收集个人信息项。

# 隐私 # APP # 移动
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录