云平台安全检测方法与流程

文档序号:17429712发布日期:2019-04-17 03:20阅读:828来源:国知局
云平台安全检测方法与流程
本发明涉及信息安全
技术领域
,具体而言,涉及一种云平台安全检测方法。
背景技术
:面对新型网络攻击手段的出现和高安全度网络对安全的特殊需求,全新安全防护防范理念的网络安全技术――“网络隔离技术”应运而生。网络隔离技术的目标是确保隔离有害的攻击,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网间数据的安全交换。随着云计算的发展,集中管理的云计算中心容易成为黑客攻击的重点目标。由于系统的巨大规模以及前所未有的开放性与复杂性,其安全性面临着比以往更为严峻的考验。技术实现要素:有鉴于此,本发明的目的在于提供一种云平台安全检测方法,旨在为云平台安全性提供检测方法。为了实现上述目的,本发明提供以下技术方案:一种云平台安全检测方法,包括以下步骤:接收测试请求;如果所述测试请求是关于数据隔离检测的请求,则将所述测试请求转发给数据隔离检测模块;如果所述测试请求是关于数据加密检测的请求,则将所述测试请求转发给数据加密检测模块;如果所述测试请求是关于漏洞扫描的请求,则将所述测试请求转发给漏洞扫描模块;接收数据隔离检测模块、数据加密检测模块或漏洞扫描模块反馈的测试数据,并展示。本技术方案中,所述方法为云平台提供了安全性检测方法,所述方法涉及数据隔离安全性、数据加密安全性和漏洞扫描安全性等,检测涉及的范围较宽,检测的全面性更高,提高了云平台面对攻击的抵御能力。作为上述技术方案的优选,所述云平台安全检测方法具体包括以下步骤:网站服务层接收测试请求;网站服务层将所述测试请求转发给转发单元层;如果所述测试请求是关于数据隔离检测的请求,则所述转发单元层将所述测试请求转发给数据隔离检测模块;所述数据隔离检测模块进行测试、汇总测试数据、并将汇总后的测试数据反馈给所述转发单元层;如果所述测试请求是关于数据加密检测的请求,则所述转发单元层将所述测试请求转发给数据加密检测模块;所述数据加密检测模块进行测试、汇总测试数据、并将汇总后的测试数据反馈给所述转发单元层;如果所述测试请求是关于漏洞扫描的请求,则所述转发单元层将所述测试请求转发给漏洞扫描模块;所述漏洞扫描模块进行测试、汇总测试数据、并将汇总后的测试数据反馈给所述转发单元层;所述转发单元层接收所述数据隔离检测模块、数据加密检测模块或漏洞扫描模块反馈的汇总后的测试数据,并将所述汇总后的测试数据反馈给所述网站服务层;所述网站服务层接收所述汇总后的测试数据,并展示。作为上述技术方案的优选,所述数据隔离检测对以下各要点中的至少一种进行检测:虚拟磁盘隔离安全性;虚拟机间网络服务数据包旁路安全性;以及,虚拟机故障隔离安全性。作为上述技术方案的优选,虚拟磁盘隔离安全性检测的方法包括以下步骤:以virtio环形缓冲区为旁路点,当来宾操作系统调用virtqueueapi中的kick函数之后,旁路出virtio缓冲池中的磁盘数据信息,并将所述磁盘数据信息保存至宿主硬盘中;对所述磁盘数据信息进行检测分析。作为上述技术方案的优选,虚拟机间网络服务数据包旁路安全性的方法包括以下步骤:在两台虚拟机之间构建不加密的网络流以模拟虚拟机之间的通讯,虚拟机之间采用明文传输的方式传输数据包;在宿主机的物理网卡处抓取数据包,并根据抓取的内容判断虚拟机之间的网络是否隔离。作为上述技术方案的优选,虚拟机故障隔离安全性检测的方法包括以下步骤:接收手动控制信息,使虚拟机启动蓝屏批处理脚本;物理机调用libvirt的接口以监控虚拟机前后内存详细信息的变化。作为上述技术方案的优选,所述数据加密检测对以下各要点中的至少一种进行检测:engine服务器与vdsm间通信机制安全性;engine服务器云平台管理协议通信加密安全性;以及,engine服务器与ldap之间通信加密安全性。作为上述技术方案的优选,engine服务器与vdsm间通信机制安全性检测的方法包括以下步骤:在hypervisor上监听vdsm的54321端口,使用wireshark软件截取客户端发来的数据包;根据规则截取出的数据段内容,对数据段内容进行规则匹配,如果不能匹配出明文字符,则判定engine服务器与vdsm间通信加密,如果能匹配出明文字符,则判定engine服务器与vdsm间通信未加密。作为上述技术方案的优选,engine服务器云平台管理协议通信加密安全性检测的方法包括以下步骤:在hypervisor上监听node的22号端口,当ovirt-engine中创建虚拟机时,ovirt-engine使用自己的公钥并通过ssh协议访问主机,此时使用wireshark软件截取数据包;根据截取的数据段内容,查找数据的加密标志位信息,如果发现加密标志位,则判定加密成功;如果未发现加密标志位,则判定为未加密。作为上述技术方案的优选,engine服务器与ldap之间通信加密安全性检测的方法包括以下步骤:在用户登录的过程中,监控ldap端口映射和ip,抓取相应的数据流;检测数据流中的数据信息,查看是否存在明文传输的现象或者是否具有加密标志位,如果不存在明文传输现象或具有加密标志位,则判定加密成功。与现有技术相比,本发明具有以下有益效果:所述方法为云平台提供了安全性检测方法,所述方法涉及数据隔离安全性、数据加密安全性和漏洞扫描安全性等,检测涉及的范围较宽,检测的全面性更高,提高了云平台面对攻击的抵御能力。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简要介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关附图。图1所示为实施例中提供的云平台安全检测方法的示意图。具体实施方式下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚完整的描述。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。基于本发明的实施例,本领域技术人员在没有创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。请参阅图1所示,本实施例提供了一种云平台安全检测方法,所述检测方法主要包括以下步骤:接收测试请求;如果所述测试请求是关于数据隔离检测的请求,则将所述测试请求转发给数据隔离检测模块;如果所述测试请求是关于数据加密检测的请求,则将所述测试请求转发给数据加密检测模块;如果所述测试请求是关于漏洞扫描的请求,则将所述测试请求转发给漏洞扫描模块;接收数据隔离检测模块、数据加密检测模块或漏洞扫描模块反馈的测试数据,并展示。基于上述检测方法,本实施例给出一些具体可实施方式的举例。例如,上述方法可由一个被划分为四层的测试系统完成,该测试系统的各层分别为网站服务层(webservice)、转发单元层(switchserver)、engine_ta/node_ta层,以及具体的测试模块。其中,webservice主要负责与用户交互,接收测试请求,并将请求转发给switchserver;webservice还负责最终展示测试结果。switchserver与engine_ta/node_ta层之间可采用master-slave结构,即唯一一个master负责管理和控制所有slave并负责尝试与数据库沟通,slave负责自己的安全测试与报告。switchserver为所述master,engine_ta/node_ta层为所述slave,webservice后端想要调用具体的测试模块,不能直接与各测试模块通信,需要委托switchserver以实现对各测试模块的控制。如果所述测试请求是关于数据隔离检测的请求,则switchserver通过engine_ta/node_ta层调用数据隔离检测模块,所述数据隔离检测模块进行测试、汇总测试数据、并将汇总后的测试数据反馈给switchserver。如果所述测试请求是关于数据加密检测的请求,则switchserver通过engine_ta/node_ta层调用数据加密检测模块,所述数据加密检测模块进行测试、汇总测试数据、并将汇总后的测试数据反馈给switchserver。如果所述测试请求是关于漏洞扫描的请求,则switchserver通过engine_ta/node_ta层调用漏洞扫描模块,所述漏洞扫描模块进行测试、汇总测试数据、并将汇总后的测试数据反馈给switchserver。switchserver使用restful命令来与engine_ta/node_ta层通讯,这些restful命令都是基于http协议,相当于http的载荷。调用方式跟普通的http是一样的,共有get、post、put、delete这四种。python下urllib、requests两个库都可以用,这里使用requests,写起来简单代码易读性强,或者也可以用switch项目里的utility.py工具,里面有几个函数提供了http请求的操作。请求的参数以及返回的数据都是json格式。更具体的,网站服务器可基于flask框架,其内含一个switchclient模块来与switchserver交互,当用户发起测试请求时,switchclient首先找到switchserver,只有switchserver知道请求对应的服务应该在哪台主机上运行,switchserver将请求信息转发给对应的测试模块,测试模块完成测试后将结果返回给switchserver,由switchserver通知web测试完成。工作时,首先启动switchserver,switchserver启动后第一步先读取配置文件即switch_server.conf,该配置文件包含以下信息:switchserver根据配置文件做必要的设置后,会注册api_map。注册api_map的过程就是注册restfulapi接口的过程,switchserver通过restfulapi来和其它节点通信。启动时注册的资源及路径列表如下:restful路径资源类说明switch/versionversion获取或设置版本信息switch/nodenode节点列表信息switch/node/<string:ip>nodeid指定节点信息switch/targettarget指定执行测试模块的主机switch/servtagservtag测试服务标识switch/tasktask测试任务switch/reportreport测试报告信息switch/globalglobal全局变量信息switchserver注册这些资源后继续监听8083端口,接收并相应传送来的restful信息。当engine_ta、node_ta启动后,首先调用switchserver的restfulapi注册自己,然后解析自己的配置文件(与switchserver方式相同),最后向switchserver注册自己的服务(如数据隔离检测、数据加密检测等),engine_ta和node_ta继续监听8085端口,通过restfulapi与switchserver进行信息交互。例如,上述方法中数据隔离检测模块进行数据隔离安全性检测时,对以下各要点中的至少一种进行检测:虚拟磁盘隔离安全性;虚拟机间网络服务数据包旁路安全性;以及,虚拟机故障隔离安全性。其中,对于虚拟磁盘隔离安全性检测,考虑到virtio是半虚拟化管理程序hypervisor中位于设备之上的抽象层。virtio对hypervisor中的一组通用模拟设备进行抽象。该方式允许hypervisor导出一组通用的模拟设备,并通过一个通用的应用编程接口(api)进行调用。virtio的前端驱动程序在来宾操作系统中实现,后端驱动程序在hypervisor中实现,同时还定义了两个层来支持来宾操作系统到hypervisor的通信。每个virtio设备都通过virtqueue进行大块数据传输,通过分析virtqueue数据的传输机制以便在合适的安全点(不影响设备的功能)旁路出设备传输的数据。virtqueue又称虚拟队列,由客户机将buffer插入其中,每个buffer都是一个分散聚集数组。根据上述对virtio框架的理解,最佳旁路点选定于环形缓存区中,最佳旁路时间应该在来宾操作系统调用virtqueueapi中的kick函数之后。因此,本实施例提供的虚拟磁盘隔离安全性检测包括以下步骤:以virtio环形缓冲区为旁路点,当来宾操作系统调用virtqueueapi中的kick函数之后,旁路出virtio缓冲池中的磁盘数据信息,并将所述磁盘数据信息保存至宿主硬盘中;对所述磁盘数据信息进行检测分析。其中,对于虚拟机间网络服务数据包旁路安全性检测,考虑到同一台物理机之上的虚拟机之间是共享宿主机物理网卡,而kvm使用hypervisor对虚拟机进行管理,所以虚拟机之间的通信数据对于hypervisor是可见的。在宿主机上创建两台虚拟机,虚拟机默认使用桥接的方式进行网络通信,宿主机上会产生一个vrbr0这样的虚拟网络接口,它是一个虚拟的以太网桥,可以为绑定到上面虚拟网络接口转发数据包,所以虚拟机间网络服务数据包旁路安全性检测可分为如下步骤:在两台虚拟机之间构建不加密的网络流以模拟虚拟机之间的通讯(im,ftp),例如用python完成一个未加密的socket-udp通信程序,虚拟机之间采用明文传输的方式传输数据包;此时数据包的数据必然会经过物理网卡,所以可在宿主机的物理网卡处,使用wireshark软件工具抓取数据包,并根据抓取的内容判断虚拟机之间的网络是否隔离。其中,虚拟机故障隔离安全性检测包括以下步骤:接收手动控制信息,使虚拟机启动蓝屏批处理脚本;物理机调用libvirt的接口以监控虚拟机前后内存详细信息的变化。具体的,本项检测功能中,设计用taskkill终止wininit.exe这个windows7系统核心进程。实现该检测功能的检测模块主要用于构造蓝屏的批处理文件,以实现在手动启动时可使虚拟机蓝屏;还用于在物理机通过调用libvirt的接口检测虚拟机的内存等信息的变化,其中libvirt是用于管理虚拟化平台的开源的api。此外,实现该检测功能还需要若干检测子模块,若干检测子模块主要包括批处理模块、数据捕获模块和数据显示模块,手动启动虚拟机中的批处理模块触发测试条件。数据捕获模块对数据进行捕获并由数据显示模块完成测试报告在页面的显示。函数调用过程:用户点击测试请求后,由web负责调用测试函数。该指标测试入口地址为agent_bluescreen_scan.py中的bluescreen_scan()函数,该函数负责响应调用下层测试函数,将测试结果返回给web。下层函数主要是libvirt_memory()函数,该函数功能为登录到libvirt,调用libvirt的virth命令获取运行状态中的虚拟机的内存信息,将内存信息返回给上层函数。例如,上述方法中数据加密检测模块进行数据隔离安全性检测时,对以下各要点中的至少一种进行检测:engine服务器与vdsm间通信机制安全性;engine服务器云平台管理协议通信加密安全性;以及,engine服务器与ldap之间通信加密安全性。其中,对于engine服务器与vdsm(virtualdesktopservermanager虚拟桌面服务器管理器)间通信机制安全性检测,考虑到在ovirt的架构上,engine服务器和node(网络连接的端点)的通信模型使用基于json-rpc通信的消息机制。json-rpc是基于json的跨语言远程调用协议。json-rpc协议非常简单,发起远程调用时向服务端传输数据格式;服务器收到调用请求,处理方法调用,将方法效用结果效应给调用方;返回数据格式。vdsm为不同的传输监听提供不同的端口,engine服务器通过使用其中一个协议的reactor或者xml-rpc的apachehttp客户端来发送消息,vdsm使用合适的传输reactor来解析消息,然后消息的内容被发送到一个json-rpc服务器执行。服务器解析json数据,然后调用合适的方法到一个桥接上,这个桥接被映射到负责执行command的相应的vdsm对象中。在engine服务器中添加一台新的主机时,宿主机会收到通过engineca签发的证书,ovirt-engine和主机之间的通信通过ssl连接,该连接要通过engine的证书和上面提到vdsm证书互相进行验证才能建立成功。vdsm为该连接提供54321端口。为此,本实施例中所述的engine服务器与vdsm间通信机制安全性检测方法可包括以下步骤:在hypervisor上监听vdsm的54321端口,使用wireshark软件截取客户端发来的数据包;根据规则截取出的数据段内容,对数据段内容进行规则匹配,如果不能匹配出明文字符,则判定engine服务器与vdsm间通信加密,如果能匹配出明文字符,则判定engine服务器与vdsm间通信未加密。其中,对于engine服务器云平台管理协议通信加密安全性检测,考虑到云平台管理协议传输主要是通过node的22端口实现,node的22端口采用ssh协议进行通信。ssh(secureshell)为建立在应用层和传输层基础上的安全协议。利用ssh协议可以有效防止远程管理过程中的信息泄露问题。透过ssh可以对所有传输的数据进行加密,也能够防止dns欺骗和ip欺骗。ssh实现方式是:客户端向ssh服务器发出请求,服务器将自己的公钥返回给客户端;客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器;服务器接收到客户端传送的密码,用自己的私钥解码,如果结果正确,则同意登录,建立起连接。为此,本实施例中所述的engine服务器云平台管理协议通信加密安全性检测方法可以包括以下步骤:在hypervisor上监听node的22号端口,当ovirt-engine中创建虚拟机时,ovirt-engine使用自己的公钥并通过ssh协议访问主机,此时使用wireshark软件截取数据包;根据截取的数据段内容,查找数据的加密标志位信息,如果发现加密标志位,则判定加密成功;如果未发现加密标志位,则判定为未加密。其中,对于engine服务器与ldap之间通信加密安全性检测,考虑到ldap(lightweightdirectoryaccessprotocol)是轻量目录访问协议,从x.500目录访问协议的基础上发展过来的,主要是提供一个统一认证的解决方案。ldap服务器位于engine服务器的外部,提供用户信息和用户验证。ovirt提供ldap的服务器接口进行域和服务的认证,服务器接口使用ldap协议进行通信。将ldap添加到管理中心的配置中(使用engine-mange-domain命令)之后,ldap中的用户可添加为ovirt用户。在engine服务器平台加入extension-ldap插件,通过配置后加入engine服务器平台对ldap服务器的认证信息,当engine服务器有用户登陆的时候,engine服务器就会连接到外部ldap服务器之中,查询用户是否有相应的权限。为此,本实施例中所述的engine服务器与ldap之间通信加密安全性检测方法可以包括以下步骤:在用户登录的过程中,监控ldap端口映射和ip,抓取相应的数据流;检测数据流中的数据信息,查看是否存在明文传输的现象或者是否具有加密标志位,如果不存在明文传输现象或具有加密标志位,则判定加密成功。例如,对于漏洞扫描检测,本实施例提供以下检测方法:针对kvm、vdsm、libvirt、ovirt、qemu等产品的已知漏洞进行检测,覆盖漏洞库包括cve漏洞信息库、oval等。将cve漏洞信息库中的漏洞id、发布时间、严重等级、详细描述等信息,保存在本地数据库中(ovirt_flaw_scan),并覆盖oval漏洞库,对其漏洞信息进行分类筛选。本地数据库采用sqlite,对应云平台测试系统漏洞信息表格式和内容设计如下:检测kvm、qemu、libvirt、ovirt和qemu的产品版本号,匹配漏洞库中对应的产品及其版本号的漏洞信息,呈现给web界面。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员,在本发明揭露的技术范围内,可轻易想到变化或替换,都应该涵盖在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1