1.一种基于云计算技术的软件测评方法,所述的基于云计算技术的软件测评方法包括按顺序进行的下列步骤:步骤1)分别创建测试云平台与评估云平台,并在测试云平台上部署物理主机集群,创建多台虚拟机;
步骤2)在测试云平台上部署包括Volatility、LibVMI、LibguestFS、Libpcap、rVMI、Xentop和虚拟机内部代理程序在内的云探针,重构虚拟机各类状态信息,利用上述云探针收集包括软件动态行为、操作系统状态、系统内存、磁盘文件信息、网络通讯和系统资源情况在内的状态数据,然后通过网络传输到评估云平台中;
步骤3)将被测软件投放到测试云平台的多个虚拟机中同步测试;
步骤4)对测试云平台上每个虚拟机状态信息进行纵向分析,通过分析被测软件动态行为、系统内存信息、磁盘文件信息、网络通讯信息、系统资源信息,得出每个测试环境中的测试结果;然后对每个测试结果再进行横向对比分析,综合判定被测软件是否存在异常行为以及被测软件的性能损耗情况;最后,按照测评标准综合评估被测软件,生成测评报告;
其特征在于:在步骤2)中,所述的利用云探针收集包括操作系统状态、系统内存、磁盘文件信息、网络通讯和系统资源情况在内的状态数据,然后通过网络传输到评估云平台中的方法包括以下步骤:步骤1.1)通过Volatility的impscan插件带外重构软件进程执行的API调用序列,通过Volatility的privs插件带外重构软件申请拥有的权限种类信息,然后将软件进程执行的API调用序列和申请拥有的权限种类信息传输到评估云平台中;
步骤1.2)通过Volatility的psscan、threads、dlllist功能插件与LibVMI的process-list、module-list插件对虚拟机内存数据进行语义重构,得到进程、线程、动态链接库的相关信息,然后传输到评估云平台中;
步骤1.3)通过部署在测试云平台上的虚拟机内部代理程序,获取虚拟机内部状态信息,包括进程、线程、加载模块、动态链接库的相关信息,然后传输到评估云平台中;
步骤1.4)通过LibguestFS virt-df命令、virt-list命令、virt-cat命令、virt-win-reg命令对客户虚拟机的磁盘文件进行重构,分别获取磁盘存储空间、文件目录、文件内容、注册表在内的相关信息,然后传输到评估云平台中;
步骤1.5)通过Libpcap监测虚拟机相应虚拟网卡的流量,抓包分析被测软件的网络流量信息,然后传输到评估云平台中;
步骤1.6)通过rVMI的vm_state_cpu()函数带外获取虚拟机CPU寄存器执行指令、处理数据在内的信息,然后传输到评估云平台中;
步骤1.7)通过Xentop获取客户虚拟机中CPU、系统内存的实时使用率情况,进而得出被测软件的资源占有率信息,然后传输到评估云平台中;
步骤1.8)通过LibVMI的dump-memory插件获取客户虚拟机的内存转储文件,并通过文件传输通道将内存转储文件传输到评估云平台中。
2.根据权利要求1所述的基于云计算技术的软件测评方法,其特征在于:在步骤4)中,所述的对测试云平台上每个虚拟机状态信息进行纵向分析,通过分析被测软件动态行为、系统内存信息、磁盘文件信息、网络通讯信息、系统资源信息,得出每个测试环境中的测试结果;然后对每个测试结果再进行横向对比分析,综合判定被测软件是否存在异常行为以及被测软件的性能损耗情况;最后,按照测评标准综合评估被测软件,生成测评报告的方法包括以下步骤:步骤2.1)通过分析步骤1.1)重构的软件进程执行的API调用序列,确定该软件是否执行异常;通过分析步骤1.1)重构的软件申请拥有的权限种类信息,判定该软件是否存在恶意提权或申请多余权限的行为;
步骤2.2)通过对比分析步骤1.2)语义重构的内部状态信息和步骤1.3)在虚拟机内部获取的进程、线程、加载模块、动态链接库的相关信息,确定被测软件是否存在隐藏进程、线程注入、隐藏加载模块、篡改动态链接库在内的异常行为;
步骤2.3)对步骤1.4)传来的客户虚拟机的磁盘文件信息进行细粒度分析,根据磁盘存储空间、文件目录、文件内容、注册表在内的相关信息,判定被测软件是否恶意修改磁盘文件、注册表;
步骤2.4)通过分析步骤1.5)获取的被测软件网络流量信息,判定被测软件在网络通讯中是否存在异常;
步骤2.5)通过分析步骤1.6)获取的CPU寄存器执行指令、处理数据在内的信息,判定操作系统状态是否正常;
步骤2.6)综合步骤1.4)获取的磁盘存储空间信息、步骤1.5)获取的被测软件网络流量信息、步骤1.7)获取的被测软件的资源占有率信息,确定系统资源情况与被测软件的性能损耗信息;
步骤2.7)当测试环境出现软硬件故障而发生宕机时,通过步骤1.8)生成的内存转储文件恢复测试环境;
步骤2.8)对以上每个测试环境的测试结果进行横向对比分析,综合判定被测软件是否存在异常行为以及被测软件的性能损耗情况;最后,按照测评标准综合评估被测软件,生成被测软件测评报告。