本发明涉及互联网,更具体地,涉及一种基于openstack的漏洞挖掘方法。
背景技术:
1、全球网络安全威胁愈加复杂化,攻击手段多变,造成的经济损失不可估量。漏洞挖掘是网络安全领域的一个重要分支,专注于发现软件、系统或网络中的安全漏洞。传统的漏洞挖掘需要人工创建虚拟机,创建、分配网络,部署、安装、启动漏洞挖掘工具。过程复杂冗长极易出错,且效率低下,缺点明显。多人手工操作难以协调,产生冲突,或者资源的分配和利用率低下。人工操作过程复杂,且耗时,难以做到标准化,容易出错,也难以排查错误。实现漏洞挖掘自动化、标准化、流水化直接关系到生产效率的高低。
2、因此,如何提供一种基于openstack的漏洞挖掘方法成为本领域亟需解决的技术难题。
技术实现思路
1、本发明的目的是提供一种基于openstack的漏洞挖掘方法。
2、根据本发明,提供了一种基于openstack的漏洞挖掘方法,包括,
3、步骤s1、搭建包括控制节点、网络节点和多个计算节点的openstack集群;
4、步骤s2、维护计算节点的资源池;
5、步骤s3、制作afl虚拟机镜像;
6、步骤s4、创建漏洞挖掘任务,并从漏洞挖掘任务的请求参数中,生成任务虚拟机定义信息;
7、步骤s5、根据资源池检测漏洞挖掘任务的资源,记录创建漏洞挖掘任务过程中的漏洞挖掘任务对资源的需求,预留资源给任务虚拟机;
8、步骤s6、根据虚拟机定义信息在openstack集群的计算节点上,从镜像服务中拉取虚拟机镜像,创建server,从而生成任务虚拟机;
9、步骤s7、通过sshpass和ssh技术,把目标程序部署到任务虚拟机中;
10、步骤s8、通过sshpass和ssh技术,连接任务虚拟机,启动漏洞挖掘。
11、可选地,在所述步骤s2中,所述维护计算节点的资源池的方法包括:
12、从控制节点计算服务获取计算节点的列表,若资源池中未记录所述计算节点,则所述计算节点为新节点,可用资源为全部资源。
13、可选地,在所述步骤s3中,所述制作afl虚拟机镜像的方法包括:
14、启动一个虚拟机;
15、在所述虚拟机中安装ssh服务,设置允许密码登录;
16、在所述虚拟机中下载afl项目,并构建afl;
17、提交构建afl的虚拟机为afl镜像。
18、可选地,在所述步骤s4中,所述从漏洞挖掘任务的请求参数中,生成任务虚拟机定义信息的方法包括:
19、从漏洞挖掘任务的请求参数中,获取镜像信息、cpu参数、内存参数和磁盘参数;
20、根据所述镜像信息、cpu参数、内存参数和磁盘参数,生成任务虚拟机定义信息。
21、可选地,在所述步骤s4中,所述方法还包括:
22、从漏洞挖掘任务的请求参数中,获取目标url和目标启动命令,把任务保存到等待队列中。
23、可选地,在所述步骤s5中,所述根据资源池检测漏洞挖掘任务的资源的方法包括:
24、取出等待队列中的任务,根据任务虚拟机定义信息中的参数,匹配资源池中计算节点,获得候选节点列表;
25、若所述候选节点列表为空,说明没有资源可以调度所述漏洞挖掘任务,继续检测一个任务;若所述候选节点列表不为空,锁定需要的资源,所述漏洞挖掘任务由等待状态进入运行状态。
26、可选地,在所述步骤s5中,所述任务虚拟机定义信息中的参数包括:
27、cpu参数、内存参数和磁盘参数。
28、可选地,在所述步骤s6中,所述根据虚拟机定义信息在openstack集群的计算节点上,从镜像服务中拉取虚拟机镜像,创建server,从而生成符合任务需要的任务虚拟机之前,所述方法还包括:
29、在所述虚拟机的启动脚本中,设置xt_target环境变量,值为漏洞挖掘任务界面上的目标启动命令;
30、创建openstack port, 分配所述虚拟机的ip。
31、可选地,在所述步骤s6中,所述根据虚拟机定义信息在openstack集群的计算节点上,从镜像服务中拉取虚拟机镜像,创建server,从而生成符合任务需要的任务虚拟机之后,所述方法还包括:
32、绑定所述虚拟机和ip。
33、可选地,在所述步骤s6中,所述绑定所述虚拟机和ip之后,所述方法还包括:
34、取消预留给任务虚拟机的资源。
35、根据本发明公开的技术内容,具有如下有益效果:由于openstack具备管理大规模虚拟机集群的能力,能够实现虚拟机集群的负载均衡、任务分发、资源配额及安全控制等功能,且本身扩展性好,便于扩展集群的负载能力。使用虚拟机技术为漏洞挖掘提供了干净、独立的运行环境,从而解决了安全问题。通过对漏洞挖掘任务资源检测,任务排队,保障了openstack对虚拟机调度的有效性和稳定性,通过标准化、自动化,实现了大规模并行漏洞挖掘的能力。充分利用afl 的优势,基于覆盖率的模糊测试和基于变异的模糊测试,在给定时间内最大限度地生成独特测试用例的数量;基于语法的模糊测试擅长处理复杂的输入格式;学习输入数据的结构和规则,从而生成更真实、更具针对性的测试用例;多种故障检测机制,例如内存消毒器和崩溃监控,以准确识别程序崩溃和潜在漏洞,提升漏洞挖掘的能力。
36、通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
1.一种基于openstack的漏洞挖掘方法,其特征在于,包括:
2.根据权利要求1所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s2中,所述维护计算节点的资源池的方法包括:
3.根据权利要求1所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s3中,所述制作afl虚拟机镜像的方法包括:
4.根据权利要求1所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s4中,所述从漏洞挖掘任务的请求参数中,生成任务虚拟机定义信息的方法包括:
5.根据权利要求4所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s4中,所述方法还包括:
6.根据权利要求5所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s5中,所述根据资源池检测漏洞挖掘任务的资源的方法包括:
7.根据权利要求6所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s5中,所述任务虚拟机定义信息中的参数包括:
8.根据权利要求5所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s6中,所述根据虚拟机定义信息在openstack集群的计算节点上,从镜像服务中拉取虚拟机镜像,创建server,从而生成符合任务需要的任务虚拟机之前,所述方法还包括:
9.根据权利要求8所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s6中,所述根据虚拟机定义信息在openstack集群的计算节点上,从镜像服务中拉取虚拟机镜像,创建server,从而生成符合任务需要的任务虚拟机之后,所述方法还包括:
10.根据权利要求9所述的基于openstack的漏洞挖掘方法,其特征在于,在所述步骤s6中,所述绑定所述虚拟机和ip之后,所述方法还包括: