CN110866258A - 快速定位漏洞方法、电子装置及存储介质 - Google Patents
快速定位漏洞方法、电子装置及存储介质 Download PDFInfo
- Publication number
- CN110866258A CN110866258A CN201910972274.XA CN201910972274A CN110866258A CN 110866258 A CN110866258 A CN 110866258A CN 201910972274 A CN201910972274 A CN 201910972274A CN 110866258 A CN110866258 A CN 110866258A
- Authority
- CN
- China
- Prior art keywords
- abnormal information
- program
- code block
- bug
- character string
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000002159 abnormal effect Effects 0.000 claims abstract description 213
- 238000013507 mapping Methods 0.000 claims abstract description 30
- 238000012216 screening Methods 0.000 claims abstract description 29
- 238000012795 verification Methods 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000004807 localization Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000001514 detection method Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及安全检测技术领域,提供了一种快速定位漏洞方法、电子装置及计算机存储介质,该方法包括:获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;利用word2vec工具从数据库预先存储的异常信息中筛选出与当前异常信息语义相同的异常信息,再根据预设的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出当前异常信息对应的程序漏洞的目标字符串,并从待测试程序中查找出包含目标字符串的代码块;最后,当运行查找出的代码块出现异常,判断查找出代码块有漏洞并确定出漏洞位置。本发明通过建立异常查找机制快速查找出程序运行中出现异常信息对应的代码块,并对代码块进行验证,实现快速定位出程序中的漏洞。
Description
技术领域
本发明涉及安全检测技术领域,尤其涉及一种快速定位漏洞方法、电子装置及计算机可读存储介质。
背景技术
随着科技的进步,很多公司,尤其是科技公司的程序员开发越来越多的应用程序,应用程序可以是系统程序,也可以是软件程序或者APP程序,对于开发出来的各种应用程序都需要进行测试,其中,测试包括查找定位出程序运行可能出现的各种漏洞,测试无误后才能提供给用户使用。
目前,对程序中的漏洞定位方法很多,例如,F12工具简单查找程序中的漏洞、IE插件查询漏洞等。程序员通过在程序的众多代码中不断执行试测以便查找出程序中的漏洞,甚至,有的程序员依赖自己的经验查找程序中的漏洞,最后定位出漏洞位置。如此,程序员在查找漏洞的操作中存在测试频繁,耗费大量时间,且查找漏洞存在随机性,难以快速定位漏洞。
发明内容
鉴于以上内容,本发明提供一种快速定位漏洞方法、电子装置及计算机可读存储介质,其主要目的在于通过建立异常查找机制快速查找出程序运行中出现的异常信息对应的代码块,并对代码块进行验证,实现快速定位出程序中的漏洞。
为实现上述目的,本发明提供一种快速定位漏洞方法,应用于电子装置,该方法包括:
获取步骤:获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;
筛选步骤:利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息;
确定步骤:根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串;
查找步骤:根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块;及
验证步骤:运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
优选地,所述筛选步骤包括:
利用word2vec提取所述当前异常信息的关键词,将提取的关键词与数据库中的异常信息进行语义相似度分析;
当所述异常信息与所述当前异常信息的语义相似度超过预设值时,筛选出数据库中与所述当前异常信息一致的异常信息。
优选地,所述映射关系的建立步骤包括:
预先收集不同程序运行时产生的各种异常信息;
采用排查工具对收集到的每种异常信息进行排查,查找出产生异常信息对应的程序漏洞,从查找出的程序漏洞对应的程序代码段提取代表该程序漏洞的字符串;及
将每种异常信息与代表该异常信息对应的程序漏洞的字符串建立映射关系,并存储到数据库。
优选地,所述验证步骤之后,该方法还包括:
定位步骤:根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
优选地,所述验证步骤替换为:
将代码块写入表单数据,利用AJAX发送表单数据至另一计算最终验证所述代码块的异常状态;
接收验证后返回的所述表单数据和状态码;及
根据返回的所述状态码判断验证结果。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的漏洞定位程序,所述漏洞定位程序被所述处理器执行时实现如下步骤:
获取步骤:获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;
筛选步骤:利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息;
确定步骤:根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串;
查找步骤:根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块;及
验证步骤:运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
优选地,所述筛选步骤包括:
利用word2vec提取所述当前异常信息的关键词,将提取的关键词与数据库中的异常信息进行语义相似度分析;
当所述异常信息与所述当前异常信息的语义相似度超过预设值时,筛选出数据库中与所述当前异常信息一致的异常信息。
优选地,所述映射关系的建立步骤包括:
预先收集不同程序运行时产生的各种异常信息;
采用排查工具对收集到的每种异常信息进行排查,查找出产生异常信息对应的程序漏洞,从查找出的程序漏洞对应的程序代码段提取代表该程序漏洞的字符串;及
将每种异常信息与代表该异常信息对应的程序漏洞的字符串建立映射关系,并存储到数据库。
优选地,所述验证步骤之后,该方法还包括:
定位步骤:根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括漏洞定位程序,所述漏洞定位程序被处理器执行时,可实现如上所述的快速定位漏洞方法中的任一步骤
本发明提出的快速定位漏洞方法、电子装置及计算机可读存储介质,是通过获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息,再根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串,并从所述待测试程序中查找出包含目标字符串的代码块;最后,当验证查找出的所述代码块在运行时出现异常,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。本发明通过建立异常查找机制快速查找出程序运行中出现的异常信息对应的代码块,并对代码块进行验证,实现快速定位出程序中的漏洞。
附图说明
图1为本发明快速定位漏洞方法较佳实施例的环节图;
图2为本发明电子装置较佳实施例的示意图;
图3为图2中的漏洞定位程序一较佳实施例的程序模块图;
图4为图2中的漏洞定位程序另一较佳实施例的程序模块;
图5为本发明快速定位漏洞方法一较佳实施例的流程图;
图6为本发明快速定位漏洞方法另一较佳实施例的流程图;
图7为图5、图6中的步骤的另一较佳实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参照图1所示,图1为本发明快速定位漏洞方法较佳实施例的环节图;电子装置1安装有漏洞定位程序10。多个计算终端3通过网络2连接电子装置1。网络2可以为局域网,广域网,城域网,个人局域网等等类型的网络;可以为有线网络,也可以为无线网络。计算终端3可以为桌上型计算机、笔记本、平板电脑、手机,可以通过网络2与电子装置1进行通信。
参照图2所示,为本发明电子装置较佳实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
在本实施例中,电子装置1可包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、显示器13,存储器11存储有可在处理器12上运行的漏洞定位程序10。需要指出的是,图1仅示出了具有组件11-13的电子装置1,但是应当理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该非易失性存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。本实施例中,存储器11的可读存储介质通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的漏洞定位程序10等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与所述其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行漏洞定位程序10等。
所述漏洞定位程序10存储在存储器11中,包括存储在存储器11中的计算机可读指令,该计算机可读指令可被处理器12执行,以实现本申请各实施例的方法。
在一实施例中,上述漏洞定位程序10被所述处理器12执行时实现如下步骤:
获取步骤:获取一计算终端3运行待测试程序4出现异常时反馈的当前异常信息。
通常,计算机终端安装或运行有各种应用程序,包括系统程序、软件程序或者APP程序,这些应用程序在运行过程中可能会出现漏洞,影响用户使用,因而,在应用程序投入使用前,需对应用程序进行测试,包括查找定位出程序代码运行可能出现的各种漏洞,并及时获取运行中出现的异常信息,例如异常信息为停止运行、卡死、乱码、运行错误等。
筛选步骤:利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息。
为快速查找出所述待测试程序运行出现的异常信息的漏洞,在本实施例通过预先收集各种异常信息存储在数据库中,利用word2vec工具,从数据库中筛选出与所述当前异常信息语义相似度超过阈值的异常信息。
进一步地,所述筛选步骤包括:
利用word2vec提取所述当前异常信息的关键词,将提取的关键词与数据库中的异常信息进行语义相似度分析;
当所述异常信息与所述当前异常信息的语义相似度超过预设值时,筛选出数据库中与所述当前异常信息一致的异常信息。
所述word2vec是一种考虑文本语义的神经网络,能够识别出文本之间的语义是否相同或相近。针对待测试程序出现的当前异常信息,word2vec对所述当前异常信息的关键词进行提取,例如,错误(error)、中断(interrupt)、陷阱(trap)、故障(fault)或终止(abort)等,当所述异常信息与所述当前异常信息的语义相似度超过90%时,筛选出数据库中与所述当前异常信息一致的异常信息。
确定步骤:根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串。
本实施例中,通过预先建立的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串,所述字符串包含字母、符号或者字母与符号的组合。
进一步地,所述映射关系的建立步骤包括:
预先收集不同程序运行时产生的各种异常信息;
采用排查工具对收集到的每种异常信息进行排查,查找出产生异常信息对应的程序漏洞,从查找出的程序漏洞对应的程序代码段提取代表该程序漏洞的字符串;及
将每种异常信息与代表该异常信息对应的程序漏洞的字符串建立映射关系,并存储到数据库。
具体的,采用的排查工具包括Firefox、IE插件、第三方工具、F12或查看日志等。例如,利用F12工具可请求查找程序的漏洞,通过多次测试查找出程序的漏洞对应的代码段信息,再从该代码段提取得到程序漏洞的字符串。
在一实施例中,当异常信息为程序错误,例如,程序错误的提示信息为(“0x7edefcf2”指令引用的“0x00000000”内存,该内存不能为“read”),利用F12工具查找引起该程序错误的内存读取的问题,查找出程序的漏洞对应的代码段信息,再从该代码段提取得到程序漏洞的字符串。
查找步骤:根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块。
本实施例中,根据确定出代表所述当前异常信息对应的程序漏洞的目标字符串,能够从所述待测试程序中快速查找到包含目标字符串的代码块,初步确定出所述待测试程序出现异常信息对应的代码块的问题,避免程序员多次随机性的测试,缩短查找程序漏洞的时间,提高查找效率。
验证步骤:运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
本实施例中,为进一步确认查找出的代码块是否有漏洞,运行查找出的所述代码块否出现异常,若运行发现异常,则判断查找出的所述代码块有漏洞,即对应待测试程序中出现异常的代码的位置,通过输出错误日志进一步确定代码块中的漏洞位置,实现快速定位所述待测试程序中的漏洞。
进一步地,所述验证步骤后还包括:
定位步骤:根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
通过输出的所述代码块的错误日志,查看所述错误日志的信息,在错误日志的信息中找到产生所述当前异常信息对应的漏洞,从而定位出所述待测试程序中代码的具体漏洞位置,并将错误日志输入至打印设备,根据打印出的所述错误日志修正所述待测试程序对应的代码。
参照图3所示,为图2中的漏洞定位程序10一较佳实施例的程序模块图。
在一个实施例中,漏洞定位程序10包括:获取模块101、筛选模块102、确定模块103、查找模块104、验证模块105。所述模块101-105所实现的功能或操作步骤均与下述快速定位漏洞方法类似,此处不再详述,示例性地,例如其中:
获取模块101,用于获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;
筛选模块102,用于利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息;
确定模块103,用于根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串;
查找模块104,用于根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块;及
验证模块105,用于运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
参照图4所示,为图2中的漏洞定位程序10另一较佳实施例的程序模块图,在验证模块105后,漏洞定位程序10还包括定位模块106,示例性地:
定位模块106,用于根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
参照图5所示,为本发明快速定位漏洞方法一较佳实施例的流程图。本发明揭露了一种快速定位漏洞方法,应用于上述的电子装置,该方法包括:
步骤S210,获取一计算终端运行待测试程序出现异常时反馈的当前异常信息。
通常,计算机终端安装有各种应用程序,包括系统程序、软件程序或者APP程序,这些应用程序在运行过程中可能会出现漏洞,影响用户使用,因而,在应用程序投入使用前,需对应用程序进行测试,包括查找定位出程序代码运行可能出现的各种漏洞,并及时获取运行中出现的异常信息,例如异常信息为停止运行、卡死、乱码、运行错误等。
步骤S220,利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息。
为快速查找出所述待测试程序运行出现的异常信息的漏洞,在本实施例通过预先收集各种异常信息存储在数据库中,利用word2vec工具,从数据库中筛选出与所述当前异常信息语义相似度超过阈值的异常信息。
进一步地,所述步骤S220包括:
利用word2vec提取所述当前异常信息的关键词,将提取的关键词与数据库中的异常信息进行语义相似度分析;
当所述异常信息与所述当前异常信息的语义相似度超过预设值时,筛选出数据库中与所述当前异常信息一致的异常信息。
所述word2vec是一种考虑文本语义的神经网络,能够识别出文本之间的语义是否相同或相近。针对待测试程序出现的当前异常信息,word2vec对所述当前异常信息的关键词进行提取,例如,错误(error)、中断(interrupt)、陷阱(trap)、故障(fault)或终止(abort)等,当所述异常信息与所述当前异常信息的语义相似度超过90%时,筛选出数据库中与所述当前异常信息一致的异常信息。
步骤S230,根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串。
本实施例中,通过预先建立的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串,所述字符串包含字母、符号或者字母与符号的组合。
进一步地,所述映射关系的建立步骤包括:
预先收集不同程序运行时产生的各种异常信息;
采用排查工具对收集到的每种异常信息进行排查,查找出产生异常信息对应的程序漏洞,从查找出的程序漏洞对应的程序代码段提取代表该程序漏洞的字符串;及
将每种异常信息与代表该异常信息对应的程序漏洞的字符串建立映射关系,并存储到数据库。
具体的,采用的排查工具包括Firefox、IE插件、第三方工具、F12或查看日志等。例如,利用F12工具可请求查找程序的漏洞,通过多次测试查找出程序的漏洞对应的代码段信息,再从该代码段提取得到程序漏洞的字符串。
在一实施例中,当异常信息为程序错误,例如,程序错误的提示信息为(“0x7edefcf2”指令引用的“0x00000000”内存,该内存不能为“read”),利用F12工具查找引起该程序错误的内存读取的问题,查找出程序的漏洞对应的代码段信息,再从该代码段提取得到程序漏洞的字符串。
步骤S240,根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块。
本实施例中,根据确定出代表所述当前异常信息对应的程序漏洞的目标字符串,能够从所述待测试程序中快速查找到包含目标字符串的代码块,初步确定出所述待测试程序出现异常信息对应的代码块的问题,避免程序员多次随机性的测试,缩短查找程序漏洞的时间,提高查找效率。
步骤S250,运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
本实施例中,为进一步确认查找出的代码块是否有漏洞,运行查找出的所述代码块否出现异常,若运行发现异常,则判断查找出的所述代码块有漏洞,即对应待测试程序中出现异常的代码的位置,通过输出错误日志进一步确定代码块中的漏洞位置,实现快速定位所述待测试程序中的漏洞。
进一步地,参照图6所示,为本发明快速定位漏洞方法另一较佳实施例的流程图,在所述步骤S250后,该方法还包括:
步骤S260,根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
通过输出的所述代码块的错误日志,查看所述错误日志的信息,在错误日志的信息中找到产生所述当前异常信息对应的漏洞,从而定位出所述待测试程序中代码的具体漏洞位置,并将错误日志输入至打印设备,根据打印出的所述错误日志修正所述待测试程序对应的代码。
参照图7所示,为图5、图6中的步骤的另一较佳实施例的流程图,所述步骤S250替换为:
将代码块写入表单数据,利用AJAX发送表单数据至另一计算最终验证所述代码块的异常状态;
接收验证后返回的所述表单数据和状态码;及
根据返回的所述状态码判断验证结果。
本实施例中,AJAX是一种前端异步数据交互的网络方式,表单数据为FORM表数据,通过在FORM表数据写入代码块并发送至另一计算终端用以验证程序代码块,接收验证后的所述表单数据和状态码,通常状态码为200、302、404或500等,根据状态码判断验证结果;及
当状态码为200,则发送的表单数据中的代码块验证成功,所述待测试程序的代码模块无漏洞;
当状态码为302(表示重定向)、404(表示请求错误)或500(表示服务器错误),则发送的表单数据中的代码块验证不成功,所述待测试程序的代码块有漏洞。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括漏洞定位程序,所述漏洞定位程序被处理器执行时,可实现如下操作:
获取步骤:获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;
筛选步骤:利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息;
确定步骤:根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串;
查找步骤:根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块;及
验证步骤:运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
本发明计算机可读存储介质具体实施方式与上述快速定位漏洞方法和电子装置各实施例基本相同,在此不作累述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种快速定位漏洞方法,应用于电子装置,其特征在于,该方法包括:
获取步骤:获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;
筛选步骤:利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息;
确定步骤:根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串;
查找步骤:根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块;及
验证步骤:运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
2.如权利要求1所述的快速定位漏洞方法,其特征在于,所述筛选步骤包括:
利用word2vec提取所述当前异常信息的关键词,将提取的关键词与数据库中的异常信息进行语义相似度分析;
当所述异常信息与所述当前异常信息的语义相似度超过预设值时,筛选出数据库中与所述当前异常信息一致的异常信息。
3.如权利要求1所述的快速定位漏洞方法,其特征在于,所述映射关系的建立步骤包括:
预先收集不同应用程序运行时产生的各种异常信息;
采用排查工具对收集到的每种异常信息进行排查,查找出产生异常信息对应的程序漏洞,从查找出的程序漏洞对应的程序代码段提取代表该程序漏洞的字符串;及
将每种异常信息与代表该异常信息对应的程序漏洞的字符串建立映射关系,并存储到数据库。
4.如权利要求1-3任意一项所述的快速定位漏洞方法,其特征在于,所述验证步骤后,该方法还包括:
定位步骤:根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
5.如权利要求4所述的快速定位漏洞方法,其特征在于,所述验证步骤替换为:
将代码块写入表单数据,利用AJAX发送表单数据至另一计算最终验证所述代码块的异常状态;
接收验证后返回的所述表单数据和状态码;及
根据返回的所述状态码判断验证结果。
6.一种电子装置,其特征在于,该电子装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的漏洞定位程序,所述漏洞定位程序被所述处理器执行时实现如下步骤:
获取步骤:获取一计算终端运行待测试程序出现异常时反馈的当前异常信息;
筛选步骤:利用word2vec工具,从数据库预先存储的异常信息中筛选出与所述当前异常信息语义相似度超过阈值的异常信息;
确定步骤:根据预先建立的异常信息与代表异常信息对应的程序漏洞的字符串之间的映射关系,确定出代表所述当前异常信息对应的程序漏洞的目标字符串;
查找步骤:根据确定出的代表所述当前异常信息对应的程序漏洞的目标字符串,从所述待测试程序中查找出包含目标字符串的代码块;及
验证步骤:运行查找出的所述代码块并验证所述代码块运行时是否出现异常,当运行的所述代码块出现异常时,判断查找出的所述代码块有漏洞,输出所述代码块的错误日志。
7.如权利要求6所述的电子装置,其特征在于,所述筛选步骤包括:
利用word2vec提取所述当前异常信息的关键词,将提取的关键词与数据库中的异常信息进行语义相似度分析;
当所述异常信息与所述当前异常信息的语义相似度超过预设值时,筛选出数据库中与所述当前异常信息一致的异常信息。
8.如权利要求6所述的电子装置,其特征在于,所述映射关系的建立步骤包括:
预先收集不同程序运行时产生的各种异常信息;
采用排查工具对收集到的每种异常信息进行排查,查找出产生异常信息对应的程序漏洞,从查找出的程序漏洞对应的程序代码段提取代表该程序漏洞的字符串;及
将每种异常信息与代表该异常信息对应的程序漏洞的字符串建立映射关系,并存储到数据库。
9.如权利要求6-8任意一项所述的电子装置,其特征在于,所述验证步骤后还包括:
定位步骤:根据输出的所述代码块的错误日志,确定出所述待测试程序中代码块的程序漏洞的位置,并修正程序漏洞。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括漏洞定位程序,所述漏洞定位程序被处理器执行时,可实现如权利要求1至5中任意一项所述的快速定位漏洞方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910972274.XA CN110866258B (zh) | 2019-10-12 | 2019-10-12 | 快速定位漏洞方法、电子装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910972274.XA CN110866258B (zh) | 2019-10-12 | 2019-10-12 | 快速定位漏洞方法、电子装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110866258A true CN110866258A (zh) | 2020-03-06 |
CN110866258B CN110866258B (zh) | 2023-11-21 |
Family
ID=69652355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910972274.XA Active CN110866258B (zh) | 2019-10-12 | 2019-10-12 | 快速定位漏洞方法、电子装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866258B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367807A (zh) * | 2020-03-08 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种日志分析的方法、系统、设备及介质 |
CN111984532A (zh) * | 2020-07-31 | 2020-11-24 | 五八有限公司 | 一种基于小程序的异常处理方法及装置 |
CN112732503A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种bios问题定位方法、装置和计算机可读存储介质 |
CN113238889A (zh) * | 2021-06-16 | 2021-08-10 | 展讯通信(上海)有限公司 | 一种漏洞的问题定位方法及装置、存储介质、终端 |
CN113486359A (zh) * | 2021-07-13 | 2021-10-08 | 杭州安恒信息技术股份有限公司 | 软件漏洞的检测方法、装置、电子装置和存储介质 |
CN116561764A (zh) * | 2023-05-11 | 2023-08-08 | 上海麓霏信息技术服务有限公司 | 计算机信息数据交互处理系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731696A (zh) * | 2013-12-19 | 2015-06-24 | 腾讯科技(深圳)有限公司 | 定位程序代码中bug的方法及相关装置 |
US20170318048A1 (en) * | 2016-04-29 | 2017-11-02 | Ciena Corporation | System and method for monitoring network vulnerabilities |
US20180157842A1 (en) * | 2016-12-01 | 2018-06-07 | International Business Machines Corporation | Amalgamating Code Vulnerabilities Across Projects |
CN109597986A (zh) * | 2018-10-16 | 2019-04-09 | 深圳壹账通智能科技有限公司 | 异常问题的定位方法、装置、设备及存储介质 |
CN109657475A (zh) * | 2018-12-14 | 2019-04-19 | 平安城市建设科技(深圳)有限公司 | 代码漏洞排查方法、装置、设备及存储介质 |
CN110222513A (zh) * | 2019-05-21 | 2019-09-10 | 平安科技(深圳)有限公司 | 一种线上活动的异常监测方法、装置及存储介质 |
CN110222512A (zh) * | 2019-05-21 | 2019-09-10 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
-
2019
- 2019-10-12 CN CN201910972274.XA patent/CN110866258B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731696A (zh) * | 2013-12-19 | 2015-06-24 | 腾讯科技(深圳)有限公司 | 定位程序代码中bug的方法及相关装置 |
US20170318048A1 (en) * | 2016-04-29 | 2017-11-02 | Ciena Corporation | System and method for monitoring network vulnerabilities |
US20180157842A1 (en) * | 2016-12-01 | 2018-06-07 | International Business Machines Corporation | Amalgamating Code Vulnerabilities Across Projects |
CN109597986A (zh) * | 2018-10-16 | 2019-04-09 | 深圳壹账通智能科技有限公司 | 异常问题的定位方法、装置、设备及存储介质 |
CN109657475A (zh) * | 2018-12-14 | 2019-04-19 | 平安城市建设科技(深圳)有限公司 | 代码漏洞排查方法、装置、设备及存储介质 |
CN110222513A (zh) * | 2019-05-21 | 2019-09-10 | 平安科技(深圳)有限公司 | 一种线上活动的异常监测方法、装置及存储介质 |
CN110222512A (zh) * | 2019-05-21 | 2019-09-10 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367807A (zh) * | 2020-03-08 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种日志分析的方法、系统、设备及介质 |
CN111984532A (zh) * | 2020-07-31 | 2020-11-24 | 五八有限公司 | 一种基于小程序的异常处理方法及装置 |
CN112732503A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种bios问题定位方法、装置和计算机可读存储介质 |
WO2022148300A1 (zh) * | 2021-01-07 | 2022-07-14 | 苏州浪潮智能科技有限公司 | 一种bios问题定位方法、装置和计算机可读存储介质 |
CN112732503B (zh) * | 2021-01-07 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种bios问题定位方法、装置和计算机可读存储介质 |
CN113238889A (zh) * | 2021-06-16 | 2021-08-10 | 展讯通信(上海)有限公司 | 一种漏洞的问题定位方法及装置、存储介质、终端 |
CN113238889B (zh) * | 2021-06-16 | 2023-04-28 | 展讯通信(上海)有限公司 | 一种漏洞的问题定位方法及装置、存储介质、终端 |
CN113486359A (zh) * | 2021-07-13 | 2021-10-08 | 杭州安恒信息技术股份有限公司 | 软件漏洞的检测方法、装置、电子装置和存储介质 |
CN113486359B (zh) * | 2021-07-13 | 2024-03-19 | 杭州安恒信息技术股份有限公司 | 软件漏洞的检测方法、装置、电子装置和存储介质 |
CN116561764A (zh) * | 2023-05-11 | 2023-08-08 | 上海麓霏信息技术服务有限公司 | 计算机信息数据交互处理系统及方法 |
CN116561764B (zh) * | 2023-05-11 | 2024-09-06 | 广州华数云计算有限公司 | 计算机信息数据交互处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110866258B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110866258A (zh) | 快速定位漏洞方法、电子装置及存储介质 | |
CN108427731B (zh) | 页面代码的处理方法、装置、终端设备及介质 | |
CN103632100A (zh) | 一种网站漏洞检测方法及装置 | |
CN111459495B (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
CN110704304A (zh) | 一种应用程序测试方法、装置、存储介质和服务器 | |
CN110851351A (zh) | 部署环境测试方法、装置、计算机设备及存储介质 | |
CN111078481B (zh) | 获取配置检查清单的方法、装置、电子设备及存储介质 | |
CN113489713A (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN109446753A (zh) | 检测盗版应用程序的方法、装置、计算机设备及存储介质 | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
CN113434400A (zh) | 测试用例的执行方法、装置、计算机设备及存储介质 | |
CN113434395A (zh) | 测试用例的自动化生成方法、装置、设备及介质 | |
CN112612756A (zh) | 异常文件的修复方法、装置、设备及存储介质 | |
CN114218110A (zh) | 财务数据的对账测试方法、装置、计算机设备及存储介质 | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
CN113312258B (zh) | 一种接口测试方法、装置、设备及存储介质 | |
CN111966630B (zh) | 文件类型的检测方法、装置、设备和介质 | |
CN111767213B (zh) | 数据库检查点的测试方法、装置、电子设备及存储介质 | |
CN110337017B (zh) | 电视机及其日志处理方法、日志处理装置和可读存储介质 | |
CN110515792B (zh) | 基于web版任务管理平台的监控方法、装置以及计算机设备 | |
CN112558982A (zh) | 代码检测方法、装置及计算机设备 | |
EP3692456B1 (en) | Binary image stack cookie protection | |
CN111191235A (zh) | 可疑文件分析方法、装置和计算机可读存储介质 | |
CN112363929B (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 |