一种基于模糊测试的虚拟化漏洞发掘系统和方法

文档序号:8943339阅读:341来源:国知局
一种基于模糊测试的虚拟化漏洞发掘系统和方法
【技术领域】
[0001]本发明涉及网络信息安全领域,尤其涉及一种基于模糊测试的虚拟化漏洞发掘系统和方法。
【背景技术】
[0002]模糊测试:模糊测试是黑盒测试的一种具体技术,在安全性测试中越来越受到重视。它的原理是将大量的畸形数据输入到目标程序中,通过监测被测程序的异常来发现被测程序中可能存在的安全漏洞。它是一个典型的自动或半自动的过程。
[0003]随着科技的进步,越来越多的大型企业或者实验室趋向于使用虚拟化架构来节约服务器成本或者提高应用灵活性。虚拟化的实质是利用众多的虚拟机来代替原来的物理机来进行各项工作。在虚拟化平台中,每个用户不需要整套的硬件设备,只需一个终端显示设备。虚拟机运行在服务器上,由服务器分发给需要使用虚拟机的用户。
[0004]虚拟化技术是一种资源管理技术,是将计算机的各种实体资源,予以抽象、转换后呈现出来,打破实体机构间不可分割的障碍,提高了资源利用率,提高了运营效率。虚拟机(Virtual Machine,VM)是虚拟化技术的一种,VM是指可以像真实物理机一样运行应用程序的计算机的软件实现。
[0005]为了充分利用资源,可以在服务器上安装由虚拟机软件模拟出的一台虚拟机,SP逻辑上的服务器,在该虚拟机运行过程中,用户可以像对真实物理机的操作一样,对虚拟机进行操作。但通常情况下,虚拟机并非能时刻都保持正常运行,不可避免的出现异常以及因为代码漏洞导致的运行异常,这些异常如不能及时发现并处理,则会造成虚拟机处于异常运行状态,影响工作的正常开展,同时也会给运营商带来一定的经济损失。
[0006]因此,需要一种能主动挖掘虚拟机漏洞的技术来解决现有技术存在的问题。

【发明内容】

[0007]本发明的目的是针对现有技术的不足,提出一种基于模糊测试的虚拟化漏洞发掘方法和系统,该系统能及时发现虚拟化平台中可能存在的漏洞并为厂商提供修补意见,能够增加虚拟化平台的安全性。
[0008]本发明所述的一种基于模糊测试的虚拟化漏洞发掘系统包括一物理服务器及一计算机服务站,所述物理服务器与计算机服务站通过互联网实现互联互通;
所述的物理服务器上布置有基础虚拟化平台,在基础虚拟化平台上布置一层虚拟机,在一层虚拟机上再次布置二层虚拟机;所述一层虚拟机上布置有模糊测试监控模块,在二层虚拟机上布置有模糊测试模块;其中,所述模糊测试监控模块监控模糊测试模块的运行状态,所述模糊测试模块主要完成对虚拟化漏洞的检测;
所述计算机服务站上布置有异常收集模块、数据存储模块和展示模块;其中,所述异常收集模块主要从模糊测试监控模块中收集异常信息,同时还负责对物理服务器的监控;所述数据存储模块主要用于存储和分析异常信息;所述展示模块主要用于展示各种崩溃信息。
[0009]所述的模糊测试监控模块主要对进行模糊测试的对象进行监控,其主要包括虚拟机监控子模块、宿主机监控子模块,信息收集子模块及通信子模块4个功能子模块;其中,
所述虚拟机监控子模块主要监测模糊测试进行时虚拟机可能出现的异常状况;所述宿主机监控子模块主要监控一层虚拟机硬件资源占用情况;所述信息收集子模块负责收集一层虚拟机和二层虚拟机的信息,所述收集的各类主机信息将通过通信子模块传递给异常收集模块;所述通信子模块负责中间通信,向上将信息收集子模块收集的信息、导致异常的输入信息及一层虚拟机和二层虚拟机的状态信息发送给异常收集模块;向下与信息收集子模块通信并收集信息。
[0010]所述模糊测试模块包括守护进程子模块和测试子模块;其中所述的守护进程子模块负责向模糊测试监控模块发送信息以及负责产生随机输入;所述守护进程子模块负责向模糊测试监控模块发送信息中包含导致异常的上次输入或执行完一次测试后的测试完成消息,所述随机输入是根据虚拟化平台部件随机生成各类错误输入,所述的错误输入将提供给测试子模块使用;所述测试子模块是针对虚拟化各个组件单独生成的测试进程,所述守护进程子模块的随机输入通过进程间共享的方式传递给测试子模块。
[0011]所述异常收集模块包括数据通信子模块和心跳子模块;其中,所述心跳子模块主要负责管控物理服务器的运行,所述心跳子模块包括两个连接端,一个位于物理服务器上,另一个位于安装有异常收集模块的计算机工作站上,且两个连接端位于不同的计算机工作站中且能相互联通,以一定的时间间隔进行心跳测试;所述数据通信子模块负责监听模糊测试监控模块的连接并收集异常信息以及负责将异常信息存入数据存储模块。
[0012]所述数据储存模块包括存储子模块和数据分析子模块;其中,所述存储子模块负责以非机构的形式存储各类信息以及负责提供读写接口 ;所述数据分析子模块负责对异常信息进行分析以及提供错误提示或提示异常错误文件路径。
[0013]利用上述一种基于模糊测试的虚拟化漏洞发掘系统实现虚拟化漏洞发掘的方法包括工作流程、模糊测试模块工作流程、模糊测试监控模块工作流程及异常收集模块工程流程三部分;其中,
所述的工作流程步骤为:
步骤1:启动异常收集模块;
步骤2:异常收集模块通过服务器提供的IPMI接口远程启动物理服务器;
步骤3:物理服务器开机后,与异常收集模块建立心跳连接,并且自动启动基础虚拟化平台,开启一层虚拟机;
步骤4:模糊测试监控模块随一层虚拟机启动后自动启动;
步骤5:模糊测试监控启动(或重启)二层虚拟机,二层虚拟机中的模糊测试模块开机自动启动,模糊测试模块开启后的第一件事是向模糊测试监控模块发送上次输入;
步骤6:模糊测试模块产生一个输入保存起来,然后执行测试;如果二层虚拟机未崩溃,模糊测试模块向模糊测试监控模块发送一个测试完成消息,如果导致异常,模糊测试监控模块会自动重启二层虚拟机,跳到步骤5,否则等待12秒后继续进行下次测试,跳回步骤6 ;
步骤7:如果一层虚拟机崩溃,基础虚拟化平台自动重启二层虚拟机,跳至步骤4 ; 步骤8:如果物理服务器崩溃,异常收集模块会监测到,然后利用远程控制面板自动重启服务器,跳回步骤I ;
步骤9:异常收集模块将各类收集信息存入数据存储模块,数据存储模块对收集数据进行分析,发送至展示模块;
步骤10:展示模块展示异常错误信息、平台信息等;
所述模糊测试模块工作流程为:
步骤1:守护进程子模块随二层虚拟机开机而启动,启动后首先将上一次模糊测试执行内容发送给模糊测试监控模块,该输入保存在一个本地安全文件中;
步骤2:针对不同测试组件,进行相应的测试子模块初始化;
步骤3:产生一个针对步骤2中测试组件的随机输入,并保存至本地安全文件;
步骤4:新产生一个进程,执行测试子模块;
步骤5:向模糊测试监控模块发送测试完成消息;
步骤6:等待一定时间,模糊测试监控模块监控宿主机和虚拟机状态,如果出现异常,模糊测试监控模块会直接重启虚拟机,然后跳至步骤1,否则跳至步骤3继续执行;
所述模糊测试监控模块工作流程为:
步骤1:初始化信息收集子模块,根据配置文件,收集相应被测虚拟化组件信息,如VMM类型、版本、宿主机虚拟机系统版本等;当发生异常是,这些信息和异常输入一同发给异常收集模块;
步骤2:通过虚拟机管理接口启动二层虚拟机;
步骤3:建立UDP监听,接收来自模糊测试模块发送的消息,如果一定时间为收到消息,则重启二层虚拟机;如果收到异常输入消息,则将异常输入和信息收集子模块收集的信息一起发送至异常收集模块;如果收到测试完成消息,则通过虚拟机监控子模块、宿主机监控子模块查看虚拟机和宿主机状态,如果发生异常,则重启二层虚拟机;
所述异常收集模块工作流程为:
步骤1:启动心跳子模块,心跳子模块建立UDP监听来自物理服务器端的消息,心跳以一定时间段发生一次,如果超过一定时间段,则认为物理服务器异常,然后通过IPMI接口重启物理服务器;
步骤2:物理服务器心跳服务开启,并向心跳子模块发生心跳包;
步骤3:建立UDP监听来自各个模糊测试监控模块的连接,如果有异常消
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1