随着国内互联网用户隐私保护相关规范不断落地,APP安全测试已经变成版本上线不可跳过的硬性审核环节,很多APP版本其他全部测试合格,最终因为安全漏洞无法通过应用商店审核、被迫驳回延期上线。很多入门测试人员碰到安全类问题无从下手,安全漏洞不像功能BUG一眼就能看出来,需要按照标准化逻辑逐层排查定位。我结合一线项目实操经验,把APP安全测试高频常见问题、通俗易懂的落地排查思路整理出来,零基础测试可以直接套用这套逻辑定位、复现、整改各类APP安全隐患。
大家做APP安全测试排查之前,先要建立自上而下的排查逻辑:从前端应用操作→后台接口数据→服务器传输链路→设备本地缓存数据→第三方联动接口,从表层到底层逐层溯源排查,大部分安全问题都能快速定位根源,不用盲目扫描全网漏洞清单逐个对照。下面按照高频问题分类,讲清楚每一类问题的标准化排查思路。
第一类最高频:用户权限越权类安全问题,这是中小型APP出现概率最高、最好排查的安全漏洞。常见表现就是低权限用户查看、编辑高权限私密数据,普通用户篡改后台管理员数据,A用户直接查看B用户订单、手机号、身份证隐私信息。这类问题排查思路最简单,采用多账号交叉验证法。准备两个同级普通测试账号、一个管理员权限账号,登录A账号抓取业务接口,手动修改接口里面的用户ID、订单ID、设备ID参数;切换B账号查看页面数据是否异常篡改。定位问题根源后排查后台接口权限校验逻辑,大部分越权漏洞都是后端接口没有做身份权限校验,前端页面单纯做视觉拦截导致的,重点校验后端权限校验逻辑就能闭环整改。
第二类高频:用户隐私数据泄露问题,也是应用商店审核重点拦截项。常见现象是用户手机号、收货地址、证件信息、支付银行卡信息明文传输、本地明文缓存、接口外部可爬虫抓取。排查思路:第一步抓包查看接口传输数据,检测敏感隐私数据是否加密传输;第二步查看手机APP本地缓存文件夹,检查是否明文保存用户私密信息;第三步检测前端页面源代码,查看敏感数据是否暴露在页面源码内。这类问题根源集中在数据加密流程缺失、前端数据脱敏处理不到位,排查重点放在数据传输和本地存储两个环节。
第三类:接口非法篡改与重复提交漏洞。常见问题是用户修改接口参数篡改商品价格、篡改活动抽奖中奖概率、重复提交下单接口实现重复下单、重复申领平台优惠券。排查思路:全程开启网络抓包工具,在提交表单、支付、活动报名、申领福利等核心业务节点,拦截上行接口数据包,手动篡改数值、重复放行同一数据包,观察后台是否接收非法参数、重复受理相同请求。这类问题重点排查后端接口幂等性校验、参数合法性校验逻辑。
第四类:APP客户端本地安全缺陷,包括应用被反编译、页面截屏泄露、APP越狱/模拟器环境非法运行、本地缓存数据被篡改。排查思路:更换越狱苹果设备、安卓模拟器、多开分身软件安装运行APP;测试页面截屏隐私弹窗、录屏权限拦截功能;尝试反编译APP安装包查看底层源码。很多对公政务APP、金融理财APP,这类客户端安全漏洞属于高危阻断缺陷。
第五类:第三方联动接口安全风险。现在绝大多数APP都会对接微信、支付宝、短信平台、第三方登录、广告推送第三方接口,第三方链路是容易被忽略的安全薄弱环节。排查思路:梳理当前版本全部第三方对接接口,逐个校验第三方数据回调是否可以被伪造,外部恶意平台能不能伪造回调数据侵入APP后台系统,第三方平台数据泄露会不会牵连自身APP用户数据。
给大家分享一个实操排查小技巧:碰到复杂无法定位的安全问题,优先区分问题出在前端客户端还是后端服务器。如果换不同设备都能复现漏洞,问题基本在后端接口;只有单设备复现问题,问题集中在前端APP客户端。排查清楚问题层级之后,直接对接对应研发岗位人员整改,沟通效率会大幅提升。整套思路不用掌握高深网络安全技术,普通功能测试人员就能直接落地执行。