CN113434217A - 漏洞扫描方法、装置、计算机设备及介质 - Google Patents
漏洞扫描方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN113434217A CN113434217A CN202110732512.7A CN202110732512A CN113434217A CN 113434217 A CN113434217 A CN 113434217A CN 202110732512 A CN202110732512 A CN 202110732512A CN 113434217 A CN113434217 A CN 113434217A
- Authority
- CN
- China
- Prior art keywords
- target
- plug
- vulnerability scanning
- preset
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种漏洞扫描方法、装置、计算机设备及介质,涉及云技术领域,所述方法包括:通过获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成,当接收到预设的目标加载指令时,提取目标插件的目标加载量,根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容,一方面通过目标插件集成的方式来规范目标漏洞扫描工具,减少攻击流程中的漏洞扫描的障碍和工作量,另一方面,通过提取目标加载量而替代全部加载,减少了插件加载的时间以及资源占用空间,进而提高了漏洞扫描的效率。此外,本申请还涉及区块链技术,目标漏洞和漏洞扫描信息扫描工具可存储于区块链中。
Description
技术领域
本申请涉及云技术领域,尤其涉及漏洞扫描方法、装置、计算机设备及介质。
背景技术
在军事领域,演习是专指军队进行大规模的实兵演习,演习中通常分为红军、蓝军,演习多以红军守、蓝军进攻为主。而在网络安全中,红蓝军对抗则是一方扮演黑客(蓝军),一方扮演防御者(红军)。网络红蓝军对抗的目的就是用来评估企业安全性,有助于找出企业安全中最脆弱的环节,提升企业安全能力的建设。
在蓝军攻防项目中,在内网需要横向扩展的场景,例如跨网段端口扫描、制度服务及端口扫描、指定协议扫描、漏洞扫描等,此时需要用到很多扫描工具以及漏洞利用工具。对于同一个场景,由于每个安全工程师的处理手法以及习惯不同,所使用的扫描工具和漏洞利用工具通常都不一样,这在无形中给企业蓝军攻击流程的工程化、规范化造成了不少障碍,同时,后续企业对蓝军的流量、行为审计、工具清理增添了工作量。
企业安全防护方会利用不同的扫描***及各种语言编写的自动化利用脚本对企业内、外网进行批量化的漏洞扫描与验证。但在真实的企业网络隔离往往非常复杂,传统的扫描手法有时因为网络隔离的原因无法到达,这时可能需要在目标机器上扫描。此外,由于安全工程师开发语言的不同,对于同一漏洞往往存在不同语言编写的POC,例如,Java、Python等,在后期维护上存在占用大量资源的情况。
发明内容
本申请实施例的目的在于提出一种漏洞扫描方法,以解决漏洞扫描过程中由于使用的扫描工具和开发语言编写不统一,所带来的工作量大和维护成本高的问题。
为了解决上述技术问题,本申请实施例提供一种漏洞扫描方法,包括如下步骤:
获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成;
当接收到预设的目标加载指令时,提取目标插件的目标加载量;
根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容。
进一步地,获取目标漏洞扫描工具包括:
获取漏洞扫描信息和预设的插件数据结构;
根据插件数据结构初始化漏洞扫描信息,并得到目标插件结构;
将预设的功能代码信息***至目标插件结构,以集成得到目标漏洞扫描工具的目标插件。
进一步地,根据插件数据结构初始化漏洞扫描信息,并得到目标插件结构包括:
采用实例全局化方式定义插件数据结构,以得到全局插件数据结构;
在全局插件数据结构中申明漏洞扫描信息的数据格式,并得到初始化后的漏洞扫描信息。
进一步地,将预设的功能代码信息***至目标插件结构,以集成得到目标漏洞扫描工具的目标插件包括:
调用预设的目标编写模板,其中,目标编写模板用于规范功能代码信息;
在目标编写模板中记录功能代码信息,以及功能代码信息的***位置信息;
根据***位置信息,将功能代码信息集成到目标插件结构中。
进一步地,当接收到预设的目标加载指令时,提取目标插件的目标加载量包括:
当目标加载指令为插件模块加载指令时,识别插件模块的地址信息,其中,插件模块由功能代码信息组成;
根据地址信息指向的功能代码信息的起始位置和终点位置,确定目标插件的目标加载量;
提取目标加载量。
进一步地,根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容包括:
接收运行方式的关键字;
识别关键字对应的插件运行方式;
根据运行方式执行目标加载量中的功能代码信息。
进一步地,根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容之后,所述方法还包括:
将目标插件保存在预设的插件数据库中;
对插件数据库设置接口信息,使得根据接口信息实现漏洞扫描工具的调用。
为了解决上述技术问题,本申请实施例还提供一种漏洞扫描装置,所述漏洞扫描装置包括:
获取模块,用于获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成;
提取模块,用于当接收到预设的目标加载指令时,提取目标插件的目标加载量;
运行模块,用于根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容。
进一步的,所述获取模块包括:
获取单元,用于获取漏洞扫描信息和预设的插件数据结构;
初始化单元,用于根据插件数据结构初始化漏洞扫描信息,并得到目标插件结构;
***单元,用于将预设的功能代码信息***至目标插件结构,以集成得到目标漏洞扫描工具的目标插件。
进一步地,初始化单元包括:
全局子单元,用于采用实例全局化方式定义插件数据结构,以得到全局插件数据结构;
格式子单元,用于在全局插件数据结构中申明漏洞扫描信息的数据格式,并得到初始化后的漏洞扫描信息。
进一步地,***单元包括:
调用子单元,用于调用预设的目标编写模板,其中,目标编写模板用于规范功能代码信息;
记录子单元,用于在目标编写模板中记录功能代码信息,以及功能代码信息的***位置信息;
集成子单元,用于根据***位置信息,将功能代码信息集成到目标插件结构中。
进一步地,提取模块包括:
第一识别单元,用于当目标加载指令为插件模块加载指令时,识别插件模块的地址信息,其中,插件模块由功能代码信息组成;
确定单元,用于根据地址信息指向的功能代码信息的起始位置和终点位置,确定目标插件的目标加载量;
提取单元,用于提取目标加载量。
进一步地,运行模块包括:
接收单元,用于接收运行方式的关键字;
第二识别单元,用于识别关键字对应的插件运行方式;
运行单元,用于根据运行方式执行目标加载量中的功能代码信息。
进一步地,所述漏洞扫描装置还包括:
保存模块,用于将目标插件保存在预设的插件数据库中;
接口模块,用于对插件数据库设置接口信息,使得根据接口信息实现漏洞扫描工具的调用。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述漏洞扫描方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的漏洞扫描方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:通过获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成,当接收到预设的目标加载指令时,提取目标插件的目标加载量,根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容,一方面通过目标插件集成的方式来规范目标漏洞扫描工具,减少攻击流程中的漏洞扫描的障碍和工作量,另一方面,通过提取目标加载量而替代全部加载,减少了插件加载的时间以及资源占用空间,进而提高了漏洞扫描的效率。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性***架构图;
图2根据本申请的漏洞扫描方法的一个实施例的流程图;
图3是根据本申请的漏洞扫描装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的漏洞扫描方法一般由服务器/终端设备执行,相应地,漏洞扫描装置一般设置于服务器/终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的漏洞扫描的方法的一个实施例的流程图。所述的漏洞扫描方法,包括以下步骤:
S201:获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成。
在本申请实施例中,目标漏洞扫描工具是一种统一漏洞扫描框架,可兼容目前企业蓝军所使用到的所有漏洞验证POC、常见的扫描工具、扫描脚本等,且目标漏洞扫描工具是由经过申明统一的数据结构格式而形成的目标插件,即目标漏洞扫描工具实质是以统一的数据格式集成了所有漏洞验证POC以及常见的扫描工具的插件。其中,POC(ProofofConcept,观点证明)在漏洞报告中常用于一段说明或者一个攻击的样例,POC的表示形式可以是一小段代码,该代码实现的功能也比较简单,即用来验证某一个或者一类漏洞真实存在。
由于在编译程序时,会连接相关的framework(软件架构),通常我们,例如所连接的框架是Foundation框架(一种前端框架)和Application框架(应用框架),当程序启动运行时,每个被连接到的framework都会被加载到该程序的objc(Objective-C,一种在C的基础上加入面向对象特性扩充而成的编程语言)运行时环境中,如果要对正在运行的程序加载新的framework,一般使用插件(plugin),插件是一种遵循一定规范的应用程序接口编写出来的程序。
进一步地,插件的使用意义包括:各个插件之间是相互独立的,件结构清晰且容易理解;由于插件与宿主程序之间通过接口联系,就像硬件插卡一样,可以被随时删除,***和修改,所以结构很灵活,容易修改,方便软件的升级和维护;插件本身就是由一系列小的功能结构组成,而且通过接口向外部提供自己的服务,所以复用力度更大,移植也更加方便;***功能的增加或减少,只需相应的增删插件,而不影响整个体系结构,因此能方便的实现结构调整;由于插件通过与宿主程序通信来实现插件与插件,插件与宿主程序间的通信,所以插件之间的耦合度更低;由于采用了插件的结构,可以在软件的开发过程中随时修改插件,也可以在应用程序发行之后,通过补丁包的形式增删插件,通过这种形式达到修改应用程序的目的;可以根据资源的实际情况来调整开发的方式,资源充足可以开发所有的插件,资源不充足可以选择开发部分插件,也可以请第三方的厂商开发,用户也可以根据自己的需要进行开发。
由于插件具有结构清晰、易于理解、易修改、可维护性强、可移植性强、重用力度大等优势,因此,在攻防项目场景中,针对复杂的漏洞扫描工具和脚本验证代码时,采用插件的统一规范方式可以提高漏洞扫描的效率,同时便于管理和修改漏洞扫描工具和脚本验证代码,也增强了漏洞扫描工具的复用性。
在本实施例的一些可选的实现方式中,步骤S201,即获取目标漏洞扫描工具包括:
获取漏洞扫描信息和预设的插件数据结构;
根据插件数据结构初始化漏洞扫描信息,并得到目标插件结构;
将预设的功能代码信息***至目标插件结构,以集成得到目标漏洞扫描工具的目标插件。
其中,可以通过外部接口调取漏洞扫描信息,或者通过本地数据库获取,例如,对于新增的扫描工具或者POC,可通过前端GUI界面一键从外部接口中获取,提高描工具或者POC的更新遍历,实现漏洞扫描信息的热更新。其获取方式此处不做限定。漏洞扫描信息包括漏洞验证程序、扫描工具以及扫描脚本。预设的插件数据结构是用于规范漏洞扫描信息转成插件的数据格式。漏洞验证程序,即使用编写好的POC去验证测试目标是否存在着漏洞,扫描工具可以包括但不限于Nikto(一款开源的网页服务器扫描器)、Acunetix WebVulnerability Scanner(简称AWVS,一种网络漏洞扫描工具)、OpenVAS(开放式漏洞评估***)、NetSparker(一种网络应用安全漏洞扫描工具)等。扫描脚本可以包括但不限nmap(一个网络连接端扫描软件)的脚本和BruteXSS脚本(一种实现xss(Cross-site scripting,跨站脚本攻)自动***的脚本)等。
插件数据结构用于申明漏洞扫描信息中输入/输出信息的数据形式,并根据申明的数据形式对漏洞扫描信息进行转化,即漏洞扫描信息的初始化实质是将漏洞扫描信息经过插件数据结构的转化,以得到目标插件结构。由于此时的目标插件结构仅仅是漏洞扫描信息符合了统一插件形式的要求,具体每个目标插件的漏洞扫描功能需要在目标插件结构***相应的功能代码信息,使得生成的不同目标插件在漏洞扫描过程中执行各自的扫描功能,减少了重复编写同一漏洞扫描功能的目标插件,同时,由于目标插件的数据结构统一,后续对目标插件的修改和删除等维护工作更加简单,进而提高了漏洞扫描过程的效率。
在本实施例的一些可选的实现方式中,根据插件数据结构初始化漏洞扫描信息,并得到目标插件结构包括:
采用实例全局化方式定义插件数据结构,以得到全局插件数据结构;
在全局插件数据结构中申明漏洞扫描信息的数据格式,并得到初始化后的漏洞扫描信息。
其中,实例全局化定义为采用全局配置结构体(struct),进而定义目标插件的全局插件数据结构,结构体式包括但不限于插件名称(PluginName)、插件路径(PluginPath)、插件所需要的参数(map)、插件结果返回(ResultParam),或者POC所需要的输入、输出及所需参数等。通过实例全局化方式来配置全局数据结构的基本信息,规范了全局插件数据结构的形式。
进一步地,在配置好的插件数据结构中申明漏洞扫描信息的数据格式,数据格式是指对全局插件数据结构输入所需要的参数及全局插件数据结构的数据返回格式,通过对全局插件数据结构的参数设定和数据返回格式设定,来实现漏洞扫描信息的初始化过程,使得生成的目标插件结构具有规范性,便于后续的维护。
在本实施例的一些可选的实现方式中,将预设的功能代码信息***至目标插件结构,以集成得到目标漏洞扫描工具的目标插件包括:
调用预设的目标编写模板,其中,目标编写模板用于规范功能代码信息;
在目标编写模板中记录功能代码信息,以及功能代码信息的***位置信息;
根据***位置信息,将功能代码信息集成到目标插件结构中。
其中,预设的目标编写模板可以但不限于golang(又称为go语言,开源的编译型编程语言)模板文件、yaml(一种标记语言,用来表达数据序列化的格式)模板文件,目标编写模板用于编写POC,即编写目标插件的漏洞扫描功能的功能代码信息以及该功能代码信息在目标插件结构中的***位置,***位置可以是指定函数位置,该功能代码信息可以为主体功能代码信息和附属功能代码信息,例如,在run(运行)函数中编写对应插件主体功能的相关代码。对于已有golang开发经验的工程师来说可直接采用golang的目标编写模板来编写对应插件的功能代码信息,对于没有编程经验的企业安全攻防人员可使用主流的yaml目标编写模板编写规则实现对应的漏洞检测POC的功能代码信息,从而大大减少了企业安全攻防人员在编写漏洞检测POC的时间,提高了目标插件的生成效率。
进一步地,将所述目标插件保存在预设的插件目录下,当运行目标插件时,直接从插件目录中读取并执行相应的目标插件,或者直接将目标插件打包到可执行程序中执行。
S202:当接收到预设的目标加载指令时,提取目标插件的目标加载量。
预设的目标加载指令是指在目标插件的目标加载量可按需选择或者模块化使用。用户可通过前端web界面的勾选、或者手动修改插件排列顺序来指定需要加载的目标插件中漏洞扫描信息的目标加载量,从而实现了按需加载编译以及插件的轻量化。
进一步地,当接收到预设的目标加载指令时,提取目标插件的目标加载量包括:
当目标加载指令为插件模块加载指令时,识别插件模块的地址信息,其中,插件模块由功能代码信息组成;
根据地址信息指向的功能代码信息的起始位置和终点位置,确定目标插件的目标加载量;
提取目标加载量。
具体地,插件模块加载指令指上述的模块化,通过前端web界面来选择对应的插件模块,通过加载选中的插件模块来提取目标加载量。其中,每个插件模块包括主功能模块、至少一个附属功能模块以及所有功能模块,所有模块涵盖了主功能模块和附属功能模块,例如,类别为A的插件包括主功能模块a’、至少一个附属功能模块b’以及所有功能模块c’。当进入插件模块后,可以根据实际的需求选取需要的至少一个功能模块,选中插件模块的数量可以为多个,即可以同时加载多个被选中的插件模块,并根据所选择的插件模块相对于目标插件的位置,即地址信息指向的功能代码的起始位置和终点位置,例如当选中的是主功能模块时,根据主功能模块的地址信息从主功能模块的起始位置到终点位置所对应的功能代码信息进行提取,即提取的该主功能模块的功能代码信息为目标加载量。
S203:根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容。
其中,预设的插件运行方式可以包括但不限于前端GUI(Graphical UserInterface,图形用户界面)模式、console(控制台)交互式模式和命令行模式,其中,前端GUI模式是指在图形用户界面中布局的运行控件按钮,运行控件按钮用于运行目标插件的目标加载量,当运行目标加载量的运行控件按钮被激活时,例如通过点击操作或者快捷键操作来激活该运行控件按钮时,即可运行目标加载量的功能代码信息来实现漏洞扫描功能。命令行模式是指输入一些执行指令语句,例如声明用于执行请求的execute()等方法,并设置运行所需信息,使得根据这些方法和运行所需信息来实现目标插件的调用。
在本申请实施例中,根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容包括:
接收运行方式的关键字;
识别关键字对应的插件运行方式;
根据运行方式执行目标加载量中的功能代码信息。
其中,目标内容为目标加载量中的功能代码信息。具体地,关键字可以为前端GUI模式、console交互式模式或命令行模式等,并根据各关键字调用具体的操作运行方式,例如,当识别关键字为前端GUI模式时,调用前端GUI模式,根据在前端GUI模式中激活的运行控件按钮,运行目标加载量的功能代码信息。
以console交互式模式为例,在console中使用use关键字来指定目标插件中的扫描工具或POC;通过show options关键字来显示当前目标加载量对应的插件或POC的使用方法,使用方法包括所需参数、批量扫描所需要的目标CSV(Comma Separated Values,逗号分隔值)文件路径等等;通过set关键字设定参数具体值,比如设置扫描目标URL(UniformResoure Locator,统一资源***);通过run关键字启动即可启动对应的目标漏洞扫描工具中的扫描工具或者POC,通过关键字确定目标插件的运行方式,进而根据运行方式去执行功能代码信息,使得目标插件中的目标加载量得以实现漏洞扫描功能。
进一步地,目标插件可编译成单文件跨平台使用,即该目标插件除了可以应用于web漏洞扫描,也可以用于windows、linux或者macos等任意操作***中使用,解决了常规工具由于网络原因无法对目标漏洞进行扫描的弊端,以及打破了不同***的使用壁垒。同时,采用了图形化的前端GUI模式、关键字交互的console交互式和命令行模式等来实现目标插件的执行,大大减少了漏洞扫描工具的使用门槛,减少了漏洞扫描工具的学习成本。
在本实施例的一些可选的实现方式中,步骤S203之后,即据预设的插件运行方式,运行目标漏洞扫描工具中的目标加载量之后,上述电子设备还可以执行以下步骤:
将目标插件保存在预设的插件数据库中;
对插件数据库设置接口信息,使得根据接口信息实现漏洞扫描工具的调用。
其中,插件数据库包括漏洞扫描数据库和漏洞扫描工具数据库,漏洞扫描数据库用于存储漏洞扫描信息,例如,采用接口信息为GetPlugin作为漏洞扫描数据库的接口,该接口信息可用于获取漏洞扫描工具的所有插件及POC,满足了企业对相应的企业安全攻防人员在模拟攻击场景中流量、行为的审计。漏洞扫描工具数据库用于存储新增的目标插件、修改的目标插件以及对目标插件操作的记录,方便了企业安全防护人员维护插件数据库以及后续目标漏洞扫描工具的调用。
需要强调的是,为了进一步保证数据的私密性和安全性,所述目标插件即漏洞扫描工具、漏洞扫描信息还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
为了方便企业安全攻防人员高效率的使用目标漏洞扫描工具中的插件或者POC,对漏洞扫描工具数据库设置接口信息,例如,漏洞扫描工具数据库设置接口信息为RunPlugin,可通过制定扫描目标从漏洞扫描工具数据库中调用漏洞扫描工具对应的目标插件或POC,以完成对目标的检测。
在本申请实施例中,通过获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成,当接收到预设的目标加载指令时,提取目标插件的目标加载量,根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容,一方面通过目标插件集成的方式来规范目标漏洞扫描工具,减少攻击流程中的漏洞扫描的障碍和工作量,另一方面,通过提取目标加载量而替代全部加载,减少了插件加载的时间以及资源占用空间,进而提高了漏洞扫描的效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该可读指令在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种漏洞扫描装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的漏洞扫描装置包括:获取模块301、提取模块302以及运行模块303。其中:
获取模块301,用于获取目标漏洞扫描工具,其中,目标漏洞扫描工具由预设的目标插件集成;
提取模块302,用于当接收到预设的目标加载指令时,提取目标插件的目标加载量;
运行模块303,用于根据预设的插件运行方式和目标加载量,运行目标漏洞扫描工具中的目标内容。
进一步的,所述获取模块301包括:
获取单元,用于获取漏洞扫描信息和预设的插件数据结构;
初始化单元,用于根据插件数据结构初始化漏洞扫描信息,并得到目标插件结构;
***单元,用于将预设的功能代码信息***至目标插件结构,以集成得到目标漏洞扫描工具的目标插件。
进一步地,初始化单元包括:
全局子单元,用于采用实例全局化方式定义插件数据结构,以得到全局插件数据结构;
格式子单元,用于在全局插件数据结构中申明漏洞扫描信息的数据格式,并得到初始化后的漏洞扫描信息。
进一步地,***单元包括:
调用子单元,用于调用预设的目标编写模板,其中,目标编写模板用于规范功能代码信息;
记录子单元,用于在目标编写模板中记录功能代码信息,以及功能代码信息的***位置信息;
集成子单元,用于根据***位置信息,将功能代码信息集成到目标插件结构中。
进一步地,提取模块302包括:
第一识别单元,用于当目标加载指令为插件模块加载指令时,识别插件模块的地址信息,其中,插件模块由功能代码信息组成;
确定单元,用于根据地址信息指向的功能代码信息的起始位置和终点位置,确定目标插件的目标加载量;
提取单元,用于提取目标加载量。
进一步地,运行模块303包括:
接收单元,用于接收运行方式的关键字;
第二识别单元,用于识别关键字对应的插件运行方式;
运行单元,用于根据运行方式执行目标加载量中的功能代码信息。
进一步地,所述漏洞扫描装置还包括:
保存模块,用于将目标插件保存在预设的插件数据库中;
接口模块,用于对插件数据库设置接口信息,使得根据接口信息实现漏洞扫描工具的调用。
关于上述实施例中漏洞扫描装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过***总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D漏洞扫描存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作***和各类应用软件,例如漏洞扫描方法的可读指令代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的可读指令代码或者处理数据,例如运行所述漏洞扫描方法的可读指令代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有漏洞扫描可读指令,所述漏洞扫描可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的漏洞扫描方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种漏洞扫描方法,其特征在于,所述方法包括:
获取目标漏洞扫描工具,其中,所述目标漏洞扫描工具由预设的目标插件集成;
当接收到预设的目标加载指令时,提取所述目标插件的目标加载量;
根据预设的插件运行方式和所述目标加载量,运行所述目标漏洞扫描工具中的目标内容。
2.根据权利要求1所述的漏洞扫描方法,其特征在于,所述获取目标漏洞扫描工具包括:
获取漏洞扫描信息和预设的插件数据结构;
根据所述插件数据结构初始化所述漏洞扫描信息,并得到目标插件结构;
将预设的功能代码信息***至所述目标插件结构,以集成得到所述目标漏洞扫描工具的目标插件。
3.根据权利要求2所述的漏洞扫描方法,其特征在于,所述根据所述插件数据结构初始化所述漏洞扫描信息,并得到目标插件结构包括:
采用实例全局化方式定义所述插件数据结构,以得到全局插件数据结构;
在所述全局插件数据结构中申明所述漏洞扫描信息的数据格式,并得到初始化后的所述漏洞扫描信息。
4.根据权利要求2所述的漏洞扫描方法,其特征在于,所述将预设的功能代码信息***至所述目标插件结构,以集成得到所述目标漏洞扫描工具的目标插件包括:
调用预设的目标编写模板,其中,所述目标编写模板用于规范功能代码信息;
在所述目标编写模板中记录功能代码信息,以及所述功能代码信息的***位置信息;
根据所述***位置信息,将所述功能代码信息集成到所述目标插件结构中。
5.根据权利要求1所述的漏洞扫描方法,其特征在于,所述当接收到预设的目标加载指令时,提取所述目标插件的目标加载量包括:
当所述目标加载指令为插件模块加载指令时,识别所述插件模块的地址信息,其中,所述插件模块由功能代码信息组成;
根据所述地址信息指向的所述功能代码信息的起始位置和终点位置,确定所述目标插件的目标加载量;
提取所述目标加载量。
6.根据权利要求1所述的漏洞扫描方法,其特征在于,所述根据预设的插件运行方式和所述目标加载量,运行所述目标漏洞扫描工具中的目标内容包括:
接收运行方式的关键字;
识别所述关键字对应的插件运行方式;
根据所述运行方式执行所述目标加载量中的功能代码信息。
7.根据权利要求1或6所述的漏洞扫描方法,其特征在于,所述根据预设的插件运行方式和所述目标加载量,运行所述目标漏洞扫描工具中的目标内容之后,所述方法还包括:
将所述目标插件保存在预设的插件数据库中;
对所述插件数据库设置接口信息,使得根据所述接口信息实现目标插件的调用。
8.一种漏洞扫描装置,其特征在于,包括:
获取模块,用于获取目标漏洞扫描工具,其中,所述目标漏洞扫描工具由预设的目标插件集成;
提取模块,用于当接收到预设的目标加载指令时,提取所述目标插件的目标加载量;
运行模块,用于根据预设的插件运行方式和所述目标加载量,运行所述目标漏洞扫描工具中的目标内容。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的漏洞扫描方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的漏洞扫描方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732512.7A CN113434217B (zh) | 2021-06-30 | 2021-06-30 | 漏洞扫描方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732512.7A CN113434217B (zh) | 2021-06-30 | 2021-06-30 | 漏洞扫描方法、装置、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434217A true CN113434217A (zh) | 2021-09-24 |
CN113434217B CN113434217B (zh) | 2023-06-02 |
Family
ID=77757990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110732512.7A Active CN113434217B (zh) | 2021-06-30 | 2021-06-30 | 漏洞扫描方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434217B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338240A (zh) * | 2022-03-07 | 2022-04-12 | 浙江网商银行股份有限公司 | 漏洞扫描方法以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779252A (zh) * | 2012-06-29 | 2012-11-14 | 北京神州绿盟信息安全科技股份有限公司 | 漏洞扫描器及其插件调度方法 |
JP2016149055A (ja) * | 2015-02-13 | 2016-08-18 | 三菱電機株式会社 | 脆弱性検証装置および脆弱性検証プログラム |
CN108595963A (zh) * | 2018-04-26 | 2018-09-28 | 杭州迪普科技股份有限公司 | 一种漏洞扫描方法和装置 |
CN110263542A (zh) * | 2019-05-10 | 2019-09-20 | 西安交大捷普网络科技有限公司 | 一种基于插件技术的漏洞扫描方法与*** |
-
2021
- 2021-06-30 CN CN202110732512.7A patent/CN113434217B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779252A (zh) * | 2012-06-29 | 2012-11-14 | 北京神州绿盟信息安全科技股份有限公司 | 漏洞扫描器及其插件调度方法 |
JP2016149055A (ja) * | 2015-02-13 | 2016-08-18 | 三菱電機株式会社 | 脆弱性検証装置および脆弱性検証プログラム |
CN108595963A (zh) * | 2018-04-26 | 2018-09-28 | 杭州迪普科技股份有限公司 | 一种漏洞扫描方法和装置 |
CN110263542A (zh) * | 2019-05-10 | 2019-09-20 | 西安交大捷普网络科技有限公司 | 一种基于插件技术的漏洞扫描方法与*** |
Non-Patent Citations (1)
Title |
---|
谢惠琼等: "插件技术在漏洞分类扫描中的应用", 广东工业大学学报 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338240A (zh) * | 2022-03-07 | 2022-04-12 | 浙江网商银行股份有限公司 | 漏洞扫描方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113434217B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dinh et al. | Favocado: Fuzzing the Binding Code of JavaScript Engines Using Semantically Correct Test Cases. | |
CN111695156A (zh) | 业务平台的访问方法、装置、设备及存储介质 | |
CN108960830B (zh) | 智能合约的部署方法、装置、设备及存储介质 | |
CN111831538A (zh) | 调试方法、装置以及存储介质 | |
CN103106368A (zh) | 一种面向等级保护的漏洞扫描方法 | |
WO2022095518A1 (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN110070360B (zh) | 一种事务请求处理方法、装置、设备及存储介质 | |
CN104281808A (zh) | 一种通用的Android恶意行为检测方法 | |
CN112558946A (zh) | 一种生成代码的方法、装置、设备和计算机可读存储介质 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
CN105573733A (zh) | 浏览器与web前端通信的方法、web前端及*** | |
CN111464528A (zh) | 网络安全防护方法、***、计算设备和存储介质 | |
CN113268684A (zh) | 数据处理方法、装置、终端设备以及存储介质 | |
CN112416458A (zh) | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 | |
CN111447176A (zh) | 内网安全访问外网的方法、装置、计算机设备及存储介质 | |
CN111242462A (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
CN102982217A (zh) | 丝印的处理方法和装置 | |
CN113434217B (zh) | 漏洞扫描方法、装置、计算机设备及介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
Pecka et al. | Privilege escalation attack scenarios on the devops pipeline within a kubernetes environment | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN113434254A (zh) | 客户端部署方法、装置、计算机设备及存储介质 | |
CN110287089B (zh) | 一种基于中间格式及smt技术的微内核ipc验证方法 |
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 |