一种防止恶意代码探测虚拟环境的方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机网络安全领域,特别涉及一种防止恶意代码探测虚拟环境的方法及系统。
【背景技术】
[0002]随着计算机技术的发展,人们对计算机信息技术的需求与依赖也越来越强。人们的生产、生活都离不开计算机技术。计算机的广泛使用也伴随着计算机的安全问题。一些人由于利益的驱使或者价值观的错误导向,利用计算机安全漏洞,通过恶意程序对用户的计算机信息进行窃取,对计算机系统进行破坏,给人们造成了经济损失。为了防止这一现象的恶化,计算机安全人员开发了一系列的查毒杀毒软件,检测计算机恶意程序。而为了躲避杀毒软件或者病毒分析软件的分析与查杀,计算机恶意程序也是不断更新,在躲查免杀方面做了很多掩饰。由于虚拟环境(如沙箱环境或者虚拟机环境)与用户使用的物理机在系统环境上有着一定的区别。恶意代码通过对这些环境上用户信息数据的对比来判断该环境为用户环境还是病毒或者木马检测的虚拟环境。若侦测到为恶意代码的检测环境,它将退出执行或者进行代码载体的自删除操作。这种恶意代码的环境检测行为影响了对病毒的分析与检测。
【发明内容】
[0003]本发明针对上述问题提出了一种防止恶意代码探测虚拟环境的方法及系统,解决了虚拟环境被恶意代码识别出,而无法进行检测的问题。
[0004]一种防止恶意代码探测虚拟环境的方法,包括:
获取恶意代码样本,分析所述恶意代码样本,获取用于判断虚拟环境的判断条件;
提取所述判断条件中所使用的参数或数据,以及所使用的API接口 ;
Η00Κ所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据所述参数或数据的格式,随机修改或生成新的参数或数据替换原有参数或数据,或修改所述API的返回值,并触发执行相关恶意代码;否则直接触发执行相关恶意代码。
[0005]所述的方法中,所述虚拟环境包括虚拟机和沙箱。
[0006]所述的方法中,所述的用于判断虚拟环境的判断条件包括:操作系统信息及硬件
?目息。
[0007]所述方法中,
所述操作系统信息包括:操作系统用户名、系统服务特征字符串及开发脚本语言环境;
所述硬件信息包括:B10S信息、设备映射信息及CPU数量。
[0008]一种防止恶意代码探测虚拟环境的系统,包括:
样本分析模块,用于获取恶意代码样本,分析所述恶意代码样本,获取用于判断虚拟环境的判断条件;
参数提取模块,用于提取所述判断条件中所使用的参数或数据,以及所使用的API接
P ;
数据修改模块,用于HOOK所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据所述参数或数据的格式,随机修改或生成新的参数或数据替换原有参数或数据,或修改所述API的返回值,并触发执行相关恶意代码;否则直接触发执行相关恶意代码。
[0009]所述的系统中,所述虚拟环境包括虚拟机和沙箱。
[0010]所述的系统中,所述的用于判断虚拟环境的判断条件包括:操作系统信息及硬件
?目息。
[0011]所述的系统中,所述操作系统信息包括:操作系统用户名、系统服务特征字符串及开发脚本语言环境;
所述硬件信息包括:B10S信息、设备映射信息及CPU数量。
[0012]本发明综合考虑恶意代码识别虚拟环境的多种方法,通过集成注册表,用户名,特殊文件路径,脚本语言环境等信息,Η00Κ对这些信息进行识别的API,动态随机的修改用来被作为虚拟环境识别标志的数据,来防止恶意代码的探测。
[0013]本发明提出了一种防止恶意代码探测虚拟环境的方法及系统,所述方法通过获取并分析恶意代码样本用于判断虚拟环境的判断条件;提取判断条件中所使用的参数或数据,以及所使用的API接口 ;Η00Κ所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据参数或数据的格式,随机修改或生成新的参数或数据替换原参数或数据,并触发执行相关恶意代码。本发明还相应提供了系统结构。通过本发明的方法,能够有效使虚拟环境躲避开恶意代码的探测。
【附图说明】
[0014]为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为一种防止恶意代码探测虚拟环境的方法实施例流程图;
图2为一种防止恶意代码探测虚拟环境的系统实施例结构示意图。
【具体实施方式】
[0016]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
[0017]本发明针对上述问题提出了一种防止恶意代码探测虚拟环境的方法,解决了虚拟环境被恶意代码识别出,而无法进行检测的问题。
[0018]一种防止恶意代码探测虚拟环境的方法,如图1所示,包括: 5101:获取恶意代码样本,分析所述恶意代码样本,获取用于判断虚拟环境的判断条件;
5102:提取所述判断条件中所使用的参数或数据,以及所使用的API接口 ;
5103:Η00Κ所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据所述参数或数据的格式,随机修改或生成新的参数或数据替换原有参数或数据,或修改所述API的返回值,并触发执行相关恶意代码;否则直接触发执行相关恶意代码。
[0019]所述的方法中,所述虚拟环境包括虚拟机和沙箱。
[0020]所述的方法中,所述的用于判断虚拟环境的判断条件包括:操作系统信息及硬件
?目息。
[0021]所述的方法中,
所述操作系统信息包括:操作系统用户名、系统服务特征字符串及开发脚本语言环境;
所述硬件信息包括:B10S信息、设备映射信息及CPU数量。
[0022]为更好理解上述的提取所述判断条件中所使用的参数或数据,Η00Κ所述API并判断所述参数或数据是否是特征参数或数据,分别对上述内容的对比进行举例说明。
[0023]对于参数获取,至少包括获取:
GetUserNameEx 中的 lpNameBuffer ;
GetModuleFileName 中的 lpFilename ;
GetProcAddress 中的 hModule、IpProcName ;
RegOpenKeyEx 中的 hKey、IpSubKey、samDesired ;
RegQueryValueEx 中的 hKey、lpValueName、lpData ;
Process32Next 中 PR0CESSENTRY32 结构体里面的 szExefile ;
ZwQueryDirectoryFile 中的 Filelnformat1n 等。
[0024]对于操作系统信息参数或数据的判定,可包括:
获取的操作系统用户名,判断所获取的操作系统用户名是否为“MALTEST”、“TEQUILAB00MB00M”、“SANDBOX”、“VIRUS”、“MALWARE” 等,所有能被用来当做沙箱或者虚拟机环境识别的操作系统用户名都可作为特征参数或数据,如果是,则随机化生成数据,替换上述字符,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来
带便利;
获取系统服务特征字符串,如当前进程已加载模块的文件的完整路径中的特征字符是否为:“SAMPLE”、“VIRUS”、“SANDBOX”等所有能被用来当做沙箱或者虚拟机环境识别的特征字符串,如果是,则随机化生成数据,替换上述字符,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来带便利;
或判断获取的注册表中操作系统ID:\Microsoft\ffindows\CurrentVers1n下产品ID键值是否为以下值:
55274-640-2673064-23950 (JoeBox);
76487-644-3177037-23510 (CffSandbox);
76487-337-8429955-22614 (Anubis);
等所有能被用来当做沙箱或者虚拟机环境识别的注册表的产品ID键值,如果是,随机化生成相同格式的数据,替换原值,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来带便利;
获取开发环境,判断获取的进程名中是否有python, exe进程等所有能被用来当做沙箱或者虚拟机环境识别的脚本语言环境,如果有,随机化修改进程名,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来带便利。
[0025]对于硬件信息参数或数据的判定,可包括:
获取B1S相关信息,如判断获取的注册表中:HARDWARE\\DEVICEMAP\\Scsi\\ScsiPort 0\\Scsi Bus 0\\Target Id 0\\Logical Unit Id 0 中 Identifier 的值是否为 QEMU、SandBox、VMware、Smap 1 e等所有能被用来当做沙箱或者虚拟机环境识别的注册表键值的数据,如果是,随机化生成数据,替换Identifier的键值数据,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来带便利;
获取设备映射信息,如判断获取的注册表:HARDWARE\\Descript1n\\System中VideoB1sVers1n 的值是否为 VIRTUALBOX、QEMU、BOCHS、SandBox、VMware、Smaple 等所有能被用来当做沙箱或者虚拟机环境识别的注册表键值的数据,如果是,随机化生成数据,替换VideoB1sVers1n的键值数据,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来带便利;
获取核心CPU数目,如判断沙箱或虚拟机中默认的CPU数目是否为1,如果是,则修改CPU数目为主力计算机CPU数目,紧接着直接触发执行相关恶意代码,为自动化分析及安全研究来带便利。
[0026]一种防止恶意代码探测虚拟环境的系统,如图2所示,包括:
样本分析模块201,用于获取恶意代码样本,分析所述恶意代码样本,获取用于判断虚拟环境的判断条件;
参数提取模块202,用于提取所述判断条件中所使用的参数或数据,以及所使用的API接口 ;
数据修改模块203,用于Η00Κ所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据所述参数或数据的格式,随机修改或生成新的参数或数据替换原有参数或数据,或修改所述API的返回值,并触发执行相关恶意代码;否则直接触发执行相关恶意代码。
[0027]所述的系统中,所述虚拟环境包括虚拟机和沙箱。
[0028]所述的系统中,所述的用于判断虚拟环境的判断条件包括:操作系统信息及硬件
?目息。
[0029]所述的系统中,所述操作系统信息包括:操作系统用户名、系统服务特征字符串及开发脚本语言环境;
所述硬件信息包括:B10S信息、设备映射信息及CPU数量。
[0030]本发明综合考虑恶意代码识别虚拟环境的多种方法,通过集成注册表,用户名,特殊文件路径,脚本语言环境等信息,Η00Κ对这些信息进行识别API,动态随机化的修改用来被作为虚拟环境识别标志的数据,来防止恶意代码的探测。
[0031]本发明提出了一种防止恶意代码探测虚拟环境的方法及系统,所述方法通过获取并分析恶意代码样本用于判断虚拟环境的判断条件;提取判断条件中所使用的参数或数据,以及所使用的API接口 ;HOOK所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据参数或数据的格式,随机修改或生成新的参数或数据替换原参数或数据,并触发执行相关恶意代码。本发明还相应提供了系统结构。通过本发明的方法,能够有效使虚拟环境躲避开恶意代码的探测。
[0032]虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
【主权项】
1.一种防止恶意代码探测虚拟环境的方法,其特征在于,包括: 获取恶意代码样本,分析所述恶意代码样本,获取用于判断虚拟环境的判断条件; 提取所述判断条件中所使用的参数或数据,以及所使用的API接口 ; HOOK所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据所述参数或数据的格式,随机修改或生成新的参数或数据替换原有参数或数据,或修改所述API的返回值,并触发执行相关恶意代码;否则直接触发执行相关恶意代码。2.如权利要求1所述的方法,其特征在于,所述虚拟环境包括虚拟机和沙箱。3.如权利要求1所述的方法,其特征在于,所述的用于判断虚拟环境的判断条件包括:操作系统信息及硬件信息。4.如权利要求3所述的方法,其特征在于,所述操作系统信息包括:操作系统用户名、系统服务特征字符串及开发脚本语言环境; 所述硬件信息包括:B10S信息、设备映射信息及CPU数量。5.一种防止恶意代码探测虚拟环境的系统,其特征在于,包括: 样本分析模块,用于获取恶意代码样本,分析所述恶意代码样本,获取用于判断虚拟环境的判断条件; 参数提取模块,用于提取所述判断条件中所使用的参数或数据,以及所使用的API接P ; 数据修改模块,用于HOOK所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据所述参数或数据的格式,随机修改或生成新的参数或数据替换原有参数或数据,或修改所述API的返回值,并触发执行相关恶意代码;否则直接触发执行相关恶意代码。6.如权利要求5所述的系统,其特征在于,所述虚拟环境包括虚拟机和沙箱。7.如权利要求5所述的系统,其特征在于,所述的用于判断虚拟环境的判断条件包括:操作系统信息及硬件信息。8.如权利要求7所述的系统,其特征在于,所述操作系统信息包括:操作系统用户名、系统服务特征字符串及开发脚本语言环境; 所述硬件信息包括:B10S信息、设备映射信息及CPU数量。
【专利摘要】本发明提出了一种防止恶意代码探测虚拟环境的方法及系统,所述方法通过获取并分析恶意代码样本用于判断虚拟环境的判断条件;提取判断条件中所使用的参数或数据,以及所使用的API接口;HOOK所述API,获取虚拟环境中的参数或数据,逐一判断所述虚拟环境中的参数或数据是否与所述判断条件中所使用的参数或数据相同,如果是,则根据参数或数据的格式,随机修改或生成新的参数或数据替换原参数或数据,并触发执行相关恶意代码。本发明还相应提供了系统结构。通过本发明的方法,能够有效使虚拟环境躲避开恶意代码的探测。
【IPC分类】G06F21/53, G06F21/56
【公开号】CN105488414
【申请号】CN201510619022
【发明人】康学斌, 朱晴, 肖新光
【申请人】深圳市安之天信息技术有限公司
【公开日】2016年4月13日
【申请日】2015年9月25日