恶意对象的执行剖析检测的制作方法

文档序号:13041967阅读:139来源:国知局
恶意对象的执行剖析检测的制作方法与工艺

对相关申请的交叉引用

本申请要求享有2014年12月23日提交的题为“executionprofilingdetectionofmaliciousobjects”的美国非临时专利申请号14/582,163的益处和优先权,该美国非临时专利申请以其整体通过引用并入本文。

本申请涉及计算机安全领域,并且更特别地涉及用于恶意对象的执行剖析检测的系统和方法。



背景技术:

恶意和其它不想要的对象可以包括自身包含可执行代码的可执行对象和意图由父代过程加载并且然后感染父代过程的恶意静态对象二者。在一个示例中,恶意对象利用在软件包的特定版本中发现的安全漏洞,例如,特定版本可能包括准许堆栈破坏利用的漏洞,其中恶意对象利用恶意软件例程的地址盖写子例程调用的返回地址。当子例程从其堆栈弹出返回地址并且发布“返回”指令时,控制被传递到恶意软件例程。

这样的利用依赖于可能仅在包的非常特定的版本中发现的漏洞,并且必须假设准确的版本号(或者至少具有准确漏洞的版本)。如果恶意软件对象尝试结合其中对漏洞已经打补丁的版本来执行,可能发生软件异常。恶意软件通常利用未归档的内部结构来利用软件中的易损性。作为结果,恶意软件还可能由于关于数据结构的内部布局的错误假设而触发异常。异常可能简单地导致程序崩溃,在该情况下用户可能简单地认为文件被破坏,并且从未检测对象的恶意意图。

附图说明

当与随附各图一起阅读时,本公开从以下详细描述最好地理解。要强调的是,依照工业界中的标准实践,各种特征并未按比例绘制并且仅用于图示目的。事实上,各种特征的尺寸可以为了讨论的清楚性而任意地增大或减小。

图1是根据本说明书的一个或多个示例的使能安全性的网络的框图。

图2是根据本说明书的一个或多个示例的计算设备的框图。

图3是根据本说明书的一个或多个示例的服务器的框图。

图4是根据本说明书的一个或多个示例的执行剖析引擎的功能框图。

图5是根据本说明书的一个或多个示例的方法的流程图。

具体实施方式

概述

在示例中,提供了用于恶意软件对象的执行剖析检测的系统和方法。执行剖析(exp)引擎可以结合二进制文件翻译引擎(bte)来提供。二者可以在可信执行环境(tee)内操作。由于许多恶意软件对象做出关于主机应用的存储器使用的假设,因此当那些假设证明不正确时它们可能导致异常。exp引擎可以在bte执行其翻译功能时经由bte前摄地检测这样的异常。因此,在二进制文件在系统上运行之前可以检测恶意行为,并且可以提供补救措施。

本公开的示例实施例

以下公开内容提供许多不同的实施例或示例,以用于实现本公开的不同特征。以下描述组件和布置的具体示例以简化本公开。这些当然仅仅是示例并且不意图是限制性的。另外,本公开可以在各种示例中重复参考标号和/或字母。该重复是出于简化和清楚的目的并且自身不规定所讨论的各种实施例和/或配置之间的关系。

不同实施例可以具有不同的优点,并且没有特定优点是任何实施例所必然要求的。

在一个示例中,本说明书的系统和方法利用基于执行剖析(exp)和二进制文件翻译(bt)的异常监视来捕获恶意活动和所企图的恶意活动。本说明书的系统和方法因而能够分析候选恶意对象并且以合理的置信度确定其是实际的恶意对象还是善意对象。

这是可能的,因为恶意软件通常做出关于存储器布局的假设并且然后企图利用那些假设来启动恶意软件有效载荷。如果那些假设不正确(例如,如果软件版本已经略微改变,使得假设不再有效),可能发生错误,从而当不允许访问时生成异常。在一个示例中,恶意软件对象包括企图基于在先假设而对存储器写入或从存储器读取的“分支”指令,或者企图由经盖写的指针和缓冲器溢出引起“分支”指令。当这些不成功时,除了访问违反异常之外,这些企图还可能生成其它异常,诸如指令无效性。

执行剖析引擎可以在过程通过使用bt来执行时收集这些异常。当发现异常时,可以分析对象以得到恶意活动的指示。例如,分析无效分支企图的来源可以示出该分支没有源自合法的方式或位置。

基于exp的异常监视还可以与去到指定地址范围的控制转移的基于exp的监视组合以得到对于将软件分类为恶意或善意而言有用的附加信息。

另外,触发异常的初始访问企图可以使用去到或来自指定地址范围的执行转移的bt-exp监视来分析。例如,存储器布局的恶意软件对象假设可以在样本之间再用。因此,可以观察以oxocococnn形式的地址(其中“nn”是最后字节范围)。监视从oxocococoo到oxocococoff的范围可以用于分析去到和来自该范围的执行转移。然后可以针对合法性而分析发起或接收转移的代码。

在一个示例中,构建在bt技术上的exp可以动态地监视程序执行的地址,包括它去到哪里和它来自哪里,并且还可以在执行指令之前检测异常条件。因此,联合bt-exp引擎可以监视并且可靠地检测恶意软件对象访问某些地址范围的企图,包括不可访问的那些,从而在不允许访问时生成异常。有利地,这在不引入被监视过程中的执行流改变的情况下发生,所述改变在其它监视方法(诸如注册异常处置器)的情况下可能发生。

值得注意的是,在执行调度api中使用钩子(hook)以监视异常调度对于捕捉所有异常条件而言并不总是可靠的。另外,在异常是由于控制转移所致的情况(这通常是对于将软件分类为恶意而言感兴趣的情况)下,在该点处进行监视将不提供关于控制转移来自的指令指针(“来自ip”)的信息。使用bt-exp来组合该分析与控制转移监视提供附加的分类能力。

现在将更加特定地参照随附各图来描述执行剖析检测的系统和方法。贯穿各图,共同的标号用于指定跨多个图共同的元件。然而,这不意图暗示本文所公开的不同实施例之间的必然或严格关系。在一些情况下,相同元件的一个或多个不同示例或种类可以以带连字符号的形式指代。因此,例如,标号1xx-1和1xx-2可以指代称为1xx的对象类的两个不同种类或示例。

图1是根据本说明书的一个或多个示例的受保护的企业100的网络级图。在图1的示例中,多个用户120操作多个客户端设备110。具体地,用户120-1操作台式计算机110-1。用户120-2操作膝上型计算机110-2。并且用户120-3操作移动设备110-3。

每一个计算设备可以包括适当的操作系统,诸如microsoftwindows、linux、android、macosx、appleios、unix或类似物。前述各项中的一些可能比另一个更常使用在一种类型的设备上。例如,台式计算机110-1,其在一个实施例中可以是工程工作站,可能更可能使用microsoftwindows、linux、unix或macosx中的一个。膝上型计算机110-2,其经常是具有更少定制选项的便携式现成设备,可能更可能运行microsoftwindows或macosx。移动设备110-3可能更可能运行android或ios。然而,这些示例不意图是限制性的。

客户端设备110可以经由企业网络170通信耦合到彼此和其它网络资源。企业网络170可以是操作在一个或多个合适的联网协议上的任何合适的网络或一个或多个网络的组合,作为非限制性示例,包括例如局域网、内联网、虚拟网络、广域网、无线网络、蜂窝网络或因特网(可选地经由代理、虚拟机或其它类似的安全机构来访问)。企业网络170还可以包括一个或多个服务器、防火墙、路由器、交换机、安全器具、防病毒服务器或其它有用的网络设备。在该图示中,为了简化,企业网络170被示出为单个网络,但是在一些实施例中,企业网络170可以包括大数目的网络,诸如连接到互联网的一个或多个企业内联网。企业网络170还可以提供经由外部网络172对诸如因特网之类的外部网络的接入。外部网络172可以类似地是任何合适类型的网络。

配置为企业安全控制器(esc)140的一个或多个计算设备也可以在企业网络170上操作。esc140可以为出众的安全管理员150提供用户接口以定义企业安全策略,esc140可以在企业网络170上和跨客户端设备120实施所述企业安全策略。

受保护的企业100可能遭遇网络上的各种“安全对象”。安全对象可以是在企业网络170上操作或与企业网络170交互并且具有实际或潜在的安全暗示的任何对象。在一个示例中,对象可以被宽泛为划分成硬件对象和软件对象,硬件对象包括与网络通信或经由网络进行操作的任何物理设备。软件对象可以被进一步细分为“可执行对象”和“静态对象”。可执行对象包括可以主动执行代码或自主操作的任何对象,作为非限制性示例,诸如应用、驱动器、程序、可执行文件、库、过程、运行时文件、脚本、宏、二进制文件、解译器、经解译的语言文件、具有内联代码的配置文件、嵌入式代码和固件指令。静态对象可以宽泛地指定为不是可执行对象或者不能执行的任何对象,作为非限制性示例,诸如文档、图片、音乐文件、文本文件、没有内联代码的配置文件、视频和绘图。在一些情况下,还可以提供混合软件对象,诸如例如具有内置宏的文字处理文档或具有内联代码的动画。为了安全目的,这些可以被视为软件对象的单独类,或者可以简单地被视为可执行对象。

作为非限制性示例,企业安全策略可以包括验证策略、网络使用策略、网络资源配额、防病毒策略和关于客户端设备110上的可执行对象的约束。各种网络服务器可以提供大量服务,诸如路由、联网、企业数据服务和企业应用。

受保护的企业100可以跨企业边界104与外部网络172通信。企业边界104可以表示物理、逻辑或其它边界。企业网络172可以包括例如网站、服务器、网络协议和其它基于网络的服务。在一个示例中,应用储存库160经由外部网络172可用,并且攻击者180(或其它类似的恶意或过失行为者)也连接到外部网络172。

用户120和受保护的企业100的目标可以是在没有来自攻击者180或来自不想要的安全对象的干扰的情况下成功地操作客户端设备110。在一个示例中,攻击者180是恶意软件作者,其目标或目的是导致恶意的损害或危害。恶意损害或危害可以采取在客户端设备110上安装根套件或其它恶意软件的形式,以篡改系统、安装间谍软件或广告软件以收集个人和商业数据、毁坏网站、操作僵尸网络(诸如电子垃圾服务器)或简单地烦扰和骚扰用户120。因此,攻击者180的一个目的可以是将他的恶意软件安装在一个或多个客户端设备110上。如贯穿本说明书所使用的,恶意的软件(“恶意软件”)包括配置成提供不想要的结果或进行不想要的工作的任何安全对象。在许多情况下,恶意软件对象将是可执行对象,作为非限制性示例,包括病毒、木马、僵尸、根套件、后门、蠕虫、间谍软件、广告软件、勒索软件、拨号器、有效载荷、恶意浏览器帮助器对象、追踪cookies、登录器或设计成采取潜在不想要的行动的类似对象,作为非限制性示例,所述潜在不想要的行动包括数据破坏、隐蔽数据收集、浏览器挟持、网络代理或重定向、隐蔽追踪、数据登录、按键记录、对移除的过量或恶意障碍、联系收获和未经授权的自传播。

攻击者180还可能想要对受保护的企业100进行工业或其它间谍活动,诸如窃取机密或私有的数据、窃取身份或获得对企业资源的未经授权的访问。因此,攻击者180的策略还可能包括尝试获得对一个或多个客户端设备110的物理访问权并且在没有授权的情况下操作它们,使得有效的安全策略还可以包括用于防止这样的访问的规定。

在另一示例中,软件开发者可能并非明确地具有恶意意图,但是可能开发造成安全风险的软件。例如,公知并且通常利用的安全漏洞是所谓的缓冲超限,其中恶意用户能够将过长的字符串录入成输入形式并且因而获得执行任意指令或者以客户端设备110上的升高的权限进行操作的能力。缓冲超限可以是例如劣质的输入验证或使用不安全的库的结果,并且在许多情况下出现在不明显的上下文中。因此,尽管自己不是恶意的,但是向应用储存库160贡献软件的开发者可能不利地为攻击者180提供攻击媒介。劣质编写的应用也可能导致固有的问题,诸如崩溃、数据丢失或其它不合期望的行为。由于这样的软件自身可能是不合期望的,因此对于开发者而言可以有益的是不时地提供更新或补丁,所述更新或补丁在易损性变得已知时修复它们。然而,从安全的角度,这些更新和补丁本质上是新的版本。

应用储存库160可以表示windows或apple“应用商店”或更新服务、unix式储存库或端口收集,或者为用户120提供在客户端设备110上交互地或自动地下载和安装应用的能力的其它网络服务。如果应用储存库160使得安全措施就位(这使得对于攻击者180而言难以公然分发恶意的软件),攻击者180可能替代性地将易损性暗中插入到明显有益的应用中。

在一些情况下,受保护的企业100可以提供策略指引,其约束可以从应用储存库160安装的应用类型。因此,应用储存库160可以包括不是疏忽开发的并且不是恶意软件的软件,但是这仍旧抵触策略。例如,一些企业约束比如媒体播放器和游戏那样的娱乐软件的安装。因此,甚至安全的媒体播放器或游戏可能不适合于企业计算机。安全管理员150可以负责分发与这样的约束一致的计算策略并且在客户端设备120上实施它。

受保护的企业100还可以与安全服务提供者190订有合约或者订阅安全服务提供者190,安全服务提供者190可以提供安全服务、更新、防病毒定义、补丁、产品和服务。mcafee®公司是提供全面安全和防病毒解决方案的这样的安全服务提供者的非限制性示例。在一些情况下,安全服务提供者190可以包括威胁智能能力,诸如由mcafee公司提供的全球威胁智能(gtitm)数据库。安全服务提供者190可以通过在新的候选恶意对象出现在客户端网络上时分析它们并且将它们表征为恶意的或善意的来更新其威胁智能数据库。因此,在一些情况下,安全服务提供者190可以包括配置成执行本说明书的exp和bt方法的计算设备。具体地,在一些情况下,计算设备200(图2)可以是由安全服务提供者190提供或在其内使用的安全器具。

在另一示例中,受保护的企业100可以简单地为家庭,其中家长采取安全管理员150的角色。家长可能希望保护他们的孩子以防不合期望的内容,作为非限制性示例,诸如色情文学、广告软件、间谍软件、年龄不适宜的内容、对某些政治、宗教或社会运动的鼓吹或讨论不合法或危险活动的论坛。在该情况下,家长可以执行安全管理员150的一些或全部职责。

集体地,被指定为或者可以被指定为属于不合期望的对象的前述类别中的任何一个的任何对象可以被分类为恶意对象。当在受保护的企业100内遭遇到未知的对象时,该对象可以最初被分类为“候选恶意对象”。该指定可以确保其不被授予完整的网络权限,直到该对象被进一步分析。因此,用户120和安全管理员150的目标是配置和操作客户端设备110和企业网络170以便排除所有的恶意对象,并且迅速且准确地对候选恶意对象进行分类。

图2是根据本说明书的一个或多个示例的计算设备200的框图。计算设备200可以是任何合适的计算设备。在各种实施例中,作为非限制性示例,“计算设备”可以是或包括计算机、工作站、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助理、膝上型计算机、蜂窝电话、ip电话、智能电话、平板计算机、可转换的平板计算机、计算器具、网络器具、接收器、可穿戴计算机、手持计算器或用于处理和传送数据的任何其它电子、微电子或微机电设备。

计算设备200可以是客户端计算设备,或者在适当的情境中可以是安全器具、服务器或任何其它合适的计算设备。作为非限制性示例,计算设备200可以放置成接收和分析进入受保护的企业100并且尚未具有已建立的信誉的新的安全对象。因此,当计算设备200遭遇新的对象时,计算设备200上的软件,诸如系统管理代理器,可以拦截执行新的对象的任何企图。在允许执行新的对象之前,其要通过安全软件剖析。这可以是提供bt引擎216和执行剖析引擎218的特殊的安全器具。一旦新的候选恶意对象被分析并且以适当程度的置信度分类,约束其在受保护的企业100内执行,允许其仅在某些条件之下执行,或者允许其在没有约束的情况下执行。

在一个示例中,bt引擎216可操作用于将二进制对象翻译成可仪表化的形式,这意味着如果期望的话则可以被仪表化的形式。

在一些示例中,第一计算设备200包括客户端引擎,其可操作用于将候选恶意对象上传到第二计算设备200,第二计算设备200可以是例如由安全服务提供者190操作以分析候选恶意对象的安全器具。

计算设备200包括连接到存储器220的处理器210,存储器220具有存储在其中的可执行指令以用于提供操作系统222和安全引擎224的至少软件部分。同样在存储器220内,可以遭遇候选恶意对象226。

计算设备200的其它组件包括存储部250、网络接口260和外围接口240。该架构仅作为示例而提供,并且意图是非排他且非限制性的。另外,所公开的各种部分意图仅仅是逻辑划分,并且不需要必然表示物理上分离的硬件和/或软件组件。某些计算设备例如提供单个物理存储器设备中的主存储器220和存储部250,并且在其它情况下,存储器220和/或存储部250在功能上跨许多物理设备分布。在虚拟机或管理程序的情况下,功能的全部或部分可以以在虚拟化层之上运行的软件或固件的形式提供以提供所公开的逻辑功能。在其它示例中,诸如网络接口260之类的设备可以仅提供执行其逻辑操作必要的最小硬件接口,并且可以依赖于软件驱动器来提供附加的必要逻辑。因此,本文所公开的每一个逻辑块宽泛地意图包括配置并且可操作用于提供该块的所公开的逻辑操作的一个或多个逻辑元件。如贯穿本说明书所使用的,“逻辑元件”可以包括硬件、外部硬件(数字、模拟或混合信号)、软件、往复式软件、服务、驱动器、接口、组件、模块、算法、传感器、组件、固件、微代码、可编程逻辑或可以协作以实现逻辑操作的对象。

在示例中,处理器210经由存储器总线270-3通信耦合到存储器220,作为示例,存储器总线270-3可以是例如直接存储器访问(dma)总线,尽管其它存储器架构是可能的,包括其中存储器220经由系统总线270-1或某个其它总线与处理器210通信的那些。处理器210可以经由系统总线270-1通信耦合到其它设备。如贯穿本说明书所使用的,“总线”包括任何有线或无线互连线、网络、连接、捆束、单个总线、多个总线、交叉开关网络、单级网络、多级网络或可操作以承载计算设备的部分之间或计算设备之间的数据、信号或功率的其它传导介质。应当指出的是,这些使用仅作为非限制性示例而公开,并且一些实施例可以省略前述总线中的一个或多个,而其它可以采用附加或不同的总线。

在各种示例中,“处理器”可以包括逻辑元件的任何组合,包括作为非限制性示例的微处理器、数字信号处理器、现场可编程门阵列、图形处理单元、可编程逻辑阵列、专用集成电路或虚拟机处理器。在某些架构中,可以提供多核处理器,在该情况下处理器210可以被视为多核处理器的仅一个核,或者可以视情况而被视为整个多核处理器。在一些实施例中,还可以提供一个或多个协处理器以用于特殊化或支持功能。

处理器210可以经由dma总线270-3在dma配置中连接到存储器220。为了简化本公开,将存储器220公开为单个逻辑块,但是在物理实施例中可以包括任何一种或多种合适的易失性或非易失性存储器技术的一个或多个块,包括例如ddrram、sram、dram、高速缓存、l1或l2存储器、片上存储器、寄存器、闪存、rom、光学介质、虚拟存储器区、磁性或磁带存储器或类似物。在某些实施例中,存储器220可以包括相对低延时的易失性主存储器,而存储部250可以包括相对较高延时的非易失性存储器。然而,存储器220和存储部250不需要是物理分离的设备,并且在一些示例中可以简单地表示功能的逻辑分离。还应当指出的是,尽管dma作为非限制性示例而公开,但是dma不是与本说明书一致的仅有协议,并且其它存储器架构是可用的。

存储部250可以是任何种类的存储器220,或者可以是单独设备。存储部250可以包括一个或多个非暂时性计算机可读介质,作为非限制性示例,包括硬盘驱动器、固态驱动器、外部存储部、独立盘冗余阵列(raid)、网络附连存储部、光学存储部、磁带驱动器、备份系统、云存储部或前述各项的任何组合。存储部250可以是或者可以在其中包括一个或多个数据库或以其它配置存储的数据,并且可以包括诸如操作系统222和安全引擎224的软件部分之类的操作软件的已存储副本。许多其它配置也是可能的,并且意图被涵盖在本说明书的宽泛范围内。

可以提供网络接口260以将计算设备200通信耦合到有线或无线网络。“网络”,如贯穿本说明书所使用的,可以包括可操作成在计算设备内或之间交换数据或信息的任何通信平台,作为非限制性示例,包括自组织本地网络、为计算设备提供电子交互的能力的互联网架构、简易老式电话系统(pots)(计算设备可以将其用于执行事务,其中它们可以由人类操作者辅助或者其中它们可以向电话或其它合适的电子装备中手动键入数据)、提供系统中的任何两个节点之间的通信接口或交换的任何分组数据网络(pdn)、或者任何局域网(lan)、城域网(man)、广域网(wan)、无线局域网(wlan)、虚拟专用网络(vpn)、内联网或促进网络或电话环境中的通信的任何其它适当的架构或系统。

为了帮助分析候选恶意对象226,可以提供执行剖析引擎218和二进制文件翻译引擎216。这些一起可以有用地对候选恶意对象226进行分析和剖析。

为了附加安全性并且为了确保剖析过程的完整性,执行剖析引擎218和二进制文件翻译引擎216可以提供在可信执行环境(tee)内。可信执行环境提供分开的逻辑块,其中某些操作可以与系统的其余部分隔离地执行。在一个示例中,tee包括可信协处理器212和存储器指定位址空间214。存储器指定位址空间214是可以仅由可信协处理器212或由处理器210仅经由特殊指令访问的存储器的特殊区,诸如在intel软件防护扩展(sgx)指令集中提供的那些。这些确保程序仅可以经由特殊的tee指令进入或退出指定位址空间214。经由任何其它指令访问存储器指定位址空间214内的存储器位置的任何企图都可能在一个示例中造成页面错误。因此,存储器指定位址空间214受保护以防被恶意软件例程或未经证实的软件篡改。为了易于参考,可以将exp218和bte216集体称为“安全引擎”224。

在一个示例中,安全引擎224可操作成实施根据本说明书的计算机实现的方法。安全引擎224可以包括一个或多个非暂时性计算机可读介质,其具有存储在其上的可操作成命令处理器提供安全引擎的可执行指令。如贯穿本说明书使用的,“引擎”包括可操作用于并且配置成执行引擎提供的一个或多个方法的类似或不类似的种类的一个或多个逻辑元件的任何组合。因此,安全引擎224可以包括配置成提供如本说明书中公开的安全引擎方法的一个或多个逻辑元件。在一些情况下,安全引擎224可以包括设计成实施方法或其部分的特殊集成电路,并且还可以包括可操作成命令处理器执行该方法的软件指令。在一些情况下,安全引擎224可以作为“守护”过程来运行。“守护”可以包括作为后台过程、终止并驻留程序、服务、系统扩展、控制面板、引导过程、bios子例程或在没有直接用户交互的情况下进行操作的任何类似程序而运行的任何程序或可执行指令系列,无论是实现在硬件、软件、固件还是其任何组合中。在某些实施例中,守护过程可以以升高的权限在“驱动器空间”中或在保护环架构中的环0、1或2中运行。还应当指出的是,安全引擎224还可以包括其它硬件和软件,作为非限制性示例,包括配置文件、寄存器条目和交互式或用户模式软件。

在一个示例中,安全引擎224包括存储在非暂时性介质上可操作成执行根据本说明书的方法的可执行指令。在适当的时间,诸如当引导计算设备200时或当来自操作系统222或用户120的命令时,处理器210可以从存储部250检索安全引擎224的副本(或其软件部分)并且将其加载到存储器220中。处理器210然后可以迭代地执行安全引擎224的指令以提供期望的方法。

外围接口240可以配置成与连接到计算设备200但是不一定是计算设备200的核心架构的部分的任何辅助设备对接。外设可以可操作成向计算设备200提供经扩展的功能性,并且可以或者可以不完全取决于计算设备200。在一些情况下,外设可以是独立的计算设备。外设可以包括输入和输出设备,作为非限制性示例,诸如显示器、终端、打印机、键盘、鼠标、调制解调器、网络控制器、传感器换能器、致动器、控制器、数据采集总线、相机、麦克风、扬声器或外部存储部。

图3是根据本说明书的一个或多个示例的服务器140的框图。服务器140可以是任何合适的计算设备,如结合图2所描述的。一般而言,图2的定义和示例可以被视为同样适用于图3,除非以其它方式具体陈述。本文分离地描述服务器140以说明在某些实施例中,根据本说明书的逻辑操作可以沿客户端-服务器模型划分,其中客户端设备110提供某些本地化任务,而服务器140提供某些其它的集中式任务。

服务器140包括连接到存储器320的处理器310,存储器320具有存储在其中的可执行指令以用于提供操作系统322和服务器引擎324的至少软件部分。服务器140的其它组件包括存储部350、网络接口360和外围接口340。如图2中描述的,每一个逻辑块可以由一个或多个类似或不类似的逻辑元件提供。

在示例中,处理器310经由存储器总线370-3通信耦合到存储器320,存储器总线370-3可以是例如直接存储器访问(dma)总线。处理器310可以经由系统总线370-1通信耦合到其它设备。

处理器310可以在dma配置中经由dma总线370-3或经由任何其它合适的存储器配置而连接到存储器320。如图2中所讨论的,存储器320可以包括任何合适类型的一个或多个逻辑元件。

存储部350可以是任何种类的存储器320,或者可以是单独设备,如结合图2的存储部250所描述的。存储部350可以是或者可以在其中包括一个或多个数据库或存储在其它配置中的数据,并且可以包括诸如操作系统322和服务器引擎324的软件部分的操作软件的已存储副本。

网络接口360可以被提供以将服务器140通信耦合到有线或无线网络,并且可以包括如图2中所描述的一个或多个逻辑元件。

服务器引擎324是如图2中描述的引擎,并且在一个示例中,包括可操作成实施根据本说明书的计算机实现的方法的一个或多个逻辑元件。服务器引擎324的软件部分可以作为守护过程来运行。

服务器引擎324可以包括具有存储在其上的可执行指令的一个或多个非暂时性计算机可读介质,所述可执行指令可操作成命令处理器提供安全引擎。在适当的时间,诸如当引导服务器140时或当来自操作系统222或用户120或安全管理员150的命令时,处理器310可以从存储部350检索服务器引擎324(或其软件部分)的副本并且将其加载到存储器320中。处理器310然后可以迭代地执行服务器引擎324的指令以提供期望的方法。

外围接口340可以配置成与连接到服务器140但是不一定是服务器140的核心架构的部分的任何辅助设备对接。外设可以可操作成向服务器140提供经扩展的功能性并且可以或可以不完全取决于服务器140。作为非限制性示例,外设可以包括图2中公开的外设中的任何一个。

图4是根据本说明书的一个或多个示例的执行剖析的功能框图。在图4的示例中,将不可信的文档410(或任何其它合适的对象)接收到受保护的企业100中,例如通过客户端设备110。在一个说明性示例中,可信文档410是便携式文档格式(pdf)文档。在一个示例中,不可信的文档410包括某种活动内容,或者在被加载时能够活动的内容。

不可信的可执行文件420可以加载不可信的文档410。在该示例中,不可信的可执行文件420可以是用户空间pdf阅读器应用,诸如adobereader。如果不可信的文档410是恶意对象,其可能做出关于不可信的可执行文件420的存储器布局的假设,并且可能因而企图利用某些易损性。

然而,计算设备200为tee440提供exp引擎218和bte216。exp引擎218预期地分析打开和读取不可信的文档410的不可信的可执行文件420。这可以包括在沙盒环境中运行不可信的可执行文件420,或者不可信的可执行文件420经由bte416的二进制翻译以预期地标识异常条件。一旦标识到异常条件,其可以被追踪回到源指令,并且被分析以确定指令是否是潜在恶意的。

在一些实施例中,异常条件的增加的分析是恶意对象和善意对象之间的关键区分者。并非所有的异常条件都是恶意软件的结果。一些单纯是劣质编程或遭遇到未预计到的条件的结果。因此,不是每一个异常都可以在每一种情况下被视为恶意软件攻击媒介。然而,异常可以是用于标识批准更深入的审查的代码部分的有用标杆。

bte216输出经翻译的二进制文件450。在一些情况下,bte216可以利用tee440内提供的加密密钥对经翻译的二进制文件415进行签名。这允许其它指定位址空间证实经翻译的二进制文件450的完整性,例如经由认证协议。

在一些情况下,bte216可以以排除潜在恶意的操作的新形式创建经翻译的二进制文件450。因此,如果不可信的可执行文件420提供合期望的功能性,但是还包括一些有问题的功能性,则可以在经翻译的二进制文件450内存留有用的功能性。在一个示例中,经翻译的二进制文件450可以是二进制格式,诸如java字节码,或专用格式。经翻译的二进制文件450可以以不准许以诸如c或c++之类的语言可用并且可以被恶意软件作者利用的低级存储器操作类型的格式。因此,在一个示例中,企业计算策略可以要求不可信的可执行文件420仅能够以经翻译的二进制格式450在企业客户端设备110上执行,直到不可信的可执行文件420已经被透彻地审查并且被清理以用于以其原生格式的执行。这可以表示向受保护的企业100引入新的软件而没有可能闭锁合期望的功能性的繁琐过程而同时还存留企业安全性的能力之间的折衷决定。

图5是根据本说明书的一个或多个示例的方法500的流程图。

在块502中,启动过程。该过程可以是例如图2的候选恶意对象226。如果候选恶意对象226是可执行文件,则这是被监视的过程。如果候选恶意对象226不是可执行文件,或者不是独立的可执行文件(诸如共享对象库或dll),则可以监视启动或加载候选恶意对象226的主机过程。在一个示例中,候选恶意对象226是pdf,并且所监视的过程是adobereader,其加载要分析的pdf。该示例仅作为说明而提供,并且意图是非限制性的。

仍旧在块502中,将分析组件注入到所监视的过程中。这些将在用于对所监视的过程的操作和存储器的容易访问的上下文内执行。分析组件为exp引擎218提供对所使用的变量、所访问的存储器位置和在候选恶意对象226内使用的指令中的可见性。

在块512中,执行剖析引擎218初始化bt-exp异常监视。在该情况下,bte216由分析组件加载。这发起针对执行剖析的监视。利用所加载的bte216,执行剖析引擎218能够选择性地监视候选恶意对象226的过程内的指令的执行。还可以使得能够实现用于异常监视的exp回呼。这些可以跨整个过程全局地或者在每个线程的基础上使能。

在块514中,如果候选恶意对象226是恶意软件,其可能开始在过程内执行。在其中候选恶意对象226是例如pdf文件的示例中,候选恶意对象226可以利用安全漏洞来“中断”正常控制区域,其中pdf在过程内加载并且开始恶意软件代码在所监视的过程520内的执行。

在所监视的过程520内,候选恶意对象226可以做出关于存储器布局的某些假设,并且企图基于这些假设转移到地址。

在块524中,候选恶意对象526企图使用被盖写的功能指针,例如基于其已经做出的假设。

在块530中,候选恶意对象226企图启动恶意软件有效载荷530。

在块534中,恶意软件有效载荷530执行并且企图调用如以上描述的无效地址。如果例如所监视的过程520是所监视的过程的略微不同的版本(包括已经对易损性打补丁的版本,或者如果出于无论什么原因,由候选恶意对象226做出的假设单纯是错误的),执行恶意软件的企图可能导致用户模式异常。作为非限制性示例,这些可以包括来自非可执行存储器的企图执行、从无效存储器位置执行的企图、无效指令形式和无效指令对齐。

在块540中,bt-exp异常监视拦截由无效企图丢出的异常。因此,执行剖析引擎218可以在异常发生之前标识异常条件,诸如通过预先核实如它们执行的指令和指令地址。这允许不取决于技术的异常后拦截的异常条件的透明且可靠的检测,所述异常后拦截在某些实施例中对于捕捉所有异常条件而言可能是不可靠的。

仍旧在块540中,执行剖析引擎218可以调用回呼功能寄存器以用于处置所拦截的异常。

异常处置回呼功能检验异常的类型和来源以及目的地(如果被受控转移指令触发的话),以对照常见恶意软件目标地址检查目标。这可以包括块550、560、564和570的操作。

在块550中,对照被恶意软件经常使用的地址列表和地址范围来检查转移目标地址。这是可能的,因为恶意软件代码通常从常见来源取得,诸如例如“metasploit”,使得细节经常被再用。

在块560中,针对处于可写存储器中来检查转移的起点和目的地。例如,rop/jop小部件到壳代码转变可以从非可写存储器到可写页面。这指示恶意软件行为。

在块564中,执行剖析引擎218可以针对属于合法代码模块(诸如操作系统库)而检查转移起点和目的地。作为增强,如果正追踪存储器在过程内的分配,执行剖析引擎218可以针对合法性检验拥有转移目标和来源的存储器的分配符。

在块570中,可以执行附加的检查。例如,如果转移是由于指针,则执行剖析引擎218可以检查目标处于正常预计的范围内。例如,调用堆栈中的返回值正常不应当指向堆栈内的区域(因为缓冲超限利用可能经常这样做)。还可以针对是可写的(也是缓冲超限的使用的征兆)来检查返回地址处的存储器。

在决策块580中,如果块550、560、564、570的检查中的任何一个或所执行的任何其它检查失败,则在块584中,可以检测到候选恶意对象并且将其分类为恶意或潜在恶意的。对于检查中的一些,失败自身将足以将候选恶意对象218分类为恶意的。对于其它检查,附加的检查可能是必要的,诸如通过深入审查软件或通过人类安全分析员的分析。人类安全分析员可以是具有在检测和标识恶意软件对象和行为方面的技能的任何人类。在一个示例中,候选恶意对象218被标记或加标签以用于附加分析,通过由计算机的深入审查或者用于人类审查。

返回到块580,如果没有检查失败,则候选恶意对象218可以至少被暂时分类为善意的。在某些实施例和示例中,候选恶意对象218可以经受附加分析和监督,诸如通过防病毒、防恶意软件、防网络钓鱼或其它安全引擎。

在块590中,方法完成。

方法500的某些功能块还可以用于地址范围监视。在该情况下,块502、510和512可以如上执行。特殊的寄存器然后可以被供应有bt-exp回呼以调用何时向或从存储器的指定范围转移。例如,可以监视oxocococoo到oxocococff,如以上所描述的。

当触发回呼时,执行剖析引擎218可以分析受控转移的起点或目的地。其然后可以核实所牵涉的代码或存储器以确定其是否合法。核实方法可以包括扫描已知字节模式,诸如已知属于恶意软件的那些,或者核实代码由合法的模块(诸如合法的共享对象库或windowsdll)支持或所拥有。

前文概述若干实施例的特征,使得本领域技术人员可以更好地理解本公开的各方面。本领域技术人员应当领会到,他们可以容易地使用本公开作为用于设计或修改其它过程和结构以用于实施本文介绍的实施例的相同的目的和/或实现相同的优点的基础。本领域技术人员还应当认识到,这样的等同构造不脱离本公开的精神和范围,并且他们可以做出本文中的各种改变、替换和更改而不脱离本公开的精神和范围。

本公开的特定实施例可以容易地包括片上系统(soc)中央处理单元(cpu)封装。soc表示将计算机或其它电子系统的组件集成到单个芯片中的集成电路(ic)。其可以包含数字、模拟、混合信号和射频功能:其中的全部可以提供在单个芯片衬底上。其它实施例可以包括多芯片模块(mcm),其中多个芯片位于单个电子封装内并且配置成通过电子封装与彼此紧密地交互。在各种其它的实施例中,数字信号处理功能性可以实现在专用集成电路(asic)、现场可编程门阵列(fpga)和其它半导体芯片中的一个或多个硅核中。

此外,与所描述的微处理器相关联的组件中的一些可以被移除,或者以其它方式联合。从一般意义上来说,在各图中描绘的布置可以在其表示方面更加有逻辑,而物理架构可以包括这些元件的各种排列、组合和/或混合。必要的是要指出,无数可能的设计配置可以用于实现本文概述的操作目的。相应地,相关联的基础设施具有无数的替代布置、设计选择、设备可能性、硬件配置、软件实现、装备选项等。

任何经适当配置的处理器组件可以执行与数据相关联的任何类型的指令以实现本文所详述的操作。本文所公开的任何处理器可以将元件或制品(例如数据)从一个状态或事物转变成另一状态或事物。在另一示例中,本文概述的活动可以利用固定逻辑或可编程逻辑(例如由处理器执行的软件/计算机指令)实现,并且本文标识的元件可以是某种类型的可编程处理器、可编程数字逻辑(例如现场可编程门阵列(fpga)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))、asic(其包括数字逻辑、软件、代码、电子指令)、闪速存储器、光盘、cd-rom、dvd-rom、磁卡或光卡、适合于存储电子指令的其它类型的机器可读介质或它们的任何合适的组合。在操作中,在适当的情况下并且基于特定需要,处理器可以将信息存储在任何合适类型的非暂时性存储介质(例如随机存取存储器(ram)、只读存储器(rom)、现场可编程门阵列(fpga)、可擦除可编程只读存储器(eprom)、电可擦除可编程rom器(eeprom)等)、软件、硬件中或在任何其它合适的组件、设备、元件或对象中。另外,基于特定需要和实现,在处理器中追踪、发送、接收或存储的信息可以在任何数据库、寄存器、表格、高速缓存、队列、控制列表或存储结构中提供,其中的全部可以在任何合适的时间帧处被引用。本文所讨论的任何存储器项应当被解释为被涵盖在宽泛的术语“存储器”内。

实现本文所描述的功能性中的全部或部分的计算机程序逻辑以各种形式体现,包括但绝不限于,源代码形式、计算机可执行形式和各种中间形式(例如由汇编器、编译器、链接器或定位器生成的形式)。在示例中,源代码包括以各种编程语言实现的一系列计算机程序指令以供各种操作系统或操作环境使用,所述编程语言诸如对象代码、汇编语言或高级语言(诸如opencl、fortran、c、c++、java或html)。源代码可以定义和使用各种数据结构和通信消息。源代码可以以计算机可执行形式(例如经由解译器),或者源代码可以转换(例如经由翻译器、汇编器或编译器)成计算机可执行形式。

在一个示例实施例中,各图的任何数目的电气电路可以实现在相关联的电子设备的板上。板可以是可以保持电子设备的内部电子系统的各种组件并且还提供用于其它外设的连接器的一般电路板。更特别地,板可以提供系统的其它组件可以通过其电气通信的电气连接。任何合适的处理器(包括数字信号处理器、微处理器、支持芯片组等)、存储器元件等可以基于特定配置需要、处理需求、计算机设计等而适当地耦合到板。其它组件(诸如外部存储部、附加传感器、用于音频/视频显示的控制器和外围设备)可以作为插入卡、经由线缆而附连到板或者集成到板自身中。在另一示例实施例中,各图的电气电路可以实现为独立的模块(例如具有配置成执行特定应用或功能的相关联的组件和电路的设备)或实现为到电子设备的专用硬件中的插入模块。

要指出的是,关于本文所提供的众多示例,交互可以在两个、三个、四个或更多电气组件方面进行描述。然而,这仅仅出于清楚和示例的目的而进行。应当领会到,系统可以以任何合适的方式联合。沿类似的设计可替换方案,各图的所图示的组件、模块和元件中的任何一个可以组合在各种可能的配置中,其中的全部显然在本说明书的宽泛范围内。在某些情况下,通过仅参照有限数目的电气元件来描述给定流程集合的一个或多个功能性可能更加容易。应当领会到,各图的电气电路及其教导是可容易缩放的并且可以容纳大数目的组件,以及更复杂/精密的布置和配置。相应地,所提供的示例不应当限制如潜在地应用于无数其它架构的电气电路的范围或阻碍其宽泛的教导。

众多其它改变、替换、变型、更改和修改可以对本领域技术人员是被查明的并且意图在于本公开涵盖如落在随附权利要求的范围内的所有这样的改变、替换、变型、更改和修改。为了帮助美国专利商标局(uspto)和此外关于本申请发布的任何专利的任何读者解释随附于此的权利要求,申请人希望指出的是,申请人:(a)不意图任何随附权利要求当它在本文提交日存在时援引35u.s.c.第112章第六(6)款,除非在特定权利要求中具体地使用词语“用于……的部件”或“用于……的步骤”;并且(b)不意图通过说明书中的任何陈述来以并未以其它方式在随附权利要求中反映的任何方式限制本公开。

示例实现

在示例1中公开了一种计算装置,包括:包括过程的存储器;以及包括执行剖析引擎的一个或多个逻辑元件,所述执行剖析引擎可操作用于:审查所述过程的至少部分;确定所述过程的所述至少部分产生异常条件;并且将所述过程指定为潜在恶意的。

在示例2中公开了示例1的计算装置,其中执行剖析引擎至少部分地提供在可信执行环境中。

在示例3中公开了示例1的计算装置,其中执行剖析引擎还可操作用于使所述过程经受附加的安全分析以标识恶意行为。

在示例4中公开了示例3的计算装置,其中使所述过程经受附加的安全分析包括使所述过程经受计算机化的深入审查。

在示例5中公开了示例3的计算装置,其中使所述过程经受附加的安全分析包括指定所述过程以供人类安全分析员分析。

在示例6中公开了示例1的计算装置,其中执行剖析引擎至少实现在硬件中。

在示例7中公开了示例1的计算装置,还包括二进制翻译引擎,其可操作用于将所述过程从第一形式翻译成第二形式。

在示例8中公开了、在示例8中公开了示例7的计算装置,其中第二形式排除存储器的直接操纵。

在示例9中公开了示例7的计算装置,其中二进制文件翻译引擎至少部分地提供在可信执行环境中。

在示例10中公开了示例7的计算装置,其中二进制文件翻译引擎可操作用于将所述过程翻译成可仪表化形式。

在示例11中公开了示例7的计算装置,其中执行剖析引擎和二进制文件翻译引擎中的至少一个至少部分虚拟化。

在示例12中公开了示例1的计算装置,其中执行剖析引擎还可操作用于对照恶意软件经常使用的地址列表和地址范围来检查转移目标地址。

在示例13中公开了示例1的计算装置,其中执行剖析引擎还可操作用于核实所述过程被合法软件模块所拥有。

在示例14中公开了具有存储在其上的指令的一个或多个计算机可读介质,指令在被执行时命令处理器以用于提供执行剖析引擎,所述执行剖析引擎可操作用于:审查过程的至少部分;确定所述过程的所述至少部分产生异常条件;并且将所述过程指定为潜在恶意的。

在示例15中公开了示例14的一个或多个计算机可读介质,其中指令还可操作用于至少部分地在可信执行环境中提供执行剖析引擎。

在示例16中公开了示例14的一个或多个计算机可读介质,其中执行剖析引擎还可操作用于使所述过程经受附加的安全分析以标识恶意行为。

在示例17中公开了示例16的一个或多个计算机可读介质,其中使所述过程经受附加的安全分析包括使所述过程经受计算机化的深入审查。

在示例18中公开了示例16的一个或多个计算机可读介质,其中使所述过程经受附加的安全分析包括指定所述过程以供人类安全分析员分析。

在示例19中公开了示例14的一个或多个计算机可读介质,其中指令还用于提供二进制文件翻译引擎,其可操作用于将所述过程从第一形式翻译成第二形式。

在示例20中公开了示例19的一个或多个计算机可读介质,其中第二形式排除存储器的直接操纵。

在示例21中公开了示例19的一个或多个计算机可读介质,其中二进制文件翻译引擎至少部分地提供在可信执行环境中。

在示例22中公开了示例19的一个或多个计算机可读介质,其中二进制文件翻译引擎可操作用于将所述过程翻译成可仪表化形式。

在示例23中公开了示例14的一个或多个计算机可读介质,其中执行剖析引擎还可操作用于对照由恶意软件经常使用的地址列表和地址范围来检查转移目标地址。

在示例24中公开了一种计算机实现的方法,包括:审查计算过程的至少部分;确定所述计算过程的所述至少部分产生异常条件;以及将所述计算过程指定为潜在恶意的。

在示例25中公开了示例24的方法,还包括:将所述过程从第一形式翻译成第二形式,其中第二形式是可仪表化的。

在示例26中公开了一种方法,包括执行如在示例14-23中的任何一个中公开的指令。

在示例27中公开了一种装置,包括用于执行示例26的方法的部件。

在示例28中公开了示例27的装置,其中所述装置包括处理器和存储器。

在示例29中公开了示例28的装置,其中所述装置还包括具有存储在其上的软件指令以用于执行示例26的方法的计算机可读介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1