AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

移动 App 安全测试要点

  • 2020-07-01
  • 本文字数:2677 字

    阅读完需:约 9 分钟

移动App安全测试要点


在《运营商渗透测试与挑战》中,随着运营商新技术、新业务的发展,运营商集团层面对安全的要求有所变化,渗透测试工作将会面临内容安全、计费安全、客户信息安全、业务逻辑及 APP 等方面的挑战。


随着运营商自主开发的移动 APP 越来越多,这些 APP 可能并不会通过应用市场审核及发布,其中的安全性将面临越来越多的挑战。这个问题也引起运营商的足够重视,为此开发了自动化检测工具并开展定期的 APP 安全测试评估工作。

移动 App 面临的威胁

随着智能手机和 iPad 等移动终端设备的普及,人们逐渐习惯了使用应用客户端上网的方式,而智能终端的普及不仅推动了移动互联网的发展,也带来了移动应用的爆炸式增长。在海量的应用中,APP 可能会面临如下威胁:


  • 木马

  • 病毒

  • 篡改

  • 破解

  • 钓鱼

  • 二次打包

  • 账户窃取

  • 资源篡改

  • 广告植入

  • 信息劫持

移动 App 评估思路

在这次的移动 App 安全测试实例中,主要通过七个方面进行移动终端 App 安全评估:


  • 能力调用

  • 资源访问

  • 通信安全

  • 键盘输入

  • 认证鉴权

  • 敏感信息安全

  • 反逆向


运营商自动化 App 测评思路


安全检测要点

1.Allowbackup 漏洞

AndroidManifest.xml文件中 allowBackup 属性值被设置为 true。当 allowBackup 标志为 true 时,用户可通过 adb backup 来对应用数据进行备份,在无 root 的情况下可导出应用中存储的所有数据,造成用户数据的严重泄漏。



整改建议:将参数 android:allowBackup 属性设置为 false,不能对应用数据备份。

2.WebView 漏洞

应用中存在 WebView 漏洞,没有对注册 JAVA 类的方法调用进行限制,导致攻击者可以利用反射机制调用未注册的其他任何 JAVA 类,最终导致 javascript 代码对设备进行任意攻击。



整改建议:通过在 Java 的远程方法上面声明一个@JavascriptInterface 来代替addjavascriptInterface;在使用 js2java 的 bridge 时候,需要对每个传入的参数进行验证,屏蔽攻击代码。


注意:控制相关权限或者尽可能不要使用 js2java 的 bridge

3.关键数据明文传输

在登录过程中,应用程序使用 http 协议明文传输用户名和密码,并未对用户名和密码进行加密处理。通过监控网络数据就可以截获到用户名和用户密码数据,导致用户信息泄露,给用户带来安全风险。



整改建议:在传输敏感信息时,应对敏感信息进行加密处理。

4.任意账号注册

用手机号133*****887注册某个 APP,获取验证码 46908。



在确认提交时,拦截请求,修改注册的手机号码,即可注册任意账号,这里修改为1338*****678(任意手机号)。




然后,分别使用133*****887133*****678(任意手机号)登录,均可以通过验证登录,看到最终结果。



整改建议:注册过程最后的确认提交时,服务器应验证提交的账号是否是下发验证码的手机号。

5.登录界面可被钓鱼劫持

应用存在钓鱼劫持风险。应用程序没有做防钓鱼劫持措施,通过劫持应用程序的登录界面,可以获取用户的账号和密码,导致用户账号信息泄露。



整改建议:应用程序自身通过获取栈顶 activity,判断系统当前运行的程序,一旦发现应用切换(可能被劫持),给予用户提示以防范钓鱼程序的欺诈。获取栈顶 activity(如下图),当涉及敏感 activity(登录、交易等)切换时,判断当前是否仍留在原程序,若不是则通过 Toast 给予用户提示。



使用 HTML5 架构或 android+HTML5 混合开发,实现登陆、支付等关键页面,降低被劫持的风险。

有争议的整改建议

在实施整改过程中,运营商、App 厂商以及安全厂商就如下几点可能存在争议:

关键数据明文传输

根据客户测评结果以及移动终端 APP 厂商理解,目前的数据安全问题可分为:


  • 客户端安全(数据录入)

  • 客户端到服务器安全(数据传输)

  • 服务器端安全(数据存储)


而关键数据明文传输属于客户端数据录入安全。针对此部分,目前不仅是移动终端 APP,包括 Web 安全方面,对此部分要求也是不一而分,具体可以体现为:


  • 具有现金流的交易平台: 此类业务安全级别要求最高,在数据传输方面也是目前做得最好的。主要代表是:淘宝、京东、各大银行网银等。

  • 具有较大社会影响力的平台:此类业务安全级别低于上述业务,但由于账户数据丢失以后,对其自身以及社会影响较大,所以在传输上也不会采取明文传输,如:百度、腾讯等。

  • 数据丢失本身不会造成较大影响的平台: 此类业务账户数据本身价值不大,丢失以后也不会造成影响,或者本身不会受到太大关注,一般都不会对传输数据进行加密。这样的例子比比皆是。


当然,也有厂商提出,明文传输在某些专业的漏洞检测和通报网站上,是不属于安全漏洞的。为了验证此异议,在某平台上提交了一份关于明文传输的漏洞,得到的结果请看下图:


登录界面钓鱼劫持

APP 应用存在钓鱼劫持风险。应用程序没有做防钓鱼劫持措施,通过劫持应用程序的登录界面,可以获取用户的账号和密码,可能导致用户账号信息的泄露。


这一条的检测结果,最大的争议在于按照整改建议整改后。对一般用户来说,没有任何作用。首先,我们了解一下钓鱼劫持是如何产生的。


Android 的钓鱼原理


需要理解,Android 启动一个 Activity 时,是这样设计的,给 Activity 加入一个标志位FLAG_ACTIVITY_NEW_TASK,就能使它置于栈顶并立马呈现给用户。但是这样的设计却有一个缺陷:如果这个 Activity 是用于盗号的伪装 Activity 呢?这种现象在 XcodeGhost 事件中,已经被证实是可以实现的。


在 Android 系统中,程序可以枚举当前运行的进程而不需要声明其他权限,这样的话,就可以编写一个程序,启动一个后台服务,这个服务不断地扫描当前运行的进程,当发现目标进程启动时,就启动一个伪装的 Activity。如果这个 Activity 是登录界面,那么就可以从中获取用户的账号密码,具体过程如下图:



检测原理描述清楚后,就需要给出让软件厂商能够明白的整改建议以及漏洞情景重现。


Android 的钓鱼情景演示


以小米手机为例:


1.当打开 3 个 APP 时,最后一个打开的 APP”语音助手”,切换至手机桌面,长按 HOME 键查看进程,”语音助手”会显示在进程的第一个。



2.点击”微信”后,切换至”微信”,再查看进程,可以看到,进程中由于”微信”已切换至当前窗口,故进程中不存在。



3.从第 1 步看到,当切换至手机桌面时,无论是语音助手、手机令牌、还是微信,都是默认后台运行,而且切换出来以后无任何提示。这样,当恶意 activity 收到微信登录界面或者其他敏感界面的时候,就会抢先推送至客户,从而让客户轻易的输入帐号,并获取客户的信息,但此时微信不会做任何提示。


4.再来观看一下某行手机 APP,当切换至手机桌面时,会对客户做出提示:



假设一下页面是恶意推送的 activity,那么在恶意推送的 APP 页面,应该会显示出此类提示,告知客户,此页面并非正常 App 的页面。


用户打开正常页面 VS 用户打开了恶意页面



本文转载自绿盟科技,原文链接


2020-07-01 11:493032

评论

发布
暂无评论
发现更多内容

重磅发布!基于百度飞桨的《人工智能基础及应用》书籍正式上线

飞桨PaddlePaddle

人工智能 机器学习 深度学习 百度飞桨

云图说丨安全云脑:开箱即用的安全运营体验

华为云开发者联盟

安全 华为云 华为云开发者联盟 华为云云图说 安全云脑

到店商详架构变迁

京东科技开发者

如何在 Ubuntu / Raspbian 上安装 PostgreSQL

HoneyMoose

行云部署前端架构解析-前言 | 京东云技术团队

京东科技开发者

Pod/Node CPU 故障注入

腾讯云混沌演练平台

k8s 混沌工程

2024年上海等保测评机构有几家?分别叫做什么名字?

行云管家

网络安全 等保测评 等保测评机构 上海

【论文解读】用于代码处理的语言模型综述

合合技术团队

代码 自然语言模型 大语言模型 文献综述

使用Docker安装MongoDB数据库

emanjusaka

mongodb Docker 迁移

IDC 23Q3 数据发布 XSKY 对象存储软件市场份额继续蝉联第一!

XSKY星辰天合

LED透明屏在舞台中的应用

Dylan

技术 设计 体验 LED显示屏 led显示屏厂家

vivo智能活动中台-悟空系统建设之路

vivo互联网技术

低代码 活动中台 AIGC技术探索

TDengine 创始人陶建辉在汽车 CIO&CDO 论坛发表演讲,助力车企数字化转型

TDengine

tdengine 时序数据库

IPQ6010: Leading a new chapter in smart home and IoT fields

wallysSK

网站被大量cc攻击导致打不开怎么解决

德迅云安全杨德俊

HTTP cc

揭秘看不见人的“黑灯工厂”

AIRIOT

物联网平台 智慧工厂 智慧系统

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(下)

码界西柚

Java hashmap HashMap底层原理 2024年第十四篇文章

高效云运维工具就是行云管家!不用加班神器!

行云管家

云计算 云服务 云运维 云管家

移动App安全测试要点_安全_绿盟科技_InfoQ精选文章