恶意文件的检测方法、装置、设备及存储介质与流程

文档序号:25957524发布日期:2021-07-20 17:22阅读:来源:国知局

技术特征:

1.一种恶意文件的检测方法,其特征在于,所述方法包括:

检测设备获取测试文件,所述测试文件为基于第一操作系统运行的可执行文件;

所述检测设备在虚拟运行环境中运行所述测试文件,所述虚拟运行环境是基于容器技术生成的;

所述检测设备获得所述测试文件在运行过程中调用的第一api序列,所述第一api序列中包括至少一个api,所述第一api序列包括的api为第一api集合中的api,所述第一api集合包括所述虚拟运行环境提供的软件运行所需的多个api,所述第一api集合中的api的标识与第二api集合中的api的标识相同,所述第二api集合包括所述第一操作系统提供的软件运行所需的多个api;

所述检测设备在第二操作系统中执行第二api序列,所述第二api序列中包括至少一个api,所述第二api序列包括的api为所述第二操作系统中的api,所述第二api序列中的第一api与所述第一api序列中的第一api具有映射关系,所述第二操作系统是基于所述检测设备的计算机指令集架构的操作系统;

所述检测设备基于所述第一api序列被调用过程中所述测试文件的行为特征,判断所述测试文件是否为恶意文件。

2.根据权利要求1所述的方法,其特征在于,所述检测设备在第二操作系统中执行第二api序列,包括:

所述检测设备根据所述第一api序列中的每个api,分别从所述虚拟运行环境的动态链接库中获取对应的函数,从而获得第一函数序列,所述第一函数序列包括的函数用于实现所述第一api序列中包括的api;

所述检测设备根据所述第一函数序列中的每个函数,分别从所述第二操作系统的动态链接库中获取映射的函数,从而生成第二函数序列,所述第二函数序列包括的函数用于实现所述第二api序列中包括的api,所述第二函数序列中的第一函数与所述第一函数序列中的第一函数具有映射关系;

所述检测设备在所述第二操作系统的内核中,根据所述第二函数序列执行操作。

3.根据权利要求2所述的方法,其特征在于,所述第一操作系统为windows操作系统,所述第二操作系统为linux操作系统,所述检测设备根据所述第一api序列中的每个api,分别从所述虚拟运行环境的动态链接库中获取对应的函数,包括:

所述检测设备根据所述第一api序列中的每个api,分别从动态链接库dll文件中获取对应的函数;

所述检测设备根据所述第一函数序列中的每个函数,分别从所述第二操作系统的动态链接库中获取映射的函数,包括:

所述检测设备根据所述第一函数序列中的每个函数以及函数之间的映射关系,分别从共享对象so文件中获取映射的函数。

4.根据权利要求2所述的方法,其特征在于,所述第一操作系统为linux操作系统,所述第二操作系统为windows操作系统,所述检测设备根据所述第一api序列中的每个api,分别从所述虚拟运行环境的动态链接库中获取对应的函数,包括:

所述检测设备根据所述第一api序列中的每个api,分别从so文件中获取对应的函数;

所述检测设备根据所述第一函数序列中的每个函数,分别从所述第二操作系统的动态链接库中获取映射的函数,包括:

所述检测设备根据所述第一函数序列中的每个函数以及函数之间的映射关系,分别从dll文件中获取映射的函数。

5.根据权利要求1至4中任一项所述的方法,其特征在于,所述检测设备在第二操作系统中执行第二api序列,包括:

所述检测设备获取所述第一api序列中调用的第一类参数,所述第一类参数包括的参数为所述第一api序列中的api的输入参数;

所述检测设备在所述第二操作系统中,根据第二类参数执行所述第二api序列,所述第二类参数包括的参数为所述第二api序列中的api的输入参数,所述第二类参数中的第一参数与所述第一类参数中的第一参数具有映射关系。

6.根据权利要求1至5中任一项所述的方法,其特征在于,所述检测设备在第二操作系统中执行第二api序列,包括:

所述检测设备获取所述测试文件在运行过程中触发的第一指令序列,所述第一指令序列包括至少一个指令,所述第一指令序列中的每个指令用于指示调用所述第一api序列中的一个api;

所述检测设备对所述第一指令序列中的指令进行第一指令转换,根据第一指令转换的结果得到第二指令序列,所述第二指令序列包括至少一个指令,所述第二指令序列中的每个指令用于指示调用所述第二api序列中的一个api,所述第一指令转换用于将所述第一操作系统所基于的指令集中的指令转换为所述检测设备的计算机指令集中的指令;

所述检测设备执行所述第二指令序列,以实现所述第二api序列对应的操作。

7.根据权利要求6所述的方法,其特征在于,所述第一操作系统为windows操作系统,所述检测设备的计算机指令集架构为进阶精简指令集机器arm架构,所述检测设备对所述第一指令序列中的指令进行第一指令转换,根据第一指令转换的结果得到第二指令序列,包括:

所述检测设备将所述第一指令序列中的每个x86指令转换为arm指令,根据转换得到的arm指令得到所述第二指令序列。

8.根据权利要求6所述的方法,其特征在于,所述第一操作系统为linux操作系统,所述检测设备的计算机指令集架构为x86架构,所述检测设备对所述第一指令序列中的指令进行第一指令转换,根据第一指令转换的结果得到第二指令序列,包括:

所述检测设备将所述第一指令序列中的每个arm指令转换为x86指令,根据转换得到的x86指令得到所述第二指令序列。

9.根据权利要求1所述的方法,其特征在于,所述检测设备在第二操作系统中执行第二api序列之后,所述方法还包括:

所述检测设备获取第三指令序列,所述第三指令序列表示执行所述第二api序列后得到的结果,所述第三指令序列中的指令属于所述检测设备的计算机指令集;

所述检测设备对所述第三指令序列中的每个指令进行第二指令转换,根据第二指令转换的结果得到第四指令序列,所述第四指令序列中的指令属于所述虚拟运行环境的计算机指令集,所述第二指令转换用于将所述检测设备的计算机指令集中的指令转换为所述第一操作系统所基于的指令集中的指令;

所述检测设备将所述第四指令序列输入所述虚拟运行环境。

10.根据权利要求1至9中任一项所述的方法,其特征在于,所述虚拟运行环境是基于容器的镜像生成的,所述镜像封装有所述第一api集合。

11.根据权利要求1至10中任一项所述的方法,其特征在于,所述容器技术包括docker容器技术,所述虚拟运行环境通过docker守护进程启动,所述docker守护进程为所述检测设备基于所述第二操作系统运行的进程。

12.一种恶意文件的检测装置,其特征在于,所述装置包括:

获取模块,用于获取测试文件,所述测试文件为基于第一操作系统运行的可执行文件;

运行模块,用于在虚拟运行环境中运行所述测试文件,所述虚拟运行环境是基于容器技术生成的;获得所述测试文件在运行过程中调用的第一api序列,所述第一api序列中包括至少一个api,所述第一api序列包括的api为第一api集合中的api,所述第一api集合包括所述虚拟运行环境提供的软件运行所需的多个api,所述第一api集合中的api的标识与第二api集合中的api的标识相同,所述第二api集合包括所述第一操作系统提供的软件运行所需的多个api;

执行模块,用于在第二操作系统中执行第二api序列,所述第二api序列中包括至少一个api,所述第二api序列包括的api为所述第二操作系统中的api,所述第二api序列中的第一api与所述第一api序列中的第一api具有映射关系,所述第二操作系统是基于所述检测设备的计算机指令集架构的操作系统;

判断模块,用于基于所述第一api序列被调用过程中所述测试文件的行为特征,判断所述测试文件是否为恶意文件。

13.根据权利要求12所述的装置,其特征在于,所述执行模块,用于根据所述第一api序列中的每个api,分别从所述虚拟运行环境的动态链接库中获取对应的函数,从而获得第一函数序列,所述第一函数序列包括的函数用于实现所述第一api序列中包括的api;根据所述第一函数序列中的每个函数,分别从所述第二操作系统的动态链接库中获取映射的函数,从而生成第二函数序列,所述第二函数序列包括的函数用于实现所述第二api序列中包括的api,所述第二函数序列中的第一函数与所述第一函数序列中的第一函数具有映射关系;在所述第二操作系统的内核中,根据所述第二函数序列执行操作。

14.根据权利要求13所述的装置,其特征在于,所述第一操作系统为windows操作系统,所述第二操作系统为linux操作系统,所述执行模块,用于根据所述第一api序列中的每个api,分别从动态链接库dll文件中获取对应的函数,根据所述第一函数序列中的每个函数以及函数之间的映射关系,分别从共享对象so文件中获取映射的函数。

15.根据权利要求13所述的装置,其特征在于,所述第一操作系统为linux操作系统,所述第二操作系统为windows操作系统,所述执行模块,用于根据所述第一api序列中的每个api,分别从so文件中获取对应的函数,根据所述第一函数序列中的每个函数以及函数之间的映射关系,分别从dll文件中获取映射的函数。

16.根据权利要求12至15中任一项所述的装置,其特征在于,所述执行模块,用于获取所述第一api序列中调用的第一类参数,所述第一类参数包括的参数为所述第一api序列中的api的输入参数;在所述第二操作系统中,根据第二类参数执行所述第二api序列,所述第二类参数包括的参数为所述第二api序列中的api的输入参数,所述第二类参数中的第一参数与所述第一类参数中的第一参数具有映射关系。

17.根据权利要求12至16中任一项所述的装置,其特征在于,所述执行模块,用于获取所述测试文件在运行过程中触发的第一指令序列,所述第一指令序列包括至少一个指令,所述第一指令序列中的每个指令用于指示调用所述第一api序列中的一个api;对所述第一指令序列中的指令进行第一指令转换,根据第一指令转换的结果得到第二指令序列,所述第二指令序列包括至少一个指令,所述第二指令序列中的每个指令用于指示调用所述第二api序列中的一个api,所述第一指令转换用于将所述第一操作系统所基于的指令集中的指令转换为所述检测设备的计算机指令集中的指令;执行所述第二指令序列,以实现所述第二api序列对应的操作。

18.根据权利要求17所述的装置,其特征在于,所述第一操作系统为windows操作系统,所述检测设备的计算机指令集架构为进阶精简指令集机器arm架构,所述执行模块,用于将所述第一指令序列中的每个x86指令转换为arm指令,根据转换得到的arm指令得到所述第二指令序列。

19.根据权利要求17所述的装置,其特征在于,所述第一操作系统为linux操作系统,所述检测设备的计算机指令集架构为x86架构,所述执行模块,用于将所述第一指令序列中的每个arm指令转换为x86指令,根据转换得到的x86指令得到所述第二指令序列。

20.根据权利要求17所述的装置,其特征在于,所述执行模块,用于获取第三指令序列,所述第三指令序列表示执行所述第二api序列后得到的结果,所述第三指令序列中的指令属于所述检测设备的计算机指令集;对所述第三指令序列中的每个指令进行第二指令转换,根据第二指令转换的结果得到第四指令序列,所述第四指令序列中的指令属于所述虚拟运行环境的计算机指令集,所述第二指令转换用于将所述检测设备的计算机指令集中的指令转换为所述第一操作系统所基于的指令集中的指令;将所述第四指令序列输入所述虚拟运行环境。

21.一种检测设备,其特征在于,包括网络接口、存储器和与所述存储器连接的处理器,

所述网络接口,用于获取测试文件,所述测试文件为基于第一操作系统运行的可执行文件;

所述存储器用于存储程序指令;

所述处理器用于执行所述程序指令,以使所述检测设备执行以下操作:

在虚拟运行环境中运行所述测试文件,所述虚拟运行环境是基于容器技术生成的;

获得所述测试文件在运行过程中调用的第一api序列,所述第一api序列中包括至少一个api,所述第一api序列包括的api为第一api集合中的api,所述第一api集合包括所述虚拟运行环境提供的软件运行所需的多个api,所述第一api集合中的api的标识与第二api集合中的api的标识相同,所述第二api集合包括所述第一操作系统提供的软件运行所需的多个api;

在第二操作系统中执行第二api序列,所述第二api序列中包括至少一个api,所述第二api序列包括的api为所述第二操作系统中的api,所述第二api序列中的第一api与所述第一api序列中的第一api具有映射关系,所述第二操作系统是基于所述检测设备的计算机指令集架构的操作系统;

基于所述第一api序列被调用过程中所述测试文件的行为特征,判断所述测试文件是否为恶意文件。

22.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器读取以使检测设备执行如权利要求1至权利要求11中任一项所述的方法。


技术总结
本申请提供了一种恶意文件的检测方法、装置、设备及存储介质,属于计算机技术领域。本申请提供了能实现跨平台动态检测恶意文件的方案,通过基于容器技术生成的虚拟运行环境,模拟出兼容测试文件的操作系统提供的运行环境,测试文件调用了虚拟运行环境提供的API后,则将虚拟运行环境被测试文件调用的API,转换为检测设备的操作系统提供的API,在检测设备的操作系统中执行转换后的API。由于通过执行检测设备的操作系统的API,达到了模拟执行第一操作系统的API的效果。因此,检测设备提供的虚拟运行环境能够兼容测试文件的正常运行,从而摆脱了测试文件对特定操作系统的依赖,因此实现了跨平台的恶意文件检测。

技术研发人员:郑宝龙;陈甲
受保护的技术使用者:华为技术有限公司
技术研发日:2020.01.20
技术公布日:2021.07.20
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1