CN113157576A - 应用程序的安全检测方法、装置和电子设备 - Google Patents
应用程序的安全检测方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113157576A CN113157576A CN202110454247.0A CN202110454247A CN113157576A CN 113157576 A CN113157576 A CN 113157576A CN 202110454247 A CN202110454247 A CN 202110454247A CN 113157576 A CN113157576 A CN 113157576A
- Authority
- CN
- China
- Prior art keywords
- application program
- task
- target application
- mobile terminal
- target
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 125
- 238000012360 testing method Methods 0.000 claims abstract description 131
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000009434 installation Methods 0.000 claims abstract description 34
- 230000035515 penetration Effects 0.000 claims abstract description 21
- 238000011076 safety test Methods 0.000 claims abstract description 12
- 230000003068 static effect Effects 0.000 claims description 32
- 238000007726 management method Methods 0.000 claims description 17
- 238000011056 performance test Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 16
- 230000008439 repair process Effects 0.000 claims description 12
- 230000007547 defect Effects 0.000 claims description 10
- 238000013475 authorization Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000007689 inspection Methods 0.000 abstract 1
- 230000002452 interceptive effect Effects 0.000 description 12
- 241000282693 Cercopithecidae Species 0.000 description 11
- 230000008901 benefit Effects 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000009781 safety test method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种应用程序的安全检测方法、装置和电子设备,涉及计算机技术领域。方法包括:接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;发送安装请求至目标移动终端;若为动态检测任务,生成伪随机的用户事件流,发送伪随机的用户事件流至目标应用程序中;实时捕获目标移动终端发送的针对伪随机的用户事件流的所有反馈数据,若其中包括目标应用程序的接口请求数据时,将目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;达到预设运行时长时,停止渗透测试并生成动态安全测试报告。解决了移动应用的安全检测自动化程度低,测试工具功能单一无法适配复杂业务场景的问题。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用程序的安全检测方法、装置和电子设备。
背景技术
现有技术实现移动应用(application,以下简称app)的安全测试存在诸多问题,第一:安全检测器单一,大部分检测工具(如Drozer)只能支持静态代码检测,这种方式导致无法对用户请求进行渗透测试,容易引发漏测。第二:安全检测平台(如360app漏洞扫描)需要上传软件安装包等到第三方外部平台,容易产生未发版的app被泄漏或被恶意反编译等安全隐患。第三:安全测试工具种类繁多,需要测试人员在本机部署安全测试环境,过程复杂,且无法起到环境资源的有效利用及手机设备的共享。第四:安全测试报告无法统一管理与保存,无法查看历史报告结果,需要开辟专门的空间由人工保存与维护,效率低,耗时高。综上所述,手动检测效率低、工作量大,且安全测试工具功能单一,需要组合使用,在面对复杂的业务场景时,无法适配及扩展。
发明内容
本发明实施例提供一种应用程序的安全检测方法、装置和电子设备,以解决现有技术中移动应用的安全检测存在的手动检测效率低、工作量大、自动化程度低,安全测试工具功能单一、需要组合使用,且在面对复杂的业务场景时,无法适配及扩展的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种应用程序的安全检测方法,包括:
接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;
发送携带有所述目标应用程序的安装包的安装请求至所述目标移动终端;
若所述检测任务的任务属性为动态检测任务,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;
实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,将所述目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;
所述伪随机的用户事件流的执行时间达到所述预设运行时长时,停止渗透测试并生成动态安全测试报告。
可选的,所述生成动态安全测试报告包括:
对所述伪随机的用户事件流的所有反馈数据进行安全规则匹配;
输出不符合所述安全规则的反馈数据的漏洞类型、漏洞级别和修改意见。
可选的,若所述伪随机的用户事件流的所有反馈数据中包括所述目标应用程序的性能数据,所述方法还包括:
收集所述目标应用程序的性能数据,生成性能测试报告。
可选的,还包括:配置自定义前置测试脚本;
所述生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中之前,还包括:
依据所述自定义前置测试脚本,自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一。
可选的,还包括:
若所述检测任务的任务属性为静态检测任务,解析所述目标应用程序的安装包,对所述目标应用程序进行源码分析和二进制文件分析,生成静态测试报告。
可选的,所述生成动态安全测试报告之后,还包括:
将所述动态安全测试报告发送至缺陷管理平台,生成所述目标应用程序的安全修复任务。
可选的,还包括:
接收用于配置测试任务的第一输入,响应于所述第一输入生成测试任务配置界面;
接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端;
接收第三输入,响应于所述第三输入,配置所述测试任务的目标应用程序的安装包、预设运行时长和任务属性。
可选的,所述接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端,包括:
获取可用移动终端列表;
接收第二输入,响应于所述第二输入,从所述可用移动终端列表中确定目标移动终端。
第二方面,本发明实施例还提供了一种应用程序的安全检测装置,包括:
配置模块,用于接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;
发送模块,用于发送携带有所述目标应用程序的安装包的安装请求至所述目标移动终端;
第一执行模块,用于若所述检测任务的任务属性为动态检测任务,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;
所述第一执行模块还用于实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,将所述目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;
生成模块,用于所述伪随机的用户事件流的执行时间达到所述预设运行时长时,停止渗透测试并生成动态安全测试报告。
第三方面,本发明实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面任一项所述的应用程序的安全检测方法的步骤。
第四方面,本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如第一方面任一项所述的应用程序的安全检测方法的步骤。
本发明实施例中,执行动态检测任务时,通过将生成的伪随机的用户事件流发送到目标移动终端上安装的目标应用程序中,实时捕获目标移动终端发送的针对该伪随机的用户事件流的所有反馈数据,若其中包括目标应用程序的接口请求数据时,将目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试并生成动态安全测试报告;本发明的应用程序的安全检测方法通过监听目标应用程序下发的接口请求交互数据,对其进行模拟攻击和分析来确定其安全性漏洞,提供了一种在线自动进行目标应用程序检测且支持动态安全检测的方法,目标应用程序的安装包和测试报告为私有化部署,隐私性和安全性更好。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的应用程序的安全检测方法的流程示意图之一;
图2为本发明实施例提供的应用程序的安全检测方法的流程示意图之二;
图3为本发明实施例提供的应用程序的安全检测装置的结构示意图之一;
图4为本发明实施例提供的应用程序的安全检测装置的结构示意图之二;
图5为本发明实施例提供的电子设备的结构示意图之一。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的应用程序的安全检测方法的流程示意图之一;本发明实施例提供了一种应用程序的安全检测方法,包括:
步骤11:接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;
步骤12:发送携带有所述目标应用程序的安装包的安装请求至所述目标移动终端;
步骤13:若所述检测任务的任务属性为动态检测任务,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;
步骤14:实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,将所述目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;
步骤15:所述伪随机的用户事件流的执行时间达到所述预设运行时长时,停止渗透测试并生成动态安全测试报告。
本发明实施例中,执行动态检测任务时,通过将生成的伪随机的用户事件流发送到目标移动终端上安装的目标应用程序中,实时捕获目标移动终端发送的针对该伪随机的用户事件流的所有反馈数据,若其中包括目标应用程序的接口请求数据时,将目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试并生成动态安全测试报告;本发明的应用程序的安全检测方法通过监听目标应用程序下发的接口请求交互数据,对其进行模拟攻击和分析来确定其安全性漏洞,提供了一种在线自动进行目标应用程序检测且支持动态安全检测的方法,目标应用程序的安装包和测试报告为私有化部署,隐私性和安全性更好。
在本发明的一些实施例中,可选的,所述生成动态安全测试报告包括:
对所述伪随机的用户事件流的所有反馈数据进行安全规则匹配;
输出不符合所述安全规则的反馈数据的漏洞类型、漏洞级别和修改意见。
本发明实施例中,伪随机的用户事件流为模拟用户的点击、输入、滑动等行为,对伪随机的用户事件流的所有反馈数据包括但不限于基于用户的点击、输入、滑动等行为的反馈数据,如针对目标应用程序界面的接口请求数据等,通过收集反馈数据并与预置的安全规则进行匹配,通过分析得到该目标应用程序存在的漏洞类型、漏洞级别和修改意见。由此得到的动态安全测试报告简易便捷,精确且自动化程度高。
在本发明的一些实施例中,可选的,生成伪随机的用户事件流的工具为monkey工具。
在本发明的一些实施例中,可选的,实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,筛选其中包括所述目标应用程序的接口请求数据的工具为Charles代理工具。
在本发明的一些实施例中,可选的,接收所述目标应用程序的接口请求数据的动态安全检测工具为ZAP安全检测工具。利用ZAP开放的api(Application ProgrammingInterface,应用程序接口)监听目标应用程序下发的接口请求交互数据,对系统进行模拟攻击和分析来确定其安全性漏洞,在被动扫描完成后,ZAP以报告的形式提供安全漏洞,报告中漏洞类型分为高优先级、中优先级、低优先级等,提示测试人员系统中可能存在的安全缺陷。
本发明的一些实施例中,可选的,执行动态安全测试任务前,需要提前预设好安装有目标应用程序的目标移动终端,将目标移动终端的代理连接至物理机器ip(InternetProtocol Address)地址上,其中,物理机器上提前预装好Charles和ZAP工具。
在本发明的一些实施例中,可选的,若所述伪随机的用户事件流的所有反馈数据中包括所述目标应用程序的性能数据,所述方法还包括:
收集所述目标应用程序的性能数据,生成性能测试报告。
本发明实施例中,进行应用程序的安全检测方法的同时还能进行应用程序的性能测试,同步生成性能测试报告,实用性强。
在本发明的一些实施例中,可选的,使用adb原生命令(Android Debug Bridge,安卓调试桥)收集安卓app的性能数据,所述性能数据包括但不限于目标移动终端的cpu(central processing unit,中央处理器)、内存、帧率、崩溃等数据,同步完成性能检测并出具性能报告。
在本发明的一些实施例中,可选的,还包括:配置自定义前置测试脚本;
所述生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中之前,还包括:
依据所述自定义前置测试脚本,自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一。
本发明实施例中,应用程序的安全检测方法可预先配置自定义前置测试脚本实现目标应用程序的自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一,可灵活适配不同应用程序的登录、授权等操作,脚本定制化,使得动态安全检测可实现。解决了现有技术大部分应用程序检测依赖于前置登录、授权等操作,自动化程度低的问题。
在本发明的一些实施例中,可选的,还包括:
若所述检测任务的任务属性为静态检测任务,解析所述目标应用程序的安装包,对所述目标应用程序进行源码分析和二进制文件分析,生成静态测试报告。
本发明实施例中,在静态检测包括对二进制方式或压缩的源代码都可以进行检测,且被测应用程序和测试报告保存在平台数据库中,私有化部署,隐私性好,能防止未发版的apk(Android application package,Android应用程序包)或ipa(iPhoneApplication,iphone封包文件)被非法反编译和对外泄漏。
本发明的一些实施例中,可选的,静态安全测试任务同时支持iOS和Android系统,使用了mobsf开源检测器,检查项包括但不限于:app基础信息如包名、MainActivity信息,apk的加解密、组件暴露风险、manifest文件分析、源码分析和二进制文件分析、隐私合规、api检测等。
在本发明的一些实施例中,可选的,所述生成动态安全测试报告之后,还包括:
将所述动态安全测试报告发送至缺陷管理平台,生成所述目标应用程序的安全修复任务。
本发明实施例中,测试报告自动发送至缺陷管理平台,生成所述目标应用程序的安全修复任务,进一步提高了动态安全检测的自动化程度,实现了动态安全检测的闭环,将基于该测试报告的安全修复任务进一步应用于缺陷跟踪、任务跟踪、项目跟踪和敏捷管理等工作领域。
在本发明的一些实施例中,可选的,所述生成静态测试报告之后,还包括:
将所述静态测试报告发送至缺陷管理平台,生成所述目标应用程序的安全修复任务。
在本发明的一些实施例中,可选的,还包括:
接收用于配置测试任务的第一输入,响应于所述第一输入生成测试任务配置界面;
接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端;
接收第三输入,响应于所述第三输入,配置所述测试任务的目标应用程序的安装包、预设运行时长和任务属性。
本发明实施例中,通过在配置界面进行本次测试任务的目标移动终端、目标应用程序的安装包、预设运行时长和任务属性,即可自动执行该目标应用程序的动态安全性能测试,交互程度高,测试难度低,自动化程度高。
在本发明的一些实施例中,可选的,所述接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端,包括:
获取可用移动终端列表;
接收第二输入,响应于所述第二输入,从所述可用移动终端列表中确定目标移动终端。
在本发明的一些实施例中,可选的,获取可用移动终端列表的方式包括但不限于以下至少之一:
调用移动终端管理集群的设备列表获取接口获取可用移动终端列表;
接收包含可用移动终端列表的第四输入。
本发明实施例中,获取可用移动终端列表后可从所述可用移动终端列表中确定目标移动终端。能够实时更新移动终端列表的设备状态,保证了进行测试任务的目标移动终端均为可用终端,进一步提高了测试的自动化程度和成功率。
请参见图2,图2为本发明实施例提供的应用程序的安全检测方法的流程示意图之二;其中JobWorker为安全检测平台,目标移动终端为手机,所述方法包括:
步骤21:创建任务,转入步骤22;
步骤22:判断是否为静态检测任务,是则转入步骤231,否则转入步骤241;
步骤231:创建静态安全测试任务,转入步骤232;
步骤232:调用mobsf检测服务,执行静态检测;转入步骤25;
步骤241:调用JobWorker提供的手机列表接口,获取远程可用手机设备列表,转入步骤242;
步骤242:指定安装包和运行时长,转入步骤243;
步骤243:创建动态安全测试任务,转入步骤244;
步骤244:启动monkey服务,产生用户点击行为,转入步骤245;
步骤245:启动ZAP服务,利用代理将用户请求转发至ZAP服务,转入步骤246;
步骤246:ZAP工具进行安全检测,同步利用adb原生命令收集性能数据,转入步骤25;
步骤25:结束当前测试,生成测试报告并发送邮件或企业微信通知目标对象。
本发明实施例中,执行动态检测任务时,通过将monkey工具生成的伪随机的用户事件流发送到目标移动终端上安装的目标应用程序中,实时捕获目标移动终端发送的针对该伪随机的用户事件流的所有反馈数据,若其中包括目标应用程序的接口请求数据时,将目标应用程序的接口请求数据转发至动态安全检测工具ZAP工具,进行渗透测试并生成动态安全测试报告;同时从反馈数据中收集性能数据生成性能测试报告;执行静态检测任务时,调用mobsf检测工具生成静态测试报告。本发明的应用程序的安全检测方法通过监听目标应用程序下发的接口请求交互数据,对其进行模拟攻击和分析来确定其安全性漏洞,提供了一种在线自动进行目标应用程序检测且支持动态和静态安全检测的方法,同时可生成性能测试报告,目标应用程序的安装包和测试报告为私有化部署,隐私性和安全性更好。
本发明的一些实施例中,可选的,创建任务完成后,生成任务列表页面,在任务列表页面可以查看到任务的名称、测试人员、测试类型等信息,点击开始任务后,任务状态变为执行中。
本发明的一些实施例中,可选的,动态安全测试任务存入kafka(一种分布式队列系统)队列中,执行任务时从队列中依次取任务,当一个动态安全测试任务执行完毕,再从kafka队列中取新的任务执行,由此循环。
本发明的一些实施例中,可选的,启动money服务的作用为模拟用户的点击、输入、滑动等行为。
本发明的一些实施例中,可选的,monkey工具采用的是优化的Maximmonkey算法,具有执行速度快,平台兼容性高、场景细粒度高的优点,具有防跳出机制、防休眠机制、熔断机制、崩溃堆栈自动保存和随机自动输入功能。
本发明的一些实施例中,可选的,在执行monkey的同时,Jobworker会同步采集性能信息,用于安卓性能结果展示。
本发明的一些实施例中,可选的,利用adb的原生命令获取cpu、内存、安装耗时、启动时间、流量消耗、页面加载使用率、FPS(Frames Per Second,每秒传输帧数)、崩溃堆栈等实现目标应用程序的性能数据的采集。
本发明的一些实施例中,可选的,在开始动态检测任务后,测试人员可点击配置界面查看手机运行状态按钮,查看远程手机的执行情况,以便于排查问题。
本发明的一些实施例中,可选的,借助开源工具atxsever查看手机远程手机的执行状态;atxserver是一个开源的安卓设备管理集群,优点为设备接入方便,手机通过数据线连接电脑后,完成初始化后,可运行自动化脚本、查看日志及远程操作和查看手机状态。目前在部署Jobworker服务的机器上部署了atxserver手机管理平台,实现了手机集群管理,便于异地共享设备,操作和借用远程设备等。
本发明的一些实施例中,可选的,如果是动态测试会生成Android性能报告和ZAP动态安全测试报告;如果是静态测试,则由mobsf生成静态测试报告。
本发明的一些实施例中,可选的,还包括:将测试报告上传至文件服务器,用户可通过浏览器访问文件服务器查看测试报告。
本发明的一些实施例中,可选的,文件服务器提供了上传和下载的接口,在静态报告和动态报告在本地生成后,会调用文件服务器的上传接口,将报告上传至文件服务器,文件服务器返回一个报告的访问链接,该链接被存储在数据库当中,用户可通过浏览器查看报告。
本发明的一些实施例中,可选的,还包括对历史运行任务报告进行保存,测试人员可查看任务的测试报告并可下载至本地。
请参见图3,图3为本发明实施例提供的应用程序的安全检测装置的结构示意图之一;本发明实施例还提供了一种应用程序的安全检测装置30,包括:
配置模块31,用于接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;
发送模块32,用于发送携带有所述目标应用程序的安装包的安装请求至所述目标移动终端;
第一执行模块33,用于若所述检测任务的任务属性为动态检测任务,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;
所述第一执行模块33还用于实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,将所述目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;
生成模块34,用于所述伪随机的用户事件流的执行时间达到所述预设运行时长时,停止渗透测试并生成动态安全测试报告。
本发明实施例中,应用程序的安全检测装置执行动态检测任务时,通过将monkey工具生成的伪随机的用户事件流发送到目标移动终端上安装的目标应用程序中,实时捕获目标移动终端发送的针对该伪随机的用户事件流的所有反馈数据,若其中包括目标应用程序的接口请求数据时,将目标应用程序的接口请求数据转发至动态安全检测工具ZAP工具,进行渗透测试并生成动态安全测试报告;同时从反馈数据中收集性能数据生成性能测试报告;执行静态检测任务时,调用mobsf检测工具生成静态测试报告。本发明的应用程序的安全检测装置通过监听目标应用程序下发的接口请求交互数据,对其进行模拟攻击和分析来确定其安全性漏洞,提供了一种在线自动进行目标应用程序检测且支持动态和静态安全检测的装置,同时可生成性能测试报告,目标应用程序的安装包和测试报告为私有化部署,隐私性和安全性更好。
在本发明的一些实施例中,可选的,所述生成模块34还用于对所述伪随机的用户事件流的所有反馈数据进行安全规则匹配;输出不符合所述安全规则的反馈数据的漏洞类型、漏洞级别和修改意见。
本发明实施例中,伪随机的用户事件流为模拟用户的点击、输入、滑动等行为,对伪随机的用户事件流的所有反馈数据包括但不限于基于用户的点击、输入、滑动等行为的反馈数据,如针对目标应用程序界面的接口请求数据等,通过收集反馈数据并与预置的安全规则进行匹配,通过分析得到该目标应用程序存在的漏洞类型、漏洞级别和修改意见。由此得到的动态安全测试报告简易便捷,精确且自动化程度高。
在本发明的一些实施例中,可选的,生成伪随机的用户事件流的工具为monkey工具。
在本发明的一些实施例中,可选的,实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,筛选其中包括所述目标应用程序的接口请求数据的工具为Charles代理工具。
在本发明的一些实施例中,可选的,接收所述目标应用程序的接口请求数据的动态安全检测工具为ZAP安全检测工具。利用ZAP开放的api监听目标应用程序下发的接口请求交互数据,对系统进行模拟攻击和分析来确定其安全性漏洞,在被动扫描完成后,ZAP以报告的形式提供安全漏洞,报告中漏洞类型分为高优先级、中优先级、低优先级等,提示测试人员系统中可能存在的安全缺陷。
本发明的一些实施例中,可选的,执行动态安全测试任务前,需要提前预设好安装有目标应用程序的目标移动终端,将目标移动终端的代理连接至物理机器ip地址上,其中,物理机器上提前预装好Charles和ZAP工具。
在本发明的一些实施例中,可选的,若所述伪随机的用户事件流的所有反馈数据中包括所述目标应用程序的性能数据,所述生成模块34还用于收集所述目标应用程序的性能数据,生成性能测试报告。
本发明实施例中,进行应用程序的安全检测方法的同时还能进行应用程序的性能测试,同步生成性能测试报告,实用性强。
在本发明的一些实施例中,可选的,使用adb原生命令收集安卓app的性能数据,所述性能数据包括但不限于目标移动终端的cpu、内存、帧率、崩溃等数据,同步完成性能检测并出具性能报告。
在本发明的一些实施例中,可选的,所述配置模块31还用于配置自定义前置测试脚本;
所述第一执行模块33还用于在所述生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中之前,依据所述自定义前置测试脚本,自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一。
本发明实施例中,应用程序的安全检测方法可预先配置自定义前置测试脚本实现目标应用程序的自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一,可灵活适配不同应用程序的登录、授权等操作,脚本定制化,使得动态安全检测可实现。解决了现有技术大部分应用程序检测依赖于前置登录、授权等操作,自动化程度低的问题。
在本发明的一些实施例中,可选的,还包括:还包括第二执行模块35,用于若所述检测任务的任务属性为静态检测任务,解析所述目标应用程序的安装包,对所述目标应用程序进行源码分析和二进制文件分析,生成静态测试报告。
本发明实施例中,在静态检测包括对二进制方式或压缩的源代码都可以进行检测,且被测应用程序和测试报告保存在平台数据库中,私有化部署,隐私性好,能防止未发版的apk或ipa被非法反编译和对外泄漏。
本发明的一些实施例中,可选的,静态安全测试任务同时支持iOS和Android系统,使用了开源检测器mobsf,检查项包括但不限于:app基础信息如包名、MainActivity信息,apk的加解密、组件暴露风险、manifest文件分析、源码分析和二进制文件分析、隐私合规、API检测等。
在本发明的一些实施例中,可选的,静态测试报告通过第二执行模块生成。
在本发明的一些实施例中,可选的,静态测试报告通过生成模块生成。
在本发明的一些实施例中,可选的,所述生成模块34还用于所述生成动态安全测试报告之后,将所述动态安全测试报告发送至缺陷管理平台,生成所述目标应用程序的安全修复任务。
本发明实施例中,测试报告自动发送至缺陷管理平台,生成所述目标应用程序的安全修复任务,进一步提高了动态安全检测的自动化程度,实现了动态安全检测的闭环,将基于该测试报告的安全修复任务进一步应用于缺陷跟踪、任务跟踪、项目跟踪和敏捷管理等工作领域。
在本发明的一些实施例中,可选的,所述生成模块34还用于将所述静态测试报告发送至缺陷管理平台,生成所述目标应用程序的安全修复任务。
在本发明的一些实施例中,可选的,还包括:
所述配置模块31还用于接收用于配置测试任务的第一输入,响应于所述第一输入生成测试任务配置界面;
所述配置模块31还用于接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端;
所述配置模块31还用于接收第三输入,响应于所述第三输入,配置所述测试任务的目标应用程序的安装包、预设运行时长和任务属性。
本发明实施例中,通过在配置界面进行本次测试任务的目标移动终端、目标应用程序的安装包、预设运行时长和任务属性,即可自动执行该目标应用程序的动态安全性能测试,交互程度高,测试难度低,自动化程度高。
在本发明的一些实施例中,可选的,所述配置模块31还用于获取可用移动终端列表;接收第二输入,响应于所述第二输入,从所述可用移动终端列表中确定目标移动终端。
本发明实施例中,获取可用移动终端列表后可从所述可用移动终端列表中确定目标移动终端。能够实时更新移动终端列表的设备状态,保证了进行测试任务的目标移动终端均为可用终端,进一步提高了测试的自动化程度和成功率。
在本发明的一些实施例中,可选的,获取可用移动终端列表的方式包括但不限于以下至少之一:
调用移动终端管理集群的设备列表获取接口获取可用移动终端列表;
接收包含可用移动终端列表的第四输入。请参见图4,图4为本发明实施例提供的应用程序的安全检测装置的结构示意图之二;应用程序的安全检测装置40包括:
安全测试平台41,用于配置当前检测任务的目标应用程序的安装包、预设运行时长、任务属性和目标移动终端;
第一检测模块42,内置monkey工具、Charles代理工具、ZAP安全检测工具、UIautomator2自定义测试工具和adb原生命令工具;其中,Charles代理工具用于实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,筛选其中包括所述目标应用程序的接口请求数据,将所述目标应用程序的接口请求数据转发至动态安全检测工具;monkey工具用于当检测任务的任务属性为动态检测任务时,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;ZAP安全检测工具用于实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,进行渗透测试并生成动态安全测试报告;UIautomator2自定义测试工具用于接收到自定义前置测试脚本时,依据所述自定义前置测试脚本,自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一;adb原生命令工具用于若所述伪随机的用户事件流的所有反馈数据中包括所述目标应用程序的性能数据,收集所述目标应用程序的性能数据,生成性能测试报告。
第二检测模块43,内置mobsf检测器,用于当检测任务的任务属性为动态检测任务时,解析所述目标应用程序的安装包,对所述目标应用程序进行源码分析和二进制文件分析,生成静态测试报告。
文件服务器44;提供了上传和下载的接口,保留本次测试任务的测试报告,所述测试包括:动态安全测试报告、性能测试报告和静态测试报告中的至少之一。
本发明实施例中,执行动态检测任务时,通过将monkey工具生成的伪随机的用户事件流发送到目标移动终端上安装的目标应用程序中,实时捕获目标移动终端发送的针对该伪随机的用户事件流的所有反馈数据,若其中包括目标应用程序的接口请求数据时,将目标应用程序的接口请求数据转发至动态安全检测工具ZAP工具,进行渗透测试并生成动态安全测试报告;同时从反馈数据中收集性能数据生成性能测试报告;执行静态检测任务时,调用mobsf检测工具生成静态测试报告。本发明的应用程序的安全检测装置通过监听目标应用程序下发的接口请求交互数据,对其进行模拟攻击和分析来确定其安全性漏洞,提供了一种在线自动进行目标应用程序检测且支持动态和静态安全检测的装置,同时可生成性能测试报告,目标应用程序的安装包和测试报告为私有化部署,隐私性和安全性更好。
本发明的一些实施例中,可选的,安全测试平台为一个界面化的管理系统,是一个部署在实体机如Mac mini实体机上的服务,与测试人员直接交互,用于创建任务、任务分发、报告展示与存储、接受任务执行成功回调等。该系统直接与手机通信,负责提供手机列表、执行下发的动态检测任务、执行动态检测前置脚本、执行monkey、生成动态测试报告、完成安卓性能测试等。
本发明的一些实施例中,可选的,安全测试平台还提供了安全知识库,便于安全问题修改人员对安全问题信息查询,安全知识库内包含安全风险描述、危害描述、修复建议、修复参考链接等。
本发明实施例中,可选的,所述第一接口为手机管理集群的设备列表获取接口。
本发明还提供一种电子设备,请参见图5,图5为本发明实施例提供的电子设备的结构示意图之一;
该电子设备50包括:处理器51、存储器52及存储在所述存储器52上并可在所述处理器51上运行的程序,所述程序被所述处理器51执行时实现如实现上述任一所述的应用程序的安全检测方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的应用程序的安全检测方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (11)
1.一种应用程序的安全检测方法,其特征在于,包括:
接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;
发送携带有所述目标应用程序的安装包的安装请求至所述目标移动终端;
若所述检测任务的任务属性为动态检测任务,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;
实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,将所述目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;
所述伪随机的用户事件流的执行时间达到所述预设运行时长时,停止渗透测试并生成动态安全测试报告。
2.根据权利要求1所述的应用程序的安全检测方法,其特征在于,所述生成动态安全测试报告包括:
对所述伪随机的用户事件流的所有反馈数据进行安全规则匹配;
输出不符合所述安全规则的反馈数据的漏洞类型、漏洞级别和修改意见。
3.根据权利要求1所述的应用程序的安全检测方法,其特征在于,
若所述伪随机的用户事件流的所有反馈数据中包括所述目标应用程序的性能数据,所述方法还包括:
收集所述目标应用程序的性能数据,生成性能测试报告。
4.根据权利要求1所述的应用程序的安全检测方法,其特征在于,还包括:配置自定义前置测试脚本;
所述生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中之前,还包括:
依据所述自定义前置测试脚本,自动执行所述目标应用程序的用户登录、预设数据存储、授权操作中的至少之一。
5.根据权利要求1所述的应用程序的安全检测方法,其特征在于,还包括:
若所述检测任务的任务属性为静态检测任务,解析所述目标应用程序的安装包,对所述目标应用程序进行源码分析和二进制文件分析,生成静态测试报告。
6.根据权利要求1所述的应用程序的安全检测方法,其特征在于,所述生成动态安全测试报告之后,还包括:
将所述动态安全测试报告发送至缺陷管理平台,生成所述目标应用程序的安全修复任务。
7.根据权利要求1所述的应用程序的安全检测方法,其特征在于,还包括:
接收用于配置测试任务的第一输入,响应于所述第一输入生成测试任务配置界面;
接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端;
接收第三输入,响应于所述第三输入,配置所述测试任务的目标应用程序的安装包、预设运行时长和任务属性。
8.根据权利要求7所述的应用程序的安全检测方法,其特征在于,所述接收第二输入,响应于所述第二输入,确定所述测试任务的目标移动终端,包括:
获取可用移动终端列表;
接收第二输入,响应于所述第二输入,从所述可用移动终端列表中确定目标移动终端。
9.一种应用程序的安全检测装置,其特征在于,包括:
配置模块,用于接收当前检测任务的目标应用程序的安装包,确定预设运行时长、任务属性和目标移动终端;
发送模块,用于发送携带有所述目标应用程序的安装包的安装请求至所述目标移动终端;
第一执行模块,用于若所述检测任务的任务属性为动态检测任务,生成伪随机的用户事件流,发送所述伪随机的用户事件流至所述目标移动终端上安装的目标应用程序中;
所述第一执行模块还用于实时捕获所述目标移动终端发送的针对所述伪随机的用户事件流的所有反馈数据,若其中包括所述目标应用程序的接口请求数据时,将所述目标应用程序的接口请求数据转发至动态安全检测工具,进行渗透测试;
生成模块,用于所述伪随机的用户事件流的执行时间达到所述预设运行时长时,停止渗透测试并生成动态安全测试报告。
10.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至8中任一项所述的应用程序的安全检测方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至8中任一项所述的应用程序的安全检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110454247.0A CN113157576A (zh) | 2021-04-26 | 2021-04-26 | 应用程序的安全检测方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110454247.0A CN113157576A (zh) | 2021-04-26 | 2021-04-26 | 应用程序的安全检测方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113157576A true CN113157576A (zh) | 2021-07-23 |
Family
ID=76870907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110454247.0A Pending CN113157576A (zh) | 2021-04-26 | 2021-04-26 | 应用程序的安全检测方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157576A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836000A (zh) * | 2021-08-17 | 2021-12-24 | 同盾科技有限公司 | 移动应用程序安全测试的方法、系统、装置和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239702A (zh) * | 2016-03-29 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 一种安全漏洞检测的方法以及装置 |
CN107766728A (zh) * | 2017-08-28 | 2018-03-06 | 国家电网公司 | 移动应用安全管理装置、方法及移动作业安全防护系统 |
CN108595952A (zh) * | 2018-03-30 | 2018-09-28 | 全球能源互联网研究院有限公司 | 一种电力移动应用软件漏洞的检测方法及系统 |
CN109766258A (zh) * | 2018-11-30 | 2019-05-17 | 北京奇艺世纪科技有限公司 | 一种性能测试方法、装置及计算机可读存储介质 |
CN111177715A (zh) * | 2018-11-12 | 2020-05-19 | 中移(杭州)信息技术有限公司 | 一种移动App漏洞检测方法及装置 |
US20200265144A1 (en) * | 2019-02-20 | 2020-08-20 | Saudi Arabian Oil Company | One-touch mobile penetration testing platform |
-
2021
- 2021-04-26 CN CN202110454247.0A patent/CN113157576A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239702A (zh) * | 2016-03-29 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 一种安全漏洞检测的方法以及装置 |
CN107766728A (zh) * | 2017-08-28 | 2018-03-06 | 国家电网公司 | 移动应用安全管理装置、方法及移动作业安全防护系统 |
CN108595952A (zh) * | 2018-03-30 | 2018-09-28 | 全球能源互联网研究院有限公司 | 一种电力移动应用软件漏洞的检测方法及系统 |
CN111177715A (zh) * | 2018-11-12 | 2020-05-19 | 中移(杭州)信息技术有限公司 | 一种移动App漏洞检测方法及装置 |
CN109766258A (zh) * | 2018-11-30 | 2019-05-17 | 北京奇艺世纪科技有限公司 | 一种性能测试方法、装置及计算机可读存储介质 |
US20200265144A1 (en) * | 2019-02-20 | 2020-08-20 | Saudi Arabian Oil Company | One-touch mobile penetration testing platform |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836000A (zh) * | 2021-08-17 | 2021-12-24 | 同盾科技有限公司 | 移动应用程序安全测试的方法、系统、装置和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190354690A1 (en) | Systems, devices and methods for application and privacy compliance monitoring and security threat analysis processing | |
CN102810143B (zh) | 基于Android平台手机应用程序的安全检测系统及方法 | |
Shahriar et al. | Testing of memory leak in android applications | |
US10084637B2 (en) | Automatic task tracking | |
JP2021518026A (ja) | エントロピ値に基づいて性能を判定するシステム | |
US10956257B2 (en) | Dynamic failure-resolution computing engine | |
CN111930472B (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
CN110119350A (zh) | 软件开发工具包测试方法、装置和设备及计算机存储介质 | |
CN113158191B (zh) | 基于智能探针的漏洞验证方法及相关iast方法、系统 | |
CN112463588A (zh) | 一种自动化测试系统及方法、存储介质、计算设备 | |
CN111666217A (zh) | 用于测试代码的方法和装置 | |
CN105279078A (zh) | 安全漏洞检测方法和装置 | |
CN113157576A (zh) | 应用程序的安全检测方法、装置和电子设备 | |
US20140149488A1 (en) | System and method for engaging a mobile device | |
CN110990221A (zh) | 基于内核LKM的Android平台恶意软件自动化检测方法与系统 | |
CN116382718A (zh) | 代码离线部署方法、装置、计算机设备及存储介质 | |
CN113934642B (zh) | 一种基于动静态结合的软件兼容性测试方法 | |
CN116305120A (zh) | 一种双重验证的安卓恶意软件混合检测系统及方法 | |
CN116150766A (zh) | 设备漏洞的修复方法及装置 | |
Zhang et al. | Crashfuzzer: Detecting input processing related crash bugs in android applications | |
CN109634848B (zh) | 一种银行大型测试环境管理方法及系统 | |
CN113535544A (zh) | 一种待调试子应用运行方法、计算机设备以及装置 | |
CN112732569A (zh) | 程序资源占用测控及其相应的装置、设备、介质 | |
CN112671615A (zh) | 前端用户操作行为数据的收集方法、系统及存储介质 | |
CN115080977B (zh) | 一种安全漏洞防御方法、系统、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |