CN109933989A - 一种检测漏洞的方法及装置 - Google Patents

一种检测漏洞的方法及装置 Download PDF

Info

Publication number
CN109933989A
CN109933989A CN201910139401.8A CN201910139401A CN109933989A CN 109933989 A CN109933989 A CN 109933989A CN 201910139401 A CN201910139401 A CN 201910139401A CN 109933989 A CN109933989 A CN 109933989A
Authority
CN
China
Prior art keywords
application program
test
loophole
test function
parameter
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.)
Granted
Application number
CN201910139401.8A
Other languages
English (en)
Other versions
CN109933989B (zh
Inventor
罗德志
周江
王枭
邱学倩
王建行
杨伟
李建颖
蒋洪伟
胥培
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910139401.8A priority Critical patent/CN109933989B/zh
Publication of CN109933989A publication Critical patent/CN109933989A/zh
Application granted granted Critical
Publication of CN109933989B publication Critical patent/CN109933989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种检测漏洞的方法及装置,涉及安全技术领域,该方法包括:在应用程序启动后,将测试工具加载至应用程序中,其中,测试工具中包含预先封装的不同测试功能的漏洞参数。然后采用测试工具将应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数,之后再执行各个测试功能并获得测试结果。通过对测试结果进行分析确定测试功能是否存在漏洞。由于引擎层中包含实现各类应用程序的运行逻辑的基本功能,故针对不同运行逻辑的应用程序,都可以采用测试工具修改应用程序的引擎层中的测试功能的参数,从而改变应用程序的运行逻辑实现漏洞检测,而不需要测试人员分析每种应用程序的运行逻辑进行漏洞检测,提供了漏洞检测效率。

Description

一种检测漏洞的方法及装置
技术领域
本发明实施例涉及安全技术领域,尤其涉及一种检测漏洞的方法及装置。
背景技术
目前,一些应用程序在具体实现或系统安全策略上可能存在缺陷,从而使攻击者有机会通过篡改代码破坏应用程序的逻辑,给应用程序的安全带来威胁。比如,当应用程序是网络游戏时,在实现游戏操作的过程中,若存在游戏漏洞,攻击者将利用游戏漏洞影响网络游戏的正常运行。目前,网络游戏的漏洞挖据主要是依赖于安全测试专家,安全测试专家从游戏实现的逻辑层进行漏洞挖掘。由于不同游戏逻辑实现不同,因此需要人工重复进行逆向分析和调试代码进行漏洞挖掘,这样不仅对安全测试专家要求高,同时耗时耗力。
发明内容
由于目前依赖人工对应用程序进行漏洞检测的方法对作业人员要求高且耗时耗力的问题,本发明实施例提供了一种检测漏洞的方法及装置。
一方面,本发明实施例提供了一种检测漏洞的方法,该方法包括:
应用程序启动后,将测试工具加载至所述应用程序中,所述测试工具中包含预先封装的不同测试功能的漏洞参数;
通过所述测试工具,将所述应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数;
在所述应用程序运行过程中执行各个测试功能并获得测试结果;
分别根据各个测试功能的测试结果确定测试功能是否存在漏洞。
一方面,本发明实施例提供了一种检测漏洞的装置,该装置包括:
加载模块,用于在应用程序启动后,将测试工具加载至所述应用程序中,所述测试工具中包含预先封装的不同测试功能的漏洞参数;
修改模块,用于通过所述测试工具,将所述应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数;
执行模块,用于在所述应用程序运行过程中执行各个测试功能并获得测试结果;
分析模块,用于分别根据各个测试功能的测试结果确定测试功能是否存在漏洞。
一方面,本发明实施例提供了一种终端设备,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行检测漏洞的方法的步骤。
一方面,本发明实施例提供了一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当所述程序在终端设备上运行时,使得所述终端设备执行检测漏洞的方法的步骤。
本发明实施例中,预先将不同测试功能的漏洞参数封装到测试工具中,在应用程序启动后,将测试工具加载至应用程序中,然后采用测试工具将应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数,之后再执行各个测试功能并获得测试结果。通过对测试结果进行分析确定测试功能是否存在漏洞。由于引擎层中包含实现各类应用程序的运行逻辑的基本功能,通过预先封装不同测试功能的漏洞参数,故针对不同运行逻辑的应用程序,都可以采用测试工具修改应用程序的引擎层中的各个测试功能的参数,从而改变应用程序的运行逻辑实现漏洞检测,而不需要测试人员分析每种应用程序的运行逻辑进行漏洞检测,从而一方面提供了漏洞检测效率,另一方面节约了人力成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用场景图;
图2为本发明实施例提供的一种测试工具的界面示意图;
图3为本发明实施例提供的一种检测漏洞的方法的流程示意图;
图4为本发明实施例提供的一种网络游戏的界面示意图;
图5为本发明实施例提供的一种检测漏洞的方法的流程示意图;
图6为本发明实施例提供的一种检测漏洞的装置的结构示意图;
图7为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
网络游戏:需要联网进行操作的游戏,游戏客户端需要与游戏服务器进行网络交互,网络游戏包含但不限于电脑端的游戏和手机端的游戏。
FPS:First Person Shooter,第一人称射击游戏,目前游戏行业统称为射击游戏,不分第一人称还是第三人称,比如:穿越火线。
RPG:Role-playing game,角色扮演游戏,比如:魔兽世界。
SG:survival game,生存类游戏,比如:绝地求生。
UE:unreal engine,虚幻引擎,一款成熟的商业游戏引擎。
API:Application Programming Interface,应用接口,提供一些封装好的功能,方便其他代码调用。
SDK:Software Development Kit,软件开发工具包,一般指包换了完善的库代码,将系统底层的API接口封装成易用性更好的API接口供开发者使用。
Lua:一种计算机脚本语言。
在具体实践过程中,本发明的发明人发现,在对网络游戏进行漏洞检测时,通常从网络游戏实现的逻辑层出发进行检测。该方式需要人工逆向分析游戏逻辑实现,手动编写测试代码进行漏洞挖据。但是不同的游戏有不同的逻辑,比如角色扮演游戏和射击游戏的逻辑实现迥异,因此针对不同逻辑的游戏,需要人工重复进行逆向分析和调试代码进行漏洞挖掘,这样对测试人员的要求高,同时费事费力。
为此,本发明的发明人考虑到,引擎层中作为网络游戏的底层,提供实现网络游戏逻辑的基础功能,一般是提供给开发工具的SDK使用,用于开发网络游戏的逻辑,针对不同逻辑的网络游戏,引擎层的基础功能是相同的。鉴于此,本发明的发明人考虑到,若是基于引擎层中的基本功能进行漏洞检测,就可以不用考虑不同网络游戏的游戏逻辑,也就不需要测试人员针对每类游戏进行重复逻辑分析再进行漏洞检测,从而解决上述问题。
基于上述的分析和考虑,本发明实施例提供了一种检测漏洞的方法,该方法中,应用程序启动后,将测试工具加载至应用程序中,其中,测试工具中包含预先封装的不同测试功能的漏洞参数。然后采用测试工具将应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数,之后再执行各个测试功能并获得测试结果。通过对测试结果进行分析确定测试功能是否存在漏洞。由于引擎层中包含实现各类应用程序的运行逻辑的基本功能,通过预先封装不同测试功能的漏洞参数,故针对不同运行逻辑的应用程序,都可以采用测试工具修改应用程序的引擎层中的各个测试功能的参数,从而改变应用程序的运行逻辑实现漏洞检测,而不需要测试人员分析每种应用程序的运行逻辑进行漏洞检测,从而一方面提供了漏洞检测效率,另一方面节约了人力成本。
在介绍完本发明实施例的设计思想之后,下面对本发明实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本发明实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本发明实施例提供的技术方案。
请参见图1,图1为本发明实施例中的技术方案能够适用的一种应用场景,在该场景中,可以包括终端设备101、测试服务器102以及应用服务器103。终端设备101可以是平板电脑(PAD)、手机、笔记本电脑或者个人计算机(Personal Computer,PC)等设备,其中,终端设备101中可以安装多种应用程序,例如可以安装待测试的应用程序,也可以安装测试工具的应用程序。
测试服务器102为测试工具的应用程序对应的后台服务器,测试服务器102可以用于对测试人员登录测试工具进行鉴权、将更新的数据同步至终端设备101中的测试工具等。应用服务器103为待测试的应用程序对应的后台服务器,用于与待测试的应用程序进行交互,执行待测试的应用程序中的测试功能。终端设备101与测试服务器102和应用服务器103通过网络进行相连,该网络可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(WIreless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。
示例性地,设定待测试的应用程序为网络游戏,对于其他类型的应用程序,本领域技术人员可以结合应用的实际情况以及后续的描述进行合理的设置,此处不过多赘述。测试服务器102预先将待测试的应用程序发布至终端设备101中的测试工具。当测试人员在终端设备101中启动测试工具时,测试工具显示测试任务,测试工具启动后的界面可以如图2所示,测试工具中包括三种待测试的应用程序,分别为网络游戏A、网络游戏B以及网络游戏C。测试人员对网络游戏A进行测试时,点击网络游戏A对应的“启动游戏”按钮。终端设备101从测试工具跳转至网络游戏A,同时将测试工具加载至网络游戏A中,测试工具中包含预先封装的不同测试功能的漏洞参数。通过测试工具,将网络游戏A的引擎层中的各个测试功能的参数修改为相应的漏洞参数。网络游戏A通过与应用服务器103交互执行各个测试功能并获得测试结果。网络游戏A可以直接在界面中显示测试结果,由测试人员根据测试结果判断测试功能是否存在漏洞,也可以由测试工具将测试结果与预设条件进行比较,判断测试功能是否存在漏洞。
基于图1所示的应用场景图,本发明实施例提供了一种检测漏洞的方法的流程,该方法的流程可以由检测漏洞的装置执行,检测漏洞的装置可以是上述终端设备101,如图3所示,包括以下步骤:
步骤S301,应用程序启动后,将测试工具加载至应用程序中,测试工具中包含预先封装的不同测试功能的漏洞参数。
具体地,上述应用程序为待测试的应用程序,待测试的应用程序可以是各类应用程序,比如可以是第一人称射击游戏、角色扮演游戏、生存类游戏等游戏类型的应用程序,也可以是微信、QQ等社交类应用程序。
测试人员在终端设备上启动测试工具后,在测试工具的界面中选择应用程序后提交,终端设备启动应用程序,将测试工具加载至应用程序中。测试功能是引擎层中的基础功能,预先针对不同的测试功能设置对应的漏洞参数,漏洞参数超出测试功能的正常参数范围,从而实现漏洞检测。
下面以网络游戏为例,网络游戏的虚幻引擎(unreal engine,简称UE)提供了创建游戏世界的基础功能,比如控制器,用于操控游戏角色和载具等;碰撞系统,用于模拟真实世界的物理碰撞反馈;重力系统;浮力系统;模型系统等。上述基本功能的参数有一个正常范围,比如重力系统根据重力学原理设置正常参数,以使得游戏中人物在跳跃时,不会违背重力学原理。而在封装重力系统的漏洞参数时,可以违背重力学原理进行设置。
步骤S302,通过测试工具,将应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数。
在一种可能的实施方式中,在启动应用程序后,测试人员可以在应用程序的功能列表中选择待检测功能,然后由测试工具根据测试人员选择的待检测功能确定引擎层中对应的测试功能,之后再通过测试工具,将应用程序的引擎层中对应的测试功能的参数修改为相应的漏洞参数。示例性地,如图4所示,启动网络游戏A后,进入功能列表界面,此时功能列表中的待检测功能包括“多段跳”、“高跳”。测试人员选择待检测功能“高跳”后提交,测试工具确定待检测功能“高跳”对应引擎层中的测试功能包括重力系统,然后将重力系统的参数修改为相应的漏洞参数。
在一种可能的实施方式中,测试工具预先设置需要修改参数的测试功能,并携带设置的各个测试功能的漏洞参数,在启动应用程序后,测试工具将应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数。示例性地,测试工具预先设置需要修改参数的测试功能为重力系统和浮力系统。启动网络游戏A后,测试工具将重力系统的参数修改为相应的漏洞参数,将浮力系统的参数修改为相应的漏洞参数。
步骤S303,在应用程序运行过程中执行各个测试功能并获得测试结果。
具体地,修改各个测试功能的参数后,改变了应用程序的运行逻辑,然后根据修改后的运行逻辑执行应用程序的测试功能获取测试结果。示例性地,将网络游戏A的引擎层中的重力系统的参数修改为相应的漏洞参数后,执行网络游戏A的“高跳”功能,显示“高跳”功能的执行效果。
步骤S304,分别根据各个测试功能的测试结果确定测试功能是否存在漏洞。
在一种可能的实施方式中,将测试功能的测试结果与预设条件进行比较,当测试结果满足预设条件时,则说明测试功能不存在漏洞,否则说明测试功能存在漏洞。示例性地,以网络游戏中的“高跳”功能来说,根据重力学原理,人物跳跃的高度存在一个上限值,跳跃的高度不可能不限大,因此可以预先设置“高跳”的上限值为2米来检测漏洞。当测试工具将重力系统的修改为漏洞参数时,若测试结果中人物高跳的高度大于2米时,说明开发人员没有对“高跳”功能的上限值进行限制,故重力系统的代码被攻击者篡改时,人物在游戏中的跳跃高度将达到无限大,由此可以得出网络游戏的引擎层中重力系统存在漏洞,同时也可以得出网络游戏的“高跳”功能存在漏洞。若测试结果中人物高跳的高度不大于2米时,说明开发人员对“高跳”功能的上限值进行限制,由此可以得出网络游戏的引擎层中重力系统不存在漏洞,同时也可以得出网络游戏的“高跳”功能不存在漏洞。
在一种可能的实施方式中,可以通过测试人员直接观察测试结果确定测试功能是否存在漏洞。示例性地,以网络游戏中的“高跳”功能来说,测试工具将重力系统的修改为漏洞参数后,网络游戏执行“高跳”功能。由测试人员根据网络游戏中人物的跳跃高度确定重力系统和“高跳”功能是否存在漏洞。
由于引擎层中包含实现各类应用程序的运行逻辑的基本功能,通过预先在测试工具中封装引擎层不同测试功能的漏洞参数,故针对不同运行逻辑的应用程序,将测试工具加载至应用程序中后,可以采用测试工具修改应用程序的引擎层中的各个测试功能的参数,从而改变应用程序的运行逻辑实现漏洞检测,而不需要测试人员分析每种应用程序的运行逻辑进行漏洞检测,从而一方面提供了漏洞检测效率,另一方面节约了人力成本。
可选地,在上述步骤S302中,在修改应用程序的引擎层中测试功能的参数之前,先确定各个测试功能在应用程序的引擎层中对应的应用接口,然后通过测试工具调用应用接口,将应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数。
具体地,不同的测试功能对应不同的应用接口(Application ProgrammingInterface,简称API)。以网络游戏为例来说,重力系统、浮力系统、模型系统分别对应不同的应用接口,当对应用程序的引擎层中重力系统的参数进行修改之前,先确定重力系统对应的应用接口,然后通过测试工具调用重力系统对应的应用接口,将应用程序的引擎层中重力系统的参数修改为相应漏洞参数。
可选地,确定各个测试功能在应用程序的引擎层中对应的应用接口之后,可以将应用接口封装为Lua接口。具体地,将测试工具加载至应用程序中后,在应用程序中植入Lua虚拟机将应用接口封装为Lua接口。测试工具通过Lua接口,将应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数。由于Lua脚本语言简单易用,可以动态加载,通过Lua接口修改应用程序的引擎层中各个测试功能的参数并检测漏洞时,无需重启应用程序,从而提高了检测漏洞的效率。
可选地,测试功能包括测试对象和测试对象的属性,在确定各个测试功能在所述应用程序的引擎层中对应的应用接口时,可以针对每个测试功能,根据测试对象确定测试功能在应用程序的引擎层中对应的对象接口,根据测试对象的属性确定测试功能在应用程序的引擎层中对应的属性接口。
以网络游戏为例来说,UE引擎最基本的两类组成为actor和component,其中,actor是游戏中动态生成的对象,它是基本的对象类型,因此表示的对象非常的宽泛,比如人物、摄像机、光源等都是actor。component为特定的属性,比如,汽车、轮船、飞机都是载具,在代码实现中都是继承自载具的actor对象,但是汽车是在陆地上跑,轮船是在水上行驶,飞机是在空中飞行,因此,关于各自载具移动的属性是由不同的component来实现。又比如,游戏人物在跳跃或者碰撞时,包含跳跃属性以及碰撞属性,此时游戏人物的跳跃属性以及碰撞属性是通过component来实现,包括浮力、重力、速度、质量、冲量等。不同的actor对象对应不同的对象接口,不同的component对应不同的属性接口。当网络游戏中的测试功能包括actor和component时,可以确定actor对应的对象接口,确定component对应的属性接口。示例性地,设定测试功能为车辆穿墙,则测试对象是车辆,测试对象的属性是碰撞属性,从而确定车辆对应的对象接口以及碰撞属性对应的属性接口。
进一步地,通过测试工具调用应用接口,将应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数时,可以针对每个测试功能,通过测试工具调用对象接口从应用程序的引擎层中确定测试对象,通过测试工具调用属性接口从应用程序的引擎层中确定测试对象的属性,将应用程序的引擎层中测试对象的属性的属性参数修改为相应漏洞参数。
以网络游戏为例来说,确定actor对应的对象接口以及component对应的属性接口之后,通过测试工具调用actor对应的对象接口,从UE引擎的内存数据中确定actor,通过测试工具调用component对应的属性接口,从UE引擎的内存数据中确定component,然后将component的参数修改为相应漏洞参数。示例性地,设定测试功能为车辆穿墙,测试工具调用车辆对应的对象接口,从UE引擎的内存数据中确定出车辆,测试工具调用碰撞属性对应的对象接口,从UE引擎的内存数据中确定出碰撞属性,然后将碰撞属性的属性参数修改为相应漏洞参数。通过调用引擎层中的应用接口修改引擎层中数据,从而影响应用程序的运行逻辑,实现对应用程序的漏洞检测,相较于基于应用程序的运行逻辑进行漏洞检测来说,其适用性更广,检测效率更高。
为了更好的解释本发明实施例,下面结合具体的实施场景描述本发明实施例提供的一种检测漏洞的方法,设定待测试的应用程序为网络游戏,终端设备中预先安装了网络游戏的应用程序和测试工具的应用程序,如图5所示,该方法包括以下步骤:
步骤S501,启动测试工具。
步骤S502,测试工具接收测试人员输入的登录信息。
步骤S503,测试工具发送登录信息至测试服务器进行鉴权。
步骤S504,测试服务器根据登录信息进行用户鉴权。
步骤S505,测试服务器鉴权通过时,发送确认信息至测试工具。
步骤S506,测试工具接收测试人员输入的测试网络游戏的指令。
步骤S507,测试工具启动网络游戏,并将测试工具加载至网络游戏。
步骤S508,测试工具确定测试功能在网络游戏的引擎层中对应的应用接口。
步骤S509,测试工具调用应用接口,将网络游戏的引擎层中的测试功能的参数修改为相应漏洞参数。
步骤S510,网络游戏执行测试功能并展示测试结果。
步骤S511,测试人员根据网络游戏展示的测试结果判断测试功能是否存在漏洞。
本发明实施例中,由于引擎层中包含实现各类应用程序的运行逻辑的基本功能,通过预先在测试工具中封装不同测试功能的漏洞参数,故针对不同运行逻辑的应用程序,将测试工具加载至应用程序中后,可以采用测试工具修改应用程序的引擎层中的各个测试功能的参数,从而改变应用程序的运行逻辑实现漏洞检测,而不需要测试人员分析每种应用程序的运行逻辑进行漏洞检测,从而一方面提供了漏洞检测效率,另一方面节约了人力成本。
为了验证本发明实施例中提供的检测漏洞的方法与现有检测漏洞方法的区别,本发明的发明人以网络游戏为例对上述两个方案进行了比较,比较结果如表1所示:
表1.
对比项 现有方案 本发明实施例中的方案
检测方式 人工检测 测试工具自动化检测
测试角度 游戏逻辑 引擎层逻辑
是否需要编译代码重启
耗时 5天/人 30min
由表1可知,现有方案中依赖测试人员对游戏逻辑进行分析,然后手动编写测试代码进行漏洞挖据,效率较低。而本发明实施例提供的方案中,预先在测试工具中封装不同测试功能的漏洞参数,在网络游戏启动后,将测试工具加载至网络游戏中即可实现对漏洞进行自动化检测,从而提高检测效率,避免漏洞遗漏。其次,在测试角度方面,现有方案中需要对游戏逻辑进行分析,然而,不同类型的游戏的实现逻辑是不相同的,测试人员在分析一种游戏逻辑检测漏洞后,针对另一种游戏时又得重新分析,因此不仅影响检测效率,同时通用性较差。而本发明实施例提供的方案中,测试工具中预先封装的不同测试功能的漏洞参数是引擎层中基础功能的漏洞参数,与游戏逻辑无关。针对不同类型的网络游戏,都可以通过测试工具将网络游戏的引擎层中的各个测试功能的参数修改为相应的漏洞参数,从而影响游戏逻辑实现漏洞检测,这样不仅提高了测试效率,同时通用性较好。另外,由于现有方案中测试人员手动编写测试代码进行漏洞挖据,因此在将测试代码加载至网络游戏后,需要重启网络游戏进行漏洞检测。而本申请实施例提供的方案中,在确定测试功能在网络游戏的引擎层中对应的应用接口后,将应用接口封装为Lua接口,测试工具调用Lua接口,将网络游戏的引擎层中各个测试功能的参数修改为相应漏洞参数,由于Lua脚本语言可以动态加载,通过Lua接口修改应用程序的引擎层中各个测试功能的参数时,无需重启网络游戏,从而提高了检测漏洞的效率。再者,针对单个网络游戏,现有方案中可能需要测试人员花费5天检测漏洞,而采用本发明实施例中的方案可以将检测时间缩短到30min,大大提高了检测效率。
基于相同的技术构思,本发明实施例提供了一种检测漏洞的装置,如图6所示,该装置600包括:加载模块601、修改模块602、执行模块603、分析模块604。
加载模块601,用于在应用程序启动后,将测试工具加载至所述应用程序中,所述测试工具中包含预先封装的不同测试功能的漏洞参数;
修改模块602,用于通过所述测试工具,将所述应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数;
执行模块603,用于在所述应用程序运行过程中执行各个测试功能并获得测试结果;
分析模块604,用于分别根据各个测试功能的测试结果确定测试功能是否存在漏洞。
可选地,所述修改模块602具体用于:
确定各个测试功能在所述应用程序的引擎层中对应的应用接口;
通过所述测试工具调用所述应用接口,将所述应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数。
可选地,所述测试功能包括测试对象和测试对象的属性;
所述修改模块602具体用于:
针对每个测试功能,根据所述测试对象确定所述测试功能在所述应用程序的引擎层中对应的对象接口;
根据所述测试对象的属性确定所述测试功能在所述应用程序的引擎层中对应的属性接口。
所述修改模块602具体用于:
针对每个测试功能,通过所述测试工具调用所述对象接口从所述应用程序的引擎层中确定所述测试对象;
通过所述测试工具调用所述属性接口从所述应用程序的引擎层中确定所述测试对象的属性;
将所述应用程序的引擎层中所述测试对象的属性的属性参数修改为相应漏洞参数。
所述修改模块602还用于:
确定各个测试功能在所述应用程序的引擎层中对应的应用接口之后,将所述应用接口封装为Lua接口。
基于相同的技术构思,本发明实施例提供了一种终端设备,如图7所示,包括至少一个处理器701,以及与至少一个处理器连接的存储器702,本发明实施例中不限定处理器701与存储器702之间的具体连接介质,图7中处理器701和存储器702之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前述的检测漏洞的方法中所包括的步骤。
其中,处理器701是终端设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,从而检测漏洞。可选的,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
该终端设备还包括输入单元703、显示单元704、射频单元705、音频电路706、扬声器707、麦克风708、无线保真(Wireless Fidelity,WiFi)模块709、蓝牙模块710、电源711、外部接口712、耳机插孔713等部件。
输入单元703可用于接收测试人员的指令等。例如,输入单元703可包括触摸屏7031以及其它输入设备7032。触摸屏7031可收集用户在其上或附近的触摸操作(比如用户使用手指、关节、触笔等任何适合的物体在触摸屏7031上或在触摸屏7031附近的操作),即触摸屏7031可用于检测触摸压力以及触摸输入位置和触摸输入面积,并根据预先设定的程序驱动相应的连接装置。触摸屏7031可以检测用户对触摸屏7031的触控操作,将触控操作转换为触控信号发送给处理器701,或者理解为可将触控操作的触控信息发送给处理器701,并能接收处理器701发来的命令并加以执行。触控信息至少可以包括压力大小信息和压力持续时长信息中的至少一种。触摸屏7031可以提供终端设备和用户之间的输入界面和输出界面。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏7031。除了触摸屏7031,输入单元703还可以包括其它输入设备7032。比如,其它输入设备7032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元704可用于显示由测试人员输入的指令以及测试结果。进一步的,触摸屏7031可覆盖显示单元704,当触摸屏7031检测到在其上或附近的触控操作后,传送给处理器701以确定的触控操作的压力信息。在本发明实施例中,触摸屏7031与显示单元704可以集成为一个部件而实现终端设备的输入、输出、显示功能。为便于描述,本发明实施例以触摸屏7031代表触摸屏7031和显示单元704的功能集合为例进行示意性说明,当然在某些实施例中,触摸屏7031与显示单元704也可以作为两个独立的部件。
当显示单元704和触摸板以层的形式彼此叠加以形成触摸屏7031时,显示单元704可以用作输入装置和输出装置,在作为输出装置时,可以用于显示图像,例如显示目标应用程序的安装界面。显示单元704可以包括液晶显示器(Liquid Crystal Display,LCD)、薄膜晶体管液晶显示器(Thin Film Transistor Liquid Crystal Display,TFT-LCD)、有机发光二极管(Organic Light Emitting Diode,OLED)显示器、有源矩阵有机发光二极体(Active Matrix Organic Light Emitting Diode,AMOLED)显示器、平面转换(In-PlaneSwitching,IPS)显示器、柔性显示器、3D显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,根据特定想要的实施方式,终端设备可以包括两个或更多显示单元。
射频单元705可用于收发信息或通话过程中信号的接收和发送。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,射频单元705还可以通过无线通信与网络设备和其它设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
音频电路706、扬声器707、麦克风708可提供用户与终端设备之间的音频接口。音频电路706可将接收到的音频数据转换后的电信号,传输到扬声器707,由扬声器707转换为声音信号输出。另一方面,麦克风708将收集的声音信号转换为电信号,由音频电路706接收后转换为音频数据,再将音频数据输出处理器701处理后,经射频单元705以发送给比如另一电子设备,或者将音频数据输出至存储器702以便进一步处理,音频电路也可以包括耳机插孔713,用于提供音频电路和耳机之间的连接接口。
WiFi属于短距离无线传输技术,终端设备通过WiFi模块709可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块709,但是可以理解的是,其并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
蓝牙是一种短距离无线通讯技术。利用蓝牙技术,能够有效地简化掌上电脑、笔记本电脑和手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网(Internet)之间的通信,终端设备通过蓝牙模块710使终端设备与因特网之间的数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙技术是能够实现语音和数据无线传输的开放性方案。虽然图7示出了WiFi模块709,但是可以理解的是,其并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
终端设备还可以包括电源711(比如电池),其用于接收外部电力为终端设备内的各个部件供电。优选的,电源711可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
终端设备还可以包括外部接口712,该外部接口712可以包括标准的Micro USB接口,也可以包括多针连接器,可以用于连接终端设备与其它设备进行通信,也可以用于连接充电器为终端设备充电。
尽管未示出,终端设备还可以包括摄像头、闪光灯等其它可能的功能模块,在此不再赘述。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,该可读存储介质存储有计算机指令,当该计算机指令在终端设备上运行时,使得终端设备执行如前述的检测漏洞的方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种检测漏洞的方法,其特征在于,包括:
应用程序启动后,将测试工具加载至所述应用程序中,所述测试工具中包含预先封装的不同测试功能的漏洞参数;
通过所述测试工具,将所述应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数;
在所述应用程序运行过程中执行各个测试功能并获得测试结果;
分别根据各个测试功能的测试结果确定测试功能是否存在漏洞。
2.如权利要求1所述的方法,其特征在于,所述通过所述测试工具,将所述应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数,包括:
确定各个测试功能在所述应用程序的引擎层中对应的应用接口;
通过所述测试工具调用所述应用接口,将所述应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数。
3.如权利要求2所述的方法,其特征在于,所述测试功能包括测试对象和测试对象的属性;
所述确定各个测试功能在所述应用程序的引擎层中对应的应用接口,包括:
针对每个测试功能,根据所述测试对象确定所述测试功能在所述应用程序的引擎层中对应的对象接口;
根据所述测试对象的属性确定所述测试功能在所述应用程序的引擎层中对应的属性接口。
4.如权利要求3所述的方法,其特征在于,所述通过所述测试工具调用所述应用接口,将所述应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数,包括:
针对每个测试功能,通过所述测试工具调用所述对象接口从所述应用程序的引擎层中确定所述测试对象;
通过所述测试工具调用所述属性接口从所述应用程序的引擎层中确定所述测试对象的属性;
将所述应用程序的引擎层中所述测试对象的属性的属性参数修改为相应漏洞参数。
5.如权利要求2至4任一所述的方法,其特征在于,所述确定各个测试功能在所述应用程序的引擎层中对应的应用接口之后,还包括:
将所述应用接口封装为Lua接口。
6.一种检测漏洞的装置,其特征在于,包括:
加载模块,用于在应用程序启动后,将测试工具加载至所述应用程序中,所述测试工具中包含预先封装的不同测试功能的漏洞参数;
修改模块,用于通过所述测试工具,将所述应用程序的引擎层中的各个测试功能的参数修改为相应的漏洞参数;
执行模块,用于在所述应用程序运行过程中执行各个测试功能并获得测试结果;
分析模块,用于分别根据各个测试功能的测试结果确定测试功能是否存在漏洞。
7.如权利要求6所述的装置,其特征在于,所述修改模块具体用于:
确定各个测试功能在所述应用程序的引擎层中对应的应用接口;
通过所述测试工具调用所述应用接口,将所述应用程序的引擎层中各个测试功能的参数修改为相应漏洞参数。
8.如权利要求7所述的装置,其特征在于,所述测试功能包括测试对象和测试对象的属性;
所述修改模块具体用于:
针对每个测试功能,根据所述测试对象确定所述测试功能在所述应用程序的引擎层中对应的对象接口;
根据所述测试对象的属性确定所述测试功能在所述应用程序的引擎层中对应的属性接口。
9.一种终端设备,其特征在于,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行权利要求1~5任一权利要求所述方法的步骤。
10.一种计算机可读介质,其特征在于,其存储有可由终端设备执行的计算机程序,当所述程序在终端设备上运行时,使得所述终端设备执行权利要求1~5任一所述方法的步骤。
CN201910139401.8A 2019-02-25 2019-02-25 一种检测漏洞的方法及装置 Active CN109933989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910139401.8A CN109933989B (zh) 2019-02-25 2019-02-25 一种检测漏洞的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910139401.8A CN109933989B (zh) 2019-02-25 2019-02-25 一种检测漏洞的方法及装置

Publications (2)

Publication Number Publication Date
CN109933989A true CN109933989A (zh) 2019-06-25
CN109933989B CN109933989B (zh) 2021-09-07

Family

ID=66985942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910139401.8A Active CN109933989B (zh) 2019-02-25 2019-02-25 一种检测漏洞的方法及装置

Country Status (1)

Country Link
CN (1) CN109933989B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859385A (zh) * 2020-07-29 2020-10-30 中国工商银行股份有限公司 应用程序的测试方法、系统及装置
CN112717404A (zh) * 2021-01-25 2021-04-30 腾讯科技(深圳)有限公司 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN113688358A (zh) * 2020-05-18 2021-11-23 网神信息技术(北京)股份有限公司 系统安全的检测方法、装置、电子设备、介质和产品
CN114564728A (zh) * 2022-04-29 2022-05-31 成都无糖信息技术有限公司 一种无代码的流程可视化漏洞检测方法和系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694413A (zh) * 2004-10-29 2005-11-09 北京航空航天大学 可扩展广谱安全扫描分析系统及其实现方法
CN104601530A (zh) * 2013-10-31 2015-05-06 中兴通讯股份有限公司 云安全服务的实现方法及系统
CN106295353A (zh) * 2016-08-08 2017-01-04 腾讯科技(深圳)有限公司 一种引擎漏洞检测的方法以及检测装置
CN107357729A (zh) * 2017-07-07 2017-11-17 广东中星电子有限公司 测试软件的方法和电子设备
US20170366562A1 (en) * 2016-06-15 2017-12-21 Trustlook Inc. On-Device Maliciousness Categorization of Application Programs for Mobile Devices
CN107506303A (zh) * 2017-08-24 2017-12-22 航天中认软件测评科技(北京)有限责任公司 用于自动化测试的方法、装置及系统
CN107766733A (zh) * 2017-10-10 2018-03-06 北京奇虎科技有限公司 一种安全漏洞的屏蔽方法、装置及终端
CN108064379A (zh) * 2015-06-26 2018-05-22 迈克菲有限责任公司 用于远程端点信息取回的查询引擎
CN109086606A (zh) * 2018-07-16 2018-12-25 腾讯科技(深圳)有限公司 一种程序漏洞挖掘方法、装置、终端及存储介质
CN109255240A (zh) * 2018-07-18 2019-01-22 北京明朝万达科技股份有限公司 一种漏洞处理方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694413A (zh) * 2004-10-29 2005-11-09 北京航空航天大学 可扩展广谱安全扫描分析系统及其实现方法
CN104601530A (zh) * 2013-10-31 2015-05-06 中兴通讯股份有限公司 云安全服务的实现方法及系统
CN108064379A (zh) * 2015-06-26 2018-05-22 迈克菲有限责任公司 用于远程端点信息取回的查询引擎
US20170366562A1 (en) * 2016-06-15 2017-12-21 Trustlook Inc. On-Device Maliciousness Categorization of Application Programs for Mobile Devices
CN106295353A (zh) * 2016-08-08 2017-01-04 腾讯科技(深圳)有限公司 一种引擎漏洞检测的方法以及检测装置
CN107357729A (zh) * 2017-07-07 2017-11-17 广东中星电子有限公司 测试软件的方法和电子设备
CN107506303A (zh) * 2017-08-24 2017-12-22 航天中认软件测评科技(北京)有限责任公司 用于自动化测试的方法、装置及系统
CN107766733A (zh) * 2017-10-10 2018-03-06 北京奇虎科技有限公司 一种安全漏洞的屏蔽方法、装置及终端
CN109086606A (zh) * 2018-07-16 2018-12-25 腾讯科技(深圳)有限公司 一种程序漏洞挖掘方法、装置、终端及存储介质
CN109255240A (zh) * 2018-07-18 2019-01-22 北京明朝万达科技股份有限公司 一种漏洞处理方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RAHUL JOHARI 等: "A Survey on Web Application Vulnerabilities(SQLIA, XSS) Exploitation and Security Engine for SQL Injection", 《2012 INTERNATIONAL CONFERENCE ON COMMUNICATION SYSTEMS AND NETWORK TECHNOLOGIES》 *
刘昊晨: "基于Lua引擎的Android漏洞检测工具研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688358A (zh) * 2020-05-18 2021-11-23 网神信息技术(北京)股份有限公司 系统安全的检测方法、装置、电子设备、介质和产品
CN113688358B (zh) * 2020-05-18 2024-06-07 奇安信网神信息技术(北京)股份有限公司 系统安全的检测方法、装置、电子设备、介质和产品
CN111859385A (zh) * 2020-07-29 2020-10-30 中国工商银行股份有限公司 应用程序的测试方法、系统及装置
CN111859385B (zh) * 2020-07-29 2023-09-22 中国工商银行股份有限公司 应用程序的测试方法、系统及装置
CN112717404A (zh) * 2021-01-25 2021-04-30 腾讯科技(深圳)有限公司 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN112717404B (zh) * 2021-01-25 2022-11-29 腾讯科技(深圳)有限公司 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN114564728A (zh) * 2022-04-29 2022-05-31 成都无糖信息技术有限公司 一种无代码的流程可视化漏洞检测方法和系统
CN114564728B (zh) * 2022-04-29 2022-12-06 成都无糖信息技术有限公司 一种无代码的流程可视化漏洞检测方法和系统

Also Published As

Publication number Publication date
CN109933989B (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
CN109933989A (zh) 一种检测漏洞的方法及装置
CN107943683B (zh) 一种测试脚本生成方法、装置、电子设备及存储介质
WO2019042171A1 (zh) 资源配置方法及相关产品
CN107291317B (zh) 一种虚拟场景中目标的选择方法和装置
CN106155750A (zh) 一种资源文件的加载方法和装置
CN104077211B (zh) 一种移动终端软件的测试方法及测试系统
CN110489344A (zh) 引擎测试方法及相关产品
US20160283356A1 (en) Event-driven automation testing for mobile devices
CN104679627A (zh) 测试方法及装置
CN104965778A (zh) 游戏测试方法及装置
CN110392298A (zh) 一种音量调节方法、装置、设备及介质
CN109814930A (zh) 一种应用加载方法、装置及移动终端
CN110865812A (zh) 一种用户界面识别方法和装置
CN106293901A (zh) 一种终端应用的进程管理方法及装置
CN106789866B (zh) 一种检测恶意网址的方法及装置
CN109885373A (zh) 一种用户界面的渲染方法和装置
CN108959064A (zh) 自动化测试的弹窗处理方法及装置
CN110083433A (zh) 嵌入式软件运行方法及装置、终端和计算机可读存储介质
CN104102560B (zh) 系统性能测试的方法及装置
CN107396193B (zh) 视频播放的方法和装置
CN109107159A (zh) 一种应用对象属性的配置方法、装置、设备及介质
CN104978488B (zh) 游戏角色的行为解析方法及装置
CN106815021A (zh) 一种应用的运行处理方法、装置及系统
CN108228965B (zh) 一种存储单元的仿真验证方法、装置和设备
CN105279077A (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
GR01 Patent grant
GR01 Patent grant