一种基于可信计算的批量云取证方法

文档序号:28861515发布日期:2022-02-12 01:00阅读:172来源:国知局
一种基于可信计算的批量云取证方法

1.本发明涉及可信计算、虚拟化安全、云取证等技术领域,具体为一种基于可信计算的批量云取证方法。


背景技术:

2.随着云计算技术的不断发展,虚拟机已经成为云服务商提供云计算服务的主要范式。因此,虚拟机被视为云计算安全威胁的主要攻击目标和受害者。敌手可以从内部(例如,获得超级管理特权,然后攻击其他无辜的虚拟机或宿主机)和外部(例如,通过应用程序的漏洞非法获取租户的数据)两个方面攻击云基础设施。云计算的快速发展,也使得其成为网络高级(数字)犯罪的攻击目标。
3.云计算取证(以下简称云取证)是数字取证科学在云环境中的应用,在威慑、打击云犯罪活动和维护用户权益上发挥着重要作用。云取证领域目前面临的技术问题主要集中在证据获取和证据分析两个阶段,具体包括对数据控制能力的缺失、多用户数据混杂、证据易失性问题、数据量大且格式众多、数据时间戳不一致、数据加密后难以分析等方面。其中前四个主要是证据获取阶段面临的问题,后两个主要是证据分析阶段面临的问题。在现有公开的云取证方法中,一个常见的假设是从云基础设施收集到数据总是可信的,事实上,云基础设施可能容易受到各种攻击。此外,虚拟机自省技术(vmi,virtual machine introspection)虽然在信息获取方面已经得到了学术界及产业界的广泛认可,但如果无法保证虚拟机监视器、固件和网络的完整性,所获得的信息任可能被篡改。
4.可信计算是一种信息安全的新技术,它主要从硬件、固件、操作系统和应用等方面综合采取措施,将大多数不安全因素控制在终端源头。可信计算技术通过无法篡改的物理安全芯片
‑‑‑
硬件可信平台模块(tpm,trusted platform module)来测量、存储和报告系统关键组件的完整性状态,保护系统中的关键组件不被破坏。
5.借助物理安全芯片tpm,基于可信计算技术,提出一种批量云取证方法,通过采集云虚拟机及宿主机运行状态证据信息来检查云基础设施的运行状态,可以及时发现异常的虚拟机。


技术实现要素:

6.针对上述问题,本发明的目的在于提供一种基于可信计算的批量云取证方法,基于可信计算技术构建从硬件tpm到虚拟机的信任链,对虚拟机和宿主机信任链上的证据信息进行批量取证、分析和验证,及时管控异常虚拟机,确保证据产生环境的可信。技术方案如下:一种基于可信计算的批量云取证方法,包括以下步骤:步骤1:构建可信的证据数据生成环境证据生成环境在启动过程中,从硬件可信平台模块出发,在宿主机启动时度量操作系统,将信任链从硬件可信平台模块传递至操作系统,保证宿主机操作系统的可信;通过
操作系统度量vmm(virtual machine monitor 虚拟机监视器),将信任范围扩展至vmm;然后由vmm度量虚拟机,将信任范围扩展至虚拟机,保证虚拟机基础环境中核心组件的安全以及虚拟机初始启动环境的安全可信;步骤2:证据数据批量取证通过位于vmm中的vmi验证代理在计算节点上按顺序收集每个虚拟机中的证据数据及虚拟机身份信息打包在一起;当收集完所有运行虚拟机的证据数据之后,再收集宿主机的度量日志文件和pcr值,实现同一计算节点上所有信任链证据信息的批量采集;步骤3:证据数据安全传输将所有运行虚拟机的证据数据组成一个数组,vmi验证代理程序对该数据进行加密,并传输到取证中心;步骤4:证据数据分析和验证取证中心的验证服务器收到计算节点的所有证据数据后,开始对数据进行验证分析;验证服务器程序首先检查数据的新鲜度、数据来源的真实性、数据的完整性和机密性,然后检查宿主机信任链及宿主机上信任链中各组件的完整性。
7.进一步的,所述步骤1具体包括:步骤1.1:核心可信度量根执行最初的可信度量,引导可信平台模块开始工作,验证基本输入输出系统完整性,将控制权交给基本输入输出系统;步骤1.2:基本输入输出系统初始化:基本输入输出系统启动后度量系统硬件、rom及主引导记录的完整性并记录及扩展度量值;之后装入主引导记录,随后把控制权交给主引导记录,主引导记录再度量os装载器的完整性,把控制权交给os装载器;步骤1.3:os装载器度量操作系统的完整性,并记录及扩展度量值,将控制权交给操作系统;步骤1.4:操作系统度量vmm的完整性,并记录及扩展度量值,将控制权交给vmm;步骤1.5:虚拟机监视器vmm度量虚拟可信根实例的完整性,并记录及扩展度量值,将控制权交给虚拟可信根;步骤1.6:虚拟可信根度量虚拟机的完整性,并记录及扩展度量值,将控制权交给虚拟机;步骤1.7:虚拟机度量应用程序的完整性,并记录及扩展度量值,将控制权交给应用程序。
8.更进一步的,所述步骤2具体包括:步骤2.1:在vmm中为每个虚拟机构建一个真实存在的vpcr列表,将列表中的每个字段对应一个vpcr,并将其与对应的虚拟可信根的vpcr进行数据同步;同时,将每个虚拟机中的存储度量日志文件的访问地址记录在vmm中虚拟机对应的数据结构中;步骤2.2:在虚拟机实例启动时通过vmi验证代理程序采集并记录每个虚拟机vsml访问地址;当需要收集虚拟机证据信息时,vmi代理程序通过之前存储的vsml内存地址采集每个虚拟机的vsml文件;步骤2.3:位于vmm中的vmi验证代理批量采集计算节点上运行的每个虚拟机的vsml文件和真实vpcr列表,并将每个虚拟机中的vsml文件、真实vpcr列表及虚拟机身份信息打包在一起,再收集宿主机的度量日志文件和pcr值,实现同一计算节点上所有信任链证
据信息的批量采集。
9.更进一步的,所述步骤3具体包括:步骤3.1:建立虚拟机证据数组dvm[],该数组中的每个元素就是一个虚拟机的证据信息,包括虚拟机的身份信息、虚拟机真实vpcr列表信息以及虚拟机中存储度量日志信息;步骤3.2:vmi验证代理先对数组中每个元素进行哈希运算,生成每个元素完整性度量值,然后按顺序对每个元素的哈希值再次进行迭代哈希,最终得到虚拟机证据完整性综合参考值hds;步骤3.3:位于vmm的vmi验证代理和取证中心的验证服务器之间建立通道并协商会话密钥和随机数nonce;步骤3.4:验证代理收集所有正在运行的虚拟机的真实vpcr列表和vsml,并且执行步骤3.2计算出hds;步骤3.5:验证代理采集宿主机信任链存储度量日志,并使用hds和nonce计算生成新的quote参考值,在通过tpm_quote命令收集宿主机pcr当前值;步骤3.6:使用会话密钥对数据包进行加密,并使用目的节点可信平台模块公钥对会话密钥进行加密,加密后将数据传输到取证中心的验证服务程序。
[0010]
更进一步的,所述步骤4中检查宿主机信任链及宿主机上信任链中各组件的完整性具体包括:步骤4.1:根据sml文件重现pcr扩展过程,比较计算结果与采集的当前pcr值,若两者一致,则表明sml未被篡改,否则该sml已经被破坏;步骤4.2:在验证sml完整性的基础上,将组件的度量值与基准数据库白名单中的参考值进行对比以验证各组件的完整性状态;若两者匹配,则组件通过验证;否则,组件程序已被更改,需要进一步检查组件是否进行了升级或是否已被攻击破坏;步骤4.3:根据vsml文件重现vpcr扩展过程,之后比较计算结果与采集的vpcr的当前值,若两者一致,则表明vsml未被篡改,否则该vsml日志已经被破坏;步骤4.4:在验证vsml完整性的基础上,将组件的度量值与基准数据库白名单中的参考值进行对比以验证各组件的完整性状态;若两者匹配,则组件通过验证;否则,组件程序已被更改,需要进一步检查组件是否进行了升级或是否已被攻击破坏。
[0011]
本发明的有益效果是:本发明通过可信计算技术构建的从硬件tpm到虚拟机的信任链,确保证据生成的环境可信;利用虚拟机自省技术以虚拟机无法感知的方式在虚拟机监视器vmm中批量收集虚拟机的信任链证据数据,计算每个虚拟机证据数据的完整性度量值,生成综合完整性参考值并加密传输证据数据到取证中心;收到证据数据后,取证中心的验证服务程序检查数据的新鲜性、机密性和完整性及数据来源的可靠性后,对信任链的完整性和各组件的完整性进行分析,验证证据数据的完整性以及证据产生环境的可信;能够及时管控异常虚拟机,确保证据产生环境的可信。
附图说明
[0012]
图1是证据数据生成环境信任链构建过程。
[0013]
图2是虚拟机证据数据加储过程。
[0014]
图3是证据数据安全传输过程。
[0015]
图4是数据验证分析过程。
具体实施方式
[0016]
下面结合附图和具体实施例对本发明做进一步详细说明。
[0017]
本发明提出了一种基于可信计算的批量云取证方法,具体步骤如下:步骤1:构建可信的证据数据生成环境。
[0018]
证据生成环境在启动过程中,从硬件可信平台模块出发,在宿主机启动时度量操作系统,将信任链从硬件可信平台模块传递至操作系统,保证宿主机操作系统的可信;通过操作系统度量虚拟机监视器vmm,将信任范围扩展至vmm;然后由vmm度量虚拟机,将信任范围扩展至虚拟机,保证虚拟机基础环境中核心组件的安全以及虚拟机初始启动环境的安全可信。
[0019]
系统在启动过程中,从系统级芯片tpm出发,遵循“先度量,再执行”的原则,通过信任链传递技术,机器的控制权在biso(basic input-output system 基本输入输出系统)、系统硬件、操作系统引导程序、操作系统、虚拟机监视器、虚拟机、应用程序之间依次传递。通过这种逐级度量、逐级信任的方式传递信任链,将度量结果扩展到平台配置寄存器(pcr,platform configure register)并记录度量日志(sml,stored measurement log),保证证据数据生成环境启动过程的安全可信。图1描述了生成证据数据环境的信任链构建的详细过程。
[0020]
(1)核心可信度量根crtm(core root of trusted for measurement,crtm))通常位于biso中,是系统启动后执行的第一段代码。它执行最初的可信度量,引导tpm开始工作,验证biso完整性,验证通过后,将控制权交给biso;(2)biso启动后度量系统硬件、rom及主引导记录mbr的完整性并记录及扩展度量值。之后装入mbr,随后把控制权交给mbr,mbr再度量os装载器(operating system loader操作系统装载器)的完整性,把控制权交给os;(3)os loader度量操作系统的完整性,并记录及扩展度量值,将控制权交给操作系统;(4)操作系统度量vmm的完整性,并记录及扩展度量值,将控制权交给vmm;(5)虚拟机监视器vmm度量vtpm(vtpm,virtual trusted platform module虚拟可信根)实例的完整性,并记录及扩展度量值,将控制权交给vtpm;(6)vtpm度量vm的完整性,并记录及扩展度量值,将控制权交给vm;(7)vm度量应用程序的完整性,并记录及扩展度量值,将控制权交给应用程序。
[0021]
步骤2:证据数据批量取证。
[0022]
证据数据包含虚拟机和宿主机中的pcr寄存器当前值及信任链度量日志。通过位于vmm中的vmi验证代理在计算节点上按顺序收集每个虚拟机中的证据数据及vm((virtual machine 虚拟机)身份信息打包在一起。当收集完所有运行虚拟机的证据数据之后,再收集宿主机的度量日志文件和pcr值,实现同一计算节点上所有信任链证据信息的批量采集。
[0023]
所述步骤2具体为:步骤2.1:在vmm中为每个虚拟机构建一个真实存在虚拟平台配置寄存器vpcr列
表,将列表中的每个字段对应一个vpcr寄存器,并将其与对应的vtpm的vpcr寄存器进行数据同步。同时,将每个虚拟机中的存储度量日志vsml,文件的访问地址记录在vmm中虚拟机对应的数据结构中;步骤2.2:在虚拟机实例启动时可通过vmi验证代理程序采集并记录每个虚拟机vsml访问地址。当需要收集虚拟机证据信息时,vmi代理程序可以通过之前存储的vsml内存地址采集每个虚拟机的vsml文件;步骤2.3:位于vmm中的vmi验证代理批量采集计算节点上运行的每个虚拟机的vsml文件和真实vpcr列表,并将每个虚拟机中的vsml文件、真实vpcr列表及vm身份信息打包在一起,再收集宿主机的度量日志文件和pcr值,实现同一计算节点上所有信任链证据信息的批量采集;步骤3:证据数据安全传输。证据数据传输阶段的主要工作是将证据数据安全地传输给取证中心,并保证传输过程中数据的新鲜性、机密性和完整性。在传输收集到的证据数据之前,vmi验证代理程序会对虚拟机证据数据进行加密后再传输到取证中心。
[0024]
图3描述了证据数据安全传输的过程,所述步骤3具体为:3.1:vmi验证代理为每个虚拟机的证据数据创建一个数据结构,数据结构中包括虚拟机的身份信息、虚拟机真实vpcr列表信息以及虚拟机中vsml日志信息;3.2:每个运行虚拟机的证据数据作为一个数组元素共同组成一个数组;3.3:vmi验证代理先对数组中每个元素进行哈希运算,生成每个元素完整性度量值,然后按顺序对每个元素的哈希值再次进行迭代哈希,最终得到一个完整性综合参考值hds;3.4:位于vmm的vmi验证代理和取证中心的验证服务器之间建立通道并协商会话密钥和随机数nonce;3.5:验证代理收集所有正在运行的vm的真实vpcr列表和vsml,并且执行步骤3.3计算出hds;3.6:验证代理采集宿主机信任链存储度量日志sml,并使用hds和nonce计算生成新的quote参考值,在通过tpm_quote命令收集宿主机pcr当前值;3.7:使用会话密钥对数据包进行加密,并使用目的节点tpm公钥对会话密钥进行加密,加密后将数据传输到取证中心的验证服务程序。
[0025]
图2描述了虚拟机证据数据传输之前,对其进行打包的过程:vmi验证代理会为每一个虚拟机的证据数据创建一个数据结构,数据结构中包括虚拟机的身份信息、虚拟机真实vpcr列表信息及虚拟机中vsml日志信息。所有运行虚拟机的证据数据组成一个数组,为了保证数组元素的完整性,vmi验证代理会计算数组中的每个元素的哈希值,并按顺序对哈希值进行迭代运算,得到整个数组的完整性综合参考值hds。具体操作如下:(1)建立虚拟机证据数组dvm[],该数组中的每个元素就是一个vm的证据信息。初始状态时,hds变量初值为0。(2)依次计算每个数组元素的哈希值,并将哈希值和hds当前值进行连接生成新的字符串。(3)对连接字符串再进行哈希并将结果更新到hds变量中(算法中“||”表示字符连接操作)。当对所有元素做完哈希运算后,得到的结果即为最终的hds值。
[0026]
图3描述了证据数据安全传输的过程:
(1)在验证服务和验证代理之间建立传输通道并协商会话密钥aik和nonce值。(2)验证代理收集所有正在运行的vm的真实vpcr列表和vsml,并且综合每个vm证据数据的度量值来计算hds。(3)验证代理采集宿主机信任链存储度量日志文件sml,并使用hds和nonce计算生成新的quote参考值,再通过tpm_quote命令收集宿主机pcr当前值。(4)用会话密钥加密数据包,再用目的节点tpm公钥加密存储会话密钥。(5)将所有数据传输给验证服务程序。
[0027]
步骤4:证据数据分析和验证。
[0028]
取证中心的验证服务器收到计算节点的所有证据数据后,开始对数据进行验证分析。验证服务器程序首先检查数据的新鲜度、数据来源的真实性、数据的完整性和机密性,然后检查宿主机信任链及宿主机上信任链中各组件的完整性。
[0029]
验证服务程序会根据sml、vsml中的日志序列重现pcr、vpcr的扩展过程并将得到计算值与pcr、vpcr的当前值进行比较,以确保信任链未被篡改。之后,将信任链上的每个组件的度量值与基准数据库白名单中对应参考值进行比较以验证组件的完整性。只有每个组件的度量值和参考值都匹配,验证对象(主机或虚拟机)才会被认为是可信的。
[0030]
当取证中心收到所有的证据数据后,验证服务程序开始对数据进行检查分析。图4描述了证据数据验证分析的过程,验证服务程序首先检查数据的新鲜度、数据来源的真实性、数据的完整性和机密性,然后检查宿主机信任链及宿主机上信任链中各组件的完整性。验证服务程序会根据sml中的日志序列重现pcr的扩展过程并将得到的计算值与pcr的当前值进行比较,以确保信任链未被篡改。具体过程为:步骤4.1:取证中心的验证服务程序首先检查数据的新鲜度、数据来源的真实性、数据的完整性和机密性;步骤4.2:根据sml文件重现pcr扩展过程,之后比较计算结果与采集的pcr寄存器的当前值,若两者一致,则表明sml日志未被篡改,否则该sml日志已经被破坏;步骤4.3:在验证sml日志完整性的基础上,将组件的度量值与基准数据库白名单中的参考值进行对比以验证各组件的完整性状态。若两者匹配,则组件通过验证;否则,组件程序已被更改,需要进一步检查组件是否进行了升级或是否已被攻击破坏;步骤4.4:根据vsml文件重现vpcr扩展过程,之后比较计算结果与采集的vpcr寄存器的当前值,若两者一致,则表明vsml日志未被篡改,否则该vsml日志已经被破坏;步骤4.5:在验证vsml日志完整性的基础上,将组件的度量值与基准数据库白名单中的参考值进行对比以验证各组件的完整性状态。若两者匹配,则组件通过验证;否则,组件程序已被更改,需要进一步检查组件是否进行了升级或是否已被攻击破坏。
[0031]
最终,验证结果会实时展示在云管理平台中,取证人员可以实时查询其负责的虚拟机或计算节点的验证结果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1