本申请涉及网络安全技术领域,特别涉及一种基于ghidra的漏洞扫描方法,还涉及一种基于ghidra的漏洞扫描装置、系统以及计算机可读存储介质。
背景技术:
软件漏洞是指计算机系统安全方面的缺陷,是软件的脆弱性,可能是程序错误导致的,也可能是逻辑错误导致的。计算机系统非常复杂,没有软件是完美的,这意味着所有的软件都有可以被黑客利用的漏洞,一旦一个恶意黑客发现了一个漏洞,他就可以远程利用该漏洞控制目标计算机,获取或者破坏其所有隐私信息,因此,检测和发现漏洞在目前来说,至关重要。目前,一些常规的漏洞检测只是对网站漏洞的检测,而事实上,网站只是软件中的一个很小的分支,即使是有对软件的检测,也只是对单个文件的检测,效率相对低下,网络安全仍然存在较高的风险。
因此,如何实现快速高效的漏洞检测,保证网络安全是本领域技术人员亟待解决的问题。
技术实现要素:
本申请的目的是提供一种基于ghidra的漏洞扫描方法,该基于ghidra的漏洞扫描方法可以实现快速高效的漏洞检测,进一步保证网络安全;本申请的另一目的是提供一种基于ghidra的漏洞扫描装置、系统以及计算机可读存储介质,也具有上述有益效果。
第一方面,本申请提供了一种基于ghidra的漏洞扫描方法,包括:
获取待扫描文件集;
利用ghidra对所述待扫描文件集进行扫描,获得日志信息;
接收关于目标文件的解析指令;其中,所述目标文件为所述待扫描文件集中的任意待扫描文件;
根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息。
优选的,所述根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息,包括:
对所述日志信息进行解析,确定所述目标文件对应的目标日志信息;
将所述目标日志信息与漏洞数据库中的漏洞信息进行匹配,并在匹配成功时,从所述目标日志信息中确定漏洞位置信息。
优选的,所述将所述目标日志信息与漏洞数据库中的漏洞信息进行匹配,包括:
从所述目标日志信息中提取函数跳转日志,并获取所述函数跳转日志对应的函数名;
判断所述漏洞数据库中是否存在与所述函数名相匹配的漏洞函数,若是,则判定匹配成功。
优选的,所述漏洞数据库的构建过程包括:
对cve漏洞库中的各漏洞点进行解析,确定所述漏洞点的触发函数;
获取所述触发函数对应的调用函数;
将所述触发函数和所述调用函数作为所述漏洞函数,生成所述漏洞数据库。
优选的,所述从所述目标日志信息中确定漏洞位置信息之后,还包括:
将所述漏洞位置信息输出至可视化界面进行显示;
当接收到关于所述漏洞位置信息的选择指令时,根据所述选择指令跳转至所述漏洞位置信息对应的漏洞实际地址。
优选的,所述基于ghidra的漏洞扫描方法还包括:
根据所述漏洞信息生成漏洞文件扫描报告;
将所述漏洞文件扫描报告发送至可视化界面进行显示。
优选的,所述基于ghidra的漏洞扫描方法还包括:
根据所述漏洞文件扫描报告对所述漏洞数据库进行更新。
第二方面,本申请还公开了一种基于ghidra的漏洞扫描装置,包括:
文件获取模块,用于获取待扫描文件集;
文件扫描模块,用于利用ghidra对所述待扫描文件集进行扫描,获得日志信息;
指令接收模块,用于接收关于目标文件的解析指令;其中,所述目标文件为所述待扫描文件集中的任意待扫描文件;
文件解析模块,用于根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息。
第三方面,本申请还公开了一种基于ghidra的漏洞扫描系统,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上所述的任一种基于ghidra的漏洞扫描方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种基于ghidra的漏洞扫描方法的步骤。
本申请所提供的一种基于ghidra的漏洞扫描方法,包括获取待扫描文件集;利用ghidra对所述待扫描文件集进行扫描,获得日志信息;接收关于目标文件的解析指令;其中,所述目标文件为所述待扫描文件集中的任意待扫描文件;根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息。
可见,本申请所提供的基于ghidra的漏洞扫描方法,先利用ghidra(一种软件逆向工程套件)对待扫描文件集进行扫描获取整个文件集的日志信息,进而通过解析日志信息确定待扫描文件中的漏洞信息,由于ghidra可以实现多个文件的批量扫描,相当于实现了批量文件的漏洞检测,大大缩短了漏洞发现的时间,有效的提高了漏洞检测效率,进一步提高了网络安全。
本申请所提供的一种基于ghidra的漏洞扫描装置、系统以及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请所提供的一种基于ghidra的漏洞扫描方法的流程示意图;
图2为本申请所提供的另一种基于ghidra的漏洞扫描方法的流程示意图;
图3为本申请所提供的一种基于ghidra的漏洞扫描装置的结构示意图;
图4为本申请所提供的一种基于ghidra的漏洞扫描系统的结构示意图。
具体实施方式
本申请的核心是提供一种基于ghidra的漏洞扫描方法,该基于ghidra的漏洞扫描方法可以实现快速高效的漏洞检测,进一步保证网络安全;本申请的另一核心是提供一种基于ghidra的漏洞扫描装置、系统以及计算机可读存储介质,也具有上述有益效果。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请所提供的一种基于ghidra的漏洞扫描方法的流程示意图,该基于ghidra的漏洞扫描方法可包括:
s101:获取待扫描文件集;
本步骤旨在实现待扫描文件集的获取,该待扫描文件集中包括有多个待扫描文件,该待扫描文件即为需要进行漏洞扫描的文件。可以理解的是,待扫描文件集中待扫描文件的数量并不影响本技术方案的实施,本申请对此不做限定。
此外,上述待扫描文件集可以由技术人员根据实际需求直接输入,也可以通过遍历当前系统软件或网站采集获得,本申请对其获取方式同样不做限定。需要指出的是,不同类型的系统软件、不同类型的网站等所对应的待扫描文件的类型和内容也会有所不同,但均不会影响本技术方案的实施,也就是说,本申请所提供的漏洞扫描方案适用于多种类型的系统软件、网站等的漏洞检测。
s102:利用ghidra对待扫描文件集进行扫描,获得日志信息;
本步骤旨在利用ghidra实现待扫描文件集的扫描,以获取其日志信息。其中,ghidra是由美国国家安全局研究部门开发的软件逆向工程套件,是一种图形化的软件逆向分析工具。其中,逆向分析又称反向工程,是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能性能等,利用软件逆向分析技术可以有助于及时发现软件存在的漏洞。通过ghidra对待扫描文件集进行扫描,即实现了利用ghidra对多个待扫描文件进行批量扫描,有助于提高漏洞扫描效率。
其中,上述日志信息主要用于实现漏洞扫描,其中所包含的具体内容并不唯一,可实现漏洞检测即可,例如,可以包括如上所述的软件或网站的处理流程信息、组织结构信息、功能性能信息等,以及其他的如数据结构信息、体系结构信息、程序设计信息等。
s103:接收关于目标文件的解析指令;其中,目标文件为待扫描文件集中的任意待扫描文件;
本步骤旨在实现针对目标文件的解析指令的接收,其中,目标文件即为待扫描文件集中的任意待扫描文件。具体而言,在完成基于ghidra的文件扫描获得日志信息之后,对于待扫描文件集中的任意一个待扫描文件,均可以通过对其日志信息进行解析实现其漏洞信息的确定,而该解析操作则基于解析指令实现。
其中,解析指令具体可以为关于目标文件的选择指令,如点击指令,例如,可以将待扫描文件集发送至可视化界面进行显示,由技术人员根据实际需求从待扫描文件集中选择目标文件,并对其进行点击,由此,系统即可根据该点击指令执行后续日志信息的解析操作。再如,用户人员也可以将目标文件的相关信息(如标识符、文件名等)添加至解析指令,并输入至系统内,由此,系统在接收到解析指令后,即可通过该解析指令中的目标文件信息确定目标文件,再执行后续日志信息的解析操作。
s104:根据解析指令对日志信息进行解析,确定目标文件的漏洞信息。
本步骤旨在基于接收到的解析指令实现日志信息的解析,进而确定目标文件的漏洞信息。具体而言,日志信息中包括有对应系统或网站的各类相关信息,由此,通过对其进行解析即可确定目标文件的漏洞信息,实现关于目标文件的漏洞检测。其中,漏洞信息的具体内容并不影响本技术方案的实施,例如,可以包括漏洞位置信息、漏洞类型信息、漏洞数量信息等,本申请对此不做限定。
作为一种优选实施例,上述根据解析指令对日志信息进行解析,确定目标文件的漏洞信息,可以包括:对日志信息进行解析,确定目标文件对应的目标日志信息;将目标日志信息与漏洞数据库中的漏洞信息进行匹配,并在匹配成功时,从目标日志信息中确定漏洞位置信息。
本优选实施例提供了一种具体的日志信息的解析方法,即基于漏洞数据库实现漏洞匹配进而确定目标文件的漏洞信息,其中,漏洞信息具体可以为漏洞位置信息。具体而言,由于日志信息是通过对待扫描文件集进行扫描所获得的,其中所包含的信息对应于待扫描文件集中的所有待扫描文件,因此,在确定目标文件之后,首先从日志信息中确定目标文件对应的日志信息,即上述目标日志信息;进一步,将该目标日志信息与漏洞数据库中的各漏洞信息进行匹配,判断漏洞数据库中是否存在与目标日志信息相同的漏洞信息,若是,则说明匹配成功,进而说明目标文件中存在漏洞,由此,即可从目标日志信息中确定目标文件的漏洞位置信息;反之,如若漏洞数据库中不存在与目标日志信息相同的漏洞信息,则说明漏洞信息匹配失败,进而说明目标文件中不存在漏洞。
其中,漏洞数据库是预先创建的存储有大量漏洞信息的数据库,主要用于实现漏洞匹配。可以理解的是,该漏洞数据库可以预存于相应的存储空间,如存储器、内存等,以便在进行漏洞匹配时进行直接调取。
作为一种优选实施例,上述将目标日志信息与漏洞数据库中的漏洞信息进行匹配,可以包括:从目标日志信息中提取函数跳转日志,并获取函数跳转日志对应的函数名;判断漏洞数据库中是否存在与函数名相匹配的漏洞函数,若是,则判定匹配成功。
本优选实施例提供了一种具体的漏洞信息匹配方法,即基于漏洞函数实现。换而言之,漏洞数据库中所存储的漏洞信息具体可以为漏洞函数,在进行漏洞匹配时,则可以从目标日志信息中提取关于函数跳转的相关信息,获得对应的函数名,也即在函数跳转时,对函数名进行获取,进一步,将其与漏洞数据库中的各漏洞函数进行匹配,获得匹配结果。
作为一种优选实施例,上述漏洞数据库的构建过程可以包括:对cve漏洞库(commonvulnerabilities&exposures)中的各漏洞点进行解析,确定漏洞点的触发函数;获取触发函数对应的调用函数;将触发函数和调用函数作为漏洞函数,生成漏洞数据库。
本优选实施例提供了一种漏洞数据库的构建方法,即基于cve漏洞库实现。其中,cve漏洞库是指公共漏洞和暴露,其中包括有大量的公知的漏洞信息,因此,可基于该cve漏洞库实现漏洞数据库的构建。首先,通过解析cve漏洞库中的各漏洞点,确定其对应的触发函数(即触发漏洞点的函数),该触发函数即为漏洞函数;进一步,关于该触发函数的调用函数(即调用触发函数的函数),同样可作为漏洞函数进行后续漏洞数据库的构建,当然,为进一步提高准确性,在确认调用函数为漏洞函数之前,还可以对其进行参数分析,以确定其是否影响上述触发漏洞点的触发函数,若是,则将其作为漏洞函数,反之则不作为漏洞函数;最后,基于上述触发函数及其对应的调用函数即可完成漏洞数据库的生成。
作为一种优选实施例,上述从目标日志信息中确定漏洞位置信息之后,还可以包括:将漏洞位置信息输出至可视化界面进行显示;当接收到关于漏洞位置信息的选择指令时,根据选择指令跳转至漏洞位置信息对应的漏洞实际地址。
为便于技术人员及时进行漏洞修补,本优选实施例所提供的基于ghidra的漏洞扫描方法可以实现漏洞地址跳转功能,即直接跳转至漏洞的实际地址。具体而言,在获得目标文件的漏洞位置信息后,即可将其发送至可视化界面进行显示,进一步,技术人员则可以在可视化界面上选择某一个或多个漏洞位置信息,例如可以采用点击的方式,点击该漏洞位置信息,系统即可基于该点击指令自动跳转至该漏洞位置信息对应的漏洞实际地址,更加方便技术人员及时进行漏洞分析与修补。
作为一种优选实施例,该基于ghidra的漏洞扫描方法还可以包括:根据漏洞信息生成漏洞文件扫描报告;将漏洞文件扫描报告发送至可视化界面进行显示。
本优选实施例所提供的基于ghidra的漏洞扫描方法实现了报告生成与显示功能,也就是根据目标文件的漏洞信息生成相应的漏洞文件扫描报告,并对其进行显示。其中,该漏洞文件扫描报告中的报告信息可以涵盖关于目标文件及其漏洞信息的所有信息,例如,漏洞文件的相关信息,如文件名、文件标识、文件位置等,以及对应的漏洞信息,如漏洞位置、漏洞类型、漏洞数量等,以及修补信息,如修补时间、修补方法等。
作为一种优选实施例,该基于ghidra的漏洞扫描方法还可以包括:根据漏洞文件扫描报告对漏洞数据库进行更新。
本优选实施例所提供的基于ghidra的漏洞扫描方法旨在实现漏洞数据库的优化与更新,以便获得涵盖漏洞信息更为全面的数据库,进一步提高漏洞扫描结果的准确性。如上所述,漏洞文件扫描报告中的报告信息可以涵盖关于目标文件及其漏洞信息的所有信息,其中,对于已经在目标文件中查询确认的、漏洞数据库中不存在的漏洞信息,可将其添加至漏洞数据库中,以实现漏洞数据库的更新。
可见,本申请所提供的基于ghidra的漏洞扫描方法,先利用ghidra对待扫描文件集进行扫描获取整个文件集的日志信息,进而通过解析日志信息确定待扫描文件中的漏洞信息,由于ghidra可以实现多个文件的批量扫描,相当于实现了批量文件的漏洞检测,大大缩短了漏洞发现的时间,有效的提高了漏洞检测效率,进一步提高了网络安全。
本申请实施例提供了另一种基于ghidra的漏洞扫描方法。
需要说明的是,本申请实施例所提供的基于ghidra的漏洞扫描方法基于扫描漏洞插件时间,该插件的漏洞扫描原理在于:遍历整个软件中的机器码,在遇到函数跳转时,对函数名进行获取,看是否和预设的可疑函数集中的函数名相似。漏洞扫描插件的作用在于在软件机器码中找到这些可疑函数(漏洞函数)的调用位置,并记录对应文件的名称以及调用位置等。
其中,可疑函数集(即上述漏洞数据库)是一些经常发生安全漏洞的函数以及一些可以执行文件操作、执行命令等高危操作的函数的集合。其构建过程可包括:通过分析并记录cve漏洞,找到漏洞点的触发函数,如会触发缓冲区溢出的strcpy函数,类似printf的格式化字符函数以及system相关的命令注入函数等危险函数,形成可疑函数集;此外,还可以分析在特定架构下,调用这些可疑函数的函数,并分析其参数是否影响对应的可疑函数,如果有影响,同样可将其加入可疑函数集。
可以理解的是,一个文件中可能存在有多个漏洞点,而整个文件集中将存在无数个漏洞点,因此,手工分析显然不太可能。在此基础上,通过修改ghidra的部分源码,实现在打开某个文件时可自动解析整个工程的日志,并在日志中找到与本文件相关的漏洞点位置予以显示,并且,点击该漏洞点位置可以自动跳转到程序实际地址,还可以对某个具体的函数进行日志筛选,方便了研究人员快速分析漏洞。
为实现上述功能,请参考图2,图2为本申请所提供的另一种基于ghidra的漏洞扫描方法的流程示意图,其具体实现流程可包括:
首先,将待扫描文件集导入到工程,然后进行批量扫描。其中,在扫描时采用ghidra的命令行形式进行,该模式可以自动进行文件初始分析,以及指定插件代码执行,该插件即为上述扫描漏洞插件。
进一步,在整个扫描过程结束后,用图形化打开ghidra,对单个漏洞文件进行分析。由于已创建工程,因此,自动分析过程不需要再次执行,可以节省大量时间。此时,可视化界面将显示本文件的漏洞点位置,点击该漏洞点位置即可自动跳转到程序实际地址,为程序漏洞分析节省时间。当然,在漏洞点确认过程中,如果发现新的可疑函数,或者其他可疑特征,可以将其列进扫描漏洞插件中,以便找出更多的漏洞点。
最后,基于待扫描文件集中的漏洞文件、漏洞文件中的可疑函数、可疑函数的调用点、调用参数等生成扫描报告,并进行显示或存储。
可见,本申请实施例所提供的基于ghidra的漏洞扫描方法,先利用ghidra对待扫描文件集进行扫描获取整个文件集的日志信息,进而通过解析日志信息确定待扫描文件中的漏洞信息,由于ghidra可以实现多个文件的批量扫描,相当于实现了批量文件的漏洞检测,大大缩短了漏洞发现的时间,有效的提高了漏洞检测效率,进一步提高了网络安全。
为解决上述技术问题,本申请还提供了一种基于ghidra的漏洞扫描装置,请参考图3,图3为本申请所提供的一种基于ghidra的漏洞扫描装置的结构示意图,该基于ghidra的漏洞扫描装置可包括:
文件获取模块1,用于获取待扫描文件集;
文件扫描模块2,用于利用ghidra对待扫描文件集进行扫描,获得日志信息;
指令接收模块3,用于接收关于目标文件的解析指令;其中,目标文件为待扫描文件集中的任意待扫描文件;
文件解析模块4,用于根据解析指令对日志信息进行解析,确定目标文件的漏洞信息。
可见,本申请实施例所提供的基于ghidra的漏洞扫描装置,先利用ghidra对待扫描文件集进行扫描获取整个文件集的日志信息,进而通过解析日志信息确定待扫描文件中的漏洞信息,由于ghidra可以实现多个文件的批量扫描,相当于实现了批量文件的漏洞检测,大大缩短了漏洞发现的时间,有效的提高了漏洞检测效率,进一步提高了网络安全。
作为一种优选实施例,上述文件解析模块4可包括:
日志解析单元,用于对日志信息进行解析,确定目标文件对应的目标日志信息;
漏洞匹配单元,用于将目标日志信息与漏洞数据库中的漏洞信息进行匹配,并在匹配成功时,从目标日志信息中确定漏洞位置信息。
作为一种优选实施例,上述漏洞匹配单元可具体用于从目标日志信息中提取函数跳转日志,并获取函数跳转日志对应的函数名;判断漏洞数据库中是否存在与函数名相匹配的漏洞函数,若是,则判定匹配成功。
作为一种优选实施例,该基于ghidra的漏洞扫描装置还可包括漏洞库构建模块,用于对cve漏洞库中的各漏洞点进行解析,确定漏洞点的触发函数;获取触发函数对应的调用函数;将触发函数和调用函数作为漏洞函数,生成漏洞数据库。
作为一种优选实施例,该基于ghidra的漏洞扫描装置还可包括漏洞定位模块,用于将漏洞位置信息输出至可视化界面进行显示;当接收到关于漏洞位置信息的选择指令时,根据选择指令跳转至漏洞位置信息对应的漏洞实际地址。
作为一种优选实施例,该基于ghidra的漏洞扫描装置还可包括报告生成模块,用于根据漏洞信息生成漏洞文件扫描报告;将漏洞文件扫描报告发送至可视化界面进行显示。
作为一种优选实施例,该基于ghidra的漏洞扫描装置还可包括漏洞库更新模块,用于根据漏洞文件扫描报告对漏洞数据库进行更新。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述技术问题,本申请还提供了一种基于ghidra的漏洞扫描系统,请参考图4,图4为本申请所提供的一种基于ghidra的漏洞扫描系统的结构示意图,该基于ghidra的漏洞扫描系统可包括:
存储器10,用于存储计算机程序;
处理器20,用于执行计算机程序时可实现如上述任意一种基于ghidra的漏洞扫描方法的步骤。
对于本申请提供的系统的介绍请参照上述方法实施例,本申请在此不做赘述。
为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种基于ghidra的漏洞扫描方法的步骤。
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
1.一种基于ghidra的漏洞扫描方法,其特征在于,包括:
获取待扫描文件集;
利用ghidra对所述待扫描文件集进行扫描,获得日志信息;
接收关于目标文件的解析指令;其中,所述目标文件为所述待扫描文件集中的任意待扫描文件;
根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息。
2.根据权利要求1所述的基于ghidra的漏洞扫描方法,其特征在于,所述根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息,包括:
对所述日志信息进行解析,确定所述目标文件对应的目标日志信息;
将所述目标日志信息与漏洞数据库中的漏洞信息进行匹配,并在匹配成功时,从所述目标日志信息中确定漏洞位置信息。
3.根据权利要求2所述的基于ghidra的漏洞扫描方法,其特征在于,所述将所述目标日志信息与漏洞数据库中的漏洞信息进行匹配,包括:
从所述目标日志信息中提取函数跳转日志,并获取所述函数跳转日志对应的函数名;
判断所述漏洞数据库中是否存在与所述函数名相匹配的漏洞函数,若是,则判定匹配成功。
4.根据权利要求3所述的基于ghidra的漏洞扫描方法,其特征在于,所述漏洞数据库的构建过程包括:
对cve漏洞库中的各漏洞点进行解析,确定所述漏洞点的触发函数;
获取所述触发函数对应的调用函数;
将所述触发函数和所述调用函数作为所述漏洞函数,生成所述漏洞数据库。
5.根据权利要求2所述的基于ghidra的漏洞扫描方法,其特征在于,所述从所述目标日志信息中确定漏洞位置信息之后,还包括:
将所述漏洞位置信息输出至可视化界面进行显示;
当接收到关于所述漏洞位置信息的选择指令时,根据所述选择指令跳转至所述漏洞位置信息对应的漏洞实际地址。
6.根据权利要求2所述的基于ghidra的漏洞扫描方法,其特征在于,还包括:
根据所述漏洞信息生成漏洞文件扫描报告;
将所述漏洞文件扫描报告发送至可视化界面进行显示。
7.根据权利要求6所述的基于ghidra的漏洞扫描方法,其特征在于,还包括:
根据所述漏洞文件扫描报告对所述漏洞数据库进行更新。
8.一种基于ghidra的漏洞扫描装置,其特征在于,包括:
文件获取模块,用于获取待扫描文件集;
文件扫描模块,用于利用ghidra对所述待扫描文件集进行扫描,获得日志信息;
指令接收模块,用于接收关于目标文件的解析指令;其中,所述目标文件为所述待扫描文件集中的任意待扫描文件;
文件解析模块,用于根据所述解析指令对所述日志信息进行解析,确定所述目标文件的漏洞信息。
9.一种基于ghidra的漏洞扫描系统,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的基于ghidra的漏洞扫描方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如权利要求1至7任一项所述的基于ghidra的漏洞扫描方法的步骤。
技术总结