CN107851155B - 用于跨越多个软件实体跟踪恶意行为的系统及方法 - Google Patents

用于跨越多个软件实体跟踪恶意行为的系统及方法 Download PDF

Info

Publication number
CN107851155B
CN107851155B CN201680042507.0A CN201680042507A CN107851155B CN 107851155 B CN107851155 B CN 107851155B CN 201680042507 A CN201680042507 A CN 201680042507A CN 107851155 B CN107851155 B CN 107851155B
Authority
CN
China
Prior art keywords
entity
group
entities
determining whether
sub
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
CN201680042507.0A
Other languages
English (en)
Other versions
CN107851155A (zh
Inventor
格奥尔基-弗洛林·哈伊玛山
拉杜-玛丽安·波尔塔塞
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.)
Bitdefender IPR Management Ltd
Original Assignee
Bitdefender IPR Management Ltd
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 Bitdefender IPR Management Ltd filed Critical Bitdefender IPR Management Ltd
Publication of CN107851155A publication Critical patent/CN107851155A/zh
Application granted granted Critical
Publication of CN107851155B publication Critical patent/CN107851155B/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Abstract

所描述系统及方法允许保护计算机系统免受恶意软件影响。在一些实施例中,安全应用程序将受监视可执行实体(例如,进程)集划分成多个群组,其中群组的所有成员通过父子关系或代码注入而相关。所述安全应用程序可进一步使评分集与每一实体群组相关联。当相应群组的成员执行某些动作时,可使此些群组评分递增。因此,即使由个别成员执行的动作本身可能并不具恶意软件指示性,所述群组评分也可俘获集体恶意行为并触发恶意软件检测。在一些实施例中,群组成员身份规则根据实体是否为包含某些OS进程、浏览器及文件管理器的所选择实体子集的一部分而变化。当实体被确定为恶意时,可对相关实体的整个群组采取反恶意软件措施。

Description

用于跨越多个软件实体跟踪恶意行为的系统及方法
技术领域
本发明涉及用于保护计算机系统免受恶意软件影响的系统及方法。
背景技术
恶意软件(也被称为恶意软件(malware))在世界范围内影响大量计算机系统。在其许多形式(例如计算机病毒、蠕虫、隐匿程序(rootkit)、未经请求的广告程序、勒索软件及间谍软件)中,恶意软件给数百万计算机用户呈现严重风险,使其易受数据及敏感信息丢失、身份盗用及生产力损失以及其它侵害。恶意软件可进一步显示一些用户认为淫秽、过分暴力、骚扰或或其它令人反感的资料。
安全软件可用于检测使用户的计算机系统受感染的恶意软件,且另外用于移除或停止此类恶意软件的执行。所属领域中已知数种恶意软件检测技术。一些技术依赖于将恶意软件代理的代码片段与恶意软件指示性特征库进行匹配。其它常规方法检测恶意软件指示性行为,例如由恶意软件代理执行一组动作。
恶意软件依赖于各种策略来规避检测。一个此策略涉及模糊技术,举例来说,对恶意代码进行加密,或在每一受感染计算机上使用稍微不同代码版本(通常称为多态性的特征)。另一示范性检测避免方法将恶意活动分到多个代理当中,其中每一代理执行一组单独动作,所述组单独动作在独立于由其它代理执行的动作被采取时无法被视为具恶意软件指示性。
对于开发检测此类高级恶意软件的系统及方法存在强烈兴趣。
发明内容
根据一个方面,一种主机系统包括至少一个硬件处理器以及存储器单元,所述至少一个硬件处理器经配置以执行实体管理器及试探引擎。所述实体管理器经配置以将受监视可执行实体集合组织成多个实体群组,其中组织所述集合包括:响应于检测到所述集合的第一实体已生成子实体,确定所述第一实体是否属于实体的群组创建者类别。组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体属于所述群组创建者类别时,将新实体群组添加到所述多个实体群组,及将所述子实体指派到所述新实体群组。组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时,从所述多个实体群组选择第一实体群组,使得所述第一实体为所述第一实体群组的成员,及将所述子实体指派到所述第一实体群组。所述试探引擎经配置以响应于由所述子实体执行的第一动作而:从所述多个实体群组选择第二实体群组,使得所述子实体为所述第二实体群组的成员;及响应于选择所述第二实体群组,根据由所述第二实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
根据另一方面,一种方法包括采用主机系统的至少一个硬件处理器来将受监视可执行实体集合组织成多个实体群组。组织所述集合包括:响应于检测到所述集合的第一实体已生成子实体,确定所述第一实体是否属于实体的群组创建者类别。组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体属于所述群组创建者类别时,将新实体群组添加到所述多个实体群组,及将所述子实体指派到所述新实体群组。组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时,从所述多个实体群组选择第一实体群组,使得所述第一实体为所述第一实体群组的成员,及将所述子实体指派到所述第一实体群组。所述方法进一步包括:响应于由所述子实体执行的第一动作,采用所述主机系统的至少一个硬件处理器从所述多个实体群组选择第二实体群组,使得所述子实体为所述第二实体群组的成员。所述方法进一步包括:响应于选择所述第二实体群组,采用所述主机系统的至少一个硬件处理器根据由所述第二实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
根据另一方面,一种非暂时性计算机可读媒体存储有指令,所述指令在由主机系统的至少一个硬件处理器执行时致使所述主机系统形成实体管理器及试探引擎。所述实体管理器经配置以将受监视可执行实体集合组织成多个实体群组,其中组织所述集合包括:响应于检测到所述集合的第一实体已生成子实体,确定所述第一实体是否属于实体的群组创建者类别。组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体属于所述群组创建者类别时,将新实体群组添加到所述多个实体群组,及将所述子实体指派到所述新实体群组。组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时,从所述多个实体群组选择第一实体群组,使得所述第一实体为所述第一实体群组的成员,及将所述子实体指派到所述第一实体群组。所述试探引擎经配置以响应于由所述子实体执行的第一动作而:从所述多个实体群组选择第二实体群组,使得所述子实体为所述第二实体群组的成员;及响应于选择所述第二实体群组,根据由所述第二实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
根据另一方面,一种主机系统包括至少一个硬件处理器以及存储器单元,所述至少一个硬件处理器经配置以执行实体管理器及试探引擎。所述实体管理器经配置以根据实体间关系集将受监视可执行实体集合组织成多个实体群组,使得所述集合的至少一个实体同时属于多个实体群组,其中所述实体间关系集选自由父子关系及代码注入关系组成的关系群组。所述试探引擎经配置以响应于由所述至少一个实体执行的第一动作而:从所述多个实体群组选择一实体群组,使得所述至少一个实体为所述实体群组的成员;及响应于选择所述实体群组,根据由所述实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
附图说明
在阅读以下详细说明后且在参考图式后,本发明的前述方面及优点将立即变得更好理解,在图式中:
图1展示根据本发明的一些实施例的包含在客户端系统上执行的安全应用程序的一组示范性软件对象。
图2图解说明根据本发明的一些实施例的客户端计算机系统的示范性硬件配置。
图3展示根据本发明的一些实施例的安全应用程序的示范性结构。
图4图解说明在
Figure GDA0002788997110000031
环境中的一组进程的示范性执行流程。实线箭头指示在不存在安全应用程序的情况下的典型流程。虚线箭头指示对所述执行流程的修改,所述修改由根据本发明的一些实施例操作的多个事件拦截器引入。
图5-A图解说明根据本发明的一些实施例的包括针对恶意行为而监视的可执行实体的实体群组集。实线箭头表示实体创建;虚线箭头表示代码注入。
图5-B图解说明根据本发明的一些实施例的另一实体群组集。
图6展示根据本发明的一些实施例的由实体管理器(图3)执行的示范性步骤序列。
图7展示根据本发明的一些实施例的由规避性恶意软件执行的动作的示范性时间序列及示范性行为特征。
图8-A图解说明根据本发明的一些实施例的另一示范性行为特征。
图8-B图解说明根据本发明的一些实施例的又一示范性行为特征。
图9图解说明根据本发明的一些实施例的由试探引擎(图3)执行的示范性步骤序列。
图10-A展示根据本发明的一些实施例的多个示范性实体评分对象(ESO),每一ESO是针对相应可执行实体而确定。
图10-B展示根据本发明的一些实施例的多个示范性群组评分对象(GSO),每一GSO是针对相应可执行实体群组而确定。
图11-A图解说明根据本发明的一些实施例的一组示范性实体评分值及相关联实体评分增量。
图11-B图解说明根据本发明的一些实施例的一组示范性群组评分值及相关联群组评分增量。
图12-A展示根据本发明的一些实施例的由评分引擎(图3)执行的示范性步骤序列。
图12-B展示根据本发明的一些实施例的由评分引擎执行的替代步骤序列。
图12-C展示根据本发明的一些实施例的由评分引擎执行的又一替代步骤序列。
图13展示根据本发明的一些实施例的由清除模块(图3)执行的示范性步骤序列。
具体实施方式
在以下描述中,应理解,结构之间的所有所引用连接可为直接操作连接或通过中间结构的间接操作连接。一组元素包含一或多个元素。对元素的任何引用应理解为指代至少一个元素。多个元素包含至少两个元素。除非另有要求,否则任何所描述方法步骤不一定要以特定所图解说明次序执行。从第二元素导出的第一元素(例如,数据)涵盖等于所述第二元素的第一元素以及通过处理所述第二元素而产生的第一元素及任选地其它数据。根据参数做出确定或决策涵盖根据所述参数及任选地根据其它数据做出确定或决策。除非另外规定,否则一些数量/数据的指示符可为数量/数据本身,或与所述数量/数据本身不同的指示符。计算机安全性涵盖保护用户及装备免遭对数据及/或硬件的不期望或未授权存取、免遭对数据及/或硬件的不期望或未授权修改且免遭对数据及/或硬件的破坏。计算机程序是执行任务的处理器指令序列。在本发明的一些实施例中所描述的计算机程序可为其它计算机程序的独立软件实体或子实体(例如,子例程、库)。除非另有规定,否则进程为计算机程序(例如,应用程序或操作系统的一部分)的实例,且由通过给其指派至少一执行线程及虚拟存储器空间而表征,其中相应虚拟存储器空间的内容包含可执行代码。除非另有规定,否则试探为经执行以确定一组事件的发生是否指示计算机安全威胁的程序。计算机可读媒体涵盖非暂时性媒体(例如磁性媒体、光学媒体及半导体存储媒体(例如硬盘驱动器、光盘、快闪存储器、DRAM))以及通信链路(例如导电电缆及光纤链路)。根据一些实施例,本发明尤其提供包括经编程以执行本文中所描述的方法的硬件(例如一或多个微处理器)的计算机系统,以及编码用以执行本文中所描述的方法的指令的计算机可读媒体。
以下说明以实例方式且未必以限制方式图解说明本发明的实施例。
图1展示根据本发明的一些实施例的在经保护免受计算机安全威胁的客户端系统10上执行的一组示范性软件对象。客户端系统10可表示计算机系统(例如,最终用户计算机、企业服务器等)。其它示范性客户端系统10包含移动计算装置(例如,膝上型计算机、平板PC)、通讯装置(例如,智能电话)、数字娱乐器械(TV、游戏控制台等)、随身计算装置(例如,智能手表),或者具有处理器及存储器且需要计算机安全保护的任何其它电子装置。
在一些实施例中,操作系统(OS)30包括软件,所述软件提供通往客户端系统10的硬件的接口,且为一组软件应用程序32a到32c及36充当主机。OS 30可包括任何广泛可用的操作系统,例如
Figure GDA0002788997110000051
Figure GDA0002788997110000052
以及其它操作系统。应用程序32a到32c一般表示用户软件,所述用户软件可包含(举例来说)字处理、图像处理、数据库、浏览器及电子通信应用程序以及其它。在一些实施例中,安全应用程序36与应用程序32a到32c同时执行且经配置以确定在客户端系统10(包含应用程序32a到32c及OS 30)上执行的任何软件是否造成计算机安全威胁。举例来说,应用程序36可检测恶意软件及/或间谍软件。应用程序36可进一步经配置以擦除此恶意软件或以其它方式使此恶意软件无用,且向客户端系统10的用户或系统管理员发出警示。安全应用程序36可为独立程序,或可形成包括反恶意软件、反垃圾邮件及反诈骗组件以及其它的软件套件的一部分。下文详细描述安全应用程序36的操作。
图2图解说明客户端系统10的示范性硬件配置,其中客户端系统10为计算机系统。所属领域的技术人员将了解,例如平板PC、移动电话、智能手表等其它装置的硬件配置可不同于所图解说明配置,但本说明可适用于此些装置。客户端系统10包括一组物理装置,包含全部通过控制器集线器24互连的硬件处理器12、存储器单元14、一组输入装置16、一组输出装置18、一组存储装置20及一组网络适配器22。
在一些实施例中,处理器12包括经配置以利用一组信号及/或数据来执行计算操作及/或逻辑操作的物理装置(例如,微处理器、半导体衬底上所形成的多核集成电路)。在一些实施例中,此些逻辑操作以处理器指令序列(例如,机器代码或其它类型的软件)的形式从存储器单元14发射到处理器12。存储器单元14可包括易失性计算机可读媒体(例如,RAM),所述易失性计算机可读媒体存储在执行指令期间由处理器12存取或产生的数据/信号。输入装置16可包含计算机键盘、鼠标及麦克风以及其它,包含相应硬件接口及/或适配器,从而允许用户将数据及/或指令引入到客户端系统10中。输出装置18可包含显示装置(例如,监视器及扬声器以及其它)以及硬件接口/适配器(例如,显卡),从而允许客户端系统10将数据传达到用户。在一些实施例中,输入装置16与输出装置18可共享一件共同硬件,如在触摸屏装置的情形中。存储装置20包含实现处理器指令及/或数据的非易失性存储、读取及写入的计算机可读媒体。示范性存储装置20包含磁盘及光盘以及快闪存储器装置,以及可移除式媒体,例如CD及/或DVD磁盘及驱动器。所述组网络适配器22使得客户端系统10能够连接到网络(例如,局域网、无线网络等)及/或其它装置/计算机系统。控制器集线器24一般表示多个系统、外围设备及/或芯片集总线,及/或实现处理器12与装置14、16、18、20及22之间的通信的所有其它电路。举例来说,控制器集线器24可包括将处理器12连接到存储器14的北桥及/或将处理器12连接到装置16、18、20及22的南桥。
图3展示根据本发明的一些实施例的安全应用程序36的示范性组件。安全应用程序36包括评分引擎48及清除模块56,两者均连接到行为管理器42。行为管理器42进一步包括耦合到试探引擎46的实体管理器44。
在一些实施例中,行为管理器42从安装于在客户端系统10上执行的各种软件对象内的一组事件拦截器28a到28c接收一组事件通知40。事件通知40因此可向行为管理器42告知在软件的执行期间各种事件的发生。示范性所通知事件可包含进程或线程的创建、代码注入、系统调用、创建新磁盘文件的尝试、写入到现有磁盘文件的尝试、编辑系统注册表项的尝试及写入到特定存储器部分的尝试,以及其它。所通知事件中的一些事件可能具恶意软件指示性。其它事件本身可能不指示安全威胁,但在与其它事件一起发生时可用信号表示潜在威胁。响应于接收到通知40,行为管理器42的一些实施例可存取试探数据库26并根据通知40的细节而选择检测例程,所选择例程实施特定试探。行为管理器42可进一步将相应检测例程发送到试探引擎46以供执行。相应例程的执行可将评分警示50供应到评分引擎48。引擎48可维持多个此类评价指示符(例如,评分),且可在至少一个此类指示符指示计算机安全威胁时发出警示。下文详细描述组件44、46、48及56的操作。
为图解说明事件拦截器28a到28c的操作,图4展示根据本发明的一些实施例的一组软件实体60a到60b的示范性执行流程。为简单起见,所挑选实体60a到60b为在
Figure GDA0002788997110000061
OS的实例中执行的进程;举例来说,可再现用于其它操作系统(例如Linux)的类似图式。实线箭头表示在不存在事件拦截器的情况下的执行流程。虚线箭头表示根据本发明的一些实施例执行的因存在事件拦截器28a到28c而产生的对所述流程的修改。
示范性进程60a加载多个动态链接库(DLL)62a到62c;在图4的实例中,DLL 62c通过(可能为恶意的)进程60b而注入到进程60a中。当进程60a(或其所加载的DLL中的一者)执行调用一些系统功能性(例如,将某事写入到磁盘文件、或编辑注册表项)的指令时,相应指令调用用户模式应用程序编程接口(API),例如KERNEL32.DLL或NTDLL.DLL。在图4的实例中,相应用户模式API调用被用户层级事件拦截器28a拦截。此类拦截可通过例如DLL注入或挂起以及其它方法而实现。挂起为所属领域中使用的针对拦截在软件组件之间传递的函数调用、消息或事件的方法的通用术语。一种示范性挂起方法包括通过插入将执行重新引导到第二函数的指令(在此情形中,事件拦截器28a)来更改目标函数的入口点。在此挂起之后,第二函数可替代目标函数或在目标函数之前执行。在图4的实例中,安全应用程序36可挂接到KERNEL32.DLL及/或NTDLL.DLL库的某些功能中,以指示相应功能将执行重新引导到应用程序36的组件。因此,无论何时进程60a正试图执行根据所挂起功能而识别的特定动作,均可通知应用程序36。
在典型执行流程中,由实体60a调用的用户模式API函数可从操作系统的内核请求服务。在一些实施例中,通过在x86平台上发布系统调用(例如SYSCALL及SYSENTER)来执行此类操作。在图4的实例中,此类系统调用被事件拦截器28b拦截。在一些实施例中,此类拦截包括(举例来说)通过改变存储在处理器12的模型特有寄存器(MSR)中的值而修改系统调用处理程序例程,此有效地将相应处理程序例程的执行重新引导到拦截器28b或直接重新引导到应用程序36的组件。此类技术在所属技术中称为MSR挂起,且无论何时软件实体正试图执行某些系统调用,均可允许通知安全应用程序36。
在系统调用之后,对处理器的控制通常移交到OS 30的内核。在一些实施例中,内核层级事件拦截器28c经配置以拦截OS内核的某些动作,且因此确定所评估进程正试图执行可具恶意软件指示性的某些操作。为拦截此些动作,一些实施例可采用构建到OS 30中且被OS 30暴露的一组过滤机制。举例来说,在
Figure GDA0002788997110000071
OS中,可使用FltRegisterFilter来拦截如创建文件、打开文件、写入到文件及删除文件等操作。在另一实例中,事件拦截器28c可使用ObRegisterCallback来拦截创建或复制对象句柄操作,或使用PsSetCreateProcessNotifyRoutine来拦截新进程的创建。在又一实例中,Windows注册表操作(例如,创建及设定注册表项/值)可使用CmRegisterCallbackEx来拦截。所属技术中知晓用于其它操作系统(例如
Figure GDA0002788997110000072
)的类似事件过滤机制。响应于检测到特定事件/动作的发生,事件拦截器28可将通知40发射到安全应用程序36。
在一些实施例中,安全应用程序36针对恶意行为而监视多个软件实体。受监视软件实体的复杂性可从个别执行线程、到进程、到整个应用程序、框架及虚拟机而变化。为简单起见,以下陈述将假设受监视实体为进程,但此假设不应限制本发明的范围。所属领域的技术人员将了解,所描述系统及方法可扩展到除个别进程之外的其它类型的可执行实体。
本发明的一些实施例从监视恶意行为的角度将可执行实体(例如,进程)划分成数个相异类别。此些类别可包含群组创建者、群组继承者及未监视实体,以及其它。在一些实施例中,群组创建者包含操作系统的某些进程、组件及服务,例如
Figure GDA0002788997110000081
中的Winlogon及服务主机(svchost.exe)。其它群组创建者实体可包含文件管理器进程及/或组件(例如,Windows
Figure GDA0002788997110000082
File
Figure GDA0002788997110000083
Total
Figure GDA0002788997110000084
等)及/或浏览器进程及组件(例如,Internet
Figure GDA0002788997110000085
等),以及其它。群组继承者类别可包含大部分用户进程,以及未知实体或无法识别为群组创建者的实体。另一类别可表示免除监视的实体。此些非受监视实体可包含(举例来说)受操作系统(例如,
Figure GDA0002788997110000086
平台上的csrss.exe及smss.exe)保护的某些进程,及形成安全应用程序36的一部分的实体。在一些实施例中,实体的类别在其寿命期间可改变。举例来说,群组创建者实体可变为群组继承者,如下文所展示。
安全应用程序36的一些实施例可根据相应实体的某些特征而确定每一实体属于哪一类别,所述特征例如相应实体的路径、文件名、资源集(例如,在开始时加载的库)、OS注册表条目、数字签名及存储器位置。指示实体是否属于特定类别的其它数据包括相应实体是否使用某些硬件装置(例如,网络适配器22)的指示符。在示范性实施例中,安全应用程序可执行对客户端系统10及/或OS 30的审计以定位与群组创建者实体(例如,OS服务、浏览器及文件管理器)相关联的资源集,且稍后使用此信息来确定执行实体是属于一个类别还是属于另一类别。安全应用程序36可进一步识别实体,且通过将相应实体的散列集与已知实体的散列数据库进行比较而建立所述实体的类别。
在一些实施例中,实体管理器44维持在客户端系统10上执行的实体的数据结构(例如,列表),且动态地更新相应数据结构以反映新实体的添加(例如,响应于进程创建)及其它实体的移除(例如,响应于进程终止)。为简单起见,当前在执行实体列表上的实体在下文中被视为当前实体。在一些实施例中,当前实体列表上的每一实体表示可执行对象的相异实例。因此,当前实体列表可包括同一可执行对象的多个实例。在其中web浏览器应用程序作为单独进程而执行每一浏览器标签的一个此类实例中,每一此进程可为单独受监视实体。
实体管理器44进一步将当前实体划分成多个群组,每一群组仅包括相互相关实体,且维持指示(举例来说)哪一实体为哪一群组的一部分的关联性集。实体可经由父子关系及/或代码注入以及其它方式而相关。父子关系在本文中是指群组的一个实体是另一实体的子实体或父实体。子进程可(举例来说)经由生成(在
Figure GDA0002788997110000091
中)或分叉(在Unix衍生的OS中)而创建。在一些实施例中,同一实体可同时属于多个相异群组。在一个此类实例中,一实体是第一群组的一部分,因为所述实体是第一群组的另一成员的子实体或父实体,且同时,所述实体也是第二群组的一部分,因为第二群组的另一成员已将代码注入到所述实体中。
图5-A到5-B图解说明根据本发明的一些实施例的由实体管理器44维持的各种示范性实体群组。所述图解使用三角形来表示群组创建者实体,使用圆来表示群组继承者实体,且使用方形来表示非受监视实体。实线箭头指示父子关系,而虚线箭头指示代码注入。每一箭头的方向可指示相应所连接实体之间的关系的方向。举例来说,在图5-A中,实体E6为实体E5的子实体,而实体E7已将代码注入到实体E14中。
群组创建者可或可不属于群组。一些实施例给每一群组创建者实体指派一相异群组(例如,如图5-A中的G1及G6的群组)。此些群组可仅具有一个成员,即,相应群组创建者实体。在一些实施例中,群组创建者在其生成新实体时会创建新群组。在图5-A的实例中,群组创建者E1在其生成子实体E5时创建了群组G5。在一些实施例中,当群组继承者实体生成另一实体或将代码注入到另一实体中时,所述另一实体被包含在与群组继承者实体相同的群组中。在图5-A的实例中,实体E6被包含在与其父实体E5相同的群组中。类似地,实体E14响应于接收到来自E7的所注入代码而被包含在与实体E7相同的群组中。
在一些实施例中,实体的类别可响应于某些事件及/或响应于变为一群组的一部分而改变。在图5-A的实例中,实体E14最初为群组创建者实体(参见群组G11)。后来,响应于接收到来自群组G5的成员的所注入代码,实体E14变为群组G5的一部分且被重新标记为群组继承者。相同处理可适用于图5-B中的实体E1
一实体可同时属于多个群组。在图5-B的实例中,实体E5(群组继承者)同时为群组G3、G5及G6的成员。E5为G3的一部分,因为E5是来自实体E3的所注入代码的接收者。类似地,E5为G6的一部分,因为E5接收来自E6的所注入代码。实体E5进一步为群组G5的一部分,因为E5由群组创建者E2所生成。当实体E5生成子实体E9时,E9为群组G3及G5两者的成员。类似地,在图5-A中,当实体E14(现在为群组继承者,参见以上论述)生成新实体E15时,实体E15可被包含在群组G5及G11两者中。
图6展示根据本发明的一些实施例的由实体管理器44(图3)执行以管理当前实体列表的示范性步骤序列。在步骤序列150-152中,实体管理器44拦截实体生命周期事件,且当发生此事件时,步骤序列154-155识别事件的类型及受影响实体。在一些实施例中,生命周期事件包括进程创建、代码注入及进程终止,以及其它。检测此些事件可包括从适当事件拦截器(举例来说,图4中的拦截器28c)接收事件通知40。实体管理器44可通过剖析OS 30管理当前在执行的进程所使用的数据结构而识别受当前生命周期事件(例如,父进程及子进程,在生成情形中)影响的实体。在
Figure GDA0002788997110000101
OS中,每一进程均表示为执行体进程块(EPROCESS),其包括对相应进程的线程中的每一者的处理及允许OS 30从多个执行进程识别出相应进程的唯一进程ID,以及其它。类似进程/线程表示可用于其它OS,例如Linux。
步骤156确定事件是否包括新实体(例如,新进程)的创建,且当事件不包括新实体(例如,新进程)的创建时,实体管理器44前进到下文所描述的步骤170。当事件包括实体创建时,在步骤158中,管理器44确定父实体是否为群组继承者,且当父实体不是群组继承者时,管理器44前进到步骤164。当父实体是群组继承者时,在步骤序列160-162中,管理器44可将子实体添加到父实体的群组并将子实体标记为群组继承者。在步骤164中,管理器44确定父实体是否为群组创建者。当父实体是群组创建者时,在步骤序列166-168中,管理器44可创建新群组并将子实体添加到新创建的群组。
在一些实施例中,步骤170确定所检测的生命周期事件是否包括代码注入,且当所检测的生命周期事件不包括代码注入时,管理器44可前进到步骤174。一般情况下,安全应用程序36可将每一代码注入事件解译为可疑的、可能指示恶意活动。然而,OS的一些实体在极特殊情况下正当地将代码注入到其它实体中。此类情况在安全社区中通常称为异常情况,且通常免除反恶意软件处理,以便不意外地产生错误肯定检测。在一些实施例中,步骤171(举例来说)通过尝试将相应注入事件的细节与异常情况列表进行匹配而检查所述注入是否可受信任为正当的。当相应代码注入不被视为已知种类的正当注入时,在步骤172中,管理器44可将接收所注入代码的实体添加到执行代码注入的实体的群组。在一些实施例中,另一步骤173将接收实体标记为群组继承者。
在步骤174中,管理器44确定事件是否包括实体的终止,且当事件不包括实体的终止时,管理器44返回到步骤150。举例来说,当相应进程的所有线程已完成执行时,终止进程。一些实施例可将所终止实体保持为群组的一部分,(举例来说)直到所终止实体的所有子实体均被终止为止,或直到相应群组的所有成员均被终止为止。在此些实施例中,可将所终止实体标记为死的(步骤176)。此策略可允许为客户端系统10清除规避性恶意软件的效应(举例来说,生成恶意子实体且接着退出的实体的效应)。在其它实施例中,当所检测到的生命周期事件包括实体终止时,管理器44可将所终止实体从所有群组移除。
在一些实施例中,试探引擎46(图3)执行一组测试或程序,(本文中一般为经调用试探),以确定客户端系统10内的一组事件的发生是否指示安全威胁(例如,是否具恶意软件指示性)。当相应试探推断所述组事件具恶意软件指示性时,引擎46可将评分警示50发射到评分引擎48,此可进一步确定客户端系统10是否包括恶意软件。试探引擎46通过事件拦截器28a到28c而被通知事件的发生。
一些试探可为实体相关的,在某种意义上,所述试探确定事件的发生是否指示个别实体为恶意的。此些试探在本文中将称为实体试探。其它试探可为群组相关的(且在本文中称作群组试探),在某种意义上,所述试探确定事件的发生是否指示整个实体群组为恶意的。
每一试探可体现相异恶意软件检测方法。在一些实施例中,每一试探可经配置以检测特定类别、系列、类型或变体的恶意代理的存在。在检测单个类别、系列、类型或变体的恶意代理中,数个相异试探可协作进行。在一些实施例中,单个试探可参与检测数个类别、类型、系列或变体的恶意软件。试探的特定实例检查客户端系统10上的特定事件序列(行为特征)的发生。并非序列的所有事件均需要由相同实体导致。然而,此事件序列的发生可具恶意软件指示性。在图7中所图解说明的一个此类实例中,恶意活动被分到实体E1-E4的群组当中,群组的每一成员执行恶意活动的一小部分。特定动作序列A1-A6相当于识别特定恶意软件攻击的行为特征68。
图7图解说明与勒索软件攻击相关联的示范性行为特征。勒索软件是特定类型的恶意软件,其对用户的计算机上的文件集进行加密,且接着要求用户付款来恢复相应文件。实体创建图解说明为之字形箭头。每一垂直实线展示每一实体的生命历史。举例来说,实体E1在生成实体E2之后死亡。实体E3响应于接收到来自E2的所注入代码而变为所图解说明群组的一部分。相应实体的一些动作并非特征68的一部分。举例来说,实体E3生成实体E4不包含在特征68中。
图8-A到8-B图解说明此些示范性行为特征。特征68a要求动作A1-A6以确切的所指示次序执行。相比之下,示范性特征68b允许一些动作(A3、A4及A5)以任何次序执行,只要其发生在A2与A6之间即可。特征(例如,68b)所提供的灵活性可允许检测恶意代理的各种版本、变体或整个系列。在一些实施例中,使用特定行为特征的试探经配置以检测由相应行为特征指示的特定事件(或动作)序列的发生。相应试探可进一步检验执行动作的实体之间的关系(例如,可检验所有参与实体均为同一群组的一部分)。在一些实施例中,此类检验是隐含式的。举例来说,经配置以实施特定行为特征的群组试探可针对所选择实体群组被初始化一次。接着,相应群组试探可仅在相应群组的成员执行动作时被触发。下文给出对群组试探的进一步论述及实例。
在一些实施例中,试探引擎46与试探数据库26介接,所述试探数据库可驻存在客户端系统10的存储装置20上,或驻存在通信地耦合到客户端系统10的计算机可读媒体上。数据库26可包括可用试探集合以及试探与触发相应试探的使用的事件类型之间的关联性的指示符。此类关联性允许试探引擎46响应于被通知特定类型的事件的发生而选择性地检索试探。数据库26的示范性实施例为软件库,例如,DLL。
在一些实施例中,试探以字节代码(跨平台指令集)进行译码。字节代码的实例包含
Figure GDA0002788997110000121
Figure GDA0002788997110000122
编程语言。每一试探可作为单独字节代码例程进行译码及递送。在此些实施例中,试探引擎46可包含将字节代码翻译成原生处理器指令序列并执行相应序列的字节代码翻译虚拟机(例如,解译器或即时编译器)。此些实施例可促进安全应用程序36的发展,且大大缩短安全应用程序36的上市时间。
图9图解说明根据本发明的一些实施例的由试探引擎46执行的示范性步骤序列。步骤序列200-202聆听来自拦截器28a到28c的事件通知。响应于接收到事件通知40,步骤204确定相应所通知事件的类型及事件参数集。示范性事件类型包含代码注入、特定系统调用、磁盘文件的创建及HTTP请求,以及其它。事件参数可为每一类型的所通知事件所特有。一些示范性事件参数包含执行所通知动作的进程或线程(例如,进程ID)的识别符、文件名、路径、存储器地址及处理器指令的操作数,以及其它。事件参数可通过拦截器28a到28c而确定且被包含在事件通知40中,或可响应于接收到通知40而由试探引擎46确定。在所通知事件为创建新磁盘文件的尝试的一个实例中,事件参数可包含正创建的文件的名称。相应文件名可由事件拦截器确定并作为通知40的一部分发射到试探引擎46。在一些实施例中,事件参数包含指示发生或检测到相应事件的时刻的时间标记。时间标记可进一步由试探引擎46用来确定某些事件是否依序发生(例如,参见上文关于行为特征的说明)。
在步骤序列206-208中,引擎46可存取试探数据库26且根据所通知事件的类型及参数而选择性地检索一组试探。另一步骤209应用所选择试探来确定所通知事件是否指示恶意软件。当相应试探指示恶意的嫌疑时,在步骤212中,引擎46将评分警示50发送到评分引擎48。评分警示50可包含相应试探的识别符,且可进一步包含可疑实体及/或群组的识别符。
试探引擎46的一些实施例利用数个相异类型的变量(例如,LOCAL、STATIC、ENTITY、GROUP及GLOBAL,以及其它)而操作。LOCAL类型的变量对于试探的每一实例可为唯一的。STATIC类型的变量可为每一试探所特有的,在某种意义上,所述变量的值可跨越同一试探的多个实例而共享。GLOBAL类型的变量可跨越所有试探及其实例而共享。ENTITY类型的变量可唯一地附属于<heuristic,entity>元组、跨越同一试探的多个实例而共享,但在各实体间不同。ENTITY类型的变量可针对每个受监视实体被初始化一次,且在相应实体终止后即刻被擦除。GROUP类型的变量可唯一地附属于<heuristic,group>元组、跨越同一试探的多个实例而共享,但在各实体群组间不同。GROUP类型的变量可针对每个实体群组而初始化一次。此些实施例允许某些试探检查(举例来说)复杂行为特征,其中恶意活动跨越多个实体而分布。
在一些实施例中,评分引擎48维持且更新针对在客户端系统10上执行的多个受监视实体及/或实体群组而确定的多个恶意评分。评分引擎48可根据相应评分进一步确定客户端系统10是否包括恶意软件。在一些实施例中,当引擎46确定特定事件的发生指示恶意时,评分引擎48从试探引擎46接收评分警示50。响应于检测到恶意软件,评分引擎48可进一步将恶意指示符58发送到清除模块56。
图10-A展示根据本发明的一些实施例的多个示范性实体评分对象(ESO)74a到74c,每一ESO是针对相应软件实体70a到70c而确定。每一ESO可包括多个数据字段,图10-A中图解说明所述多个数据字段中的一些数据字段。此些字段包含唯一实体识别符EID 76a、多个当前实体评估评分76b及当前实体总评分76d。在一些实施例中,实体评估评分76b是根据从试探引擎46所接收的评分警示50由引擎48确定。每一评分76b可根据相异准则而确定。举例来说,评分76b与一组试探76c可具有一一对应性,使得每一实体评估评分根据相应试探而归结。在一个此类实例中,特定试探Hk包括确定受监视实体是否从计算机网络(例如,因特网)下载文件。接着,相应评分Sk可仅在相应所评估实体试图下载时被裁定或增大。在一些实施例中,实体总评分76d作为当前实体评估评分76b的总和而计算(参见下文进一步细节)。
在一些实施例中,每一ESO可进一步包含相应实体与其所属的群组之间的关联性的指示符。举例来说,在图10-A的实例中,项76f图解说明此一实体群组列表。在替代实施例中,评分引擎48可动态地从实体管理器44检索具有某些实体作为成员的群组列表。
评分引擎48的一些实施例进一步维持与每一实体群组相关联的评分集。图10-B展示多个示范性群组评分对象(GSO)75a到75c,每一GSO是针对相异软件实体群组而确定。每一所图解说明GSO包括唯一群组识别符GID 77a、多个当前群组评估评分77b及当前群组总评分77d(上标G指示相应项与实体群组而非单个实体相关联)。在一些实施例中,每一群组评估评分根据相异准则(例如,相异试探)而裁定及/或递增。设定及/或递增群组评估评分的示范性试探实施如图7中所图解说明的行为特征。使用所述实例,当实体E1、E2及E3以所图解说明次序执行动作A1-A6时,可使对应于包括实体E1、E2及E3的群组的群组评估评分递增。对应于每一群组评估评分的群组试探在图10-B中图解说明为项77c。
在一些实施例中,每一GSO可进一步包括相应群组与其成员实体之间的关联性的指示符。在图10-B的实例中,实体E1 (G1)、E2 (G1)等为群组G1的成员。或者,评分引擎48可随时从实体管理器44请求群组成员身份数据。在一些实施例中,通过对群组评估评分77b进行求和而计算群组总评分77d,如下文进一步详细说明。
评分引擎48的一些实施例将每一实体及/或群组评估评分增大对应于相应评分的试探所特有的量。图11-A到11-B展示分别对应于实体评分及群组评分的此类评分增量。当评分引擎48接收到响应于执行特定试探而产生的评分警示50时,对应于相应试探的实体及/或群组评估评分可被增大相应增量值。一些实体试探还可为群组试探,举例来说,试探H1可与群组试探H1 (G)一致。在一些实施例中,通过此试探而产生的评分警示可致使更新相应实体的实体评估评分及/或具有相应实体作为成员的群组的群组评估评分。
图12-A展示根据本发明的一些实施例的由评分引擎48(图3)执行的示范性步骤序列。步骤序列300-302聆听来自试探引擎46的评分警示。在一些实施例中,评分警示50包含产生相应警示的试探的指示符以及针对其而产生相应警示的实体及/或实体群组的指示符。响应于接收到评分警示50,步骤304确定警示50是否通过实体试探(即,经配置以确定事件是否指示个别实体为恶意的试探)而产生。当确定警示50并非通过实体试探而产生时,评分引擎48前进到步骤310。当确定警示50是通过实体试探而产生时,在步骤306中,评分引擎48根据警示50而识别相应实体且根据产生警示的试探而更新相应实体的评估评分。举例来说,当警示50通过试探Hk而产生时,评分引擎48可将对应于试探Hk的评分Sk增大适当增量(参见例如图11-A)。另一步骤308(举例来说)对相应实体的所有实体评估评分进行求和而计算相应实体的总评分。
步骤310确定评分警示50是否通过群组试探(即,经配置以确定事件是否指示实体群组为恶意的试探)而产生。当确定评分警示50并非通过群组试探而产生时,评分引擎48前进到步骤316。当确定评分警示50是通过群组试探而产生时,在步骤312中,评分引擎48根据警示50而识别群组集且根据产生警示的试探而更新相应群组的群组评估评分。在步骤314中,引擎48(举例来说)作为群组评估评分的总和而计算相应群组的总评分。
在步骤316中,评分引擎48确定相应实体及/或群组的总评分是否超过预定阈值。当不超过预定阈值时,引擎48返回到步骤300。当超过预定阈值时,引擎48将恶意指示符58发送到清除模块56。
图12-B展示由评分引擎48执行的替代步骤序列。响应于接收到警示50,步骤326识别产生相应警示的实体及试探。接着,根据警示50针对相应实体而确定评估评分及总评分。在步骤332中,评分引擎48识别具有相应实体作为成员的至少一个群组。接着,步骤336递增相应群组的总评分。当实体或群组(或者两者)的总评分超过预定阈值时,步骤340将恶意指示符58发送到清除模块56。每当相应群组的成员执行恶意软件指示性动作时,图12-B中所图解说明的示范性实施例可递增群组评分。因此,甚至在将恶意活动分到群组的数个成员之间时,及在对应于每一个别成员的总评分不足以指示恶意时,群组范围的评分可能超过恶意软件检测阈值。
图12-C展示根据本发明的一些实施例的由评分引擎48执行的又一示范性替代步骤序列。与图12-A及12-B形成对照,图12-C可描述不计算群组评分而是替代地完全依赖于实体评分的实施例的操作。然而,此实施例仍可通过使用群组试探来检测规避性恶意软件。使用图7中的行为特征68的实例,检测事件序列A1-A6的发生的试探可响应于检测到实体E4已执行动作A6且因此完成了由行为特征68指示的恶意软件指示性动作序列而产生评分警示50。响应于接收到此警示,步骤348可递增实体E4的实体评估评分,所述评分对应于相应试探。如果与相应试探相关联的增量经选择为足够大的,那么相应实体评估评分的增大可足以使得针对实体E4而计算的总评分超过恶意软件检测阈值。
图13图解说明根据本发明的一些实施例的由清除模块56(图3)执行的示范性步骤序列。在步骤402中,模块56从评分引擎48接收恶意指示符58。在一些实施例中,恶意指示符58包含可疑实体的指示符及/或可疑实体群组的指示符,例如,其总评分超过恶意软件检测阈值(参见上文)的实体及/或群组。在步骤404中,模块56识别触发评分引擎48发送恶意指示符58的可疑实体。
在一些实施例中,步骤406检查相应可疑实体是否为单个群组的成员。当相应可疑实体并非单个群组的成员时,模块56前进到步骤410。当相应可疑实体是单个群组的成员时,在步骤408中,清除模块56清除可疑实体的整个群组。在一些实施例中,清除实体群组包括清除相应群组的每个成员实体。清除可涉及计算机安全领域中已知的任何方法。在一些实施例中,清除实体包括暂停或终止相应实体的执行。清除实体可进一步包括删除包括相应实体的代码的磁盘文件。清除实体可进一步包括还原或恢复在相应实体的寿命期间由相应实体执行的一组改变(此些改变可包含对OS的注册表、文件系统等的改变)。清除实体可包括使用额外单独恶意软件扫描仪来分析相应实体。在一些实施例中,清除进一步包含向客户端系统10的用户及/或系统管理员发出警示。
在一个清除实例中,当恶意活动被追溯到代码注入事件时,清除模块56使接收实体终止并恢复在相应注入事件之后发生的对存储器及/或文件系统的所有改变。可能时,清除模块56可仅恢复因相应注入事件而产生的改变。在另一清除实例中,当恶意实体使用清洁实体(例如cmd.exe、regedit.exe、正当浏览器进程等)来执行恶意攻击的一部分时,清除模块56可终止相应清洁实体,但不删除其可执行文件。
在一些实施例中,当可疑实体属于多个实体群组时,步骤410尝试识别相应群组中的哪一者可为恶意的。步骤410可包含确定可疑实体是如何成为每一相应群组的成员的(例如,响应于实体创建与响应于代码注入)。步骤410可进一步确定哪一试探触发决定评分引擎推断出客户端系统10受到攻击的评分警示。识别触发恶意软件检测的试探可允许确定可疑实体正执行什么动作,所述动作触发相应评分警示。为执行步骤410,清除模块58可进一步确定在相应评分警示被触发时可疑实体的哪一组件正在执行。
在一种示范性情景中,可疑实体经由实体创建而变为第一群组的成员且经由代码注入而变为第二群组的成员。步骤410已确定在来自可疑实体的主要可执行模块的代码正执行时导致恶意软件检测被触发的评分警示。接着,清除模块58可推断第一群组为恶意的。相比之下,如果可疑实体在评分警示被触发时正执行所注入代码,那么清除模块58可推断第二群组为恶意的。
在步骤412中,模块56确定恶意群组的识别是否成功。当确定恶意群组的识别成功时,在步骤414中,模块56清除所识别恶意群组。当步骤410未能识别恶意实体群组时,在步骤416中,模块56仅清除可疑实体。因此,步骤416可防止错误肯定恶意软件识别,即,将良好实体错误地识别为恶意的,此可导致用户的数据损失。
上文所描述的示范性系统及方法允许保护计算机系统免受恶意软件(例如,病毒、特洛伊木马及间谍软件)影响。在本发明的一些实施例中,安全应用程序监视当前在客户端系统上执行的一组实体(例如,进程)的行为。安全应用程序通过一组事件拦截器而被通知客户端系统内的各种事件的发生。此些示范性事件可包含进程或线程的创建、代码注入、系统调用、创建新磁盘文件的尝试、写入到现有磁盘文件的尝试、编辑OS注册表项的尝试及写入到特定存储器部分的尝试,以及其它。所通知事件中的一些事件可具恶意软件指示性,而其它事件本身可不指示安全威胁,但在与其它事件一起发生可用信号表示潜在威胁。
响应于接收到事件通知,安全应用程序可执行一组检测程序(例如,试探)以确定相应事件是否指示恶意软件。响应于确定事件具恶意软件指示性,试探可致使恶意软件指示性评分递增。评分引擎可根据递增的恶意软件指示性评分而进一步确定客户端系统是否受到攻击。清除模块可对被视为恶意的实体或实体群组进一步采取反恶意软件动作。
常规反恶意软件系统通常使评分与每一个别实体相关联,且无论何时相应实体以恶意软件指示性方式起作用均递增此类评分。此类常规系统通常无法检测将恶意活动分到多个实体当中的规避性恶意软件。当每一参与实体的行为在独立进行时不具有恶意软件指示性时,此行为基于个别评分可不导致检测。相比之下,本发明的一些实施例通过使跨越多个相关实体的行为相关而明确解决规避性恶意软件问题。
在一些实施例中,安全应用程序将受监视实体划分成多个实体群组,其中群组的所有成员均通过父子关系或代码注入而相关。实体可同时属于多个实体群组。所述安全应用程序可进一步使评分集与每一实体群组相关联。当相应群组的成员执行某些动作时,可使此些群组评分递增。因此,即使由个别成员执行的动作本身可能不具有恶意软件指示性,群组评分也可俘获集体恶意行为并触发检测。
在本发明的一些实施例中,可执行实体被划分成至少两个主要类别,即,群组创建者及群组继承者。群组创建者类别可包含通常可以正当方式执行例如实体创建等活动的实体,例如操作系统进程、文件管理器及浏览器。在一些实施例中,群组创建者实体在其生成子实体时会创建新群组。群组继承者类别可包括用户进程及未知进程。群组继承者实体可为其父实体的群组的成员,或当其父实体为群组创建者时,可为群组的第一实体。针对群组创建者实体及群组继承者实体具有相异群组成员身份规则将允许本发明的一些实施例使用相异恶意软件检测策略来监视两个实体类别。
根据本发明的一些实施例,解决规避性恶意软件的另一方式包括使用恶意软件检测试探,所述试探检测由相关实体群组执行的动作而非由个别实体执行的独立动作的特定序列或组合。相应试探可仅在相应序列或组合的所有动作均已被执行时触发评分增大。
常规计算机安全系统可检测个别恶意实体,且可独立于其它实体对每一此类实体采取反恶意软件动作。当所检测到恶意实体为恶意实体的协调网络的一小部分时,使单个实体无用仍可使客户端系统易受恶意软件攻击或甚至感染恶意软件。相比之下,响应于检测恶意实体群组,本发明的一些实施例可清除整个恶意实体群组或以其它方式使整个恶意实体群组无用。当可疑实体为多个实体群组的一部分,但安全应用程序无法确定相应群组中的哪一者正执行恶意活动时,本发明的一些实施例仅对相应可疑实体采取反恶意软件动作,以便防止错误肯定恶意软件识别。
所属领域的技术人员将清楚,可在不背离本发明的范围的情况下以多种方式更改以上实施例。因此,本发明的范围应由所附权利要求书及其法律等效内容来确定。

Claims (27)

1.一种主机系统,其包括至少一个硬件处理器以及存储器单元,所述至少一个硬件处理器经配置以执行实体管理器及试探引擎,其中:
所述实体管理器经配置以将受监视可执行实体集合组织成多个实体群组,其中组织所述集合包括:
响应于检测到所述集合的第一实体已生成子实体,确定所述第一实体是否属于实体的群组创建者类别;
响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体属于所述群组创建者类别时:
将新实体群组添加到所述多个实体群组,及
将所述子实体指派到所述新实体群组;以及
响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时:
从所述多个实体群组选择第一实体群组,使得所述第一实体为所述第一实体群组的成员,及
将所述子实体指派到所述第一实体群组;且
所述试探引擎经配置以响应于由所述子实体执行的第一动作而:
从所述多个实体群组选择第二实体群组,使得所述子实体为所述第二实体群组的成员,其中所述子实体为所述第二实体群组的成员且同时也为所述第一实体群组或所述新实体群组的成员;以及
响应于选择所述第二实体群组,根据由所述第二实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
2.根据权利要求1所述的主机系统,其中组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时:
从所述多个实体群组选择第三实体群组,使得所述第一实体为所述第三实体群组的成员,及
将所述子实体指派到所述第三实体群组。
3.根据权利要求1所述的主机系统,其中组织所述集合进一步包括:响应于检测到所述子实体已将代码注入到所述集合的第三实体中:
从所述多个实体群组选择第三实体群组,使得所述子实体为所述第三实体群组的成员;以及
作为响应,将所述第三实体指派到所述第三实体群组。
4.根据权利要求1所述的主机系统,其中组织所述集合进一步包括:响应于检测到所述第一实体已生成所述子实体:
确定所述子实体是否属于所述群组创建者类别;以及
作为响应,当所述子实体属于所述群组创建者类别时,从所述群组创建者类别移除所述子实体。
5.根据权利要求1所述的主机系统,其中确定所述第一实体是否属于所述群组创建者类别包括:确定所述第一实体是否为在所述主机系统上执行的web浏览器的组件。
6.根据权利要求1所述的主机系统,其中确定所述第一实体是否属于所述群组创建者类别包括:确定所述第一实体是否为在所述主机系统上执行的操作系统的组件。
7.根据权利要求1所述的主机系统,其中确定所述第一动作是否指示所述恶意软件攻击包括:确定所述第一动作是否在所述第二动作之前已发生。
8.根据权利要求1所述的主机系统,其中所述试探引擎经配置以进一步根据由所述第二实体群组的第三实体执行的第三动作而确定所述第一动作是否指示所述恶意软件攻击。
9.根据权利要求1所述的主机系统,其中确定所述第一动作是否指示所述恶意软件攻击包括:确定所述第一动作是否为恶意软件指示性动作集的一部分,其中所述恶意软件指示性动作集的所有动作均是由所述第二实体群组的成员执行。
10.根据权利要求9所述的主机系统,其中确定所述第一动作是否为所述恶意软件指示性动作集的一部分包括:确定所述恶意软件指示性动作集的子集是否以特定次序发生。
11.根据权利要求1所述的主机系统,其中所述至少一个硬件处理器进一步经配置以执行清除模块,所述清除模块经配置以响应于对所述第一动作指示恶意软件攻击的确定而终止所述第二实体群组的多个成员。
12.根据权利要求11所述的主机系统,其中所述多个成员包括所述第二实体群组的所有成员。
13.根据权利要求1所述的主机系统,其中所述至少一个硬件处理器进一步经配置以执行清除模块,所述清除模块经配置以响应于对所述第一动作指示恶意软件攻击的确定而还原通过所述第二实体群组的成员的执行对所述主机系统造成的一组改变。
14.一种用于跨越多个软件实体跟踪恶意行为的方法,其包括:
采用主机系统的至少一个硬件处理器来将受监视可执行实体集合组织成多个实体群组,其中组织所述集合包括:
响应于检测到所述集合的第一实体已生成子实体,确定所述第一实体是否属于实体的群组创建者类别;
响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体属于所述群组创建者类别时:
将新实体群组添加到所述多个实体群组,及
将所述子实体指派到所述新实体群组;以及
响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时:
从所述多个实体群组选择第一实体群组,使得所述第一实体为所述第一实体群组的成员,及
将所述子实体指派到所述第一实体群组;
响应于由所述子实体执行的第一动作,采用所述主机系统的至少一个硬件处理器来从所述多个实体群组选择第二实体群组,使得所述子实体为所述第二实体群组的成员,其中所述子实体为所述第二实体群组的成员且同时也为所述第一实体群组或所述新实体群组的成员;以及
响应于选择所述第二实体群组,采用所述主机系统的至少一个硬件处理器来根据由所述第二实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
15.根据权利要求14所述的方法,其中组织所述集合进一步包括:响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时:
从所述多个实体群组选择第三实体群组,使得所述第一实体为所述第三实体群组的成员,及
将所述子实体指派到所述第三实体群组。
16.根据权利要求14所述的方法,其中组织所述集合进一步包括:响应于检测到所述子实体已将代码注入到所述集合的第三实体中:
从所述多个实体群组选择第三实体群组,使得所述子实体为所述第三实体群组的成员;以及
作为响应,将所述第三实体指派到所述第三实体群组。
17.根据权利要求14所述的方法,其中组织所述集合进一步包括:响应于检测到所述第一实体已生成所述子实体:
确定所述子实体是否属于所述群组创建者类别;以及
作为响应,当所述子实体属于所述群组创建者类别时,从所述群组创建者类别移除所述子实体。
18.根据权利要求14所述的方法,其中确定所述第一实体是否属于所述群组创建者类别包括:确定所述第一实体是否为在所述主机系统上执行的web浏览器的组件。
19.根据权利要求14所述的方法,其中确定所述第一实体是否属于所述群组创建者类别包括:确定所述第一实体是否为在所述主机系统上执行的操作系统的组件。
20.根据权利要求14所述的方法,其中确定所述第一动作是否指示所述恶意软件攻击包括:确定所述第一动作是否在所述第二动作之前已发生。
21.根据权利要求14所述的方法,其进一步包括:根据由所述第二实体群组的第三实体执行的第三动作而确定所述第一动作是否指示所述恶意软件攻击。
22.根据权利要求14所述的方法,其中确定所述第一动作是否指示所述恶意软件攻击包括:确定所述第一动作是否为恶意软件指示性动作集的一部分,其中所述恶意软件指示性动作集的所有动作均是由所述第二实体群组的成员执行。
23.根据权利要求22所述的方法,其中确定所述第一动作是否为所述恶意软件指示性动作集的一部分包括:确定所述恶意软件指示性动作集的子集是否以特定次序发生。
24.根据权利要求14所述的方法,其进一步包括:响应于对所述第一动作指示恶意软件攻击的确定,采用所述主机系统的至少一个硬件处理器来终止所述第二实体群组的多个成员。
25.根据权利要求24所述的方法,其中所述多个成员包括所述第二实体群组的所有成员。
26.根据权利要求14所述的方法,其进一步包括:响应于对所述第一动作指示恶意软件攻击的确定,采用所述主机系统的至少一个硬件处理器来还原通过所述第二实体群组的成员的执行对所述主机系统造成的一组改变。
27.一种非暂时性计算机可读媒体,其存储有指令,所述指令在由主机系统的至少一个硬件处理器执行时致使所述主机系统形成实体管理器及试探引擎,其中:
所述实体管理器经配置以将受监视可执行实体集合组织成多个实体群组,其中组织所述集合包括:
响应于检测到所述集合的第一实体已生成子实体,确定所述第一实体是否属于实体的群组创建者类别;
响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体属于所述群组创建者类别时:
将新实体群组添加到所述多个实体群组,及
将所述子实体指派到所述新实体群组;以及
响应于确定所述第一实体是否属于所述群组创建者类别,当所述第一实体不属于所述群组创建者类别时:
从所述多个实体群组选择第一实体群组,使得所述第一实体为所述第一实体群组的成员,及
将所述子实体指派到所述第一实体群组;且
所述试探引擎经配置以响应于由所述子实体执行的第一动作而:
从所述多个实体群组选择第二实体群组,使得所述子实体为所述第二实体群组的成员,其中所述子实体为所述第二实体群组的成员且同时也为所述第一实体群组或所述新实体群组的成员;以及
响应于选择所述第二实体群组,根据由所述第二实体群组的另一成员执行的第二动作而确定所述第一动作是否指示恶意软件攻击。
CN201680042507.0A 2015-07-24 2016-07-04 用于跨越多个软件实体跟踪恶意行为的系统及方法 Active CN107851155B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/808,173 US10089465B2 (en) 2015-07-24 2015-07-24 Systems and methods for tracking malicious behavior across multiple software entities
US14/808,173 2015-07-24
PCT/EP2016/065737 WO2017016814A1 (en) 2015-07-24 2016-07-04 Systems and methods for tracking malicious behavior across multiple software entities

Publications (2)

Publication Number Publication Date
CN107851155A CN107851155A (zh) 2018-03-27
CN107851155B true CN107851155B (zh) 2021-02-26

Family

ID=56511548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680042507.0A Active CN107851155B (zh) 2015-07-24 2016-07-04 用于跨越多个软件实体跟踪恶意行为的系统及方法

Country Status (12)

Country Link
US (2) US10089465B2 (zh)
EP (1) EP3326100B1 (zh)
JP (1) JP6829718B2 (zh)
KR (1) KR102307534B1 (zh)
CN (1) CN107851155B (zh)
AU (1) AU2016299175B2 (zh)
CA (1) CA2990313C (zh)
ES (1) ES2794624T3 (zh)
HK (1) HK1247296A1 (zh)
IL (1) IL256598B (zh)
RU (1) RU2683152C1 (zh)
WO (1) WO2017016814A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10492181B2 (en) * 2016-01-20 2019-11-26 Qualcomm Incorporated Communication of uplink control information
US10181035B1 (en) * 2016-06-16 2019-01-15 Symantec Corporation System and method for .Net PE file malware detection
US10534910B1 (en) * 2016-10-04 2020-01-14 Hewlett-Packard Development Company, L.P. Using threat model to monitor host execution
WO2018111271A1 (en) * 2016-12-15 2018-06-21 Hewlett-Packard Development Company, L.P. Ransomware attack monitoring
US9734337B1 (en) * 2017-01-24 2017-08-15 Malwarebytes Inc. Behavior-based ransomware detection
WO2019051507A1 (en) 2017-09-11 2019-03-14 Carbon Black, Inc. METHODS OF BEHAVIORAL DETECTION AND PREVENTION OF CYBERATTAICS, AS WELL AS APPARATUS AND RELATED TECHNIQUES
CN108595327B (zh) * 2018-04-16 2023-06-06 深圳市腾讯网络信息技术有限公司 应用执行脚本的方法、应用测试方法、装置和计算机设备
US11657387B2 (en) * 2018-04-19 2023-05-23 Thales Dis France Sas Method for securing a computer system
EP3614286A1 (en) * 2018-08-22 2020-02-26 Gemalto Sa Method for securing a computer system
US11138313B2 (en) 2018-08-13 2021-10-05 Juniper Networks, Inc. Malware detection based on user interactions
US11093715B2 (en) * 2019-03-29 2021-08-17 Samsung Electronics Co., Ltd. Method and system for learning and enabling commands via user demonstration
US11468881B2 (en) 2019-03-29 2022-10-11 Samsung Electronics Co., Ltd. Method and system for semantic intelligent task learning and adaptive execution
US11238154B2 (en) * 2019-07-05 2022-02-01 Mcafee, Llc Multi-lateral process trees for malware remediation
EP3825884A1 (en) * 2019-11-22 2021-05-26 Traced Ltd. Computer-implemented method of determining system access operation risk on a mobile device
US11689560B2 (en) * 2019-11-25 2023-06-27 Cisco Technology, Inc. Network-wide malware mapping
KR102254283B1 (ko) * 2020-11-12 2021-05-21 주식회사 시큐브 멀티프로세스 클러스터링 기반 랜섬웨어 공격 탐지 장치, 방법 및 그 방법을 실현하기 위한 프로그램을 기록한 기록매체
US11941104B2 (en) * 2020-12-03 2024-03-26 Red Hat, Inc. Utilizing extended file attributes for working directory
WO2022225508A1 (en) * 2021-04-20 2022-10-27 Assured Information Security, Inc. Prevention and remediation of malware based on selective presentation of files to processes
CN114006775B (zh) * 2021-12-31 2022-04-12 北京微步在线科技有限公司 一种入侵事件的检测方法及装置
US20230267207A1 (en) * 2022-02-18 2023-08-24 Halcyon Tech, Inc. Antiransomware Using Machine Learning
US20240070268A1 (en) * 2022-08-23 2024-02-29 Bitdefender IPR Management Ltd. Aggregate Event Profiles for Detecting Malicious Mobile Applications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法
CN102222194A (zh) * 2011-07-14 2011-10-19 哈尔滨工业大学 Linux主机计算环境安全保护的模块及方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203962B1 (en) 1999-08-30 2007-04-10 Symantec Corporation System and method for using timestamps to detect attacks
US7748039B2 (en) 2002-08-30 2010-06-29 Symantec Corporation Method and apparatus for detecting malicious code in an information handling system
BR0307030A (pt) 2003-05-17 2005-03-08 Microsoft Corp Mecanismo para a avaliação de riscos de segurança
US20060015940A1 (en) * 2004-07-14 2006-01-19 Shay Zamir Method for detecting unwanted executables
US7546601B2 (en) 2004-08-10 2009-06-09 International Business Machines Corporation Apparatus, system, and method for automatically discovering and grouping resources used by a business process
US8528087B2 (en) * 2006-04-27 2013-09-03 Robot Genius, Inc. Methods for combating malicious software
US7870612B2 (en) 2006-09-11 2011-01-11 Fujian Eastern Micropoint Info-Tech Co., Ltd Antivirus protection system and method for computers
US7908660B2 (en) 2007-02-06 2011-03-15 Microsoft Corporation Dynamic risk management
KR100897849B1 (ko) 2007-09-07 2009-05-15 한국전자통신연구원 비정상 프로세스 탐지 방법 및 장치
US7559086B2 (en) 2007-10-02 2009-07-07 Kaspersky Lab, Zao System and method for detecting multi-component malware
CN101350052B (zh) 2007-10-15 2010-11-03 北京瑞星信息技术有限公司 发现计算机程序的恶意行为的方法和装置
US8037536B2 (en) 2007-11-14 2011-10-11 Bank Of America Corporation Risk scoring system for the prevention of malware
US8904536B2 (en) 2008-08-28 2014-12-02 AVG Netherlands B.V. Heuristic method of code analysis
JP5144488B2 (ja) * 2008-12-22 2013-02-13 Kddi株式会社 情報処理システムおよびプログラム
JP2010182020A (ja) * 2009-02-04 2010-08-19 Kddi Corp 不正検知装置およびプログラム
US8701192B1 (en) 2009-06-30 2014-04-15 Symantec Corporation Behavior based signatures
US8590045B2 (en) 2009-10-07 2013-11-19 F-Secure Oyj Malware detection by application monitoring
US8850579B1 (en) 2009-11-13 2014-09-30 SNS Soft LLC Application of nested behavioral rules for anti-malware processing
KR101057432B1 (ko) 2010-02-23 2011-08-22 주식회사 이세정보 프로세스의 행위 분석을 통한 유해 프로그램을 실시간으로 탐지하고 차단하는 시스템, 방법, 프로그램 및 기록매체
CN101944167B (zh) * 2010-09-29 2011-12-21 中国科学院计算技术研究所 识别恶意程序的方法及系统
US8555385B1 (en) 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
KR101626424B1 (ko) * 2011-03-28 2016-06-01 맥아피 인코퍼레이티드 가상 머신 모니터 기반 안티 악성 소프트웨어 보안 시스템 및 방법
US9323928B2 (en) 2011-06-01 2016-04-26 Mcafee, Inc. System and method for non-signature based detection of malicious processes
WO2013036269A1 (en) * 2011-09-09 2013-03-14 Hewlett-Packard Development Company, L.P. Systems and methods for evaluation of events based on a reference baseline according to temporal position in a sequence of events
CN102750475B (zh) * 2012-06-07 2017-08-15 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
CN103634264A (zh) * 2012-08-20 2014-03-12 江苏中科慧创信息安全技术有限公司 一种基于行为分析的主动诱捕方法
US8850581B2 (en) 2012-11-07 2014-09-30 Microsoft Corporation Identification of malware detection signature candidate code
CN102984140B (zh) * 2012-11-21 2015-06-17 中国人民解放军国防科学技术大学 基于行为片段共享的恶意软件特征融合分析方法及系统
US20140201208A1 (en) 2013-01-15 2014-07-17 Corporation Symantec Classifying Samples Using Clustering
CN103164649B (zh) * 2013-02-18 2016-08-17 北京神州绿盟信息安全科技股份有限公司 进程行为分析方法及系统
RU2531861C1 (ru) * 2013-04-26 2014-10-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
JP6101408B2 (ja) 2013-09-10 2017-03-22 シマンテック コーポレーションSymantec Corporation イベント相関グラフを使用してコンピューティングシステムに対する攻撃を検出するためのシステム及び方法
US9323931B2 (en) 2013-10-04 2016-04-26 Bitdefender IPR Management Ltd. Complex scoring for malware detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054149A (zh) * 2009-11-06 2011-05-11 中国科学院研究生院 一种恶意代码行为特征提取方法
CN102222194A (zh) * 2011-07-14 2011-10-19 哈尔滨工业大学 Linux主机计算环境安全保护的模块及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Proposal of a Method Detecting Malicious Processes;Takumi Yamamoto et al.;《2014 28th International Conference on Advanced Information Networking and Applications Workshops》;20140626;全文 *
基于Hook的程序异常行为检测系统设计与实现;郝东白等;《计算机工程与设计》;20070930;第28卷(第18期);全文 *

Also Published As

Publication number Publication date
US20170024561A1 (en) 2017-01-26
AU2016299175B2 (en) 2021-07-15
JP6829718B2 (ja) 2021-02-10
RU2683152C1 (ru) 2019-03-26
EP3326100A1 (en) 2018-05-30
US10089465B2 (en) 2018-10-02
CA2990313A1 (en) 2017-02-02
EP3326100B1 (en) 2020-03-25
US10706151B2 (en) 2020-07-07
KR20180032566A (ko) 2018-03-30
IL256598B (en) 2020-01-30
AU2016299175A1 (en) 2018-01-18
KR102307534B1 (ko) 2021-10-05
HK1247296A1 (zh) 2018-09-21
CA2990313C (en) 2021-10-12
WO2017016814A1 (en) 2017-02-02
IL256598A (en) 2018-02-28
US20190034634A1 (en) 2019-01-31
CN107851155A (zh) 2018-03-27
JP2018524756A (ja) 2018-08-30
ES2794624T3 (es) 2020-11-18

Similar Documents

Publication Publication Date Title
CN107851155B (zh) 用于跨越多个软件实体跟踪恶意行为的系统及方法
US11295021B2 (en) Using a threat model to monitor host execution in a virtualized environment
AU2016274532B2 (en) Behavioral malware detection using an interpreter virtual machine
RU2645268C2 (ru) Сложное классифицирование для выявления вредоносных программ
KR102116573B1 (ko) 컴퓨터 보안 작동을 최적화하기 위한 동적 명성 표시자
US11438349B2 (en) Systems and methods for protecting devices from malware
JP2017527931A (ja) マルウェア検出の方法及びそのシステム
US11494491B2 (en) Systems and methods for protecting against malware code injections in trusted processes by a multi-target injector
US20220237285A1 (en) Cyber immunity system as a biological self-recognition model on operating systems
US11314855B2 (en) Detecting stack pivots using stack artifact verification
Aznar Puyalto RanAware, analysis and detection of ransomware on Windows systems

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1247296

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant