1.一种用于在虚拟机中执行具有漏洞的文件期间形成日志的方法,所述方法包括:
通过拦截器在打开所述文件时所创建的进程的线程的执行期间发现触发器的激活,其中,所述触发器描述一个或多个条件,所述一个或多个条件伴随与尝试利用所述文件的漏洞相关的事件;
通过所述拦截器分析在打开所述文件时所创建的所述进程的堆栈,并发现在所述事件之前的以调用地址和返回地址的序列形式的函数调用链;
通过所述拦截器分析发现的所述函数调用链是否满足所述触发器的与尝试利用所述漏洞相关的条件;以及
当满足所述触发器的与尝试利用所述文件的所述漏洞相关的所述条件时,通过所述拦截器将关于所述函数调用链的信息保存在日志中。
2.如权利要求1所述的方法,还包括:
将与所述触发器的所述条件的满足有关联的内存区域的转储保存在所述日志中。
3.如权利要求1所述的方法,其中,所述事件包括如下项中的至少一者:
在所述进程的所述线程的执行期间对api函数的调用;
从api函数的返回;
系统调用;
从系统调用的返回;以及
从操作系统接收通知。
4.如权利要求1所述的方法,其中,所述触发器描述一个或多个事件和伴随所述事件的条件,所述事件与尝试利用所述文件的所述漏洞相关:
从调用链生成利用面向返回编程(rop)的事件;
通过在堆上执行而生成事件;
通过在堆栈上执行而生成事件;
改变所述堆栈;
更改描述操作系统中进程的权限和特权的数据结构;
通过从内存页面的首次执行生成的事件;以及
内存的动态分配和将对象放置在动态分配的所述内存中。
5.如权利要求1所述的方法,其中,打开所述文件包括如下项之一:
当所述文件为可执行的时,执行所述文件;以及
当所述文件为不可执行的时,由应用打开所述文件。
6.如权利要求1所述的方法,其中,安全模块执行如下项中的至少一者:
启动所述虚拟机;以及
从先前创建的虚拟机选择所述安全模块。
7.如权利要求1所述的方法,其中,所述触发器描述:真实事件,所述真实事件的发生激活所述触发器;以及所述触发器的伴随所述真实事件的所述条件,所述条件与尝试利用所述文件的所述漏洞相关。
8.一种用于在计算设备上的实例化的虚拟机中执行具有漏洞的文件期间形成日志的系统,所述系统包括:
至少一个处理器,所述至少一个处理器被配置为:
通过拦截器在打开所述文件时所创建的进程的线程的执行期间发现触发器的激活,其中,所述触发器描述一个或多个条件,所述一个或多个条件伴随与尝试利用所述文件的漏洞相关的事件;
通过所述拦截器分析在打开所述文件时所创建的所述进程的堆栈,并发现在所述事件之前的以调用地址和返回地址的序列形式的函数调用链;
通过所述拦截器分析发现的所述函数调用链是否满足所述触发器的与尝试利用所述漏洞相关的条件;以及
当满足所述触发器的与尝试利用所述文件的所述漏洞相关的所述条件时,通过所述拦截器将关于所述函数调用链的信息保存在日志中。
9.如权利要求8所述的系统,其中,所述处理器还被配置为:
将与所述触发器的所述条件的满足有关联的内存区域的转储保存在所述日志中。
10.如权利要求8所述的系统,其中,所述事件包括如下项中的至少一者:
在所述进程的所述线程的执行期间对api函数的调用;
从api函数的返回;
系统调用;
从系统调用的返回;以及
从操作系统接收通知。
11.如权利要求8所述的系统,其中,所述触发器描述一个或多个事件和伴随所述事件的条件,所述事件与尝试利用所述文件的所述漏洞相关:
从调用链生成利用面向返回编程(rop)的事件;
通过在堆上执行而生成事件;
通过在堆栈上执行而生成事件;
改变所述堆栈;
更改描述操作系统中进程的权限和特权的数据结构;
通过从内存页面的首次执行生成的事件;以及
内存的动态分配和将对象放置在动态分配的所述内存中。
12.如权利要求8所述的系统,其中,打开所述文件包括如下项之一:
当所述文件为可执行的时,执行所述文件;以及
当所述文件为不可执行的时,由应用打开所述文件。
13.如权利要求8所述的系统,其中,安全模块执行如下项中的至少一者:
启动所述虚拟机;以及
从先前创建的虚拟机选择所述安全模块。
14.如权利要求8所述的系统,其中,所述触发器描述:真实事件,所述真实事件的发生激活所述触发器;以及所述触发器的伴随所述真实事件的所述条件,所述条件与尝试利用所述文件的所述漏洞相关。
15.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有用于在虚拟机中执行具有漏洞的文件期间形成日志的计算机可执行指令,所述计算机可执行指令包括用于如下操作的指令:
在打开所述文件时所创建的进程的线程的执行期间发现触发器的激活,其中,所述触发器描述一个或多个条件,所述一个或多个条件伴随与尝试利用所述文件的漏洞相关的事件;
分析在打开所述文件时所创建的所述进程的堆栈,并发现在所述事件之前的以调用地址和返回地址的序列形式的函数调用链;
分析发现的所述函数调用链是否满足所述触发器的与尝试利用所述漏洞相关的条件;以及
当满足所述触发器的与尝试利用所述文件的所述漏洞相关的所述条件时,将关于所述函数调用链的信息保存在日志中。
16.如权利要求15所述的非暂时性计算机可读介质,其中,所述计算机可执行指令还包括用于如下操作的指令:
将与所述触发器的所述条件的满足有关联的内存区域的转储保存在所述日志中。
17.如权利要求15所述的非暂时性计算机可读介质,其中,所述事件包括如下项中的至少一者:
在所述进程的所述线程的执行期间对api函数的调用;
从api函数的返回;
系统调用;
从系统调用的返回;以及
从操作系统接收通知。
18.如权利要求15所述的非暂时性计算机可读介质,其中,所述触发器描述一个或多个事件和伴随所述事件的条件,所述事件与尝试利用所述文件的所述漏洞相关:
从调用链生成利用面向返回编程(rop)的事件;
通过在堆上执行而生成事件;
通过在堆栈上执行而生成事件;
改变所述堆栈;
更改描述操作系统中进程的权限和特权的数据结构;
通过从存储页面的首次执行生成的事件;以及
内存的动态分配和将对象放置在动态分配的所述内存中。
19.如权利要求15所述的非暂时性计算机可读介质,其中,打开所述文件包括如下项之一:
当所述文件为可执行的时,执行所述文件;以及
当所述文件为不可执行的时,由应用打开所述文件。
20.如权利要求15所述的非暂时性计算机可读介质,其中,安全模块执行如下项中的至少一者:
启动所述虚拟机;以及
从先前创建的虚拟机选择所述安全模块。