CN107960126B - 基于分析事件的漏洞利用检测 - Google Patents

基于分析事件的漏洞利用检测 Download PDF

Info

Publication number
CN107960126B
CN107960126B CN201680036972.3A CN201680036972A CN107960126B CN 107960126 B CN107960126 B CN 107960126B CN 201680036972 A CN201680036972 A CN 201680036972A CN 107960126 B CN107960126 B CN 107960126B
Authority
CN
China
Prior art keywords
application
memory
code
instruction pointer
region
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.)
Active
Application number
CN201680036972.3A
Other languages
English (en)
Other versions
CN107960126A (zh
Inventor
V.皮库尔
R.马图尔
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
McAfee LLC
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 McAfee LLC filed Critical McAfee LLC
Publication of CN107960126A publication Critical patent/CN107960126A/zh
Application granted granted Critical
Publication of CN107960126B publication Critical patent/CN107960126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本文描述的特定实施例提供了一种电子设备,该电子设备可以被配置成:执行具有操作系统的系统中的应用,执行针对应用的事件跟踪,分析来自事件跟踪的每一个指令指针,以及确定指令指针是否指向存储器的孤儿页面。孤儿页面可以是:与该应用不相关联的代码的区域,未被识别的代码的区域或与应用不相关联的不寻常的代码。另外,事件跟踪可以是作为操作系统一部分的嵌入式应用。

Description

基于分析事件的漏洞利用检测
对相关申请的交叉引用
本申请要求于2015年6月26日提交的、标题为“PROFILING EVENT BASED EXPLOITDETECTION”的第14/751,762号美国非临时专利申请的利益和优先权,该专利申请的全部内容通过引用被合并于此。
技术领域
本公开一般地涉及信息安全领域,并且更特别地,涉及基于分析事件的漏洞利用(exploit)检测。
背景技术
在当今社会中,网络安全领域已经变得日益重要。因特网已经使得能够实现全世界的不同计算机网络的互连。特别地,因特网提供用于在经由各种类型的客户端设备连接到不同的计算机网络的不同用户之间交换数据的介质。尽管因特网的使用已经使商业和个人通信改头换面,但是它也已被用作用于使恶意操作者获得对计算机和计算机网络的未经授权的访问以及用于敏感信息的有意或无意公开的工具。
感染主机计算机的恶意的软件(“恶意软件”)可能能够执行任何数目的恶意动作,诸如从与主机计算机相关联的企业或个体窃取敏感信息,向其它主机计算机传播,和/或协助分布式拒绝服务攻击,从主机计算机发出垃圾邮件或恶意电子邮件等。因此,对于保护计算机和计算机网络免受恶意的软件的恶意和无意的漏洞利用而言,仍然存在值得注意的管理挑战。
附图说明
为了提供本公开及其特征和优点的更完整的理解,参照结合随附各图来理解以下描述,其中相同的参考标号表示相同的部分,其中:
图1是依照本公开的实施例的用于网络环境中的基于分析事件的漏洞利用检测的通信系统的简化框图;
图2是依照本公开的实施例的用于网络环境中的基于分析事件的漏洞利用检测的通信系统的部分的简化框图;
图3是图示了依照实施例的可以与通信系统相关联的潜在操作的简化流程图;
图4是图示了依照实施例的可以与通信系统相关联的潜在操作的简化流程图;
图5是图示了依照实施例的以点对点配置布置的示例计算系统的框图;
图6是与本公开的示例ARM生态系统片上系统(SOC)相关联的简化框图;以及
图7是示出了依照实施例的示例处理器核的框图。
附图各图未必按比例绘制,因为在不脱离本公开的范围的情况下,它们的尺寸可以被相当大地改变。
具体实施方式
示例实施例
图1是依照本公开的实施例的用于网络环境中的基于分析事件的漏洞利用检测的通信系统的简化框图。通信系统100可以包括电子设备102,云服务104和服务器106。电子设备102可以包括处理器110,操作系统(OS)112,一个或多个应用114a和114b,安全模块116,和存储器118a。OS 112可以包括事件跟踪模块120。事件跟踪模块120可以包括指令指针队列122。安全模块116可以包括指令指针分析模块124和应用模块表126。存储器118a可以包括一个或多个应用区域128a和128bb,孤儿应用区域130,白名单132和黑名单134。云服务104可以包括存储器118b和网络安全模块138a。存储器118b可以包括白名单132和黑名单134。网络安全模块138a可以包括应用模块表126和网络指令指针分析模块140。服务器106可以包括存储器118c和网络安全模块138b。存储器118c可以包括白名单132和黑名单134。网络安全模块138b可以包括应用模块表126和网络指令指针分析模块140。电子设备102,云服务104和服务器106可以使用网络108进行通信。恶意软件136可能试图使用网络108或通过直接连接(例如,通过通用串行总线(USB)类型的连接)将自己介绍给电子设备102。
在示例实施例中,通信系统100可以被配置成在具有OS(例如,OS 112)的系统中执行应用(例如,应用114a),使用事件跟踪模块120执行针对应用的事件跟踪,使用指令指针分析模块124分析来自事件跟踪的每一个指令指针,并确定指令指针是否指向存储器的孤儿页面(例如,孤儿应用区域130)。孤儿页面可以是与应用不相关联的代码区域,未识别的代码区域或与应用不相关联的不寻常的代码。另外,事件跟踪可以是作为OS一部分的嵌入式应用或特征。应用模块表126可以包括与进程相关联的模块或存储器区域的列表。例如,应用程序114a可以与应用区域128a相关联,并且应用114b可以与应用区域128b相关联。
图1的元件可以通过采用任何合适的连接(有线的或无线的)的一个或多个接口耦合到彼此,所述连接为网络(例如,网络108)通信提供切实可行的通路。此外,图1的这些元件中的任何一个或多个可以基于特定配置需要而组合或从架构移除。通信系统100可以包括能够进行传输控制协议/因特网协议(TCP/IP)通信以用于网络中的分组的传送或接收的配置。通信系统100还可以在适当的情况下和基于特定需要而与用户数据报协议/IP(UDP/IP)或任何其它合适的协议结合地操作。
为了说明通信系统100的某些示例技术的目的,重要的是,理解可以遍历网络环境的通信。以下基础信息可以被视为可以根据其适当地解释本公开的基础。
对因特网的增加的访问已经具有增加恶意软件的范围的意想不到的效果。这里使用的术语恶意软件包括被设计用来在没有所有者的知情同意的情况下渗透,修改,改变,损坏或破坏计算机系统的任何类型的软件程序,应用,模块,代码等,而不管软件程序的动机如何,并且也不管由软件程序对所有者的设备,系统,网络或数据所导致的结果如何。
某些恶意软件可以利用文档查看器(例如,Microsoft®,Word®,Adobe®查看器,浏览器等)中的漏洞利用。例如,企业可能会得到一个Word®或PDF®格式的文档,这实际上可能是一个有针对性的零日攻击。当企业中的电子设备打开或读取文档时,恶意软件可能危及电子设备。在另一个示例中,电子设备可能被用于访问网站,并且恶意软件可以在不知不觉中使用来自网站的漏洞利用安装在电子设备上。
该问题的当前解决方案通常是侵入性的并且具有性能或兼容性问题。例如,基于沙箱或基于仿真的解决方案来检测恶意应用尝试在受控环境下运行第三方软件。这可能与电子设备具有严重的兼容性问题,通过消耗相对大量的资源实质性地降低电子设备的性能,并且可能造成性能瓶颈,使得解决方案在电子设备上部署不可行。其它解决方案可能具有性能和兼容性问题,或者基于已知弱点的特定知识。另外,可以使用各种检测程序来尝试检测恶意软件的存在。在一些情况下,检测程序依靠检测正被检查的软件程序中的签名来确定程序是否是恶意软件或包含恶意软件。在一些情况下,检测程序使用跟踪方法来确定软件程序是否是恶意软件。然而,恶意软件作者经常改变或更改恶意软件程序的部分,以便避免通过跟踪方法进行检测。需要一种不需要目标程序或可疑恶意软件在受控环境下运行或使用OS控制流拦截的恶意软件检测系统和方法。如果系统和方法可以使用良好支持的OS特征(例如,Microsoft Windows®特征)来一般地识别在诸如文档查看器,浏览器等进程中的任意代码执行将是有益的。
如图1中概述的用于基于分析事件的漏洞利用检测的通信系统可以解决这些问题(和其它问题)。在图1的通信系统100中,系统可以被配置成使用OS的事件跟踪特征来识别在给定的目标进程下正在被执行的存储器区域。基于所识别的存储器区域,通信系统100可以被配置成通过检查目标应用是否正在执行来自未识别的区域的代码或者执行内部页面的代码是否是不寻常的,来确定目标应用中是否发生了漏洞利用。在一个特定的说明性示例中,Windows事件跟踪(ETW)是Microsoft Windows®特征,其中ETW提供NT内核相关事件,包括ETW分析事件。ETW分析事件通常包括任何给定进程的指令指针(IP)。该信息可以被用于识别在给定的目标进程下正在被执行的存储器区域(例如,应用模块表126可以被用于识别与目标进程相关联的存储器区域),以及目标应用是否正在执行来自未识别的区域的代码,或者执行内部页面的代码是否是不寻常的。
通过使用OS的事件跟踪特征,目标应用的分析对于目标应用可以是完全透明的,并且与电子设备的兼容性不是问题。基于分析事件的漏洞利用检测可以异步操作,并且不会阻止或暂停目标应用,因此不会产生感知的性能开销。而且,由于OS为事件跟踪提供了所有必要的能力,因此不需要针对目标应用的驱动程序安装,DLL组件或插件,并且该进程不会修改,注入或潜入到OS进程中。
在具体示例中,Microsoft Windows®提供的SampledProfile事件包括关于给定线程中的指令指针(IP)的信息。这是Windows®从Windows® OS内启用的信息,用来协助故障排除和调试应用。这些信息可用于被任何应用使用(甚至在用户模式下),使用高效的ETW框架。这些事件是异步传送的,因此目标应用在不被阻止的情况下继续执行,并且该进程是透明的,因此目标应用甚至不知道该进程,并且几乎不存在任何兼容性问题。
来自事件跟踪的IP地址信息可以被用来确定在应用中是否发生了任意代码执行。例如,在接收事件跟踪之后,事件跟踪可以首先与进程相关联,并且系统可以确定进程是否是正被监视的进程(例如针对攻击或者如果进程与恶意软件相关联)。如果进程是正被监视的进程,则可以针对与进程相关联的应用模块表126中的加载的模块或存储器区域来检查事件中报告的IP地址,以确定是否发生在与进程相关联的加载的模块或存储器区域之外的任何执行。如果执行确实发生在与进程相关联的加载的模块或存储器区域之外,则认为执行已发生在孤儿区域(例如,孤儿应用区域130)中。
一些应用通过分配堆上的存储器来创建孤儿页面或区域以及执行来自堆的代码用于基于虚拟机或沙盒的执行(例如Adobe® Reader 11)。为了检测这一点,可以为故意创建的孤儿页面或区域添加一个通用的shell代码检测检查。用于检测故意创建的孤儿页面或区域的另一种方法是将沙盒相关代码列入白名单,以识别良性孤儿页面,然后在故意创建的孤儿页面内标记任何意外的代码执行。
转向图1的基础设施,示出依照示例实施例的通信系统100。一般地,通信系统100可以在任何类型或拓扑的网络中实现。网络108表示用于接收和传送通过通信系统100传播的信息分组的互连通信路径的一系列点或节点。网络108提供节点之间的通信接口,并且可以被配置为任何局域网(LAN)、虚拟局域网(VLAN)、广域网(WAN)、无线局域网(WLAN)、城域网(MAN)、内联网、外联网、虚拟私人网络(VPN)以及促进网络环境中的通信的任何其它适当的架构或系统,或者其任何合适的组合,包括有线和/或无线通信。
在通信系统100中,可以根据任何合适的通信消息传递协议而发送和接收包括分组、帧、信号、数据等的网络业务。合适的通信消息传递协议可以包括诸如开放系统互连(OSI)模型或其任何派生物或变型(例如,传输控制协议/因特网协议(TCP/IP),用户数据报协议/IP(UDP/IP))之类的多层方案。此外,也可以在通信系统100中提供蜂窝网络之上的无线电信号通信。可以提供合适的接口和基础设施以使得能够实现与蜂窝网络的通信。
如本文所使用的术语“分组”是指可以在分组交换网络上的源节点和目的地节点之间路由的数据单元。分组包括源网络地址和目的地网络地址。这些网络地址可以是TCP/IP消息传递协议中的因特网协议(IP)地址。如本文所使用的术语“数据”是指任何类型的二进制、数字、语音、视频、文本或脚本数据,或者任何类型的源或目标代码,或者可以在电子设备和/或网络中从一个点传送至另一个的以任何适当格式的任何其它合适的信息。此外,消息、请求、响应和查询是网络业务的形式,并且因此可以包括分组、帧、信号、数据等。
在示例实现中,电子设备102、云服务104和服务器106是网络元件,其意图涵盖网络器具、服务器、路由器、交换机、网关、桥接器、负载平衡器、处理器、模块或者可操作成在网络环境中交换信息的任何其它合适的设备、组件、元件或对象。网络元件可以包括促进其操作的任何合适的硬件、软件、组件、模块或对象,以及用于在网络环境中接收、传送和/或以其它方式传送数据或信息的合适接口。这可以包括允许数据或信息的有效交换的适当算法和通信协议。
关于与通信系统100相关联的内部结构,电子设备102、云服务104和服务器106中的每一个可以包括用于存储要在本文所概述的操作中使用的信息的存储器元件。电子设备102、云服务104和服务器106中的每一个可以在适当的情况下并且基于特定需要而在任何合适的存储器元件(例如,随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、专用集成电路(ASIC)等)、软件、硬件、固件或者任何其它合适的组件、设备、元件或对象中保持信息。本文讨论的任何存储器项目应当被解释为被涵盖在宽泛术语“存储器元件”内。而且,在通信系统100中使用、跟踪、发送或接收的信息可以在任何数据库、寄存器、队列、表、高速缓存、控制列表或者其它存储结构(所有这些都可以在任何合适的时间帧处被引用)中提供。任何这样的存储选项也可以包括在如本文使用的宽泛术语“存储器元件”内。
在某些示例实现中,本文所概述的功能可以由在一个或多个有形介质中编码的逻辑(例如,在ASIC中提供的嵌入式逻辑,数字信号处理器(DSP)指令,要由处理器或其它类似的机器等执行的软件(潜在地包括目标代码和源代码))实现,所述有形介质可以包括非暂时性计算机可读介质。在这些实例中的一些中,存储器元件可以存储用于本文所描述的操作的数据。这包括存储器元件能够存储软件、逻辑、代码或者被执行以实施本文所描述的活动的处理器指令。
在示例实现中,诸如电子设备102、云服务104和服务器106之类的通信系统100的网络元件可以包括软件模块(例如,安全模块116、事件跟踪模块120、指令指针分析模块124、网络安全模块138a和138b和网络指令指针模块140)以实现或促成如本文所概述的操作。这些模块可以以任何适当的方式合适地组合,这可以基于特定配置和/或供应需要。在示例实施例中,这样的操作可以由在这些元件外部实现的或者包括在某个其它网络设备中的硬件来实施以实现预计功能。另外,模块可以实现为软件、硬件、固件或其任何合适的组合。为了实现如本文所概述的操作,这些元件还可以包括能够与其它网络元件协作的软件(或者往复式软件)。
此外,电子设备102、云服务104和服务器106中的每一个可以包括能够执行软件或算法以施行如本文所讨论的活动的处理器。处理器可以执行与数据相关联的任何类型的指令以实现本文详细描述的操作。在一个示例中,处理器可以将元件或制品(例如,数据)从一个状态或事物变换成另一状态或事物。在另一示例中,本文所概述的活动可以利用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实现,并且本文所识别的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、EPROM、EEPROM)或包括数字逻辑、软件、代码、电子指令或其任何合适的组合的ASIC。本文所描述的任何潜在的处理元件、模块和机器应当被解释为涵盖在宽泛术语“处理器”内。
电子设备102可以是网络元件并且包括例如台式计算机、膝上型计算机、移动设备、个人数字助理、智能电话、平板电脑或其它类似设备。云服务104被配置成向电子设备102提供云服务。云服务通常可以被定义为使用通过网络(诸如因特网)作为服务递送的计算资源。通常,计算,存储和网络资源在云基础设施中提供,有效地将工作负载从本地网络转移到云网络。服务器106可以是诸如服务器或虚拟服务器之类的网络元件,并且可以与希望经由某个网络(例如,网络108)在通信系统100中发起通信的客户端,客户,端点或终端用户相关联。术语“服务器”包括用于服务客户端的请求和/或代表通信系统100内的客户端执行某种计算任务的设备。尽管在图1中将安全模块116表示为位于电子设备102中,但是这只是为了说明的目的。安全模块116可以以任何合适的配置组合或分离。另外,安全模块116可以被集成到或分布在可由电子设备102访问的另一网络中,诸如云服务104或服务器106。
转向图2,图2是依照本公开的实施例的用于基于分析事件的漏洞利用检测的通信系统100的部分的简化框图。指令指针分析模块124可以被配置成分析指令指针队列122中的每一个指令指针(例如,指令指针142a-142d)并且确定指针是指向存储器118a中的应用区域(例如,应用区域128a)还是指向孤儿应用区域130。如果与应用(例如,应用114a)相关联的指令指针指向与应用相关联的应用区域,则应用不被标记为恶意的。如果与应用相关联的指令指针指向与应用不相关联的应用(即,孤儿应用区域130),则应用被标记或标注为恶意的。例如,指令指针142a-142d可以各自与应用相关联。指令指针142a,142b和142d各自指向与应用相关联的应用区域128a中的模块144a,144b和144c。然而,指令指针142c指向与应用不相关联的孤儿应用区域130中孤儿页面146,这可能是恶意活动的指示。
因为指令指针138c指向孤儿页面142,所以应用被标记或标注为恶意的,并且安全模块116可以对应用进行进一步的分析。例如,安全模块116可以被配置成将应用与白名单132和黑名单134中的条目进行比较。如果该应用匹配白名单132中的条目,则可以确定该应用是可信的。如果应用匹配黑名单134中的条目,则可以确定该应用是恶意的。在示例中,与应用有关的数据可以被发送到网络安全模块138a或138b以进行更深入的分析。
转向图3,图3是图示了依照实施例的可以与基于分析事件的漏洞利用检测相关联的流程300的可能操作的示例流程图。在实施例中,流程300的一个或多个操作可以由安全模块116,事件跟踪模块120和指令指针分析模块124执行。在302,执行针对应用的事件跟踪。在304,分析来自事件跟踪的每一个指令指针。在306,系统确定指令指针是否指向孤儿区域。如果指令指针指向孤儿区域,则触发警报,如在308中那样。警报可以将应用标记为恶意的,停止应用的执行或者某一其它缓解动作。
如果指令指针不指向孤儿区域,则系统确定指令指针是否是指向与应用相关联的区域的指针,如在310中那样。如果指针不指向与应用相关联的区域,则触发警报,如在308中那样。如果指令指针指向与应用相关联的区域,则不采取动作。例如,该应用不被视为恶意的,并且不采取缓解动作。
转向图4,图4是图示了依照实施例的可以与基于分析事件的漏洞利用检测相关联的流程400的可能操作的示例流程图。在实施例中,流程400的一个或多个操作可以由安全模块116,事件跟踪模块120和指令指针分析模块124执行。在402,发生分析事件。分析事件可以是针对进程或应用的(例如,应用114a)。在404,系统确定是否需要监视进程。例如,该进程可以匹配白名单132中的条目并且是不需要被监视的可信进程或应用的一部分,或者可以匹配黑名单134中的条目并且是需要被监视的不可信进程或应用的一部分。如果进程不需要被监视,则分析事件被丢弃,如在406中那样。如果进程确实需要被监视,则分析分析事件中的每一个指令指针,如在408中那样。
在410,系统确定指令指针是否指向孤儿页面。如果指令指针指向孤儿页面,则存储器区域被标记为不可执行的,如在418中那样。在412,该进程被标记为恶意的。如果指令指针不指向孤儿页面,则分析与每一个指令指针相关联的存储器区域,如在414中那样。
在416,系统确定存储器(与每一个指令指针相关联)是否包括异常或漏洞利用代码。如果存储器不包括异常或漏洞利用代码,则如在406中那样丢弃分析事件。如果存储器区域确实包括异常或漏洞利用代码,则存储器区域被标记为不可执行的,如在418中那样。在412,该进程被标记为恶意的。如果该进程被标记为恶意的,则该进程可以被终止,被发送到网络安全模块138a或138b以用于进一步分析或者某一其它缓解动作。
图5图示了根据实施例的布置在点对点(PtP)配置中的计算系统500。特别地,图5示出系统,其中处理器、存储器和输入/输出设备通过数个点对点接口互连。一般地,通信系统100的一个或多个网络元件可以以与计算系统500相同或类似的方式配置。
如图5中所图示的,系统500可以包括若干处理器,为了清楚而仅示出若干处理器中的两个处理器570和580。虽然示出两个处理器570和580,但是要理解的是,系统500的实施例也可以仅包括一个这样的处理器。处理器570和580各自可以包括一组核(即,处理器核574A和574B以及处理器核584A和584B)以执行程序的多个线程。核可以被配置成以与以上参照图1-4讨论的方式类似的方式执行指令代码。每一个处理器570、580可以包括至少一个共享高速缓存571、581。共享高速缓存571、581可以存储由诸如处理器核574和584之类的处理器570、580的一个或多个组件利用的数据(例如,指令)。
处理器570和580各自还可以包括集成的存储器控制器逻辑(MC)572和582以与存储器元件532和534通信。存储器元件532和/或534可以存储由处理器570和580使用的各种数据。在可替换的实施例中,存储器控制器逻辑572和582可以是与处理器570和580分离的分立逻辑。
处理器570和580可以是任何类型的处理器并且可以分别使用点对点接口电路578和588经由点对点(PtP)接口550交换数据。处理器570和580各自可以使用点对点接口电路576、586、594和598经由各个点对点接口552和554与芯片集590交换数据。芯片集590还可以使用接口电路592(其可以是PtP接口电路)经由高性能图形接口539与高性能图形电路538交换数据。在可替换的实施例中,图5中图示的任何或所有PtP链路可以实现为多点总线而不是PtP链路。
芯片集590可以经由接口电路596与总线520通信。总线520可以具有在其之上通信的一个或多个设备,诸如总线桥518和I/O设备516。经由总线510,总线桥518可以与其它设备通信,所述其它设备诸如键盘/鼠标512(或者诸如触摸屏、跟踪球等之类的其它输入设备)、通信设备526(诸如调制解调器、网络接口设备或者可以通过计算机网络560通信的其它类型的通信设备)、音频I/O设备514和/或数据存储设备528。数据存储设备528可以存储代码530,代码530可以由处理器570和/或580执行。在可替换的实施例中,总线架构的任何部分可以利用一个或多个PtP链路实现。
图5中所描绘的计算机系统是可以用于实现本文所讨论的各种实施例的计算系统的实施例的示意性图示。将领会的是,图5中所描绘的系统的各种组件可以以片上系统(SoC)架构或以任何其它合适的配置组合。例如,本文所公开的实施例可以并入到包括诸如智能蜂窝电话、平板计算机、个人数字助理、便携式游戏设备等之类的移动设备的系统中。将领会的是,在至少一些实施例中,这些移动设备可以提供有SoC架构。
转向图6,图6是与本公开的示例ARM生态系统SOC 600相关联的简化框图。本公开的至少一个示例实现可以包括本文所讨论的基于分析事件的漏洞利用检测特征以及ARM组件。例如,图6的示例可以与任何ARM核(例如,A-9,A-15等)相关联。另外,该架构可以是任何类型的平板电脑、智能电话(包括AndroidTM电话、iPhonesTM)、iPadTM、 Google Nexus(谷歌关系)TM、Microsoft Surface(微软表面)TM、个人计算机、服务器、视频处理组件、膝上型计算机(包括任何类型的笔记本电脑)、Ultrabook(超极本)TM系统、任何类型的支持触摸的输入设备等的部分。
在图6的该示例中,ARM生态系统SOC 600可以包括多个核606-607、L2高速缓存控件608、总线接口单元609、L2高速缓存610、图形处理单元(GPU)615、互连602、视频编解码器620和液晶显示器(LCD)I/F 625,其可以与耦合到LCD的移动工业处理器接口(MIPI)/高清晰度多媒体接口(HDMI)链路相关联。
ARM生态系统SOC 600还可以包括订户身份模块(SIM)I/F 630、启动只读存储器(ROM)635、同步动态随机存取存储器(SDRAM)控制器640、闪存控制器645、串行外设接口(SPI)主机650、合适的功率控件655、动态RAM(DRAM)660和闪存665。此外,一个或多个示例实施例包括一个或多个通信能力、接口和特征,诸如Bluetooth(蓝牙)TM 670、3G调制解调器675、全球定位系统(GPS)680和802.11 Wi-Fi 1185的实例。
在操作中,图6的示例可以提供处理能力,连同相对低的功耗,以使得能够实现各种类型的计算(例如,移动计算、高端数字家庭、服务器、无线基础设施等)。此外,这样的架构可以使得能够实现任何数目的软件应用(例如,AndroidTM、Adobe® Flash®播放器、Java平台标准版本(Java SE)、JavaFX、Linux、嵌入式微软视窗、Symbian和Ubuntu等)。在至少一个示例实施例中,核处理器可以实现具有耦合的低等待时间2级高速缓存的无序超标量流水线。
图7图示了根据实施例的处理器核700。处理器核700可以是用于诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器或者执行代码的其它设备之类的任何类型的处理器的核。尽管图7中仅图示了一个处理器核700,但是处理器可以可替换地包括多于一个图7中所图示的处理器核700。例如,处理器核700表示参照图5的处理器570和580示出和描述的处理器核574a、574b、584a和584b的一个示例实施例。处理器核700可以是单线程核或者,对于至少一个实施例,处理器核700可以是多线程的,因为它可以包括每个核的多于一个硬件线程上下文(或“逻辑处理器”)。
图7还图示了依照实施例的耦合到处理器核700的存储器702。存储器702可以是如本领域技术人员已知的或以其它方式对本领域技术人员可用的任何各种各样的存储器(包括存储器层级的各种层)。存储器702可以包括代码704,其可以是由处理器核700执行的一个或多个指令。处理器核700可以遵循由代码704指示的指令的程序序列。每一个指令进入前端逻辑706并且由一个或多个解码器708处理。解码器可以以预定格式生成作为其输出的诸如固定宽度微操作之类的微操作,或者可以生成其它指令、微指令或者反映原始代码指令的控制信号。前端逻辑706还包括寄存器重命名逻辑710和调度逻辑712,其一般分配资源并且将与指令对应的操作进行排队以供执行。
处理器核700还可以包括具有一组执行单元716-1至716-N的执行逻辑714。一些实施例可以包括专用于特定功能或功能集合的数个执行单元。其它实施例可以仅包括一个执行单元或者仅包括能够执行特定功能的一个执行单元。执行逻辑714执行由代码指令指定的操作。
在由代码指令指定的操作执行完成之后,后端逻辑718可以引退代码704的指令。在一个实施例中,处理器核700允许无序执行但是要求指令的有序引退。引退逻辑720可以采取各种已知形式(例如,重排序缓冲器等等)。以这种方式,至少在由解码器生成的输出、由寄存器重命名逻辑710利用的硬件寄存器和表以及由执行逻辑714修改的任何寄存器(未示出)方面,在代码704的执行期间转换处理器核700。
尽管在图7中未图示,但是处理器可以包括具有处理器核700的芯片上的其它元件,参照图5在本文示出和描述了所述其它元件中的至少一些。例如,如图5中所示,处理器可以包括存储器控制逻辑与处理器核700。处理器可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。
要指出的是,利用本文提供的示例,交互可以在两个、三个或者更多网络元件方面来描述。然而,这仅仅是为了清楚和示例的目的而做出。在某些情况下,通过仅参考有限数目的网络元件来描述给定流集合的一个或多个功能可能更容易。应当领会的是,通信系统100及其教导是可容易缩放的并且可以容纳大量组件以及更复杂的/精细的布置和配置。因此,所提供的示例不应当限制范围或抑制如潜在地应用于无数其它架构的通信系统100的广泛教导。
同样重要的是要指出,前述流程图(即,图3和图4)中的操作仅图示了可以由通信系统100执行或者在通信系统100内执行的可能的相关场景和模式中的一些。在不脱离本公开的范围的情况下,可以在适当的情况下删除或移除这些操作中的一些,或者可以相当大地修改或改变这些操作。此外,数个这些操作已经被描述为与一个或多个附加操作同时或并行地执行。然而,可以相当大地更改这些操作的时序。为了示例和讨论的目的而已经提供了前述操作流。由通信系统100提供相当大程度的灵活性,因为在不脱离本公开的教导的情况下,可以提供任何合适的布置、年表、配置和时序机制。
尽管已经参照特定布置和配置详细描述了本公开,但是在不脱离本公开的范围的情况下可以显著地改变这些示例配置和布置。而且,某些组件可以基于特定需要和实现而组合、分离、消除或添加。此外,尽管已经参照促进通信过程的特定元件和操作说明了通信系统100,但是这些元件和操作可以被任何合适的架构、协议和/或实现通信系统100的预计功能的过程取代。
可以为本领域技术人员确定众多其它改变、替代、变型、更改和修改,并且意图在于本公开涵盖如落入随附权利要求的范围内的所有这样的改变、替代、变型、更改和修改。为了帮助美国专利商标局(USPTO)以及此外关于本申请授予的任何专利的任何读者解释随附于此的权利要求,申请人希望指出的是,申请人:(a)不意图任何随附权利要求在其于提交日起存在时援引35 U.S.C第112章第六(6)款,除非在特定权利要求中特别地使用词语“用于……的部件”或“用于……的步骤”;并且(b)不意图通过说明书中的任何陈述来以未以其它方式在随附权利要求中反映的任何方式限制本公开。
其它注释和示例
示例C1是具有一个或多个指令的至少一个机器可读存储介质,所述指令在由处理器执行时使得处理器:执行系统中的应用,执行针对应用的事件跟踪,分析来自事件跟踪的每一个指令指针,以及确定指令指针是否指向存储器的孤儿页面。
在示例C2中,示例C1的主题可以可选地包括其中孤儿页面是与该应用不相关联的代码的区域。
在示例C3中,示例C1-C2中的任何一个的主题可以可选地包括其中孤儿页面是未被识别的代码的区域。
在示例C4中,示例C1-C3中的任何一个的主题可以可选地包括其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
在示例C5中,示例C1-C4中的任何一个的主题可以可选地包括其中当由处理器执行指令时,还使得处理器确定指令指针是否指向与应用不相关联的不寻常的代码。
在示例C6中,示例C1-C5中的任何一个的主题可以可选地包括其中事件跟踪对于应用是透明的。
在示例C7中,示例C1-C6中的任何一个的主题可以可选地包括其中事件跟踪与应用异步,使得目标应用继续执行而不被阻止。
在示例C8中,示例C1-C7中的任何一个的主题可以可选地包括其中当由处理器执行指令时,还使得处理器在指令指针指向孤儿页面或指令指针指向与应用不相关联的不寻常的代码的情况下将应用标记为恶意的。
在示例A1中,一种装置可以包括检测模块,其中,检测模块被配置成:执行系统中的应用,执行针对应用的事件跟踪,分析来自事件跟踪的每一个指令指针,以及确定指令指针是否指向存储器的孤儿页面。
在示例A2中,示例A1的主题可以可选地包括其中孤儿页面是与该应用不相关联的代码的区域。
在示例A3中,示例A1-A2中的任何一个的主题可以可选地包括其中孤儿页面是未被识别的代码的区域。
在示例A4中,示例A1-A3中的任何一个的主题可以可选地包括其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
在示例A5中,示例A1-A4中的任何一个的主题可以可选地包括其中所述检测模块被进一步配置成确定指令指针是否指向与应用不相关联的不寻常的代码。
在示例A6中,示例A1-A5中的任何一个的主题可以可选地包括其中事件跟踪对于应用是透明的。
在示例A7中,示例A1-A6中的任何一个的主题可以可选地包括其中事件跟踪与应用异步,使得目标应用继续执行而不被阻止。
示例M1是一种方法,包括:执行系统中的应用,执行针对应用的事件跟踪,分析来自事件跟踪的每一个指令指针,以及确定指令指针是否指向存储器的孤儿页面。
在示例M2中,示例M1的主题可以可选地包括其中孤儿页面是与该应用不相关联的代码的区域。
在示例M3中,示例M1-M2中的任何一个的主题可以可选地包括其中孤儿页面是未被识别的代码的区域。
在示例M4中,示例M1-M3中的任何一个的主题可以可选地包括其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
在示例M5中,示例M1-M4中的任何一个的主题可以可选地包括确定指令指针是否指向与应用不相关联的不寻常的代码。
在示例M6中,示例M1-M5中的任何一个的主题可以可选地包括其中事件跟踪对于应用是透明的。
在示例M7中,示例M1-M6中的任何一个的主题可以可选地包括其中事件跟踪与应用异步,使得目标应用继续执行而不被阻止。
示例S1是一种用于基于分析事件的漏洞利用检测的系统,该系统包括检测模块,所述检测模块被配置成:执行系统中的应用,执行针对应用的事件跟踪,分析来自事件跟踪的每一个指令指针,以及确定指令指针是否指向存储器的孤儿页面。
在示例S2中,示例S1的主题可以可选地包括其中孤儿页面是与该应用不相关联的代码的区域。
在示例S3中,示例S1-S2中的任何一个的主题可以可选地包括其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
示例X1是一种机器可读存储介质,包括实施如在示例M1-M7中的任何一个中的方法或者实现如在示例A1-A7中的任何一个中的装置的机器可读指令。示例Y1是一种包括用于执行示例方法M1-M7中的任何一个的部件的装置。在示例Y2中,示例Y1的主题可以可选地包括用于执行所述方法的部件包括处理器和存储器。在示例Y3中,示例Y2的主题可以可选地包括存储器包括机器可读指令。

Claims (25)

1.一种电子设备,包括:
用于执行系统中的应用的部件;
用于执行针对应用的事件跟踪的部件;
用于分析来自事件跟踪的每一个指令指针的部件;以及
用于确定指令指针是否指向存储器的孤儿页面的部件,其中存储器的孤儿页面是加载的模块或与应用相关联的存储器区域之外的存储器的区域。
2.根据权利要求1所述的电子设备,其中孤儿页面是与该应用不相关联的代码的区域。
3.根据权利要求1和2中任一项所述的电子设备,其中孤儿页面是未被识别的代码的区域。
4.根据权利要求1和2中任一项所述的电子设备,其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
5.根据权利要求1和2中任一项所述的电子设备,还包括:
用于确定指令指针是否指向与应用不相关联的不寻常的代码的部件。
6.根据权利要求1和2中任一项所述的电子设备,其中事件跟踪对于应用是透明的。
7.根据权利要求1和2中任一项所述的电子设备,其中事件跟踪与应用异步,使得目标应用继续执行而不被阻止。
8.根据权利要求1和2任一项所述的电子设备,还包括:
用于在指令指针指向存储器的孤儿页面或指令指针指向与应用不相关联的不寻常的代码的情况下将应用标记为恶意的部件。
9.一种检测装置,包括:
检测模块,其中所述检测模块被配置成:
执行系统中的应用;
执行针对应用的事件跟踪;
分析来自事件跟踪的每一个指令指针;以及
确定指令指针是否指向存储器的孤儿页面,其中存储器的孤儿页面是加载的模块或与应用相关联的存储器区域之外的存储器的区域。
10.根据权利要求9所述的装置,其中孤儿页面是与该应用不相关联的代码的区域。
11.根据权利要求9和10中任一项所述的装置,其中孤儿页面是未被识别的代码的区域。
12.根据权利要求9和10中任一项所述的装置,其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
13.根据权利要求9和10中任一项所述的装置,其中所述检测模块被进一步配置成:
确定指令指针是否指向与应用不相关联的不寻常的代码。
14.根据权利要求9和10中任一项所述的装置,其中事件跟踪对于应用是透明的。
15.根据权利要求9和10中任一项所述的装置,其中事件跟踪与应用异步,使得目标应用继续执行而不被阻止。
16.一种检测方法,包括:
执行系统中的应用;
执行针对应用的事件跟踪;
分析来自事件跟踪的每一个指令指针;以及
确定指令指针是否指向存储器的孤儿页面,其中存储器的孤儿页面是加载的模块或与应用相关联的存储器区域之外的存储器的区域。
17.根据权利要求16所述的方法,其中孤儿页面是与该应用不相关联的代码的区域。
18.根据权利要求16和17中任一项所述的方法,其中孤儿页面是未被识别的代码的区域。
19.根据权利要求16和17中任一项所述的方法,其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
20.根据权利要求16和17中任一项所述的方法,还包括:
确定指令指针是否指向与应用不相关联的不寻常的代码。
21.根据权利要求16和17中任一项所述的方法,其中事件跟踪对于应用是透明的。
22.根据权利要求16和17中任一项所述的方法,其中事件跟踪与应用异步,使得目标应用继续执行而不被阻止。
23.一种用于基于分析事件的漏洞利用检测的系统,该系统包括:
检测模块,其中所述检测模块被配置成:
执行系统中的应用;
执行针对应用的事件跟踪;
分析来自事件跟踪的每一个指令指针;以及
确定指令指针是否指向存储器的孤儿页面,其中存储器的孤儿页面是加载的模块或与应用相关联的存储器区域之外的存储器的区域。
24.根据权利要求23所述的系统,其中孤儿页面是与该应用不相关联的代码的区域。
25.根据权利要求23和24中任一项所述的系统,其中系统包括操作系统和作为操作系统一部分的嵌入式应用,所述嵌入式应用执行事件跟踪。
CN201680036972.3A 2015-06-26 2016-05-23 基于分析事件的漏洞利用检测 Active CN107960126B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/751762 2015-06-26
US14/751,762 US9984230B2 (en) 2015-06-26 2015-06-26 Profiling event based exploit detection
PCT/US2016/033691 WO2016209449A1 (en) 2015-06-26 2016-05-23 Profiling event based exploit detection

Publications (2)

Publication Number Publication Date
CN107960126A CN107960126A (zh) 2018-04-24
CN107960126B true CN107960126B (zh) 2021-05-04

Family

ID=57586426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680036972.3A Active CN107960126B (zh) 2015-06-26 2016-05-23 基于分析事件的漏洞利用检测

Country Status (5)

Country Link
US (1) US9984230B2 (zh)
EP (1) EP3314508A4 (zh)
JP (1) JP6583865B2 (zh)
CN (1) CN107960126B (zh)
WO (1) WO2016209449A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984230B2 (en) 2015-06-26 2018-05-29 Mcafee, Llc Profiling event based exploit detection
RU2665911C2 (ru) 2017-02-08 2018-09-04 Акционерное общество "Лаборатория Касперского" Система и способ анализа файла на вредоносность в виртуальной машине
US11463472B2 (en) * 2018-10-24 2022-10-04 Nec Corporation Unknown malicious program behavior detection using a graph neural network
US11271777B2 (en) 2019-09-24 2022-03-08 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
US11381557B2 (en) * 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
US11082256B2 (en) 2019-09-24 2021-08-03 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
CN114679315B (zh) * 2022-03-25 2024-05-14 中国工商银行股份有限公司 攻击检测方法、装置、计算机设备、存储介质和程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103620613A (zh) * 2011-03-28 2014-03-05 迈克菲股份有限公司 用于基于虚拟机监视器的反恶意软件安全的系统和方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US20030145230A1 (en) * 2002-01-31 2003-07-31 Huimin Chiu System for exchanging data utilizing remote direct memory access
US7530093B2 (en) 2004-04-30 2009-05-05 Microsoft Corporation Securing applications and operating systems
US7631356B2 (en) * 2005-04-08 2009-12-08 Microsoft Corporation System and method for foreign code detection
US8091030B1 (en) * 2006-12-14 2012-01-03 Disney Enterprises, Inc. Method and apparatus of graphical object selection in a web browser
US8832682B2 (en) * 2008-03-28 2014-09-09 Vmware, Inc. Trace collection for a virtual machine
WO2011109420A1 (en) * 2010-03-01 2011-09-09 Silver Tail Systems System and method for network security including detection of attacks through partner websites
US8566944B2 (en) 2010-04-27 2013-10-22 Microsoft Corporation Malware investigation by analyzing computer memory
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
RU2510074C2 (ru) 2012-02-24 2014-03-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки исполняемого кода перед его выполнением
EP2831788B1 (en) * 2012-03-30 2018-05-02 Intel Corporation Reporting malicious activity to an operating system
KR101265173B1 (ko) * 2012-05-11 2013-05-15 주식회사 안랩 비실행 파일 검사 장치 및 방법
US9275223B2 (en) * 2012-10-19 2016-03-01 Mcafee, Inc. Real-time module protection
US10055585B2 (en) 2013-08-28 2018-08-21 Mcafee, Llc Hardware and software execution profiling
CN103714292B (zh) * 2014-01-15 2016-10-05 四川师范大学 一种漏洞利用代码的检测方法
US9984230B2 (en) 2015-06-26 2018-05-29 Mcafee, Llc Profiling event based exploit detection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103620613A (zh) * 2011-03-28 2014-03-05 迈克菲股份有限公司 用于基于虚拟机监视器的反恶意软件安全的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网络存储服务器缓存替换策略研究;赵英杰;《中国博士学位论文全文数据库 信息科技辑》;20120415(第4期);第I139-1页 *

Also Published As

Publication number Publication date
US20160378975A1 (en) 2016-12-29
EP3314508A1 (en) 2018-05-02
EP3314508A4 (en) 2018-12-05
JP6583865B2 (ja) 2019-10-02
CN107960126A (zh) 2018-04-24
WO2016209449A1 (en) 2016-12-29
US9984230B2 (en) 2018-05-29
JP2018523220A (ja) 2018-08-16

Similar Documents

Publication Publication Date Title
US11328063B2 (en) Identification of malicious execution of a process
US20210019411A1 (en) Mitigation of ransomware
US10176344B2 (en) Data verification using enclave attestation
CN107960126B (zh) 基于分析事件的漏洞利用检测
CN107409120B (zh) 检测恶意外设的装置、方法及系统
CN107980123B (zh) 敏感数据的保护
JP6526842B2 (ja) マルウェアの検出
CN108093652B (zh) 应用的模拟
US9961102B2 (en) Detection of stack pivoting
EP3161713A1 (en) System and method for the tracing and detection of malware
EP3314511B1 (en) Anomaly detection to identify malware
US10963561B2 (en) System and method to identify a no-operation (NOP) sled attack
US11182480B2 (en) Identification of malware

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant