基于区块链的虚拟环境安全检测方法、装置以及存储介质与流程

文档序号:26101630发布日期:2021-07-30 18:12阅读:70来源:国知局
本申请涉及安全监控领域,特别是涉及一种基于区块链的虚拟环境安全检测方法、装置以及存储介质。
背景技术
::现有的虚拟化平台安全监控包括基于网络层(sdn)的各种安全防护工具,比如waf、iptables和流量监控。还包括基于主机的agentless漏洞扫描以及基线检查等等。上述安全防护工具,虽然是虚拟机无感知无侵入组件,但仍旧不够全面,并且虚拟机(gustos)内核的防护就不够。而且上述防护工具分析结果也是通过中心服务器来存储的,并存在以下安全隐患:由于该系统是基于中心化的安全监控系统,因此一旦有人非法侵入各种安全组件的监控服务器并修改监控服务器存储的信息,则无法实现对虚拟化平台的监控。针对上述的现有技术中存在的虚拟化平台安全监控系统对虚拟机内核的防护不够,并且容易被侵入和篡改,从而无法对虚拟化平台进行监控的技术问题,目前尚未提出有效的解决方案。技术实现要素:本公开的实施例提供了一种基于区块链的虚拟环境安全检测方法、装置以及存储介质,以至少解决现有技术中存在的虚拟化平台安全监控系统对虚拟机内核的防护不够,并且容易被侵入和篡改,从而无法对虚拟化平台进行监控的技术问题。根据本公开实施例的一个方面,提供了一种基于区块链系统的虚拟环境安全检测方法,用于待检测的虚拟化平台。其中方法包括:通过设置于虚拟化平台的操作系统层与虚拟机之间的信息采集程序,采集虚拟机的第一配置信息;通过设置于虚拟化平台的第一区块链程序,根据第一配置信息生成相应的第一交易信息;将第一交易信息在区块链系统内广播,并触发区块链系统的校验节点对第一配置信息进行校验,其中第一区块链程序使得虚拟化平台能够实施区块链系统的至少一部分操作。根据本公开实施例的另一方面,还提供了一种基于区块链系统的虚拟环境安全检测方法,用于对虚拟化平台的虚拟机的配置信息进行校验的校验节点,其中校验节点为区块链系统的节点。方法包括:接收待检测的虚拟化平台广播的第一交易信息,其中第一交易信息是与虚拟化平台的虚拟机的第一配置信息相对应的交易信息;响应于第一交易信息,对第一配置信息进行校验;以及在校验的校验结果为异常的情况下,在区块链系统广播相应的第三交易信息,其中第三交易信息与虚拟机的地址对应。根据本公开实施例的另一方面,还提供了一种基于区块链系统的虚拟环境安全检测方法,用于对虚拟化平台中的虚拟机进行检测的监控设备。方法包括:通过预设的第二区块链程序,从区块链系统接收校验节点所广播的第三交易信息,其中第三交易信息用于指示虚拟化平台中的虚拟机的第一配置信息存在异常;响应于第三交易信息,通过第二区块链程序从区块链系统获取第一配置信息;以及根据第一配置信息,对虚拟机进行安全检测。根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。根据本公开实施例的另一个方面,还提供了一种安全检测装置,用于待检测的目标设备。该装置包括:第一处理器;以及第一存储器,与第一处理器连接,用于为第一处理器提供处理以下处理步骤的指令:通过预设的信息采集程序,采集目标设备的第一配置信息;通过预设的第一区块链程序,根据第一配置信息生成相应的第一交易信息;将第一交易信息在区块链系统内广播,并触发区块链系统的校验节点对第一配置信息进行校验,其中第一区块链程序使得目标设备能够实施区块链系统的至少一部分操作。根据本公开的另一个方面,还提供了一种安全检测装置,用于对目标设备的配置信息进行校验的校验节点,其中校验节点为区块链系统的节点。该装置包括:第二处理器;以及第二存储器,与第二处理器连接,用于为第二处理器提供处理以下处理步骤的指令:接收待检测的目标设备广播的第一交易信息,其中第一交易信息是与目标设备的第一配置信息相对应的交易信息;响应于第一交易信息,对第一配置信息进行校验;以及在校验的校验结果为异常的情况下,在区块链系统广播相应的第三交易信息,其中第三交易信息与目标设备的地址对应。根据本公开的另一个方面,还提供了一种安全检测装置,用于对目标设备进行检测的监控设备。该装置包括:第三处理器;以及第三存储器,与第三处理器连接,用于为第三处理器提供处理以下处理步骤的指令:通过预设的第二区块链程序,从区块链系统接收校验节点所广播的第三交易信息,其中第三交易信息用于指示目标设备的第一配置信息存在异常;响应于第三交易信息,通过第二区块链程序从区块链系统获取第一配置信息;以及根据第一配置信息,对目标设备进行安全检测。从而,根据本公开的实施例,通过设置于虚拟化平台的操作系统层与虚拟机之间的信息采集程序采集各个虚拟机的配置信息,因此可以实现对虚拟机全面的信息采集,并且可以采集到虚拟机内核的信息,从而可以实现对虚拟机的深度监控。并且,本方案将虚拟化平台定期发送的配置信息所转换的交易信息存储到区块链系统中,从而可以以去中心化且不可篡改的方式存储配置信息,防止存储的配置信息被篡改。并且,本实施例的方法通过区块链系统中的校验节点进行校验,由于校验节点本身也是区块链系统中的节点,因此即便是个别校验节点发生故障,也仍然可以通过其他校验节点进行校验。进而,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对虚拟化平台进行监控的技术问题。附图说明此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;图2a是根据本公开实施例1所述的安全检测系统的示意图;图2b是根据本公开实施例1所述的虚拟化平台的示意图;图3是根据本公开实施例1的第一个方面所述的安全检测方法的流程示意图;图4是根据本公开实施例1的第一个方面所述的区块链系统中的数据区块示意图;图5是根据本公开实施例1的第二个方面所述的安全检测方法的流程示意图;图6是根据本公开实施例1的第三个方面所述的安全检测方法的流程示意图;图7是根据本公开实施例2的第一个方面所述的安全检测装置的示意图;图8是根据本公开实施例2的第二个方面所述的安全检测装置的示意图;以及图9是根据本公开实施例2的第三个方面所述的安全检测装置的示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本实施例,提供了一种基于区块链系统的虚拟环境安全检测方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现基于区块链系统的虚拟环境安全检测方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的基于区块链系统的虚拟环境安全检测方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的基于区块链系统的虚拟环境安全检测方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。图2a是根据本实施例所述的基于区块链系统的安全检测系统的示意图。参参考图2a所示,该系统包括:虚拟化平台100;校验节点210~2n0;以及监控设备300。其中,虚拟化平台100、校验节点210~2n0以及监控设备300都可以看作是区块链系统100的节点。并且监控设备300用于对虚拟化平台100进行监控,检测虚拟化平台100是否工作正常。参考图2a所示,虚拟化平台100中设置有信息采集程序110,用于采集虚拟化平台100的虚拟机配置信息。具体地参考图2b所示,虚拟化平台100由底层向上依次包括操作系统层105(例如其设置有linux操作系统)、信息采集程序110以及轻节点程序120、虚拟机层130。其中虚拟机层130中设置有多个虚拟机(vm)。其中,信息采集程序110用于采集虚拟机层130中的虚拟机的配置信息。其中,信息采集程序110所采集的配置信息包括不限于以下信息:1)虚拟机的基本信息,包括:系统版本,内核版本,网卡物理地址,服务端口列表,已安装软件列表,系统常用路径文件哈希(比如/usr/bin/,/sbin/等路径下的二进制文件);2)虚拟机的系统信息,包括:系统用户名列表、系统定时任务、系统启动项、bootloader配置;3)虚拟机的进程信息,包括:进程数、进程名、进程二进制路径、进程标识、进程运行时用户,以及进程打开的文件。4)虚拟机的内核信息,包括:root文件系统,/proc系统,syscall表等常见hook点信息。此外,虚拟化平台100还设置有轻节点程序120(即第一区块链程序),并且虚拟化平台100可以通过轻节点程序120接收信息采集程序110采集的配置信息,并且将所接收的配置信息打包成交易信息,并且进行序列化、签名和广播。从而通过轻节点程序120,使得虚拟化平台100可以作为区块链系统10的一个轻节点,实现与区块链系统10相关的操作。此外,轻节点程序120例如可以不做记账、出块功能。此外,参考图2a所示,校验节点210~2n0例如可以为区块链系统10中具有记账和出块功能的全节点(或记账节点),用于对虚拟化平台100所广播的交易信息中与配置信息相关的相关信息进行校验。具体地,参考图2a所示,以校验节点210为例进行说明。校验节点210中设置有三个智能合约,分别是与虚拟化平台100中的虚拟机层130中的虚拟机对应的数据合约211(即第一智能合约)、注册合约212(即第二智能合约)以及检查合约213(即第三智能合约)。具体来说,当部署上述智能合约的交易被确认后,上述智能合约的代码就存储于区块链系统10中,从而能被区块链节点(例如校验节点210~2n0)同步到本地。并且新部署的智能合约对应一个新地址。智能合约代码,有功能接口,可以被任何地址调用,也可以在合约里自定义设置只能被特定地址调用。合约调用的交易被确认后,产生的合约内部相关数据变更和新增日志,都会被所有区块链节点同步下来。其中尽管示出了校验节点210中部署有一个与虚拟化平台100中的虚拟机对应的数据合约211,但是根据本实施例的技术方案,校验节点210会为虚拟化平台的每个虚拟机均部署一个对应的数据合约。每新增一个虚拟机,就新增一个与之对应的数据合约。该新增的数据合约是在通过校验节点210中的注册合约212对新增的虚拟机进行注册后,由注册合约212来部署的。因此当被检测的虚拟机有多个时,校验节点210中也部署有多个相应的数据合约。而在本实施例中,数据合约211例如是与虚拟机131对应的数据合约。此外,数据合约212中设置有数据存储接口,用于在区块链系统中上链虚拟化平台100发送的交易信息。并且数据合约212可以调用注册合约212和检查合约213。此外,数据合约212还设置有历史信息查询接口,供监控设备300中的区块链应用程序310在区块链系统10中查询虚拟化平台100的历史交易信息,以便监控设备300从历史交易信息中获取虚拟化平台100在不同时间点采集的配置信息的相关信息。参考图2a所示,校验节点210中的注册合约212只部署一次,可以接收虚拟化平台100针对多个虚拟机的注册。该注册合约有注册接口、加密公钥分配接口以及注册信息查询接口。当针对新的虚拟机注册时,校验节点210调用该注册合约212的注册接口,在注册接口内部进行该虚拟机的原始信息(例如包括信息采集程序110初次采集的该虚拟机的配置信息)的存储。最终注册合约212中保存了该虚拟机的原始信息、针对该虚拟机所随机产生的公钥地址以及分配给该虚拟机的加密公钥。进一步参考图2a所示,校验节点210中的检查合约213也只部署一次,跟虚拟机的多少个无关。并且检查合约213设置有检查接口。其中虚拟化平台100每上传一次交易信息到数据合约211进行数据存储,数据合约211都会进行如下操作:1)从注册合约212的注册信息查询接口获取该虚拟机的注册信息;2)调用检查合约213的检查接口,对新存储信息和注册信息进行详细比对。如果检查合约213返回有异常,则由合检查合约213发出另外一笔交易,该交易的接收地址是该虚拟机专属加密公钥对应的地址。监控设备300通过区块链应用程序310实时关注这个地址,只要有交易发生,就可以立即进行接收和分析。此外,参考图2a所示,监控设备300上设置有区块链应用程序310(即第二区块链程序),从而监控设备300可以通过区块链应用程序310监控虚拟化平台100的虚拟机的专属加密公钥所对应的地址,并对虚拟化平台100的虚拟机进行实时监控。其中区块链应用程序310配置有root根私钥,所有根据root根私钥派生的公钥地址上发生的交易,都会被跟踪捕获。并且,区块链应用程序310可以根据捕获具体地址的交易信息,转化成可视化信息。例如,可以细分展示:系统异常,配置异常,进程异常,内核异常等信息。需要说明的是,系统中的虚拟化平台100、校验节点节点210和220以及监控设备300均可适用图1中所述的硬件结构。在上述运行环境下,根据本实施例的第一个方面,提供了一种基于区块链系统的虚拟环境安全检测方法,该方法由图2a中所示的待监控的虚拟化平台100实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:s302:通过设置于虚拟化平台的操作系统层与虚拟机之间的信息采集程序,采集虚拟机的第一配置信息;s304:通过设置于虚拟化平台的第一区块链程序,根据第一配置信息生成相应的第一交易信息;以及s306:将第一交易信息在区块链系统内广播,并触发区块链系统的校验节点对第一配置信息进行校验,其中第一区块链程序使得虚拟化平台能够实施所述区块链系统的至少一部分操作。正如
背景技术
:中所述的,现有的虚拟化系统的防护组件虽然是虚拟机无感知无侵入组件,但仍旧不够全面,并且虚拟机(gustos)内核的防护就不够。而且上述防护工具分析结果也是通过中心服务器来存储的,并存在以下安全隐患:由于该系统是基于中心化的安全监控系统,因此一旦有人非法侵入各种安全组件的监控服务器并修改监控服务器存储的信息,则无法实现对虚拟化平台的监控。为了解决该技术问题,本公开提供了一种基于区块链的虚拟环境安全检测方案。参考图2a、图2b以及图3所示,虚拟化平台100可以定期(例如每隔10秒钟)地通过信息采集程序110采集虚拟化平台100的虚拟机131的配置信息。当信息采集程序110在第一时刻采集虚拟化平台100的虚拟机131的第一配置信息后(s302),会通过轻节点程序120(即第一区块链程序)将该第一配置信息打包成交易信息(即第一交易信息)(s304),并且对该交易信息进行序列化和签名,并且在区块链系统内进行广播(s306)。其中,正如上面所述,该交易信息会触发校验节点210调用与虚拟化平台100的虚拟机131对应的数据合约211,其中数据合约211例如会将该交易信息存储于区块链系统10的区块链中。其中例如图4示出了区块链节点210和220所设置的区块链中存储有虚拟化平台100的不同时间点的交易信息的数据区块的示意图。参考图4所示,在第1时间点生成的交易信息1存储于区块1中,在第2时间点生成的交易信息2存储于区块2中,......,依次类推,在第n时间点生成的交易信息n存储于区块n中。并且进一步地,数据合约211例如会调用检查合约213对第一交易信息中与第一配置信息相关的第一相关信息进行校验。其中具体地通过调用智能合约对第一相关信息进行校验的过程,后文将进行详细说明。从而,通过这种方式,通过设置于虚拟化平台的操作系统层与虚拟机之间的信息采集程序采集各个虚拟机的配置信息,因此可以实现对虚拟机全面的信息采集,并且可以采集到虚拟机内核的信息,从而可以实现对虚拟机的深度监控。并且,本方案将虚拟化平台100定期发送的配置信息所转换的交易信息存储到区块链系统10中,从而可以以去中心化且不可篡改的方式存储配置信息,防止存储的配置信息被篡改。并且,本实施例的方法通过区块链系统10中的校验节点进行校验,由于校验节点本身也是区块链系统10中的节点,因此即便是个别校验节点发生故障,也仍然可以通过其他校验节点进行校验。进而,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对虚拟化平台进行监控的技术问题。可选地,在采集第一配置信息之前,方法还包括:通过信息采集程序,采集虚拟机的第二配置信息;通过第一区块链程序,根据第二配置信息,生成相应的第二交易信息;以及通过第一区块链程序,在区块链系统中广播第二交易信息,并触发校验节点根据第二交易信息中与第二配置信息相关的第二相关信息对虚拟机进行注册。具体地,校验节点210部署有注册合约212,从而用于对新增加的虚拟机进行注册。例如,虚拟化平台100在新创建虚拟机131后,会对虚拟机131的配置信息进行第一次采集,从而采集得到初始的配置信息(即第二配置信息),并根据该初始的配置信息进行注册。具体过程如下:1)虚拟化平台100通过信息采集程序110采集虚拟机131的初始的配置信息(即第二配置信息);2)虚拟化平台100的轻节点程序120(即第一区块链程序)在检测到本地没有布置虚拟机131的私钥的情况下,会随机产生一对公私钥,用于进行签名交易;3)虚拟化平台100的轻节点程序120在检查到没有区块链系统10所分配的与虚拟机131对应的加密公钥时,会构建交易单并进行签名和广播,从而该交易会调用校验节点210上的注册合约212(即第二智能合约)的加密公钥分配接口为虚拟机131分配一个专属加密用的公钥;4)轻节点程序120在获取虚拟机131专属加密的公钥后,会对第二配置信息进行加密等操作,从而生成第二交易信息并进行广播,从而调用校验节点的注册合约212的注册接口进行注册,并将第二交易信息中与第二配置信息相关的第二相关信息记录于注册信息中;5)校验节点的注册合约212还会部署一个新的数据合约211(即第一智能合约)与虚拟机131对应,并且将该数据合约211的地址、虚拟机131的私钥所对应的地址、虚拟机131专属的加密公钥添加到注册信息中,供后续查询使用;6)虚拟化平台100的轻节点程序120在调用注册合约212注册接口完毕后,可以调用注册合约212的查询接口从而返回相应的数据合约211的地址。从而通过以上操作,可以在虚拟机131新创建时,完成虚拟机131的注册和初始化。可选地,根据第一配置信息生成相应的第一交易信息的操作,包括:生成与第一配置信息对应的第一哈希值;以及根据第一哈希值,生成包含第一哈希值的第一交易信息;和/或根据第二配置信息,生成相应的第二交易信息的操作,包括:生成与第二配置信息对应的第二哈希值;以及根据第二哈希值,生成包含第二哈希值的第二交易信息。正如以上所述,虚拟化平台100的轻节点程序120(即第一区块链程序),在根据第一配置信息生成第一交易信息时,例如会根据第一配置信息生成相应的哈希值(即第一哈希值)。具体地,例如轻节点程序120可以根据虚拟机131的基本信息生成哈希值h10,根据虚拟机131的系统信息生成哈希值h20,根据虚拟机131的进程信息生成哈希值h30,然后根据虚拟机131的内核信息生成h40。然后进一步地,例如轻节点程序120还可以将哈希值h10、h20、h30以及h40进行哈希拼接后再做一次哈希运算得到哈希值h50。同理,哈希值h10例如可以是通过将基本信息的各个数据项分别求得哈希值之后进行拼接,然后进一步求哈希运算获得。哈希值h20、h30以及h40也可以通过类似的方式获得。然后轻节点程序120会根据第一哈希值生成相应的交易信息(即第一交易信息)。例如节点程序120可以利用虚拟机131的私钥对第一配置信息进行签名,然后将签名后的第一配置信息以及第一哈希值一起作为第一相关信息打包生成第一交易信息。或者是,节点程序120也可以只将第一哈希值作为第一相关信息打包生成第一交易信息。此外,参考生成第一交易信息的过程,轻节点程序120也可以通过相同的过程根据第二配置信息生成第二交易信息。从而通过这种方式,虚拟化平台100可以通过根据配置信息的哈希值生成相应的交易信息并进行广播。从而校验节点210的检查合约213在对第一相关信息进行校验时,可以只针对第一哈希值进行校验。检查合约213可以校验第一哈希值与第二哈希值是否相同,或者校验是第一哈希值与虚拟机131的历史配置信息的哈希值是否相同。从而通过这种方式,相对于逐一对配置信息的各个数据项进行校验,可以极大地提高校验的效率,减小校验的工作量。尽管本实施例中以虚拟机131为例对虚拟机的检测进行了说明,但是本领域技术人员应当知晓,该方法对于检测虚拟化平台100的其他虚拟机也是适用的。此外,根据本实施例的第二个方面,提供了一种基于区块链系统的安全检测方法,该方法由区块链系统10中的校验节点210实施。其中图5示出了该方法的流程示意图。参考图5所示,该方法包括:s502:接收待检测的虚拟化平台广播的第一交易信息,其中第一交易信息是与虚拟化平台的虚拟机的第一配置信息相对应的交易信息;s504:响应于第一交易信息,对第一交易信息中与第一配置信息相关的第一相关信息进行校验;以及s506:在校验的校验结果为异常的情况下,在区块链系统广播相应的第三交易信息,其中第三交易信息与虚拟机的地址对应。具体地,正如前面所述的,现有的虚拟化系统的防护组件虽然是虚拟机无感知无侵入组件,但仍旧不够全面,并且虚拟机(gustos)内核的防护就不够。而且上述防护组件分析结果,也是通过中心服务器来存储,并存在以下安全隐患:由于该系统是基于中心化的安全监控系统,因此一旦有人非法侵入各种安全组件的监控服务器并修改监控服务器存储的信息,则无法实现对虚拟化平台的监控。为了解决该技术问题,本公开提供了一种对虚拟化平台进行安全检测的技术方案。参考图2a、图2b以及图5所示,虚拟化平台100可以定期(例如每隔10秒钟)地通过信息采集程序110采集虚拟化平台100的虚拟机131的配置信息。当信息采集程序110在第一时刻采集虚拟机131的第一配置信息后,会通过轻节点程序120(即第一区块链程序)将该第一配置信息打包成交易信息(即第一交易信息),并且对该交易信息进行序列化和签名,并且在区块链系统内进行广播。然后,校验节点210会接收到该第一交易信息(s502)。其中,校验节点210可以首先通过数据合约211存储第一交易信息。其中例如图4示出了区块链节点210和220所设置的区块链中存储有虚拟化平台100的不同时间点的交易信息的数据区块的示意图。校验节点210然后响应于该第一交易信息,对从第一交易信息中提取的与第一配置信息相关的第一相关信息进行校验(s504)。并且,在校验的校验结果为异常的情况下,校验节点210在区块链系统10内广播相应的第三交易信息,并且该第三交易信息与虚拟机131的地址对应(s506)。从而,对虚拟机131进行监控的监控设备300可以接收校验节点210广播的第三交易信息,并从第三交易信息中检测出该第三交易信息是与虚拟机131的地址对应的。从而,监控设备300会进一步从区块链系统10获取第一交易信息,并根据第一交易信息中的第一相关信息对虚拟机131进行安全检测。从而,通过这种方式,将虚拟化平台100定期发送的配置信息所转换的交易信息存储到区块链系统10中,从而可以以去中心化且不可篡改的方式存储配置信息,防止存储的配置信息被篡改。并且,本实施例的方法通过区块链系统10中的校验节点进行校验,由于校验节点本身也是区块链系统10中的节点,因此即便是个别校验节点发生故障,也仍然可以通过其他校验节点进行校验。进而,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对虚拟化平台进行监控的技术问题。可选地,响应于第一交易信息,对第一相关信息进行校验的操作,包括:响应于第一交易信息,调用预设的第一智能合约,其中第一智能合约是与虚拟机对应的智能合约;通过第一智能合约调用预设的第二智能合约,并从第二智能合约获取虚拟机的注册信息,其中第二智能合约用于对虚拟机进行注册,注册信息包含第二相关信息,并且第二相关信息与虚拟机在区块链系统注册时所采集的第二配置信息相关;并且通过第一智能合约调用预设的第三智能合约,并将从第一交易信息中提取的第一相关信息和从注册信息中提取的第二相关信息传输至第三智能合约,其中第三智能合约用于对虚拟机的配置信息进行校验;以及通过第三智能合约根据第二相关信息对第一相关信息进行校验,并将校验的校验结果返回至第一智能合约。具体地,在校验节点210收到该第一交易信息后,会调用与虚拟机131对应的数据合约211(即第一智能合约),从而数据合约211会通过数据存储接口的内部代码先进行第一交易信息的存储。然后,数据合约211会调用注册合约212(即第二智能合约),并通过注册合约212的注册信息查询接口获取虚拟机131的注册信息。然后数据合约211继续调用检查合约213(即第三智能合约),并将从第一交易信息中提取的第一相关信息以及从注册信息中提取的上述第二相关信息传输至检查合约213进行校验。然后数据合约211通过检查合约213的检查接口获取检查合约213的返回值。从而根据本实施例的技术方案,在校验节点100通过设置分别与不同虚拟机对应的数据合约211,从而可以有效地针对不同的虚拟机进行相应的操作。并且在本实施例中,将不同虚拟机的注册信息分别记录于同一个注册合约212中,并且由单独的一个检查合约213进行校验操作,从而将注册以及校验的操作从与不同虚拟机对应的数据合约211中剥离,实现了数据合约211的轻量化设置。并且通过将与虚拟化平台100针对不同虚拟机进行交互的接口分别设置于不同的数据合约211中,而不是统一设置于注册合约212和检查合约213中,从而也实现了注册合约212和检查合约213的轻量化设置。并且通过以上设置方式,只要在校验节点210中部署一次注册合约212以及检查合约213即可。即便是在虚拟化平台100增加新的虚拟机的情况下,也只需要进一步部署与之对应的数据合约211即可实现对新的虚拟机的监控,从而也增强了监控系统的灵活性和可扩展性。可选地,在校验的校验结果为异常的情况下,在区块链系统广播第三交易信息的操作,包括:在校验的校验结果为异常的情况下,通过第一智能合约在区块链系统内广播第三交易信息。具体地,参考上面所述,数据合约211(即第一智能合约)通过检查合约213的检查接口获取检查合约213的返回值。从而当校验结果为异常的情况下,数据合约211通过检查合约213的检查接口获取该异常的返回值,然后数据合约211会根据该返回值生成一个交易,并将该交易的交易信息(即第三交易信息)在区块链系统10内广播,其中该交易的接收方为虚拟机131的专属加密公钥对应的地址。从而监控设备300上设置的区块链应用程序310在监控与虚拟机131的专属加密公钥对应的地址的交易时,会检测到该第三交易信息。并响应于该第三交易信息对虚拟机131进行检测。可选地,在接收第一配置信息之前,方法还包括:接收虚拟化平台广播的第二交易信息,其中第二交易信息用于对虚拟机进行注册;响应于第二交易信息,调用第二智能合约,其中第二智能合约用于对虚拟化平台创建的新虚拟机进行注册;通过第二智能合约部署第一智能合约;以及通过第二智能合约生成注册信息,并将第二相关信息以及第一智能合约的相关信息写入到注册信息。正如前面所述,校验节点210部署有注册合约212,从而用于对虚拟化平台100新创建的虚拟机进行注册。并且虚拟化平台100在创建新的虚拟机之后,会对新创建的虚拟机的配置信息进行第一次采集,从而采集得到初始的配置信息(即第二配置信息),并根据该初始的配置信息进行注册。例如,当虚拟化平台100新创建虚拟机131并对其进行初始化设置时需要在校验节点210上进行注册。具体过程如下:1)虚拟化平台100通过信息采集程序110采集虚拟机131的初始的配置信息(即第二配置信息);2)虚拟化平台100的轻节点程序120(即第一区块链程序)在检测到本地没有布置虚拟机131的私钥的情况下,会随机产生一对公私钥,用于进行签名交易;3)虚拟化平台100的轻节点程序120在检查到本地没有区块链系统10所分配的与虚拟机131对应的加密公钥时,会构建交易单并进行签名和广播,从而该交易会调用校验节点210上的注册合约212(即第二智能合约)的加密公钥分配接口为虚拟机131分配一个专属加密用的公钥;4)轻节点程序120在获取虚拟机131专属加密的公钥后,会对第二配置信息进行加密等操作,从而生成第二交易信息并进行广播,从而调用校验节点的注册合约212的注册接口进行注册,并将第二交易信息中与第二配置信息相关的第二相关信息记录于注册信息中;5)校验节点的注册合约212还会部署一个新的数据合约211(即第一智能合约)与虚拟机131对应,并且将该数据合约211的地址、虚拟机131的私钥所对应的地址、虚拟机131专属的加密公钥添加到注册信息中,供后续查询使用;6)虚拟化平台100的轻节点程序120在调用注册合约212注册接口完毕后,可以调用注册合约212的查询接口从而返回相应的数据合约211的地址。从而通过以上操作,可以在虚拟机131新创建时,完成虚拟机131的注册和初始化。此外,正如上面所述,注册信息中所记录的第二相关信息可以包括虚拟化平台100对虚拟机131首次采集的配置信息(即第二配置信息)的哈希值和虚拟化平台100的轻节点程序120通过虚拟机131的私钥签名后的首次采集的配置信息。或者第二相关信息也可以只包括虚拟化平台100对虚拟机131首次采集的配置信息(即第二配置信息)的哈希值。从而检查合约213在对第一相关信息进行校验时,例如首先将第一相关信息中的哈希值(例如哈希值h50)与第二相关信息中的哈希值(h50)进行校验,如果两个相关信息中的哈希值相同,则证明结果正常。如果两个相关信息中的哈希值不相同,则返回异常结果。从而通过这种方式,能够简化校验的过程,提高了校验的效率。此外,根据本实施例的第三个方面,提供了一种基于区块链系统的虚拟环境安全检测方法,该方法由图2中所示的监控设备300实现。图6示出了该方法的流程示意图,参考图6所示,该方法包括:s602:通过预设的第二区块链程序,从区块链系统接收校验节点所广播的第三交易信息,其中第三交易信息用于指示虚拟化平台中的虚拟机的第一配置信息存在异常;s604:响应于第三交易信息,通过第二区块链程序从区块链系统获取与第一配置信息相应的第一交易信息;以及s606:根据第一交易信息中与第一配置信息相关的第一相关信息,对虚拟机进行安全检测。正如上面所述的,在校验的校验结果为异常的情况下,校验节点210在区块链系统10内广播相应的第三交易信息,并且该第三交易信息与虚拟化平台100的虚拟机131的地址对应。从而,对虚拟机131进行监控的监控设备300可以通过区块链应用程序310(即第二区块链程序)接收校验节点210广播的第三交易信息,并从第三交易信息中检测出该第三交易信息是与虚拟机131的地址对应的。从而,监控设备300会进一步获取第一交易信息,并根据第一交易信息中的第一相关信息对虚拟机131进行安全检测。从而通过这种方式,监控设备300从区块链系统10获取与虚拟机131的配置信息对应的交易信息,并从交易信息中提取与配置信息相关的相关信息。由于根据配置信息所转换的交易信息被存储到区块链系统10中,从而可以以去中心化且不可篡改的方式存储配置信息,防止存储的配置信息被篡改。并且,本实施例的方法通过区块链系统10中的校验节点进行校验,由于校验节点本身也是区块链系统10中的节点,因此即便是个别校验节点发生故障,也仍然可以通过其他校验节点进行校验。因此通过这种方式,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对虚拟化平台的虚拟机进行监控的技术问题。可选地,根据第一相关信息,对虚拟机进行安全检测的操作,包括:从第一相关信息中获取相应的第一哈希值,以及根据第一哈希值对虚拟机进行安全检测。正如前面所述,虚拟化平台100的轻节点程序120在打包第一交易信息时,例如可以将第一配置信息对应的第一哈希值和用虚拟机131的私钥签名后的第一配置信息共同作为第一相关信息打包于第一交易信息中。或者,轻节点程序120会将第一哈希值作为第一相关信息打包于第一交易信息中。因此监控设备300的区块链应用程序310例如可以从区块链系统10获取第一交易信息,并从第一交易信息中获取与第一配置信息对应的第一哈希值(例如哈希值h50)。从而,区块链应用程序310例如可以对该第一哈希值进行校验,实现对虚拟机131的检测。例如区块链应用程序310可以对哈希值h50进行校验,具体校验方法包括:根据从区块链系统10获取的虚拟机131的历史配置信息的哈希值对第一哈希值进行校验。或者从区块链系统10的注册合约212的注册信息中获取第二相关信息对应的第二哈希值,并根据第二哈希值对第一哈希值进行校验。从而,区块链应用程序310可以通过校验哈希值对虚拟机131进行安全检测。并且进一步地,区块链应用程序310可以根据第一哈希值(例如哈希值h50)解析出第一配置信息所包括的各个子项目的哈希值(例如哈希值h10~h40),并对其分别进行校验,从而确定是哪个子项目的配置信息出现异常。并且,对于出现异常的子项目,可以进一步对其各个数据项哈希值进行校验,从而最终确定是哪个数据项出现异常。或者是,区块链应用程序310可以利用虚拟机131的公钥对用虚拟机131的私钥签名后的第一配置信息进行验证,从而生成验证后的第一配置信息。然后区块链应用程序310可以根据对第一哈希值的校验结果,进一步对验证后的第一配置信息进行检测。例如当经过第一哈希值的校验,发现是哈希值h10出现异常时,可以对验证后的第一配置信息中的基本信息进行检测。或者是经过第一哈希值的校验,发现哈希值h30出现异常时,可以对验证后的第一配置信息中的进程信息进行检测。从而通过以上方式,可以通过对哈希值进行校验的方式提高对虚拟机131进行检测的效率。此外监控设备310还可以通过区块链应用程序310将发生的交易信息保存到本地并且以弹出告警界面的方式,通知监控设备310的用户。此外,参考图1所示,根据本实施例的第四个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。从而根据本实施例,将虚拟化平台100定期发送的由虚拟机的配置信息所转换的哈希值存储到区块链系统200中,从而可以以去中心化且不可篡改的方式存储哈希值,防止存储的历史哈希值被篡改。进而,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对虚拟环境进行监控的技术问题。从而,根据本公开的实施例,将虚拟化平台定期发送的由虚拟机的配置信息所转换的交易信息存储到区块链系统中,从而可以以去中心化且不可篡改的方式存储配置信息,防止存储的配置信息被篡改。并且,本实施例的方法通过区块链系统中的校验节点进行校验,由于校验节点本身也是区块链系统中的节点,因此即便是个别校验节点发生故障,也仍然可以通过其他校验节点进行校验。进而,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对虚拟环境进行监控的技术问题。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2图7示出了根据本实施例的第一个方面所述的安全检测装置700,该装置700与根据实施例1的第一个方面所述的方法相对应,用于待检测的目标设备。参考图7所示,该装置700包括:第一处理器710;以及第一存储器720,与第一处理器710连接,用于为第一处理器710提供处理以下处理步骤的指令:通过预设的信息采集程序,采集目标设备的第一配置信息;通过预设的第一区块链程序,根据第一配置信息生成相应的第一交易信息;将第一交易信息在区块链系统内广播,并触发区块链系统的校验节点对第一配置信息进行校验,其中第一区块链程序使得目标设备能够实施区块链系统的至少一部分操作。可选地,在采集第一配置信息之前,第一存储器720还用于为第一处理器1110提供处理以下处理步骤的指令:通过信息采集程序,采集目标设备的第二配置信息;通过第一区块链程序,根据第第二配置信息,生成相应的第二交易信息;以及通过第一区块链程序,在区块链系统中广播第二交易信息,并触发校验节点根据第二配置信息对目标设备进行注册。可选地,根据第一配置信息生成相应的第一交易信息的操作,包括:生成与第一配置信息对应的第一哈希值;以及根据第一哈希值,生成第一交易信息;和/或根据第第二配置信息,生成相应的第二交易信息的操作,包括:生成与第二配置信息对应的第二哈希值;以及根据第二哈希值,生成第二交易信息。此外,图8示出了根据本实施例的第二个方面所述的安全检测装置800,该装置800与根据实施例1的第二个方面所述的方法相对应,用于对目标设备的配置信息进行校验的校验节点,其中校验节点为区块链系统的节点。参考图8所示,该装置800包括:第二处理器810;以及第二存储器820,与第二处理器810连接,用于为第二处理器810提供处理以下处理步骤的指令:接收待检测的目标设备广播的第一交易信息,其中第一交易信息是与目标设备的第一配置信息相对应的交易信息;响应于第一交易信息,对第一配置信息进行校验;以及在校验的校验结果为异常的情况下,在区块链系统广播相应的第三交易信息,其中第三交易信息与目标设备的地址对应。可选地,响应于第一交易信息,对第一配置信息进行校验的操作,包括:响应于第一交易信息,调用预设的第一智能合约,其中第一智能合约是与目标设备对应的智能合约;通过第一智能合约调用预设的第二智能合约,并从第二智能合约获取目标设备的注册信息,其中第二智能合约用于对目标设备进行注册,并且注册信息用于记录目标设备在注册时的第二配置信息;并且通过第一智能合约调用预设的第三智能合约,并将从第一交易信息中提取的第一配置信息和从注册信息中提取的第二配置信息传输至第三智能合约,其中第三智能合约用于对目标设备的配置信息进行校验;以及通过第三智能合约根据第二配置信息对第一配置信息进行校验,并将校验的校验结果返回至第一智能合约。可选地,在校验的校验结果为异常的情况下,在区块链系统广播第三交易信息的操作,包括:在校验的校验结果为异常的情况下,通过第一智能合约在区块链系统内广播第三交易信息。可选地,在接收第一配置信息之前,第二存储器820还用于为第二处理器810提供处理以下处理步骤的指令:接收目标设备广播的第二交易信息,其中第二交易信息用于对目标设备进行注册;响应于第二交易信息,调用第二智能合约,其中第二智能合约用于对接入区块链系统的新设备进行注册;通过第二智能合约部署第一智能合约;以及通过第二智能合约生成注册信息,并将第二配置信息以及第一智能合约的相关信息写入到注册信息。此外,图9示出了根据本实施例的第三个方面所述的安全检测装置900,该装置900与根据实施例1的第三个方面所述的方法相对应,用于对目标设备进行检测的监控设备。参考图9所示,该装置900包括:第三处理器910;以及第三存储器920,与第三处理器910连接,用于为第三处理器910提供处理以下处理步骤的指令:通过预设的第二区块链程序,从区块链系统接收校验节点所广播的第三交易信息,其中第三交易信息用于指示目标设备的第一配置信息存在异常;响应于第三交易信息,通过第二区块链程序从区块链系统获取第一配置信息;以及根据第一配置信息,对目标设备进行安全检测。可选地,根据第一配置信息,对目标设备进行安全检测的操作,包括:从第一配置信息中获取相应的第一哈希值,以及根据第一哈希值对目标设备进行安全检测。从而,根据本公开的实施例,将终端设备定期发送的配置信息所转换的交易信息存储到区块链系统中,从而可以以去中心化且不可篡改的方式存储配置信息,防止存储的配置信息被篡改。并且,本实施例的方法通过区块链系统中的校验节点进行校验,由于校验节点本身也是区块链系统中的节点,因此即便是个别校验节点发生故障,也仍然可以通过其他校验节点进行校验。进而,解决了现有技术中存在的安全监控系统容易被侵入和篡改,从而无法对终端设备进行监控的技术问题。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本公开所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1