CN106357670A - 基于模拟器的安卓应用服务端Web漏洞检测方法 - Google Patents
基于模拟器的安卓应用服务端Web漏洞检测方法 Download PDFInfo
- Publication number
- CN106357670A CN106357670A CN201610901415.5A CN201610901415A CN106357670A CN 106357670 A CN106357670 A CN 106357670A CN 201610901415 A CN201610901415 A CN 201610901415A CN 106357670 A CN106357670 A CN 106357670A
- Authority
- CN
- China
- Prior art keywords
- simulator
- app
- apk
- arixtra
- service end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于模拟器的安卓应用服务端Web漏洞检测方法,包括以下步骤:启动漏洞检测代理模块,启动安卓模拟器并配置网络;编写APK Monitor模块,连接安卓模拟器并监控目录;通过Python脚本将批量或单个的安卓应用安装文件;APK Monitor监控到目录下的APK文件,自动通过ADB命令进行安装;通过漏洞检测代理模块的代理捕获APP对服务端的所有请求;漏洞检测代理模块对捕获的请求进行漏洞检测;APK Monitor在执行完成后卸载APP,再继续监控指定目录;漏洞检测代理模块输出漏洞检测结果。本发明能全自动化地检测安卓APP服务端Web漏洞,同时支持批量检测而无需人工干预,支持自动化地检测某个安卓APP市场的所有APP,从而得出分析统计结果。
Description
技术领域
本发明涉及采用安卓模拟器对安卓应用的模拟操作、ADB命令操作、漏洞检测等领域,具体涉及一种基于模拟器的安卓应用服务端Web漏洞检测方法。
背景技术
不同的安卓APP提供不同的功能,促进移动互联网的发展,让我们生活更便捷,但APP的广泛使用及它本身存在的漏洞同样对我们移动生活、隐私安全带来了威胁。APP替代网站以客户端的方式实现我们日常通过访问Web应用的方式获取的服务,实际它的后端也与服务端进行通信,以进行数据的传输。
在传统的对APP服务端请求的安全检测中,多数采用静态分析的方式,通过逆向APP进行以获取APP的源码,主要包含APP的脱壳、逆向,然后通过正则匹配、代码静态分析跟踪等方式发现APP里做的不同请求,提取请求的URL进行单独的检测。传统的静态检测需要先对APP进行逆向以获取APP源码才能进行下一步,而大多重要的APP都会对APP进行加固、加壳,这就导致了APP有时无法逆向而得到源码,或者是逆向难度太高,如果因为技术不到位等情况,就无法获取源码,也就无从进行下一步的检测。逆向成功后,需要进行静态的代码审核和分析,提取APP中所有对服务端的请求,这需要大量的经验和精力投入,耗时耗力。
除此之外,在很多APP里,对于服务端的请求的URL都是通过参数的拼接的方式,需要跟踪代码的走向去获取对应参数的值才能完成对URL的拼接,甚至于一些参数是根据实际运行环境而进行动态读取的,无法通过跟踪代码而获取,这就导致了提取的请求可能是不完整的,造成检测效果有问题。有些APP会包含一些无效URL,实际这些URL并没有被APP请求,采用传统的方式可能也会提取到这些服务端URL,而花费检测资源去检测,造成检测资源的浪费。
安卓模拟器:是一个可以运行在电脑上的虚拟设备。Android模拟器可以不需使用物理设备即可预览、开发和测试Android应用程序。
ADB:全称为Android Debug Bridge,起到调试桥的作用。通过ADB,可以在Eclipse中方便通过DDMS来调试Android程序。
APK:APK是AndroidPackage的缩写,即Android安装包(apk)。
发明内容
本发明所要解决的技术问题是提供一种基于模拟器的安卓应用服务端Web漏洞检测方法,通过模拟器触发模拟操作,以及通过脚本自动化调用ADB进行相关操作,避免人工参与,也能实现漏洞检测。
为解决上述技术问题,本发明采用的技术方案是:
一种基于模拟器的安卓应用服务端Web漏洞检测方法,包括以下步骤:
步骤1:启动漏洞检测代理模块,启动安卓模拟器并配置网络;
步骤2:编写APK Monitor模块,连接安卓模拟器并监控目录,所述APK Monitor模块使用Python脚本,对指定目录进行新增文件监控;
步骤3:通过Python脚本将批量或单个的安卓应用安装文件,即APK文件下载到指定目录;
步骤4:APK Monitor监控到目录下的APK文件,自动通过ADB命令进行安装,并且遍历触发APP的Activity来执行APP的功能;
步骤5:通过漏洞检测代理模块的代理捕获APP对服务端的所有请求;
步骤6:漏洞检测代理模块对捕获的请求进行漏洞检测;
步骤7:APK Monitor在执行完成后卸载APP,再继续监控指定目录;
步骤8:漏洞检测代理模块输出漏洞检测结果。
进一步的,在步骤4中所述的遍历Activity来触发APP的所有功能,具体为:解压APK文件,获得AndroidManifest.xml文件,通过读取该XML文件里节点的内容获取所有的Activity,然后通过ADB执行命令语句进行触发。
进一步的,所述步骤5具体为:先root安卓模拟器,安装具有代理功能的APP,再触发每个Activity过程,如果所触发的Activity对应的功能包含有对服务端的请求,那么都将被代理捕获到。
进一步的,所述安装具有代理功能的APP具体为:采用ProxyDroid或者通过设置WIFI代理设置模拟器的全局网络代理。
进一步的,所述步骤6具体为:采用Burpsuite将捕获的完整的对服务端的网络请求导入扫描器进行漏洞检测。
与现有技术相比,本发明的有益效果是:
1、本发明通过一种简单的方式实现全自动化地检测对安卓APP服务端Web漏洞,同时支持批量检测而无需人工干预,支持自动化地检测某个安卓APP市场的所有APP,从而得出分析统计结果。
2、本发明部署简单,不需要实际购买安卓设备,单台电脑即可实现大批量的检测,成本低廉、部署简单。
3、本发明扬长避短,通过巧妙的架构实现避免了传统APP检测中需要克服的脱壳等技术手段要求极高的处理方式,上手简单。
附图说明
图1是本发明基于模拟器的安卓应用服务端Web漏洞检测方法过程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。如图1所示,处理流程包括:1)启动漏洞检测代理模块,启动安卓模拟器并配置网络;2)编写APK Monitor模块,连接安卓模拟器并监控目录,所述APK Monitor模块使用Python脚本,对指定目录进行新增文件监控;3)通过Python脚本将批量或单个的安卓应用安装文件,即APK文件下载到指定目录;4)APK Monitor监控到目录下的APK文件,自动通过ADB命令进行安装,并且遍历触发APP的Activity来执行APP的功能;5)通过漏洞检测代理模块的代理捕获APP对服务端的所有请求;6)漏洞检测代理模块对捕获的请求进行漏洞检测;7)APK Monitor在执行完成后卸载APP,再继续监控指定目录;8)漏洞检测代理模块输出漏洞检测结果。
实现APP的安装和卸载
具体是通过ADB命令先Connect模拟器,如“adb connect模拟器ip”,再安装APP,如“adb wait-for-device install apk文件”,再卸载APP,如“adb wait-for-deviceuninstall pkg包名(pkg包名可以读取AndroidManifest.xml文件获得)”。
遍历Activity来触发APP的所有功能
每个APK文件其实就是一个压缩包,可以直接解压,获得AndroidManifest.xml文件,通过读取该XML文件里节点的内容,获取所有的Activity,通过ADB执行命令语句进行触发(安卓APP开发规范里要求每个APP必须包含该文件,也必须在该文件里注册所有Activity)。如adb wait-for-device shell am start–n pkg_name/activity。
通过设置代理捕获APP所有的服务端请求
先root安卓模拟器,安装相关APP或者通过设置WIFI代理等方式设置模拟器的全局网络代理,然后再触发每个Activity的过程,如果对应的功能包含有对服务端的请求,那么都将被代理捕获到。
实现漏洞检测
采用Burpsuite或者其他扫描器,直接将捕获的完整的对服务端的网络请求导入扫描器进行漏洞检测,其中以支持命令调用执行任务的扫描器为佳,可以实现全自动无人工参与的漏洞检测。
Claims (5)
1.一种基于模拟器的安卓应用服务端Web漏洞检测方法,其特征在于,包括以下步骤:
步骤1:启动漏洞检测代理模块,启动安卓模拟器并配置网络;
步骤2:编写APK Monitor模块,连接安卓模拟器并监控目录,所述APK Monitor模块使用Python脚本,对指定目录进行新增文件监控;
步骤3:通过Python脚本将批量或单个的安卓应用安装文件,即APK文件下载到指定目录;
步骤4:APK Monitor监控到目录下的APK文件,自动通过ADB命令进行安装,并且遍历触发APP的Activity来执行APP的功能;
步骤5:通过漏洞检测代理模块的代理捕获APP对服务端的所有请求;
步骤6:漏洞检测代理模块对捕获的请求进行漏洞检测;
步骤7:APK Monitor在执行完成后卸载APP,再继续监控指定目录;
步骤8:漏洞检测代理模块输出漏洞检测结果。
2.如权利要求1所述的基于模拟器的安卓应用服务端Web漏洞检测方法,其特征在于,在步骤4中所述的遍历Activity来触发APP的所有功能,具体为:解压APK文件,获得AndroidManifest.xml文件,通过读取该XML文件里节点的内容获取所有的Activity,然后通过ADB执行命令语句进行触发。
3.如权利要求1或2所述的基于模拟器的安卓应用服务端Web漏洞检测方法,其特征在于,所述步骤5具体为:先root安卓模拟器,安装具有代理功能的APP,再触发每个Activity过程,如果所触发的Activity对应的功能包含有对服务端的请求,那么都将被代理捕获到。
4.如权利要求3所述的基于模拟器的安卓应用服务端Web漏洞检测方法,其特征在于,所述安装具有代理功能的APP具体为:采用ProxyDroid或者通过设置WIFI代理设置模拟器的全局网络代理。
5.如权利要求4所述的基于模拟器的安卓应用服务端Web漏洞检测方法,其特征在于,所述步骤6具体为:采用Burpsuite将捕获的完整的对服务端的网络请求导入扫描器进行漏洞检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610901415.5A CN106357670A (zh) | 2016-10-17 | 2016-10-17 | 基于模拟器的安卓应用服务端Web漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610901415.5A CN106357670A (zh) | 2016-10-17 | 2016-10-17 | 基于模拟器的安卓应用服务端Web漏洞检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106357670A true CN106357670A (zh) | 2017-01-25 |
Family
ID=57865925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610901415.5A Pending CN106357670A (zh) | 2016-10-17 | 2016-10-17 | 基于模拟器的安卓应用服务端Web漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106357670A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239697A (zh) * | 2017-06-27 | 2017-10-10 | 四维创智(北京)科技发展有限公司 | 一种基于移动流量的服务器端扫描方法 |
CN107301346A (zh) * | 2017-05-23 | 2017-10-27 | 成都联宇云安科技有限公司 | 一种利用白名单机制实现安卓设备app快速安全检测方法 |
CN107729749A (zh) * | 2017-09-30 | 2018-02-23 | 北京梆梆安全科技有限公司 | 结合***信息和硬件特性的安卓模拟器检测方法及装置 |
CN107729750A (zh) * | 2017-09-30 | 2018-02-23 | 北京梆梆安全科技有限公司 | 结合配置信息和硬件特性的安卓模拟器检测方法及装置 |
CN108875368A (zh) * | 2017-05-10 | 2018-11-23 | 北京金山云网络技术有限公司 | 一种安全检测方法、装置及*** |
CN108959935A (zh) * | 2018-06-25 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN109918122A (zh) * | 2019-03-06 | 2019-06-21 | Oppo广东移动通信有限公司 | 白名单维护方法、装置及终端设备 |
CN110990221A (zh) * | 2019-11-26 | 2020-04-10 | 武汉大学 | 基于内核LKM的Android平台恶意软件自动化检测方法与*** |
CN112099840A (zh) * | 2020-08-28 | 2020-12-18 | 广州掌淘网络科技有限公司 | 应用程序包中的特征提取方法及设备 |
CN115277202A (zh) * | 2022-07-28 | 2022-11-01 | 四川封面传媒科技有限责任公司 | 一种用于安卓app的自动化数据采集***及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541729A (zh) * | 2010-12-31 | 2012-07-04 | 航空工业信息中心 | 软件安全漏洞检测装置和方法 |
CN103207969A (zh) * | 2013-04-12 | 2013-07-17 | 百度在线网络技术(北京)有限公司 | 检测Android恶意软件的装置以及方法 |
US20130212484A1 (en) * | 2012-02-15 | 2013-08-15 | Mobilespan Inc. | Presenting execution of a remote application in a mobile device native format |
CN105512045A (zh) * | 2015-12-24 | 2016-04-20 | 珠海市君天电子科技有限公司 | 一种应用程序的测试方法、装置及测试设备 |
CN105740144A (zh) * | 2016-01-27 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种Android移动终端的自动化测试方法及*** |
CN105787364A (zh) * | 2014-12-23 | 2016-07-20 | 深圳市腾讯计算机***有限公司 | 任务的自动化测试方法、装置及*** |
-
2016
- 2016-10-17 CN CN201610901415.5A patent/CN106357670A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541729A (zh) * | 2010-12-31 | 2012-07-04 | 航空工业信息中心 | 软件安全漏洞检测装置和方法 |
US20130212484A1 (en) * | 2012-02-15 | 2013-08-15 | Mobilespan Inc. | Presenting execution of a remote application in a mobile device native format |
CN103207969A (zh) * | 2013-04-12 | 2013-07-17 | 百度在线网络技术(北京)有限公司 | 检测Android恶意软件的装置以及方法 |
CN105787364A (zh) * | 2014-12-23 | 2016-07-20 | 深圳市腾讯计算机***有限公司 | 任务的自动化测试方法、装置及*** |
CN105512045A (zh) * | 2015-12-24 | 2016-04-20 | 珠海市君天电子科技有限公司 | 一种应用程序的测试方法、装置及测试设备 |
CN105740144A (zh) * | 2016-01-27 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种Android移动终端的自动化测试方法及*** |
Non-Patent Citations (2)
Title |
---|
RIUSKSK: "android沙盘原理与实现,https://security.tencent.com/index.php/blog/msg/7", 《腾讯安全应急响应中心》 * |
TRACY_梓朋: "安卓恶意代码分析工具详解(一)—MobSF,http://purpleroc.com/MD/2016-08-31@Android%20Malware%20Analysis%20Tool(1)--MobSF.html", 《TRACY、BLOG》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875368A (zh) * | 2017-05-10 | 2018-11-23 | 北京金山云网络技术有限公司 | 一种安全检测方法、装置及*** |
CN107301346A (zh) * | 2017-05-23 | 2017-10-27 | 成都联宇云安科技有限公司 | 一种利用白名单机制实现安卓设备app快速安全检测方法 |
CN107239697A (zh) * | 2017-06-27 | 2017-10-10 | 四维创智(北京)科技发展有限公司 | 一种基于移动流量的服务器端扫描方法 |
CN107729749A (zh) * | 2017-09-30 | 2018-02-23 | 北京梆梆安全科技有限公司 | 结合***信息和硬件特性的安卓模拟器检测方法及装置 |
CN107729750A (zh) * | 2017-09-30 | 2018-02-23 | 北京梆梆安全科技有限公司 | 结合配置信息和硬件特性的安卓模拟器检测方法及装置 |
CN108959935A (zh) * | 2018-06-25 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN108959935B (zh) * | 2018-06-25 | 2021-08-20 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN109918122A (zh) * | 2019-03-06 | 2019-06-21 | Oppo广东移动通信有限公司 | 白名单维护方法、装置及终端设备 |
CN110990221A (zh) * | 2019-11-26 | 2020-04-10 | 武汉大学 | 基于内核LKM的Android平台恶意软件自动化检测方法与*** |
CN112099840A (zh) * | 2020-08-28 | 2020-12-18 | 广州掌淘网络科技有限公司 | 应用程序包中的特征提取方法及设备 |
CN115277202A (zh) * | 2022-07-28 | 2022-11-01 | 四川封面传媒科技有限责任公司 | 一种用于安卓app的自动化数据采集***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106357670A (zh) | 基于模拟器的安卓应用服务端Web漏洞检测方法 | |
Costin et al. | Automated dynamic firmware analysis at scale: a case study on embedded web interfaces | |
US9021443B1 (en) | Test automation API for host devices | |
US9355017B2 (en) | Automated error checking system for a software application and method therefor | |
CN110554965B (zh) | 自动化模糊测试方法及相关设备、计算机可读存储介质 | |
CN104281520B (zh) | 跟踪和调试的方法、装置及*** | |
US10698797B2 (en) | Mobile application program testing method, server, terminal, and storage medium | |
US10042744B2 (en) | Adopting an existing automation script to a new framework | |
CN103729294B (zh) | 应用软件性能脚本测试方法与装置 | |
CN107678949B (zh) | 实现嵌入式设备不同通信方式的自动化测试方法 | |
CN110727575B (zh) | 一种信息处理方法、***、装置、以及存储介质 | |
CN104331662A (zh) | Android恶意应用检测方法及装置 | |
CN109683997B (zh) | 通过沙箱访问应用程序接口的方法、沙箱及沙箱设备 | |
CN110825985B (zh) | 数据采集***、方法、装置、控制设备及代理设备 | |
CN104809057A (zh) | 应用测试***及应用测试方法 | |
CN107957939B (zh) | 网页交互界面测试方法及*** | |
CN115604256A (zh) | 基于源数据仿真的手机app取证方法、***及存储介质 | |
CN110287112B (zh) | 客户端的维护方法、装置及可读存储介质 | |
CN105117340A (zh) | 用于iOS浏览器应用质量评估的URL检测方法和装置 | |
CN104036193A (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
US9304891B1 (en) | Load-test generator | |
CN116662050A (zh) | 一种错误注入支持功能验证方法、装置、终端及介质 | |
CN111597557A (zh) | 恶意应用程序的检测方法、***、装置、设备及存储介质 | |
CN112882897A (zh) | 异常场景处理方法、装置、电子设备及存储介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170125 |
|
RJ01 | Rejection of invention patent application after publication |