公开/公告号CN112784265A
专利类型发明专利
公开/公告日2021-05-11
原文格式PDF
申请/专利权人 北京火绒网络科技有限公司;
申请/专利号CN202110161967.8
发明设计人 尚昭宁;
申请日2021-02-05
分类号G06F21/53(20130101);G06F21/56(20130101);
代理机构11616 北京盛凡智荣知识产权代理有限公司;
代理人胡文强
地址 100012 北京市朝阳区红军营南路15号院2号楼3层302室
入库时间 2023-06-19 10:57:17
技术领域
本发明涉及信息安全技术领域,特别是涉及一种虚拟沙盒针对混淆代码的优化方法。
背景技术
目前在信息安全领域中,恶意代码检测一直都是各个安全厂商所面临的首要问题。但是近年来,一些主流病毒家族为了与安全软件厂商进行免杀对抗,大范围在病毒样本中使用代码混淆技术。安全软件厂商为了与不断变化的混淆代码进行对抗,追求更高的病毒检出率,从而发展出了虚拟沙盒技术。反病毒引擎中的虚拟沙盒,可以用来将病毒样本在虚拟环境中进行虚拟执行,最终通过判断行为及中间内存特征达到更高的检出效果。但是随着病毒混淆代码技术的不断发展,其混淆代码中会加入超大的耗时循环(如:无用代码重复执行100万次之后再执行实质性的病毒代码),导致病毒样本在有限的扫描时间内无法在虚拟沙盒中运行到实质性病毒代码,最终导致反病毒引擎无法针对此类混淆样本达到原有的通用检测目的。
发明内容
鉴于此,本发明提供了一种虚拟沙盒针对混淆代码的优化方法,具体方案如下:
一种虚拟沙盒针对混淆代码的优化方法,包括
根据病毒在阶段性时间片(如:若干条汇编指令)执行后所处的代码特征,匹配混淆代码中冗余、超时操作相关代码,进行针对性代码或执行环境优化;
根据病毒在阶段性时间片内重复调用的系统API(application programminginterface)执行后所处的代码特征,匹配混淆代码中冗余、超时操作相关代码,进行针对性代码或执行环境优化;
根据该病毒样本中的混淆代码,选择在虚拟沙盒中具体的代码和环境优化处理流程;
具体的操作步骤如下:
步骤一,通过在阶段性时间片内在虚拟沙盒中的运行,定位到在时间片结束后病毒样本在虚拟沙盒中的运行代码位置;
步骤二,根据阶段性时间片运行后,通过对当前代码所在位置进行模式匹配的方式,最终决定虚拟沙盒当前所在位置代码特征或所调用API决定是否执行优化逻辑;
步骤三,针对需要进行优化的病毒样本,相对于之前代码所在位置进行准确特征识别;
步骤四,在特征识别后,根据现有情况决定具体的优化逻辑,即:进行虚拟环境修改或进行代码逻辑二进制修改;
步骤五,在进行优化之后,继续进行虚拟执行代码。
采用上述技术方案,具有如下有益效果:
本发明在基于反病毒虚拟机引擎针对病毒样本中的混淆代码进行优化的方法,在虚拟沙盒中运行,在时间结束后定位到病毒样本在虚拟沙盒中的运行代码位置,并通过对当前代码所在的位置进行模式匹配,最终决定虚拟沙盒当前所在位置代码特征或所调用API决定是否执行优化逻辑,然后针对需要进行优化的病毒样本,相较于之前代码所在位置进行准确特征识别,判断是否需要优化,最终达到对病毒样本的通用检出效果。
附图说明
图1为本发明使用的样本代码优化流程;
图2为本发明样本需要优化的代码情况;
图3为本发明所使用样本的最终检测结果。
具体实施方式
下面结合附图对本发明做进一步说明。
实施例1:一种虚拟沙盒针对混淆代码的优化方法,包括
根据病毒在阶段性时间片(如:若干条汇编指令)执行后所处的代码特征,匹配混淆代码中冗余、超时操作相关代码,进行针对性代码或执行环境优化;
根据病毒在阶段性时间片内重复调用的系统API(application programminginterface)执行后所处的代码特征,匹配混淆代码中冗余、超时操作相关代码,进行针对性代码或执行环境优化;
根据该病毒样本中的混淆代码,选择在虚拟沙盒中具体的代码和环境优化处理流程;
具体的操作步骤如下:
步骤一,通过在阶段性时间片内在虚拟沙盒中的运行,定位到在时间片结束后病毒样本在虚拟沙盒中的运行代码位置;
步骤二,根据阶段性时间片运行后,通过对当前代码所在位置进行模式匹配的方式,最终决定虚拟沙盒当前所在位置代码特征或所调用API决定是否执行优化逻辑;
步骤三,针对需要进行优化的病毒样本,相对于之前代码所在位置进行准确特征识别;
步骤四,在特征识别后,根据现有情况决定具体的优化逻辑,即:进行虚拟环境修改或进行代码逻辑二进制修改;
步骤五,在进行优化之后,继续进行虚拟执行代码。
在进行具体操作时,第一步,假设运行环境为虚拟沙盒,通过对案例样本(sha1:2084e7c60de40d6a903dd7f56e3f9f102373f538)若干万条指令的执行后,定位到在时间片结束后病毒样本在虚拟沙盒中的运行代码位置。
第二步,根据第一步过后所得到的代码位置特征,通过匹配虚拟沙盒当前所在位置代码特征,在dword ptr[ebp-314]为0的前提情况下,当前代码位置需要当dword ptr[ebp-314]大于等于0xFFFFFFFF时才能继续执行后续流程,且循环内无具有实际意义代码,则命中优化规则。
第三步,根据命中的需要优化的代码情况,在虚拟沙盒中将0x40125C处代码全部使用nop(0x90)填充。
第四步,继续在虚拟沙盒中执行优化后样本代码,即可直接执行后续代码流程,最终再更短的时间内得出检测结果。
本发明在基于反病毒虚拟机引擎针对病毒样本中的混淆代码进行优化的方法,在虚拟沙盒中运行,在时间结束后定位到病毒样本在虚拟沙盒中的运行代码位置,并通过对当前代码所在的位置进行模式匹配,最终决定虚拟沙盒当前所在位置代码特征或所调用API决定是否执行优化逻辑,然后针对需要进行优化的病毒样本,相较于之前代码所在位置进行准确特征识别,判断是否需要优化,最终达到对病毒样本的通用检出效果。
以上描述了本发明的基本原理和主要特征,本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内,发明要求保护范围由所附的权利要求书及其等效物界定。
机译: 诱导胶束重组的有针对性的优化方法和试剂盒
机译: 诱导胶束重组的有针对性的优化方法和试剂盒
机译: 诱导胶束重组的有针对性的优化方法和试剂盒