CN105408911A - 硬件和软件执行概况分析 - Google Patents

硬件和软件执行概况分析 Download PDF

Info

Publication number
CN105408911A
CN105408911A CN201380078561.7A CN201380078561A CN105408911A CN 105408911 A CN105408911 A CN 105408911A CN 201380078561 A CN201380078561 A CN 201380078561A CN 105408911 A CN105408911 A CN 105408911A
Authority
CN
China
Prior art keywords
event
branch instruction
profile analysis
instruction
trigger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201380078561.7A
Other languages
English (en)
Inventor
G·W·达尔彻
R·L·萨希塔
P·山姆盖维拉由瑟姆
K·山田
A·克里希纳斯瓦米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
McAfee LLC
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105408911A publication Critical patent/CN105408911A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了用于组装事件的执行简档的技术。技术可包括以下步骤:对事件监视分支指令;在执行分支指令时生成对安全模块的回调;根据多个事件标识符来过滤回调;以及验证与分支指令相关联的代码段,所述代码段包括在分支指令之前执行的代码以及在分支指令之后执行的代码。

Description

硬件和软件执行概况分析
技术领域
本发明总体涉及电子安全领域,更具体地涉及硬件和软件执行概况分析(profiling)。
背景技术
在电子安全领域,电子安全产品常常发觉它们自身比有害软件的所有者和分发者迟一步。电子安全的许多传统方式以标识威胁并且对这些威胁的反应来作为它们的起始点。此反应性方式可以保护电子设备免受已知威胁的破坏,但是仍使电子设备易受未知威胁的侵害。此外,此反应性方式要求电子设备的恒久的警戒和更新,以便跟上有害软件的最新的进展。
附图说明
为了更完整地理解本发明以及其优点,现在结合所附附图来参照以下描述,其中:
图1示出根据本公开的某些实施例的、用于在无论什么插入方法的情况下检测事件的处理中恶意软件的存在的示例系统;
图2示出根据本公开的某些实施例的、用于检测事件嗅探恶意软件的示例系统;
图3示出根据本公开的某些实施例的、用于处置用户模式和内核模式恶意软件两者的示例系统;以及
图4示出根据本公开的某些实施例的、用于组装执行简档(profile)的示例方法的流程图。
具体实施方式
在现代的电子系统中,一个主要问题仍是电子安全。对电子系统的安全的恒久的威胁是通过除系统的用户计划的那些装置以外的装置对系统资源的吸收的威胁。这些装置可以采取软件、硬件、固件,或它们的某种组合的形式,并且可包括计算机病毒、蠕虫、间谍软件、广告软件,或可以从被感染的电子设备搜集信息,损坏设备,或具有某种其他有害影响的其他装置。这些装置可以一般被称为“恶意软件”。
一种特别恶意种类的恶意软件可以将其本身插入到电子设备的事件处理例程中,以便破坏、监视和/或改变这些进程。例如,击键记录软件可以被插入到对击键的处置中以捕捉这些击键。另一类型的恶意软件可以利用“面向返回的编程”,其中,恶意软件企图利用对主机计算机的各种栈和/或寄存器的返回调用以插入其自身的恶意代码。
恶意软件一般能以被插入到对某种事件的处置中的需求来表征,即使仅被调度而由系统执行也是如此。在事件处理中检测恶意软件的存在是有价值的,但是常常是困难的。例如,恶意软件可以通过间接的方法(诸如,利用电子设备本身的漏洞(“漏洞利用(exploit)”))而被包括在事件的处理中。某个先前的电子安全软件已经能够发现可以使用哪些插入方法并且监视这些插入方法(例如,已知的漏洞)。例如,在击键记录器的情况下,插入的方法可以是对应用编程接口(“API”)的利用。解决此漏洞的一个历史方法是监视API以检测对正常操作的颠覆。
对诸如这种方法之类的反应性检测方法使得要跟上恶意软件插入技术的变化是困难的。改善的方式可以是允许在无论什么插入技术的情况下都检测事件的处理中恶意软件的存在一种方式。另外,也支持使用组装的执行简档以验证API(诸如,特许的API)的调用者可能是有益的。
图1示出了根据本公开的某些实施例的、用于在无论什么插入方法的情况下检测事件的处理中恶意软件的存在的示例系统100。系统100可包括处理器102、存储器104、可通信地耦合到处理器102的安全模块106、可通信地耦合到处理器102的执行概况分析模块108以及可通信地耦合到处理器102的概况分析控制模块110。
执行概况分析模块108、安全模块106和/或概况分析控制模块110可以配置成用于在系统100的任何合适的部分上执行。它们可以被配置成在例如服务器、计算机、节点、网关、路由器、发射机或接收机上执行。可以由任何合适的电子设备和/或电子设备的组合来实现系统100,诸如:计算机、膝上型计算机、云计算服务器、刀片(blade)、台式机、机架服务器、移动设备和/或web服务器。在一些实施例中,系统100可以通过一个或多个微处理器、微控制器、专用集成电路和/或片上系统(“SoC”)配置中的其他合适的电子设备来实现。
在一些实施例中,由执行概况分析模块108、安全模块106和/或概况分析控制模块110执行的功能中的一些或全部功能可以由一个或多个安全代理来执行。可安装安全代理以在各种电子设备上运行,所述各种电子设备包括计算机、膝上型计算机、云计算服务器、刀片、台式机、机架服务器、移动设备和/或web服务器。
在一些实施例中,处理器102可以包括例如,微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC),或配置成解释和/或执行程序指令和/或处理数据的任何其他数字或模拟电路。在一些实施例中,处理器102可以解释和/或执行存储在存储器104中的程序指令和/或处理数据。存储器104可以部分地或整体地被配置为应用存储器、系统存储器,或这两者。存储器104可包括配置成用于保持和/或容纳一个或多个存储器模块的任何系统、设备或装置。每一个存储器模块都可包括配置成用于保留程序指令和/或数据达一段时间的任何系统、设备或装置(例如,计算机可读存储介质)。用于配置系统100的操作(诸如,对诸如概况分析模块108、安全模块106和/或概况分析控制模块110之类的组件的配置)的指令、逻辑或数据可以驻留在存储器104中,用于由处理器102执行。
在一些实施例中,系统100可以监视选择活动的执行。也就是说,系统100可以允许对未经授权的软件的通用运行时检测。例如,系统100可以允许系统100的用户来确定软件执行流源自哪里,以及执行流可以继续进行到哪里。在相同或替代实施例中,系统100可以发现在对被跟踪的事件的处置中所涉及的代码。例如,系统100可以发现在对输入/输出(“I/O”)事件处置、对特许的API的调用返回等的处置中所涉及的代码。
在一些实施例中,系统100可以配置成基于未经授权的软件的行为的在先获悉,在不使用签名、插入、监视单个已知的漏洞利用和/或标识恶意软件的其他方法来检测未经授权的软件。也就是说,系统100可以配置成用于检测未经授权的软件的片段的先前未知的版本,和/或可以不要求响应于系统软件的变化而频繁地更新监视软件。
在一些实施例中,系统100可包括安全模块106。安全模块106可以配置成用于监视选择活动的执行。安全模块106可以配置成用于接收来自执行概况分析模块108的输出以检测未经授权的软件。例如,安全模块106可以是在系统100上执行的代理,所述代理配置成用于将安全策略应用于所收集的关于所标识的事件的执行简档的数据。
在一些实施例中,系统100还可包括概况分析控制模块110。概况分析控制模块110可以配置成与安全模块106对接,以便将适用的安全策略的变化和/或其他相关的信息通知给安全模块106。例如,概况分析控制模块110可以将新类型的执行事件策略、过滤规则和/或回调条件传递到执行概况分析模块108和/或安全模块106。概况分析控制模块110也可以配置成用于处置新执行概况分析事件,以便创建和/或优化反恶意软件试探发(heuristics)(例如,面向返回的编程检测、API误用和/或一般代码注入)。
在一些实施例中,系统100可包括执行概况分析模块108。执行概况分析模块108可以配置成用于实现并提供执行概况分析和监视能力。在一些实施例中,可以通过硬件、软件和/或它们的某种组合来实现执行概况分析模块108。例如,可以通过使用二进制转换技术(或其他合适的代码仿真技术)和/或被开发以与执行概况分析模块108一起使用的CPU硬件扩展来实现执行概况分析模块108。作为后者的示例,可以基于分叉设陷来开发CPU扩展。
在一些实施例中,执行概况分析模块108可以配置成用于在满足指定的准则时来调用对安全模块106的回调。例如,执行概况分析模块108可以:当标识和/或生成了要被跟踪的事件时,调用对安全模块106的回调,当某些分支指令执行时(可取决于和/或更改在特定点处的执行流的任何合适的代码段,例如,CALL、JMP、RET),启用回调的生成;通过二进制转换(基于软件的和/或硬件辅助的)、现有的分支上CPU调试断点(DebugBreak)和/或其他CPU扩展,生成回调;过滤由与执行指令的进程和/或线程相关联的标识符(例如,软件进程ID)进行的回调,其中,可以通过检查CPU寄存器的内容来确定标识符;当处置回调时,标识分支(分支前和/或分支后)中所涉及的代码;校验标识的代码的有效性(例如,签名校验,扫描恶意软件);对所标识的代码校验其包括在处置被跟踪的事件中的愿望(或必要性);和/或校验是否使用了面向返回的编程技术。在相同或替代的实施例中,执行概况分析模块108可以进一步被配置为在校验对面向返回的编程技术的使用时,检查分支点处的调用栈以验证它是否是合法的或是否是由面向返回的编程引起的。可以凭借其来执行此检查的手段的示例可以在美国专利No.7,987,451中找到,在此通过引用并入此专利。
在相同或替代的实施例中,执行概况分析模块108可以配置成用于在满足其他准则时来调用对安全模块106的回调,从而执行校验。例如,可在以下时机调用回调:栈枢轴(stackpivot)的使用(例如,从使用合法的、操作系统供应的线程栈切换到经分配的栈);对已经存在于调用栈中的返回地址的操纵(例如,合法地覆写被置于栈中的返回地址);和/或对调用帧和/或调用帧数据的其他形式的非法的操纵。在一些实施例中,这些校验可以与对新返回地址的目的地处的代码的标识和检查和/或对所标识代码的合法性的校验相耦合。
在一些实施例中,取决于给定实现的性能需求,安全模块106可以实现为高级别的和/或低级别的模块。例如,安全模块106(和/或执行概况分析模块108)可以被实现为硬件、存储在计算机可读介质上的软件、固件和/或它们的某种组合,要么作为独立的模块和/被或集成到系统100的其他部分中。
在操作中,系统100可操作以基于执行简档而不是签名或其他静态模式匹配来检测未经授权的软件。也就是说,系统100可以基于行为和/或运行时解决方案来标识未经授权的软件。基于执行概况分析的方式可以避免与其他技术相关联的一些缺点。例如,与依赖于API使用试探法的主机入侵预防系统(及其他行为方式)不同,执行概况分析可以较不容易受以下各项的影响:面向返回的编程攻击、钩跳过(hookskipping)、钩篡改(hooktempering),等等。执行概况分析可以例如在零天的基础上(onazero-daybasis)来解决此类攻击而无需昂贵的钩操作(hooking)方式。作为附加示例,其他类型的恶意软件标识系统可以采用软件故障隔离来解除不受信任的进程执行某些类型的系统操作的特权。然而,这种类型的方式对于对受信任的和/或特许的代码的攻击可能不是有效的。为了解决这些以及其他顾虑,执行概况分析可以在不具有目标代码地址的在先获悉或发现的情况下来标识未经授权的软件;相反,这些可以在监视执行流程期间被这些。
如下文中参考图2-4更详细地所述,在由处理器102在进程执行上下文内执行控制转移时,执行概况分析模块108可通过控制转移事件的生成来标识未经授权的软件。当触发事件时,可以组装执行简档以使安全模块106能够处置该事件。
在一些实施例中,执行概况分析模块108可以由人工事件(例如,测试事件)或自然事件(例如,由于由来自用户的击键而产生的回调API调用;从对特许的API的调用返回;等等)触发。在一些实施例中,系统100可以支持可以通过使用对处理器102的扩展而成为可能的事件触发器的实现。这些事件触发器可包括当满足某些进程、指令和/或其他参数时的触发器。例如,可以通过对处理器102的扩展而成为可能的事件触发器可包括:(1)所执行的x族的指令(例如,当任何CALL和/或RET指令被执行时触发的监视器。这些可以基于系统100的特定配置来排定优先级。例如,优先次序可以是:(i)RET指令监视,(ii)CALL指令监视,以及,(iii)JMP指令监视。为本领域技术人员所知的是,RET指令通常返回栈参数,CALL指令通常请求栈参数,而JMP指令通常实现非条件跳转,从而通过改变指令指针寄存器来转移执行流);(2)当被触发时,事件调用用于处置事件的经注册的回调(如下文中参照图2-4更详细地所述,可以使用过滤器,在非常低的级别上筛选回调调用以性能影响最小化);(3)支持各种操作的回调(例如,在回调处理程序处理通知时保持触发操作;对触发事件的标识;对在事件触发器时存在的存储器和寄存器的访问;对最后分支记录(“LBR”)的访问;每一个核的序列号,每当事件被触发时都递增;在不触发附加的事件回调的情况下能够在回调处理程序内执行操作的能力,这有望避免递归;等等);以及(4)当系统正在执行时能够添加、去除和/或更新回调注册的能力。
执行概况分析模块108可以标识可描述要被监视的进程和/或线程的事件信息以及可以被监视的任何分支指令。执行概况分析模块108还可标识与经标识的分支相关联的任何去往代码和/或来自代码(to-andfrom-code)以及任何代码的所有权。基于收集到的信息,当由特定的进程和/或线程执行所指定的分支指令类型时,执行概况分析模块108可以生成对软件模块106的回调。
在回调时,安全模块106经由通过签名校验、合法性校验(即,特定的可执行文件是否应当是处置特定的事件中所涉及的)和/或其他合适的有效性校验来确定所标识的可执行文件的有效性。安全模块106还可对所涉及的代码执行运行时扫描,在代码既未被打包也未被加密的情况下尤其如此。安全模块106还可校验某些软件插入技术,诸如,面向返回的编程技术。例如,如上文中参照美国专利No.7,987,451更详细地所描述,调用者验证可以应用于通过对CALL/RET指令的拦截而标识的调用帧。
在操作中,执行概况分析模块108可以利用与处理器102相关联的事件(例如,控制转移)来标识在处置特定的较高级别事件中的所有代码(无论是软件和/或用户生成的)。执行概况分析模块108可以进一步配置成用于限制监视的范围并促进对分支跟踪回调的过滤,以便将这些限制到仅与对指令执行事件的处置有关的分支。
在一些实施例中,执行概况分析模块108可以配置成利用对处理器102的硬件扩展。例如,处理器102可以配置成包括监视扩展最后分支记录(“LBR”)扩展、低级别过滤扩展和/或配置成辅助通过执行概况分析来检测未经授权的软件的其他合适的扩展。
在一些实施例中,执行概况分析模块108可以配置成利用对处理器102的低级别的过滤扩展。例如,执行概况分析模块108可能能够应用过滤来控制对监视回调的调用以及分支在LBR中的包括。出于处理功率的效率、存储器和/或其他性能考虑,可在低级别上实现这些过滤机制。在一些实施例中,过滤准则可包括一些进程和/或线程标识符、特定的命令和/或其他适当的准则。例如,执行概况分析模块108可以基于处理器102的某个寄存器和/或栈值来过滤。作为说明性示例,执行概况分析模块108可以基于存储在3号控制寄存器(“CR3”)中的值(例如,程序ID)来过滤。执行概况分析模块108还可基于以下各项来过滤:栈指针范围(例如,线程ID);分支指令类型(例如,CALL、RET、JMP);和/或其他附加的和/或次级的准则(例如,包括匹配主要准则的前n条指令;排除匹配主要准则的前n条指令;仅包括从指定的地址范围内执行的指令)。
执行概况分析模块108还可以配置成利用对处理器102的监视扩展,以便在执行服从于上文中更详细地描述的低级别过滤的指定的指令形式之前来调用回调。
执行概况分析模块108还可以配置成利用对处理器102的LBR扩展,以便利用LBR技术并且潜在地扩大其能力。例如,LBR扩展可以扩展LBR以支持:较大的深度(例如,所支持的比当前的16条目限制更长的历史);在每一个条目中包括附加的信息(例如,在执行控制转移之前的CR3和/或扩展的栈指针(“ESP”)值);以及基于某些准则(诸如,在执行控制转移之前的CR3和/或ESP值、在执行控制转移之前的指令指针值和/或指令类型)来过滤控制转移在列表中的插入。对于指令类型,此准则可以是条件性的,例如,仅记录是长跳转的控制转移,仅记录由于RET而导致的控制转移,等等。扩展还可允许在系统100正在执行时(包括在处置基于处理器102的回调期间)改变过滤的能力。
这些扩展还可利用上文中更详细地描述的低级别的过滤来控制LBR中的包括。
为了演示在对未经授权的软件的检测中使用某些扩展,提供了两个说明性示例:检测事件嗅探恶意软件以及检测对特许的API的未经授权的调用。
图2示出根据本公开的某些实施例的、用于检测事件嗅探恶意软件的示例系统200。在一些实施例中,系统200可包括进程中过滤器(“IPF”)服务202、受监视进程204、内核模块执行概况分析异常处理程序210以及事件源212。在一些实施例中,受监视进程204可包括监视扩展206和恶意软件208。
在一些实施例中,恶意软件208可以将其本身插入到对感兴趣的事件(诸如,向用户模式软件发送的击键)的处置中。恶意软件208可截取这些事件,并汲取它可能感兴趣的数据(例如,按下的键)。
如上文中参考图1更详细地所描述,系统100可以利用可能存在于处理器102内的某些硬件扩展。例如,处理器102可包括用于对指定的分支指令监视特定的进程和/或线程的扩展。在一些实施例中,监视可以是默认地被禁用,并仅当测试事件对于用于处置的系统100是存在的时才被启用。在相同或替代的实施例中,可以为某一(某些)程序、进程、线程和/或其他准则启用监视。再次参考图2,例如,可以为与互联网浏览器相关联的事件以及与RET指令相关联的事件启用监视。然后,事件源212可以配置成将测试击键发送到浏览器。
在一些实施例中,事件源212可以是配置成用于根据期望监视的事件来生成测试事件的任何合适的软件、硬件、固件和/或其他电子资源。在一些实施例中,事件源212可以配置成用于生成与特定的程序、进程和/或其他参数相关联的事件。在所提供的说明性示例中,已经为与互连网浏览器相关联的所有事件开启了监视。然而,在其他示例中,调谐监视以应用于特定的进程/线程组合是可能的。
在监视被启用的情况下,可由监视扩展206诱捕在对击键测试事件的处置期间由浏览器执行的所有RET指令,并且这些RET指令被路由到对内核模块执行概况分析异常处理程序210的回调。在一些实施例中,监视扩展206可以是如上文中参考图1更详细地描述的对处理器102的扩展。回调可以标注当前指令指针和/或其他寄存器内容。回调还可以标注其他感兴趣的数据,诸如,来自栈顶的前n个字节的内容。可以共同地或分段地、异步地和/或同步地来分析此数据。当完成了对测试击键的处置时,可以禁用监视。
对从监视回调收集到的信息的分析可以标识执行RET指令中的每一条指令的代码以及RET指令返回到的代码。标识可包括:确定什么后备(backing)可执行文件(backingexecutable)可以拥有该代码。随后,可以诸如通过后备可执行文件由可信赖的源签名的校验来确定所述后备可执行文件的有效性。在一些实施例中,可以由监视扩展206来执行分析。在相同或替代的实施例中,可以由与系统100相关联的不同的硬件扩展、软件模块、固件和/或其他电子资源来执行这些分析中的一些或全部。
如果在对测试事件的处置期间代码片段不能被验证为是合法的,则内核模块执行概况分析异常处理程序210可以生成安全违规。
除监视扩展206之外,系统200还可以包括与处理器102相关联的一个或多个LBR扩展。在一些实施例中,可以使LBR过滤就位以添加用于浏览器的处理器ID的RET指令。在对测试击键事件的处置结束时,能以与检索并分析从监视扩展206收集到的数据相同的方式来检索和分析LBR内容。
在操作中,事件源212可以生成系统200感兴趣的测试事件。可以由操作系统将测试事件递送至受监视进程204。受监视进程204内的恶意软件208可以监视递送至受监视进程204的击键事件。可以由系统100的执行概况分析模块108触发执行概况分析异常,并且执行概况分析异常可递送至内核模式执行概况分析异常处理程序210。随后,异常处理程序210可以对监视扩展206调用进程中用户模式回调处理程序。随后,监视扩展206可以分析概况分析事件在原始线程的上下文中的执行。随后,监视扩展206可以将检测结果传递至概况分析控制模块202。在一些实施例中,概况分析控制模块202可以配置成用于控制系统200对检测结果的反应。
还可以实现与系统300的配置类似的、用于检测对特许的API的未经授权的调用的配置而不背离本公开的范围。例如,就在从特许的API返回之前,监视扩展206可以配置成对于用于调用进程和/或线程的RET指令而被启用。当对API返回的处置被判断为完成时,可以检索监视数据,并且禁用监视。如同应用于测试事件处置那样,可以在对从特许的API返回的处置期间从指定的进程/线程观察为所有RET而收集的数据。可以标识这些观察到的RET所涉及的代码,并且作出所涉及的代码经授权而已经在对API的调用链中的判断。如果检测到未经授权的代码,则可以生成安全违规。此外,可以启用LBR过滤以便仅包括来自调用了API的进程和/或线程的RET指令。
图3示出根据本公开的某些实施例的、用于处置用户模式和内核模式恶意软件两者的示例系统300。在一些实施例中,系统300可包括可通信地耦合到用户模式I/O处置API库的用户模式应用302。用户模式应用302可以是利用用户输入,为用户的利益而运行的任何应用程序,或者可以是任何其他合适的用户应用。用户模式应用302可以可通信地耦合到用户模式IO处置API库304。库304可以是API、API函数或与IO处置API相关联的任何其他API相关的信息的任何合适的集合。
在一些实施例中,用户模式恶意软件306可监视用户模式应用302与用户模式IO处置API库304之间的IO。例如,恶意软件306可以是设计成用于以未经授权的方式来调用特许的API的软件。如上文中参考图1-2更详细地所描述,可以使用执行概况分析来检测用户模式恶意软件306。
系统300还可以包括中间内核模式过滤器驱动器308,所述中间内核模式过滤器驱动器308可通信地耦合到中间内核模式驱动器310,所述中间内核模式驱动器308还可以可通信地耦合到低级别内核模式驱动器312。在一些实施例中,中间内核模式过滤器驱动器308、中间内核模式驱动器310以及低级别内核模式驱动器312能以硬件、软件、固件和/或它们的某种组合来实现,并且可以被存储并作为系统100处理器102和存储器104的部分而被执行。在一些实施例中,系统300还可以包括内核模式恶意软件314。例如,恶意软件314可以是配置成用于监视、存储,和/或传递由用户为获得用户模式应用程序302(例如,web浏览器)的利益而输入的击键的键记录软件。如上文中参考图1-2更详细地所描述,可以使用执行概况分析来检测用户模式恶意软件314。
如上文中参考图1更详细地所描述,中间内核模式过滤器驱动器308、中间内核模式驱动器310以及低级别内核模式驱动器312可以配置成用于实现上文中参考图1所描述的过滤。可以使用这些过滤器,以便在低级别上提供对事件的充分筛选,从而使组装由被监视的软件采取的执行路径的性能影响最小化。在异常生成之前的过滤可有助于显著地减小性能影响。
这些事件过滤器可包括在将事件发送到监视回调之前应用的新类型的过滤器。这些过滤器一般可以被分组为五个类别:(1)基于寄存器值(例如,CR3值;与扩展的栈指针(“ESP”)值耦合的CR3值,校验某值在范围内;指令指针值,校验某值在范围内;等等)来过滤;(2)基于类别(1)过滤器的逻辑非来过滤(例如,当CR3值不匹配指定的值时触发错误);(3)逻辑地组合多个过滤器)(例如,在以下情况下调用回调:仅当特定的CR3和ESP值存在,并且指令指针值在指定范围之外;如果CR3包含特定值;等等);(4)对所支持的过滤器注册的充分高的限制;以及(5)在系统正在执行时能够注册、取消注册以及改变过滤器注册的能力。
这些过滤器应用于事件监视可以允许为感兴趣的某个软件创建执行简档的高效的手段。此类方法可以允许在不具有对软件属性的在先获悉的情况下来标识未经授权的软件。
图4示出根据本公开的某些实施例的、用于组装执行简档的示例方法400的流程图。方法400包括以下步骤:生成事件、保持事件、恢复事件处置,标注调用帧、分析所涉及的可执行存储器、标识所有者,以及检测恶意软件。
根据一实施例,方法400优选地在402处开始。能以各种配置来实现本公开的教导。由此,方法400的优选的初始化点以及包括方法400的402-416的顺序可以取决于所选择的实现。
在某些实施例中,方法400可以由如上文中参考图1-3更详细地描述的系统100的组件中的一些或全部来执行。例如,在一些配置中,执行概况分析模块106可以负责分析所涉及的可执行存储器。在其他配置中,这可以由系统100的不同的组件来执行而不背离本公开的范围。
在402处,方法400可以生成测试事件。如上文中参考图1-3更详细地所描述,事件可以是人工或自然的。事件可以在系统100内部或外部生成。在已生成了事件之后,方法400可以继续进行到404。
在404处,方法400可以保持在402处生成的事件以发起对事件的监视。例如,如上文中参考图1-3更详细地所描述,方法400可以发起与事件相关联的调用帧监视。一旦已发起了监视,则方法400可以继续进行到406,在406处,事件处置可以恢复。一旦恢复了处置,则方法400可以继续进行到408。
在408处,方法400可以开始监视例程。例如,方法400可以标注与事件相关联的第一调用帧。一旦监视已开始,则方法400可以继续进行到410,在410处,可以如上文中参考图1-3更详细地所述来分析与事件相关联的数据。例如,可以分析在经标注的调用帧中所涉及的可执行存储器。一旦分析完成,则方法400可以继续进行到412。
在412处,方法400可以尝试验证与被监视的事件相关联的代码。例如,如上文中参考图1-3更详细地所描述,方法400可以判断被分析的可执行存储器的所有者是否是合法的。如果它被确定为是合法的,则方法400可以继续进行到414,在414处,在递增监视(例如,进展到下一调用帧)以及返回到408之前,可允许事件处置继续进行。如果它被确定为不是合法的,则方法400可以继续进行到416,在416处,可以发布安全警告,并且可以检测未经授权的软件。在生成了安全警告之后,方法400可以返回到402以再次开始该过程。
虽然图4公开了方法400的一些实施例,但是方法400可包括比在图4中所描绘的内容更多或更少的内容。此外,虽然图4公开了某个顺序,但是能以任何合适的顺序来完成方法400。例如,在所示的方法400的实施例中,以同步方式来执行监视。然而,在一些配置中,以非实时的、异步的方式来执行此分析可能是必要的或期望的。
公开了用于组装事件的执行简档的的系统。系统可包括处理器、可通信地耦合到处理器的安全模块、以及可通信地耦合到处理器和安全模块的执行概况分析模块。执行概况分析模块配置成用于:对事件监视分支指令;在执行所述分支指令时生成对所述安全模块的回调;根据多个事件标识符来过滤所述回调;以及验证与所述分支指令相关联的代码段,所述代码段包括在所述分支指令之前执行的代码以及在所述分支指令之后执行的代码。系统还可以包括可通信地耦合到所述安全模块和所述执行概况分析模块的概况分析控制模块,所述概况分析控制模块配置成用于管理所述系统的安全策略。
执行概况分析模块可以进一步配置成用于对所述代码段校验面向返回的编程技术的使用。执行概况分析模块可以配置成用于使用基于二进制转换的技术来对所述事件监视所述分支指令。
所述处理器还可以包括监视扩展,所述监视扩展配置成用于提供用于提供事件触发器,所述事件触发器用于对所述事件监视所述分支指令。
事件触发器可包括:当特定类型的指令被执行时的触发器和/或调用用于处置所述事件的经注册的回调的触发器。
多个事件标识符可包括进程标识符、线程标识符和/或寄存器值。
执行概况分析模块可以配置成用于当满足其他准则时来调用对安全模块的回调以执行校验。例如,可在以下时机调用回调:在栈枢轴的使用(例如,从使用合法的,操作系统供应的线程栈切换到分配的栈);对已经存在于调用栈中的返回地址的操纵(例如,合法地覆写被置于栈中的返回地址);和/或对调用帧和/或调用帧数据的其他形式的非法的操纵。在一些实施例中,这些校验可以与对新返回地址的目的地处的代码的标识和检查和/或对所标识的代码的合法性的校验相耦合。
取决于给定的实现的性能需求,安全模块和/或执行概况分析模块可以实现为高级别的和/或低级别的模块例如,安全模块和/或执行概况分析模块可以实现为硬件扩展和/或实现为包含在计算机可读介质上并可由处理器执行的指令。
公开了至少一种机器可读存储介质。介质可包括存储在所述计算机可读介质上的计算机可执行指令,所述指令可由处理器读取,所述指令当被读取和执行时使所述处理器:对所述事件监视分支指令;在执行分支指令时生成对安全模块的回调;根据多个事件标识符来过滤回调;以及验证与分支指令相关联的代码段,代码段包括在分支指令之前执行的代码以及在分支指令之后执行的代码。
指令当被读取和执行时可以使处理器对代码段校验面向返回的编程技术的使用。
指令当被读取和执行时可以使处理器管理系统的安全策略。
指令当被读取和执行时可以使处理器使用基于二进制转换的技术来对事件监视分支指令。
指令当被读取和执行时可以使处理器提供来自对所述处理器的监视扩展的事件触发器,事件触发器在对事件监视分支指令时使用。事件触发器可包括:当特定类型的指令被执行时的触发器和/或调用用于处置事件的经注册的回调的触发器。
多个事件标识符可包括进程标识符、线程标识符和/或寄存器值。
指令当被读取和执行时可以使处理器在满足其他准则时来调用对安全模块的回调以执行校验。例如,可在以下时机调用回调:栈枢轴的使用(例如,从使用合法的、操作系统提供的线程栈切换到分配的栈);对已经存在于调用栈中的返回地址的操纵(例如,合法地覆写被置于栈中的返回地址);和/或对调用帧和/或调用帧数据的其他形式的非法的操纵。在一些实施例中,这些校验可以与对新返回地址的目的地处的代码的标识和检查和/或对经标识的代码的合法性的校验相耦合。
公开了用于组装事件的执行简档的方法。方法可包括以下步骤:对事件监视分支指令,在执行分支指令时生成对安全模块的回调;根据多个事件标识符来过滤回调;以及校验与分支指令相关联的代码段,代码段包括在分支指令之前执行的代码以及在分支指令之后执行的代码。
方法还可以包括以下步骤:对代码段校验面向返回的编程技术的使用;管理系统的安全策略;使用基于二进制转换的技术来对事件监视分支指令;和/或提供来自对处理器的监视扩展的事件触发器,所述事件触发器在对事件监视分支指令时使用。
事件触发器可包括:当特定类型的指令被执行时的触发器和/或调用用于处置事件的经注册的回调的触发器。
多个事件标识符可包括进程标识符、线程标识符和/或寄存器值。
方法还可以包括以下步骤:当满足其他准则时,调用对安全模块的回调以执行校验。例如,可在以下时机调用回调:栈中枢的使用(例如,从使用合法的,操作系统提供的线程栈切换到分配的堆栈);对已经存在于调用栈中的返回地址的操纵(例如,合法地覆写被置于栈中的返回地址);和/或对调用帧和/或调用帧数据的其他形式的非法的操纵时。在一些实施例中,这些校验可以与对新返回地址的目的地处的代码的标识和检查和/或对经标识的代码的合法性的校验相耦合。

Claims (22)

1.一种用于组装事件的执行简档的系统,所述系统包括:
处理器;
执行概况分析模块,可通信地耦合到所述处理器,所述执行概况分析模块配置成用于:
对所述事件监视分支指令;
在所述分支指令的执行时,生成对安全模块的回调;以及
根据多个事件标识符来过滤所述回调;以及
安全模块,可通信地耦合到所述处理器和所述执行概况分析模块,所述安全模块配置成用于:
验证与所述分支指令相关联的代码段,所述代码段包括在所述分支指
令之前执行的代码以及在所述分支指令之后执行的代码。
2.如权利要求1所述的系统,其特征在于,所述执行概况分析模块进一步配置成用于对所述代码段校验面向返回的编程技术的使用。
3.如权利要求1所述的系统,进一步包括概况分析控制模块,所述概况分析控制模块可通信地耦合到所述安全模块和所述执行概况分析模块,所述概况分析控制模块配置成用于管理所述系统的安全策略。
4.如权利要求1所述的系统,其特征在于,所述执行概况分析模块配置成用于使用基于二进制转换的技术来对所述事件监视所述分支指令。
5.如权利要求1所述的系统,其特征在于,所述处理器进一步包括监视扩展,所述监视扩展配置成用于提供事件触发器,所述事件触发器在对所述事件监视所述分支指令时使用。
6.如权利要求5所述的系统,其特征在于,所述事件触发器包括当特定类型的指令被执行时的触发器。
7.如权利要求5所述的系统,其特征在于,所述事件触发器包括调用用于处置所述事件的经注册的回调的触发器。
8.如权利要求1所述的系统,其特征在于,所述多个事件标识符包括进程标识符。
9.如权利要求1所述的系统,其特征在于,所述多个事件标识符包括线程标识符。
10.如权利要求1所述的系统,其特征在于,所述多个事件标识符包括寄存器值。
11.一种用于组装事件的执行简档的方法,所述方法包括以下步骤:
对所述事件监视分支指令;
在所述分支指令的执行时,生成对安全模块的回调;
根据多个事件标识符来过滤所述回调;以及
验证与所述分支指令相关联的代码段,所述代码段包括在所述分支指令之前执行的代码以及在所述分支指令之后执行的代码。
12.如权利要求21所述的方法,进一步包括以下步骤:对所述代码段校验对面向返回的编程技术的使用。
13.如权利要求21所述的方法,进一步包括以下步骤:管理所述系统的安全策略。
14.如权利要求21所述的方法,进一步包括以下步骤:使用基于二进制转换的技术来对所述事件监视所述分支指令。
15.如权利要求21所述的方法,进一步包括以下步骤:提供来自对所述处理器的监视扩展的事件触发器,所述事件触发器在对所述事件监视所述分支指令时使用。
16.如权利要求25所述的方法,其特征在于,所述事件触发器包括当特定类型的指令被执行时的触发器。
17.如权利要求25所述的方法,其特征在于,所述事件触发器包括调用用于处置所述事件的经注册的回调的触发器。
18.如权利要求25所述的方法,其特征在于,所述多个事件标识符包括进程标识符。
19.如权利要求25所述的方法,其特征在于,所述多个事件标识符包括线程标识符。
20.如权利要求21所述的方法,其特征在于,所述多个事件标识符包括寄存器值。
21.至少一种机器可读存储介质,包括在所述计算机可读介质上承载的计算机可执行指令,所述指令可由处理器读取,所述指令在被读取和执行时使所述处理器执行权利要求11-20中的任一项所述的方法。
22.一种用于保护电子设备的安全的设备,所述设备包括用于执行权利要求1-10中的任一项所述的方法的装置。
CN201380078561.7A 2013-08-28 2013-08-28 硬件和软件执行概况分析 Pending CN105408911A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/057064 WO2015030748A1 (en) 2013-08-28 2013-08-28 Hardware and software execution profiling

Publications (1)

Publication Number Publication Date
CN105408911A true CN105408911A (zh) 2016-03-16

Family

ID=52585199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380078561.7A Pending CN105408911A (zh) 2013-08-28 2013-08-28 硬件和软件执行概况分析

Country Status (4)

Country Link
US (1) US10055585B2 (zh)
EP (1) EP3039608B1 (zh)
CN (1) CN105408911A (zh)
WO (1) WO2015030748A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647748A (zh) * 2019-09-10 2020-01-03 北京理工大学 一种基于硬件特性的代码复用攻击检测系统及方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2510075C2 (ru) * 2012-04-11 2014-03-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ обнаружения вредоносного программного обеспечения в ядре операционной системы
US9613212B2 (en) * 2013-03-05 2017-04-04 Mcafee, Inc. Execution profile assembly using branch records
US10461937B1 (en) 2013-12-18 2019-10-29 Amazon Technologies, Inc. Hypervisor supported secrets compartment
US9710648B2 (en) * 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
CN106922191B (zh) * 2014-09-17 2021-06-18 爱迪德技术有限公司 生成和执行受保护的软件项目
US9767272B2 (en) 2014-10-20 2017-09-19 Intel Corporation Attack Protection for valid gadget control transfers
US9477453B1 (en) 2015-06-24 2016-10-25 Intel Corporation Technologies for shadow stack manipulation for binary translation systems
US10713146B2 (en) * 2015-06-26 2020-07-14 AVAST Software s.r.o. Dynamic binary translation and instrumentation with postponed attachment to running native threads
US9984230B2 (en) 2015-06-26 2018-05-29 Mcafee, Llc Profiling event based exploit detection
US10162616B2 (en) 2015-06-26 2018-12-25 Intel Corporation System for binary translation version protection
US11048516B2 (en) * 2015-06-27 2021-06-29 Intel Corporation Systems, methods, and apparatuses for last branch record support compatible with binary translation and speculative execution using an architectural bit array and a write bit array
US10437998B2 (en) * 2015-10-26 2019-10-08 Mcafee, Llc Hardware heuristic-driven binary translation-based execution analysis for return-oriented programming malware detection
US10419423B2 (en) 2015-10-30 2019-09-17 Mcafee, Llc Techniques for identification of location of relevant fields in a credential-seeking web page
US10025930B2 (en) 2015-12-24 2018-07-17 Mcafee, Llc Hardware assisted branch transfer self-check mechanism
US9898605B2 (en) 2015-12-24 2018-02-20 Mcafee, Llc Monitoring executed script for zero-day attack of malware
US10289570B2 (en) 2015-12-24 2019-05-14 Mcafee, Llc Detecting data corruption by control flow interceptions
US10210331B2 (en) 2015-12-24 2019-02-19 Mcafee, Llc Executing full logical paths for malware detection
US9965620B2 (en) 2015-12-24 2018-05-08 Intel Corporation Application program interface (API) monitoring bypass
US9910722B2 (en) * 2015-12-29 2018-03-06 Sap Se Generic callback handling
US10621338B1 (en) * 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10521897B2 (en) * 2016-07-22 2019-12-31 International Business Machines Corporation Using photonic emission to develop electromagnetic emission models
US10540498B2 (en) * 2016-08-12 2020-01-21 Intel Corporation Technologies for hardware assisted native malware detection
US10262134B2 (en) * 2016-10-07 2019-04-16 International Business Machines Corporation Detection of key logging activity
CN107329788A (zh) * 2017-06-29 2017-11-07 广州优视网络科技有限公司 应用程序加载方法、装置及用户终端
US10460108B1 (en) * 2017-08-16 2019-10-29 Trend Micro Incorporated Method and system to identify and rectify input dependency based evasion in dynamic analysis
US10984096B2 (en) * 2018-03-28 2021-04-20 Intel Corporation Systems, methods, and apparatus for detecting control flow attacks
US11171983B2 (en) * 2018-06-29 2021-11-09 Intel Corporation Techniques to provide function-level isolation with capability-based security
US11379426B2 (en) * 2019-02-05 2022-07-05 Forcepoint, LLC Media transfer protocol file copy detection
JP7333748B2 (ja) * 2019-12-13 2023-08-25 株式会社日立製作所 電子機器および電子機器の攻撃検知方法
US11960372B2 (en) * 2022-03-04 2024-04-16 Dell Products L.P. Verified callback chain for bios security in an information handling system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010804A1 (en) * 2002-12-19 2005-01-13 Bruening Derek L. Secure execution of a computer program using a code cache
CN103154908A (zh) * 2010-07-28 2013-06-12 英特尔公司 用于事务存储器的最后分支记录指示符

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304960B1 (en) * 1998-08-06 2001-10-16 Intel Corporation Validating prediction for branches in a cluster via comparison of predicted and condition selected tentative target addresses and validation of branch conditions
WO2005062707A2 (en) * 2003-12-30 2005-07-14 Checkpoint Software Technologies Ltd. Universal worm catcher
GB2417579A (en) 2004-08-26 2006-03-01 Hewlett Packard Development Co Method for dynamically inserting code into a process by enabling taken branch traps to intercept a branch during the execution of the process
US7552318B2 (en) 2004-12-17 2009-06-23 International Business Machines Corporation Branch lookahead prefetch for microprocessors
US8006078B2 (en) * 2007-04-13 2011-08-23 Samsung Electronics Co., Ltd. Central processing unit having branch instruction verification unit for secure program execution
JP2009129204A (ja) * 2007-11-22 2009-06-11 Mitsubishi Electric Corp コード検査システム及びコード検査方法及びプログラム
US8214900B1 (en) 2008-12-18 2012-07-03 Symantec Corporation Method and apparatus for monitoring a computer to detect operating system process manipulation
CN102117198B (zh) * 2009-12-31 2015-07-15 上海芯豪微电子有限公司 一种分支处理方法
US8555040B2 (en) 2010-05-24 2013-10-08 Apple Inc. Indirect branch target predictor that prevents speculation if mispredict is expected
US8707434B2 (en) * 2011-08-17 2014-04-22 Mcafee, Inc. System and method for indirect interface monitoring and plumb-lining

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010804A1 (en) * 2002-12-19 2005-01-13 Bruening Derek L. Secure execution of a computer program using a code cache
CN103154908A (zh) * 2010-07-28 2013-06-12 英特尔公司 用于事务存储器的最后分支记录指示符

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647748A (zh) * 2019-09-10 2020-01-03 北京理工大学 一种基于硬件特性的代码复用攻击检测系统及方法

Also Published As

Publication number Publication date
US20150067763A1 (en) 2015-03-05
EP3039608A1 (en) 2016-07-06
EP3039608A4 (en) 2017-01-11
EP3039608B1 (en) 2018-07-04
US10055585B2 (en) 2018-08-21
WO2015030748A1 (en) 2015-03-05

Similar Documents

Publication Publication Date Title
CN105408911A (zh) 硬件和软件执行概况分析
US10893068B1 (en) Ransomware file modification prevention technique
US20200050765A1 (en) Methods and apparatus for identifying and removing malicious applications
US7587724B2 (en) Kernel validation layer
KR102307534B1 (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
JP5054768B2 (ja) 侵入検出のための方法と装置
US7665139B1 (en) Method and apparatus to detect and prevent malicious changes to tokens
CN106991324B (zh) 一种基于内存保护类型监控的恶意代码跟踪识别方法
AU2006210698B2 (en) Intrusion detection for computer programs
US8285999B1 (en) System and method for authenticating remote execution
Berthome et al. Repackaging android applications for auditing access to private data
Ahmadvand et al. A taxonomy of software integrity protection techniques
US10915609B2 (en) Securing applications on mobile devices
KR101137128B1 (ko) 웜 봉쇄 방법
JP2011175639A (ja) ネットワークにおけるセキュリティ保全のための方法及びシステム
KR20080047261A (ko) 프로세스 행위 예측 기법을 이용한 비정형 악성코드 탐지방법 및 그 시스템
WO2021121382A1 (en) Security management of an autonomous vehicle
CN113632432A (zh) 一种攻击行为的判定方法、装置及计算机存储介质
US20160335433A1 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
KR100745639B1 (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
KR100666562B1 (ko) 커널 드라이버 및 프로세스 보호 방법
Reeves Autoscopy Jr.: Intrusion detection for embedded control systems
Xu et al. DR@ FT: efficient remote attestation framework for dynamic systems
WO2020027956A1 (en) Listen mode for application operation whitelisting mechanisms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170110

Address after: American California

Applicant after: Mcafee, Inc.

Address before: American California

Applicant before: Intel Corp.

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160316