[发明专利]基于动态链接库注入的Android加密通信检测装置和方法在审
| 申请号: | 201410424511.6 | 申请日: | 2014-08-26 |
| 公开(公告)号: | CN104156481A | 公开(公告)日: | 2014-11-19 |
| 发明(设计)人: | 徐国爱;张淼 | 申请(专利权)人: | 北京软安科技有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;H04L29/06 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 夏宪富 |
| 地址: | 100876 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 动态 链接 注入 android 加密 通信 检测 装置 方法 | ||
技术领域
本发明涉及一种用于移动Android平台的加密通信检测装置,确切地说,涉及一种基于动态链接库注入的Android加密通信检测装置和方法,属于信息安全中的网络安全技术领域。
背景技术
目前,针对PC端软件加密通信进行检测分析技术的研究文献很多,但是,有关移动Android平台加密通信检测分析技术的研究尚处初期,故至今尚未形成成熟的检测工具。如同PC端一样,它的检测,通常建立在软件逆向分析技术基础上。故常用的加密通信检测工具及辅助工具包括:Gdbserver、Andbug、Taintdroid和IDA Pro等。下面对这些工具进行简介:
Gdbserver,作为GNU开源组织发布的一个强大的UNIX下的C/C++语言程序命令行调试工具,主要具备下述四个方面的功能:
1、启动程序后,可以按照自行定义或设置的要求随心所欲地运行该程序。
2、可让被调试的程序停止在设定的断点处。(该断点可以是条件表达式)
3、当程序停止时,可以检查此时该程序中发生的事。
4、动态改变程序的执行环境。
由于Android嵌入式系统的资源有限性,一般不能直接在目标系统上进行调试,而是通常采用gdb+gdbserver的方式进行调试。远程调试环境则由宿主机GDB和目标机调试桩stub共同构成,两者通过串口或传输控制协议TCP(Transmission Control Protocol)网络连接,并使用GDB标准程序串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。
目前,越来越多的移动应用是采用C/C++语言进行关键功能(如加密通信)的开发,利用JAVA本地程序调用接口JNI(JAVA Native Interface)技术,调用so库中的功能代码,实现加密通信功能。Gdbserver用于调试C/C++语言实现的加密通信功能的应用,找到功能代码,对加密通信进行检测分析。
Andbug,是一个无需源代码的Android平台JAVA程序调试器。它支持查看断点、堆栈、类或方法信息等功能,具备可扩展性,支持添加自行设计的脚本加入所需要的功能。
通过JAVA代码实现加密通信功能的应用,可以使用Andbug进行调试追踪,对加密通信进行检测分析。
Taintdroid,它是一个基于系统镜像(Android ROM)修改的应用程序行为检测工具,通过修改源码相应的部分代码,编译定制系统镜像ROM,实现包括加密通信等的检测分析功能。其主要原理是在Android源码中增加对对象的操作类,并在对象中增加变量和存储标识,完成对关键数据的污点标记。当程序通过应用程序编程接口API(Application Programming Interface)获取敏感信息,利用封装的操作类数据进行污点标识。
IDA,作为交互式反汇编器专业版(Interactive Disassembler Professional)的递归下降反汇编器,它是Hex-Rayd公司推出的一款世界顶级逆向分析工具。它支持Android动态链接库无源码的反汇编与动态调试。它能够结合gdbserver,更简便、快捷地完成由C/C++语言编写的加密通信功能代码的检测分析。
现在,国内外都在移动Android平台加密通信检测分析领域做了大量的研究工作,并提出了一些可行的分析方法。
目前,移动Android平台加密通信检测分析方法有多种:基于定制手机系统镜像(ROM)检测方法、内存解密检测方法和基于调试技术的检测方法等。其中:
基于定制手机系统镜像ROM检测方法:由于Android平台源码的开放性,可通过对源码的阅读和修改,定制手机系统镜像ROM,完成加密通信的检测分析。
从应用完成加密通信开始,追踪查看API调用关系,找到加密通信调用的系统JAVA层与本地C/C++层API,在相应的API实现函数中,打印出需要检测分析的数据流;修改完成后,编译源代码,生成定制化系统镜像ROM,刷入检测终端中,完成加密通信数据包的捕获分析。
内存解密检测方法:由于程序会对网络加密数据进行解密操作,因此,只要能够定位到加密数据在程序中的解密内存,即解密数据所在内存,即可完成对加密通信数据检测分析。
目前,主要有两种解密内存的定位方法,分别介绍如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京软安科技有限公司,未经北京软安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410424511.6/2.html,转载请声明来源钻瓜专利网。





