剖析代码执行的制作方法_2

文档序号:9383093阅读:来源:国知局
系统的任何适当部分的存储器。在图1的示例中,反恶意软件模块110可以定义:可以监控被加载到Rl表示的区域的系统服务分派表(SSDT)以及被加载到R7表示的区域的操作系统的用户部分“X”。可以监控区域或操作系统结构中的具体元素,例如,SSDT中的单个指针。这种单个指针可以指示对由SSDT管理的具体的、识别出的功能的访问。
[0019]当驻留在存储器104内时会被监控的其它实体可以包括例如:系统共享库一包括动态链接库(DLL)、中断描述符表(IDT)、系统调用表、用户共享库,或操作系统调用分派器。这种实体可以用于任何适当的操作系统中。可以定义存储器104的其它区域,例如,内核空间的区域R2、R3、R4和用户空间的区域R6。
[0020]此外,反恶意软件模块110可以被配置为识别待用于剖析代码执行的特定转变、读取、写入、执行、属性改变、或I/O端口属性改变。可以在反恶意软件访问规则逻辑108中定义特定转变和访问。示例性转变在图1示出,并且可以包括:从诸如R7中操作系统的用户部分“X”之类的用户空间的已知部分到R5中的跟踪进程的转变114 ;从1?4中的内核空间中未识别实体到R5的跟踪进程的转变124 ;从1?4中内核空间中的一个未识别实体到R3中内核空间中的另一未识别实体的转变122 ;从R4中的跟踪进程到例如Rl中的SSDT之类的内核空间中的已知实体的转变118 ?’从R4中的跟踪进程到R3中的内核空间中未识别实体的转变116 ;或者从R2中内核空间的未知实体到例如Rl中的SSDT的内核空间中的已知实体的转变120。
[0021]另外,反恶意软件模块110可以被配置为出于剖析代码执行的目的而识别转变的特定方面。可以在反恶意软件访问规则逻辑108中定义特定方面。在一个实施例中,可以评估转变的具体方向。例如,Rl到R2之间的转变可以区别于R2到Rl之间的转变。因此,反恶意软件访问规则逻辑108可以要求给定的转变与具体方向匹配。在另一个实施例中,可以评估转变的距离。例如,从一个存储器空间到附近存储器空间的转变可以足够短以表示被忽略的转变。因此,如果转变跨越比存储器地址的阈值量小,则反恶意软件访问规则逻辑108可以提供转变异常。这种阈值可以包括例如50字节。在又一个实施例中,可以评估转变的计数。例如,可以多次重复从一个监控区域到另一个监控区域的转变,并且仅基于这种重复转变某一数量,执行被视为值得应用反恶意软件访问规则逻辑108。因此,反恶意软件访问规则逻辑108可以指定当第η次发生这种转变时匹配转变。这种转变之前或随后的示例可以被忽略。在又一实施例中,可以对转变放置条件句,使得逻辑(包括非、与、或、异或,或其它这种操作)可以应用于一个或多个转变。例如,只要尚未遇到另一识别出的转变,就可以匹配特定转变。因此,反恶意软件访问规则逻辑108可以指定匹配转变的变化或复杂逻辑条件。
[0022]诸如转变114、116、118、120、122和124的转变可以被定义为存储器104的不同区域之间的执行中的分支。在一个实施例中,可以根据加载到处理器106的指令指针112的地址来评估执行中的跳转。在执行前加载到指令指针112的给定范围的存储器地址可以与在执行后加载到指令指针112的另一给定范围的存储器地址进行比较。在执行前和执行后与指令指针112相关联的存储器范围内的改变可以反映JMP指令、CALL指令,或用于驻留在存储器104中实体间的分支执行的其它指令。在另一实施例中,存储器地址的读取、写入或执行可以定义执行的分支,其中在存储器104的不同部分的存储器的后续读取、写入或执行可以被视为转变。在又一实施例中,指令取回可以用于判定存储器104中的执行点。
[0023]反恶意软件访问规则逻辑108也可以考虑定时和指令计数。例如,如果两个转变之间的时间间隔(例如,由中央处理单元计数器所确定的)太长或太短,则不能适用给定的规则。类似地,如果指令计数器低于或高于阈值,则匹配规则的状态可以被重置为初始状
??τ O
[0024]虽然图1示出了单个处理器106,但系统可以包括多个处理器。此外,处理器106可以包括多个核心或中央处理单元。系统100所完成的剖析执行可以基于每处理器、每核心或每中央处理单元进行。此外,这种剖析执行可以在任意这种处理器、核心或中央处理单元上基于每进程或每线程进行。
[0025]图1中示出的利用转变进行代码执行剖析是结合连续存储器的。这种剖析可以包括剖析实体,例如驻留在虚拟存储器内的实体。在一个实施例中,剖析代码执行可以通过引用虚拟存储器下面的物理地址来完成。
[0026]如上所述,反恶意软件模块110可以访问反恶意软件访问规则逻辑108,以判定将要监控的任意适当数量或种类的转变。在一个实施例中,用于将要被监控的这种转变的规贝1J、指示或逻辑可以被加载到例如处理器106或加载到与处理器106耦合的随机存取存储器控制器。当遇到由规则定义的这种转变时,处理器106可以生成可以由反恶意软件模块110处理的页面错误、中断或异常。在另一实施例中,用于将要被监控的这种转变的规则、指示或逻辑可以被加载到操作系统下捕获代理,例如超级管理器或虚拟机监控器。当遇到由规则定义的这种转变时,超级管理器或虚拟机监控器可以生成虚拟机退出或可以由反恶意软件模块110处理的其它通知。反恶意软件模块110还可以访问反恶意软件访问规则逻辑108以判定所检测到的转变是否指示恶意软件。在处理通知期间,可以暂停执行。
[0027]处理器106做出的通知:规则已经被匹配,可以包括上下文信息。该信息可以包括对被匹配的规则、被访问的存储器位置、发起访问的存储器位置和任意相关联的参数(例如,驻留在处理器106的执行堆栈上的值)的识别。
[0028]反恶意软件模块110可以被配置为跟踪多个检测到的转变的发生,以判定这种转变是否包括表示恶意软件的操作模式。这种模式可以在例如反恶意软件访问规则逻辑108中定义。
[0029]如果一个或多个检测出的转变不表示恶意软件,则反恶意软件模块110可以被配置为允许该转变。如果一个或多个检测出的转变可以表示待决(pending)额外判定出的转变的恶意软件,则反恶意软件模块110可以被配置为允许该转变,但是记录该转变以用于将来可能的校正动作。
[0030]此外,如果一个或多个检测出的转变可以表示待决额外判定出的转变的恶意软件,则反恶意软件模块110可以被配置为加载来自恶意软件访问规则逻辑108的额外规则。这种条件规则可以例如指定待被监控的存储器104的额外区域、待被跟踪的额外转变、或待被跟踪的转变的额外组合。因此,所应用的选定的恶意软件访问规则逻辑108可以动态地改变。这种动态方法可以克服处理器容量的限制以将整个规则集保持为加载到处理器中。当需要时,规则可以动态加载并且丢弃不相关规则。例如,给定具有初始可能不被触发的三种状态(“A”- “B” - “C”)的规则可以匹配第一状态“A”。在该点处,匹配“C”可能被丢弃,因为认为“C”在不首先匹配“B”的情况下是无关的。一旦转变发生匹配“B”,则关于“C”的其余规则可以被重新加载。加载或卸载规则分支可以由例如反恶意软件模块110执行。
[0031]另外,一个或多个检测到的转变可以表示待决额外调查操作的恶意软件。这种额外调查操作可以包括超过对转变的评估的判定。例如,给定由一组转变定义的执行模式,则恶意软件访问规则逻辑108可以定义这种动作的源将利用例如已知安全或与恶意软件相关联的实体的散列或者数字签名来进行评估。在又一示例中,给定由一组转变定义的执行模式,恶意软件访问规则逻辑108定义这种动作必须源自经授权或验证的对象,例如,操作系统的安全部分、签名的驱动器或受保护的功能调用。
[0032]当确定一个或多个转变表示恶意软件时,反恶意软件模块110可以被配置为采取任意适当的校正动作。例如,存储器104中与指示恶意软件的转变相关联的
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1