加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 服务器 > 安全 > 正文

有关APP渗透测试的实践与思考

发布时间:2022-07-20 08:39:16 所属栏目:安全 来源:互联网
导读:移动互联网应用程序(Mobile APP,以下简称APP或移动APP)安全早已成为信息安全领域中广受关注的热点话题。作为安全检测人员,在日常测试工作中经常涉及移动APP的安全检测,在此结合相关移动APP检测标准和工作经验,从渗透测试角度,对移动APP的检测进行概要性
  移动互联网应用程序(Mobile APP,以下简称“APP”或“移动APP”)安全早已成为信息安全领域中广受关注的热点话题。作为安全检测人员,在日常测试工作中经常涉及移动APP的安全检测,在此结合相关移动APP检测标准和工作经验,从渗透测试角度,对移动APP的检测进行概要性总结说明。
 
   客户端(移动APP)主要面临的威胁包括反编译、调试、篡改/重打包、输入记录、组件安全、注入和Hook、本地敏感数据泄露等。
 
  (1) 反编译
 
  对一个软件进行分析可以分为静态分析和动态分析两大部分。反编译是静态分析的一种基础手段。高级编程语言源代码经过编译变成可执行文件,反编译就是其逆过程。通过反编译和逆向,可以在没有软件源码的情况下了解其内部实现细节,进行漏洞挖掘和算法分析等。移动APP测试,常见的测试对象是Android APP和iOS APP,由于应用结构、构建工具链等差异,Android APP和iOS APP的逆向分析、反编译技术方法均不尽相同。常见的反编译工具有IDA Pro及相关Decompiler插件、Radare2 、Ghidra、JD-GUI、Smali/Baksmali、dex2jar、Hopper等等。
 
  (2) 调试
 
  调试是软硬件开发人员用于排查软件错误的一种手段,也是安全检测人员进行动态分析的一种基本方式。从调试对象来看,调试可分为硬件调试和软件调试。对于移动APP,安全检测工程师一般只需进行软件调试。软件调试又可分为源码级调试和非源码级调试。在获取不到源码的情况下,一般只能先做非源码级调试。通过调试,安全检测工程师可以动态地分析APP内部原理和行为。移动APP检测中,常见的APP调试工具有IDA Pro、GDB、LLDB、ADB、JDB和Cycript等。
 
  (3) 篡改/重打包
 
  Android和iOS应用在正式发布前需进行数字签名,在安装时系统会对APP签名进行检查,检查通过才能成功安装运行。这可在一定程度上保护APP不被篡改。但由于签名验签机制很多技术都是公开的,被研究的比较透彻,再加上不同平台的签名机制对APP限制程度各不相同,对安全性要求比较高的APP如果只依靠系统层面的签名保护进行防篡改/重打包还远远不够。渗透测试过程中,有时我们为了更好的分析APP,也需要对APP进行修改重打包,然后利用相应平台的工具进行重新签名,最后安装运行。相应的工具有:apktool、apksigner 、signapk、jarsigner和codesign等。
 
  (4) 输入记录
 
  当APP在不安全的环境中运行时,存在用户输入被记录风险。一般可能通过软硬件键盘输入设备事件或屏幕截取等方式来进行记录。根据对APP不同的安全要求,渗透测试中宜需关注这些风险。
 
  (5) 组件安全
 
  Android组件包括Activity、Broadcast Receiver、Service和Content Provider。若权限配置不当而导致组件暴露,APP就存在可能被其他应用攻击或劫持风险,进而导致认证被绕过、敏感数据被窃取等。测试过程中,一般可通过对APP进行反编译,查看AndroidManifest文件或直接扫描查找暴露的组件,分析反编译的相关组件代码,查看是否有安全漏洞并进行验证。
 
  (6) 注入和Hook
 
  注入和Hook都可对目标APP运行时行为进行修改。虽然我们常常将它们放在一起说,但其实它们的实现原理并不相同。注入是指将一段代码或一个完整的可执行模块加载到目标程序中,而Hook是指通过劫持程序执行流程来改变程序运行行为。不同平台的APP运行框架和机制不同,这也导致它们的注入和Hook方式不同,但都会通过系统或框架提供的相关机制和接口进行操作。测试人员可根据需求寻找Hook点,编写注入或Hook模块。常用的相关工具有libinject、Xposed、Cydia、fishhook和Frida等。
 
  (7) 本地敏感数据泄露
 
  APP的本地存储数据或运行日志有可能会泄露敏感或非敏感数据。一般测试人员通过泄露的数据,可以去进一步深入理解APP内部原理。测试人员可查看APP本地数据存储(特别是会关注APP是否在公共区域存储了数据)和APP运行日志内容,结合业务场景综合分析是否存在本地敏感数据泄露风险。常用工具adb、RE、SQLite和ifile等。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读