Android软件加密数据反向自动化分析系统的设计与实现文献综述

 2022-10-27 10:40:43

文献综述(或调研报告):

1.自动化漏洞分析工具

随着计算机技术的飞速发展,我们与互联网的关系越来越密切,安全问题变得越来越重要。分析安全问题是一个繁琐且杂乱的过程,为了减少人们的工作,我们需要自动化分析工具。下面是几个针对Android移动应用程序的自动化分析工具。

  • AUTOFORGE[1]是一款可以自动从客户端伪造密码有效的消息的工具,来检测应用的服务器端是否包含安全漏洞,如暴力破解,泄露的用户名和密码探测以及访问令牌劫持。为了实现它的安全测试,Chaoshun Zuo等人开发了一套技术来自动推断协议字段,标记响应消息,重播加密函数执行以及重新生成请求消息。
  • AUTHSCOPE[2]是一款用于自动检测认证漏洞的分析工具。给定APP,AUTHSCOPE自动识别该APP服务器是否存在漏洞,使得攻击者利用其他用户的Facebook登录信息登录该应用。
  • SMARTGEN[4]是一种自动生成服务器请求消息的工具,它通过使用选择性符号执行来显示移动应用服务器的URL。在SMARTGEN项目中,将这些URL提交给VirusTotal上的有害URL检测服务进行安全性分析后,共获得8,634个有害URL。
  • 基于观察到大多数物联网设备通过其官方移动应用程序进行控制,并且这样的应用程序通常包含丰富的与设备通信的协议信息,Jiongyi Chen 等人开发了IOTFUZZER[5]。它是一个物联网模糊测试框架,利用官方的移动应用程序来检测相应物联网设备的内存损坏情况。
  • 为了使增加用户登录的便利性,不同于传统的根据用户名和密码登录,许多新的登录机制在移动应用上逐渐流行起来。其中一种利用设备上存储的一些属性和数据,如IMEI、WiFi MAC地址,因为这些属性和数据可供任何移动应用访问(需要适当的权限),又不需要用户输入。Antonio Bianchi等人[6]的工作专注于此种登录的安全性。他们开发了一个基于动态分析的系统,该系统定位移动服务器中不安全的身份验证机制,并对它们执行攻击,来分析它们的安全性。

2.中间人代理

HTTPS全称:Hypertext Transfer Protocol over Secure Socket Layer,其中Secure Socket Layer(SSL)是Netscape公司发明的一种用于WEB的安全传输协议。HTTPS目前被广泛应用于互联网信息的传输,越来越多的网络通信采用HTTPS协议来保护用户个人隐私与信息安全。在一定程度上,HTTPS采用的证书机制以及非对称加密的密钥协商能够很好地保护用户与网站间的传输内容。但与此同时,任何密码学手段都不是绝对的安全,HTTPS 也存在其缺陷。目前针对HTTPS 会话的劫持方法层出不穷,例如基于证书替换的会话劫持和基于SSLStrip或SSLSniff的降级攻击等。这些针对 HTTPS 劫持的方法基本都是基于 PC 平台下的。在移动端,一部装有 dSploit 套件的Android 手机也可以实现HTTPS 劫持,但却表现不佳,这主要是由于手机终端处理能力有限。目前,还有一种基于脚本注入的 HTTPS劫持方法[8],它是在 dSploit 的实现原理基础上,分析得出的.

实际上,任何“缺陷”并不完全只有坏处,HTTPS也是一样,大量研究正是通过利用HTTPS的“缺陷”才得以进行。中间人代理攻击(Man In The Middle, MITM)是HTTPS常见的一种攻击方式,也是许多研究者拦截并破解HTTPS通信经常使用的方法。下面将介绍两种常见的中间人代理工具。

  • Burp套件:Burp Suite[10]是一个集成平台,用于执行Web应用程序的安全测试。Burp Suite是一个Java应用程序,并作为独立的Java可执行文件分发。Burp旨在与浏览器一起使用。Burp作为HTTP代理服务器运行,并且来自浏览器的所有HTTP / HTTPS通信都要通过Burp。要使用Burp进行测试,需要首先配置浏览器。Chaoshun Zuo等人在AUTOFORGE[1]项目中使用Python插件在Burp套件上实现了中间人代理,AuthScope[2]项目中也使用了Burp套件。
  • mitmproxy软件[9]:mitmproxy[11]是一款开源的中间人代理软件,包含3款工具:mitmproxy, mitmdump和mitmweb。mitmproxy是一个控制台工具,允许交互式检查和修改HTTP流量。它不同于mitmdump,因为所有数据流都保存在内存中,这意味着它旨在用于采集和操作小样本;mitmdump提供类似于tcpdump的功能,可以查看,记录和编程转换HTTP流量;mitmweb是mitmproxy的基于网络的用户界面,允许交互式检查和修改HTTP流量,与mitmproxy一样,它的数据流也保存在内存中。值得注意的是,mitmweb目前正处于测试阶段,虽然它目前在UI中提供的所有功能都很稳定,但与mitmproxy相比它的功能还不完整。

3. Xposed框架

Xposed框架[7]是Android平台上一个功能强大的工具,很多研究者利用它进行Android设备的学术研究[12][13][14][15]。它靠修改系统影响程序的执行。Android系统有一个进程叫'Zygote',这是Android运行时的核心,每一个应用都是通过fork它开始的。手机启动时,此进程由/init.rc脚本启动。这个进程启动使用/system/bin/app_process完成,它加载所需的类并调用初始化方法。当你安装框架时,扩展的app_process可执行文件将被复制到/system/bin目录下。这个扩展的启动进程向classpath添加了一个额外的jar包,并在特定时间点从那里调用方法。这个时间点就在VM创建之后,调用Zygote的main方法之前。

这个jar包的路径是/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar,它在进程的最初阶段被调用。Xposed框架的核心是hook方法调用。当你通过反编译APK对其进行修改时,你可以直接在需要的位置插入/更改命令。但是,之后你需要重新编译/签名APK,并且只能分发整个包。但是通过使用Xposed可以放置钩子,你完全不用修改方法内的代码,就可以在方法前后注入自己的代码。XposedBridge有一个private, native方法hookMethodNative,这个方法在扩展的app_process中实现。它会将方法类型更改为“native”,并将方法实现链接到它自己的本地通用方法。这意味着每次调用被hook的方法时,通用方法都会被调用,而调用者并不知道。在这个方法中,XposedBridge中的handleHookedMethod方法被调用,将参数传递给方法调用,this引用等。然后这个方法负责调用已经为这个方法注册的回调函数。我们可以改变调用的参数,更改实例/静态变量,调用其他方法,修改结果或者跳过任何内容。

参考文献

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。