首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 实时无签名恶意软件检测

实时无签名恶意软件检测

阅读:801发布:2023-02-05

专利汇可以提供实时无签名恶意软件检测专利检索,专利查询,专利分析的服务。并且本公开的 实施例 涉及实时无签名恶意 软件 检测。设备可以生成与经确定性地定义的参数相关联的第一可执行 进程 的版本。设备可以运行第一可执行进程的版本,并且可以在运行第一可执行进程的版本时监视设备的设备参数或第一可执行进程。设备可以基于监视设备的设备参数或第一可执行进程来确定经确定性地定义的参数中的参数相对于针对该参数的预期值的变化,并且可以基于确定参数的变化来提供指示与设备相关的 恶意软件 的存在的信息。,下面是实时无签名恶意软件检测专利的具体信息内容。

1.一种设备,包括:
一个或多个存储器;以及
一个或多个处理器,用以:
生成第一可执行进程的一个或多个版本,
其中所述第一可执行进程与一个或多个经确定性地定义的参数相关联,其中所述第一可执行进程的所述一个或多个版本与所述设备的一个或多个对应的第二可执行进程共享一个或多个公共特性,并且
其中所述第一可执行进程的所述一个或多个版本是被设计为类似于所述一个或多个对应的第二可执行进程的一个或多个可执行进程,并且所述一个或多个对应的第二可执行进程是被设计为在所述设备上执行一个或多个功能的一个或多个合法可执行进程;
运行所述第一可执行进程的所述一个或多个版本;
在运行所述第一可执行进程的所述一个或多个版本时,监视所述设备的一个或多个设备参数或所述第一可执行进程;
基于监视所述设备的所述一个或多个设备参数或所述第一可执行进程,确定所述一个或多个经确定性地定义的参数中的参数相对于针对所述参数的预期值的变化;以及基于确定所述参数的所述变化,提供指示与所述设备相关的恶意软件的存在的信息。
2.根据权利要求1所述的设备,其中所述一个或多个处理器还用以:
基于确定所述参数的所述变化,检测所述恶意软件的存在;
在检测到所述恶意软件的所述存在之后,确定用于移除所述恶意软件的补救技术;以及
使用所述补救技术自动移除所述恶意软件。
3.根据权利要求1所述的设备,其中所述第一可执行进程包括源代码。
4.根据权利要求1所述的设备,其中所述设备是端点设备或沙盒设备。
5.根据权利要求1所述的设备,其中所述一个或多个经确定性地定义的参数包括与针对所述第一可执行进程的经定义的行为相关联的存储器映射。
6.根据权利要求1所述的设备,其中所述第一可执行进程驻留在所述设备的所述一个或多个存储器中,并且在执行期间维持静态存储器映射。
7.根据权利要求1所述的设备,其中所述一个或多个公共特性包括以下中的至少一个:
公共文件名,
公共库链接,
公共模链接,
公共动态链接库链接,或者
公共依赖性链接。
8.根据权利要求1所述的设备,其中所述一个或多个处理器还用以:
与执行所述第一可执行进程的所述一个或多个版本相关地执行所述一个或多个对应的第二可执行进程。
9.根据权利要求8所述的设备,其中当执行所述一个或多个对应的第二可执行进程时,所述一个或多个处理器用以:
以暂停模式执行所述一个或多个对应的第二可执行进程中的第二可执行进程;
将与对应于所述第二可执行进程的所述第一可执行进程的所述一个或多个版本中的版本相关联的可执行进程代码注入到所述第二可执行进程中;以及
基于注入所述可执行进程代码,从所述第二可执行进程执行所述第一可执行进程的所述一个或多个版本中的所述版本。
10.一种存储指令的非瞬态计算机可读介质,所述指令包括:
一个或多个指令,所述一个或多个指令在由端点设备的一个或多个处理器执行时使所述一个或多个处理器:
生成第一可执行进程,
其中所述第一可执行进程与经确定性地定义的存储器映射相关联;
在所述端点设备中执行所述第一可执行进程,
其中所述第一可执行进程与所述端点设备的第二可执行进程共享一个或多个公共特性,并且
其中所述第一可执行进程是被设计为类似于所述第二可执行进程的可执行进程,并且所述第二可执行进程是被设计为在所述端点设备上执行功能的合法可执行进程;
在所述第一可执行进程的执行期间,监视所述端点设备的存储器映射或者所述第一可执行进程;
基于监视所述存储器映射,确定所述存储器映射相对于所述经确定性地定义的存储器映射的变化;
基于确定所述存储器映射的所述变化,检测没有签名的恶意软件的存在;以及基于检测到所述恶意软件的所述存在,提供指示与所述端点设备相关的所述恶意软件的所述存在的信息。
11.根据权利要求10所述的非瞬态计算机可读介质,其中使所述一个或多个处理器执行所述第一可执行进程的所述一个或多个指令使所述一个或多个处理器:
从位于所述端点设备上的一个或多个文件夹执行所述第一可执行进程。
12.根据权利要求11所述的非瞬态计算机可读介质,其中所述一个或多个文件夹包括以下中的至少一个:
临时文件夹,或者
具有与所述第二可执行进程相关联的名称的文件夹。
13.根据权利要求10所述的非瞬态计算机可读介质,其中所述一个或多个指令在由所述一个或多个处理器执行时还使所述一个或多个处理器:
更改所述第一可执行进程的工作目录,以匹配所述第二可执行进程的工作目录。
14.根据权利要求10所述的非瞬态计算机可读介质,其中使所述一个或多个处理器监视所述存储器映射的所述一个或多个指令使所述一个或多个处理器:
对所述存储器映射的实例拍快照。
15.根据权利要求14所述的非瞬态计算机可读介质,其中使所述一个或多个处理器对所述存储器映射的所述实例拍快照的所述一个或多个指令使所述一个或多个处理器:
确定以下中的至少一个:
与所述第一可执行进程相关地被使用的一定数量的页面,
与所述第一可执行进程相关地被使用的一定数量的模块,
模块所有权,
页面的大小,
所述页面的许可
所述页面的地址,
与所述页面相对应的模块名称,
所述页面的特性集合,
所述页面是否被提交,
所述页面是否被保留,或者
所述页面是否为私有。
16.一种方法,包括:
由设备生成第一可执行进程,
其中所述第一可执行进程与一个或多个经确定性地定义的参数相关联;
由所述设备在所述设备中执行所述第一可执行进程的一个或多个版本,其中所述第一可执行进程的所述一个或多个版本与所述设备的一个或多个对应的第二可执行进程共享一个或多个特性,并且
其中所述第一可执行进程的所述一个或多个版本是被设计为类似于所述一个或多个对应的第二可执行进程的一个或多个可执行进程,并且所述一个或多个对应的第二可执行进程是被设计为在所述设备上执行一个或多个功能的一个或多个合法可执行进程;
在所述第一可执行进程的所述一个或多个版本的执行期间,由所述设备监视所述设备的一个或多个设备参数;
由所述设备并且基于监视所述设备的所述一个或多个设备参数或所述第一可执行进程来确定所述一个或多个经确定性地定义的参数中的参数相对于针对所述参数的预期值的变化;
基于确定所述参数的所述变化,由所述设备检测不使用签名的恶意软件的存在;以及由所述设备自动地更改一个或多个设备参数,作为对所述恶意软件的所述存在的响应。
17.根据权利要求16所述的方法,其中监视所述一个或多个设备参数包括:
监视以下中的至少一个:
进程标识符集合,
事件集合,或者
线程集合。
18.根据权利要求16所述的方法,还包括:
基于确定所述参数的所述变化,确定关于所述设备的状态的信息,
其中所述信息与以下中的至少一个相关联:
页面集合,
页面工件集合,
危害指示符集合,
互斥体名称集合,
因特网协议地址集合,
web地址集合,
域名集合,
字符串集合,
注册表密钥集合,
消息集合,或者
代码的存在。
19.根据权利要求16所述的方法,还包括:
在检测到所述恶意软件的所述存在之后,确定用于移除所述恶意软件的补救技术;以及
使用所述补救技术自动移除所述恶意软件。
20.根据权利要求16所述的方法,还包括:
在检测到所述恶意软件的所述存在之后,自动孤立所述恶意软件。

说明书全文

实时无签名恶意软件检测

[0001] 相关申请
[0002] 本申请根据35  U.S.C.§119要求于2018年7月9日提交的印度专利申请号201841025522的优先权,其内容通过整体引用并入本文。

技术领域

[0003] 本公开的实施例涉及恶意软件检测,并且更具体地涉及实时无签名恶意软件检测。

背景技术

[0004] 恶意软件(即,恶意的软件)可以指被用来破坏计算机、网络设备或移动设备的操作的任何软件。这可以包括收集敏感信息、获得对私有计算机系统访问、加密文件和/或显示不想要的广告。恶意软件可以包括病毒、蠕虫、特洛伊木广告软件间谍软件、勒索软件、键盘记录器、网络钓鱼等。发明内容
[0005] 根据一些可能的实施方式,设备可以包括一个或多个存储器和一个或多个处理器,用以:生成第一可执行进程的一个或多个版本,其中第一可执行进程与一个或多个经确定性地定义的参数相关联,其中第一可执行进程的一个或多个版本与设备的一个或多个对应的第二可执行进程共享一个或多个公共特性,并且其中第一可执行进程的一个或多个版本是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程。一个或多个处理器可以运行第一可执行进程的一个或多个版本,以及可以在运行第一可执行进程的一个或多个版本时,监视设备的一个或多个设备参数或第一可执行进程。一个或多个处理器可以基于监视设备的一个或多个设备参数或第一可执行进程,确定一个或多个经确定性地定义的参数中的参数相对于针对参数的预期值的变化,以及可以基于确定参数的变化,提供指示与设备相关的恶意软件的存在的信息。
[0006] 根据一些可能的实施方式,一种非瞬态计算机可读介质可以存储指令,该指令包括一个或多个指令,该一个或多个指令在由设备的一个或多个处理器执行时使一个或多个处理器:生成第一可执行进程,其中第一可执行进程与经确定性地定义的存储器映射相关联。该一个或多个指令可以使一个或多个处理器在端点设备中执行第一可执行进程,其中第一可执行进程与端点设备的第二可执行进程共享一个或多个公共特性,并且其中第一可执行进程是被设计为类似于第二可执行进程的可执行进程,并且第二可执行进程是被设计为在端点设备上执行功能的合法可执行进程。该一个或多个指令可以使一个或多个处理器在第一可执行进程的执行期间,监视端点设备的存储器映射或者第一可执行进程,以及基于监视存储器映射来确定存储器映射相对于经确定性地定义的存储器映射的变化。该一个或多个指令可以使一个或多个处理器基于确定存储器映射的变化来检测没有签名的恶意软件的存在,以及基于检测到恶意软件的存在来提供指示与端点设备相关的恶意软件的存在的信息。
[0007] 根据一些可能的实施方式,一种方法可以包括:由设备生成第一可执行进程,其中第一可执行进程与一个或多个经确定性地定义的参数相关联。该方法可以包括:由设备在设备中执行第一可执行进程的一个或多个版本,其中第一可执行进程的一个或多个版本与设备的一个或多个对应的第二可执行进程共享一个或多个特性,并且其中第一可执行进程的一个或多个版本是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程。该方法可以包括:在第一可执行进程的一个或多个版本的执行期间,由设备监视设备的一个或多个设备参数,以及由设备并且基于监视设备的一个或多个设备参数或第一可执行进程来确定一个或多个经确定性地定义的参数中的参数相对于针对参数的预期值的变化。该方法可以包括:基于确定参数的变化,由设备检测不使用签名的恶意软件的存在,以及由设备自动地更改一个或多个设备参数,作为对恶意软件的存在的响应。附图说明
[0008] 图1A至图1C是本文所描述的示例实施方式的图。
[0009] 图2是可以实现本文所描述的系统和/或方法的示例环境的图。
[0010] 图3A和图3B是图2的一个或多个设备的示例组件的图。
[0011] 图4是用于实时无签名恶意软件检测的示例过程的流程图
[0012] 图5是用于实时无签名恶意软件检测的示例过程的流程图。
[0013] 图6是用于实时无签名恶意软件检测的示例过程的流程图。

具体实施方式

[0014] 以下对示例实施方式的详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元素。
[0015] 恶意软件可能对发布恶意软件的任何计算环境都有害。在一些实例中,可以通过激活嵌入或隐藏在文件(例如,文本文件、应用文档、电子邮件附件等)内的恶意有效载荷来发布恶意软件。在一些实例中,恶意软件可以将代码注入端点设备上的合法可执行进程,诸如操作系统进程、应用(例如,web浏览器、文字处理器等)等。在这种情况下,恶意软件可能从合法可执行进程内执行代码,以窃取数据、删除数据和/或执行某种其他恶意目的。当安全平台分析具有注入的代码的合法可执行进程和/或对应于合法可执行进程的文件时,安全平台可以假设注入的代码是文件的可允许特征,因为注入的代码不被识别为恶意软件,而是被识别为文件的特征。安全平台可以使用签名来实现对恶意软件的标识;然而,安全平台可能不存储标识尚未被标识和分类的新恶意软件的签名的信息。此外,随着大量不同类型的恶意软件的增加,获得标识恶意软件签名的数据可能变得越来越资源密集,并且可能超过日益小型化的设备的存储器能和/或处理能力。
[0016] 诸如防病毒软件之类的一些安全平台可以在端点设备(诸如计算机、服务器、流量传递设备等)上操作,以检测恶意软件。然而,端点设备上的操作可能是资源密集型的(例如,处理资源、存储器资源等)。此外,由于端点设备的处理限制和安全平台的处理要求,端点设备上的操作可能是时间密集的,并且可能导致由恶意软件的操作造成的端点设备的不稳定性
[0017] 因此,在专用硬件上在端点设备外部操作的安全平台可以使用安全环境(例如,沙盒)来标识恶意软件。安全平台可以分析文件,检测恶意软件(例如,使用静态分析、动态分析等),并且阻止文件执行恶意目的(例如,通过隔离文件,阻止文件进一步传输,丢弃文件等)。这可以提高准确性并减少不稳定性;然而,在安全环境中检测恶意软件可能会导致大幅延迟以将可疑恶意软件从端点设备传递到沙盒环境、在沙盒环境中确定可疑恶意软件是恶意的、向端点设备提供指示可疑恶意软件是恶意的报告、并隔离端点设备处的恶意软件。因此,混合解决方案可以尝试直接在端点设备上操作沙盒。这种混合解决方案可以减少延迟并提高准确性,但可能仍无法实现基于端点的解决方案的速度或外部解决方案的准确性。
[0018] 本文所描述的一些实施方式提供使用蜜罐(honeypot)技术的无签名恶意软件检测。例如,端点设备可以生成对应于第二可执行进程的第一可执行进程(例如,伪可执行进程,该伪可执行进程与例如合法可执行进程(诸如web浏览器应用、文字处理器应用等)共享公共名称、公共依赖性集合等)。在这种情况下,端点设备可以运行第一可执行进程,并且可以检测与端点设备或第一可执行进程相关的所观察到的参数集合是否与关联于第一可执行进程的预期参数集合不同。基于检测到差别,端点设备可以确定恶意软件已经尝试在第一可执行进程的运行期间执行恶意的任务,诸如,尝试基于恶意软件将第一可执行进程与第二可执行进程混淆,在第一可执行进程中注入和执行代码。在这种情况下,端点设备可以确定恶意软件的存在,可以分析与第一可执行进程有关的信息以定位恶意软件,并且可以执行补救动作以移除恶意软件、隔离恶意软件、孤立恶意软件等。
[0019] 以这种方式,端点设备实现恶意软件检测而不需要被存储的签名信息,和/或实现针对尚未确定签名的恶意软件的恶意软件检测。此外,基于在端点设备上操作而不是使用沙盒环境,端点设备使得恶意软件检测能够以相对高级别的准确度实时或接近实时地发生。另外,基于使用第一可执行进程来使恶意软件尝试执行恶意任务,而不是尝试使用资源密集型防病毒软件,端点设备减少资源使用并且提高受监控系统的稳定性。
[0020] 相应地,本文所描述的一些实施方式可以防止恶意软件损害目标系统,并且因此防止系统故障、关闭、不可操作性、安全漏洞、文件或信息(例如,个人或财务信息)丢失、盗窃等。因此,本文的一些实施方式可以通过防止恶意软件攻击来确保系统的健康,因此节省处置受攻击系统和/或从潜在恶意软件攻击中恢复系统的资源、时间和成本。
[0021] 图1A至图1C是本文所描述的示例实施方式100的图。如图1A至图1C中所示,示例实施方式100可以包括端点设备102和恶意软件源104。在一些实施方式中,端点设备102可以是可以对以端点设备102为目标的和/或被安装在端点设备102上的恶意软件执行恶意软件检测的设备,从而相对于在端点设备外部的沙盒环境设备上的基于沙盒环境的检测,提高了恶意软件检测的速度。例如,端点设备102可以是客户端设备(例如,计算机、移动设备等)、网络设备(例如,路由器、交换机等)、服务器设备等。在以下描述中,端点设备102将被描述为客户端设备。以下描述也适用于其他类型的端点设备102,诸如网络设备、服务器设备等。
[0022] 如图1A中以及由附图标记106进一步所示,端点设备102可以生成第一可执行进程。例如,端点设备102可以生成用以对应于第二可执行进程的第一可执行进程。在这种情况下,第一可执行进程可以是用于针对旨在攻击第二可执行进程的恶意软件的蜜罐进程的程序。换言之,第二可执行进程可以是合法可执行进程,诸如web浏览器应用(例如,如图所示的WebBrowser.exe,或诸如iexplorer.exe、firefox.exe等的另一应用),文字处理器应用(例如,如图所示的WordProcessor.exe,或诸如msword.exe、wordpad.exe等的另一应用),操作系统应用(例如,如图所示的Explorer.exe,或诸如svchost.exe等的另一应用),恶意软件可能旨在经由代码注入攻击等来攻击该合法可执行进程。在这种情况下,第一可执行进程可以被设计为类似于第二应用。例如,第一可执行进程可以与第二可执行进程共享公共名称。附加地或者备选地,第一可执行进程可以与第二可执行进程共享一个或多个其他公共特性。例如,第一可执行进程可以链接到第二可执行进程的一个或多个库、第二可执行进程的模、第二可执行进程的动态链接库(.DLL)等,以使第一可执行进程类似于第二可执行进程。以这种方式,第一可执行进程可以被生成,使得(例如,对于可以被安装在端点设备102中的和/或可以以端点设备102为目标的恶意软件)第一可执行进程类似于第二可执行进程。
[0023] 在一些实施方式中,端点设备102可以在生成第一可执行进程时分析端点设备102的一个或多个第二可执行进程。例如,端点设备102可以确定针对特定第二可执行进程的.DLL依赖性的集合,并且可以使用该.DLL依赖性的集合来生成对应于特定第二可执行进程的第一可执行进程。以这种方式,端点设备102确保第一可执行进程类似于对应的第二可执行进程。
[0024] 尽管本文所描述的一些实施方式是关于与特定文件格式(例如,.exe)相关联的可执行进程来描述的,但是其他类型的二进制文件是可能的和/或其他类型的文件格式也是可能的。
[0025] 在一些实施方式中,端点设备102可以生成第一可执行进程和/或与其相关联并且与一个或多个经确定性地定义的参数相关联的一个或多个子进程。例如,端点设备102可以生成第一可执行进程,使得与第一可执行进程相关联的存储器映射在第一可执行进程的一个或多个状态下是已知的。在这种情况下,端点设备102可以存储标识在第一可执行进程的一个或多个状态下的存储器映射的信息,以用于在第一可执行进程的执行期间将存储器映射与所观察到的存储器映射进行比较。
[0026] 在一些实施方式中,端点设备102可以生成第一可执行进程的一个或多个版本。例如,端点设备102可以存储通用第一可执行进程,并且可以生成与多个不同的第二可执行进程相对应的通用第一可执行进程的多个版本。在这种情况下,端点设备102可以建立针对第一可执行进程的每个版本的不同的存储器映射、不同的.DLL依赖性等。在一些实施方式中,端点设备102可以使用代理生成并操作第一可执行进程。例如,端点设备102可以与可以在端点设备102上操作代理的另一设备(例如,检测设备、安全设备、服务器设备等)通信。在这种情况下,其他设备可以向端点设备102提供第一可执行进程,可以使用代理来配置第一可执行进程,可以使用代理来运行第一可执行进程等。在一些实施方式中,端点设备102可以在沙盒环境中操作第一可执行进程。例如,可以在沙盒环境中生成第一可执行进程,以确定沙盒环境中的另一程序(例如,第二可执行进程、恶意软件的项等)是否是恶意软件。
[0027] 如图1A中以及由附图标记108所示,端点设备102可能诸如从恶意软件源104接收恶意软件。例如,端点设备102可能被病毒、蠕虫、特洛伊木马、广告软件、间谍软件、勒索软件,键盘记录器等感染。在一些实施方式中,端点设备102可能被利用可执行进程的恶意软件感染。例如,端点设备102可能被尝试将恶意代码注入可执行进程的恶意软件感染,诸如,以使恶意代码看似是合法的进程,窃取正由可执行进程访问和/或传递的数据,安装rootkit等。
[0028] 如图1B中以及由附图标记110所示,端点设备102可以运行第一可执行进程,并且可以基于监视第一可执行进程来监视设备参数(例如,端点设备102的参数、第一可执行进程的参数等)。例如,端点设备102可以执行第一可执行进程。在一些实施方式中,端点设备102可以运行第一可执行进程的一个或多个版本。例如,端点设备102可以运行类似于并且对应于web浏览器第二可执行进程的第一可执行进程的第一版本、类似于并且对应于文字处理器第二可执行进程的第一可执行进程的第二版本、类似于并且对应于操作系统可执行进程的第一可执行进程的第三版本等。以这种方式,端点设备102使端点设备102看似正在运行合法的第二可执行进程,以尝试引起例如由未知恶意软件进行的代码注入攻击,该未知恶意软件可以由端点设备102检测到。
[0029] 在一些实施方式中,端点设备102可以在运行第一可执行进程时运行第二可执行进程。例如,端点设备102可以以暂停模式运行第二可执行进程,并且可以将第一可执行进程的代码注入第二可执行进程中,并且可以基于将代码注入第二可执行进程中来运行代码。以这种方式,端点设备102可以伪装正在被运行的代码与第一可执行进程而不是第二可执行进程相关联,从而增加了诱导恶意软件尝试例如代码注入攻击的可能性。在一些实施方式中,端点设备102可以从特定位置运行第一可执行进程。例如,端点设备102可以将第一可执行进程移动到临时文件夹、具有与对应的第二可执行进程共享的公共名称的文件夹等,从而增加了诱导恶意软件尝试例如代码注入攻击的可能性。在一些实施方式中,端点设备102可以在运行第一可执行进程时更改工作目录。例如,端点设备102可以将第一可执行进程的工作目录改变为对应的第二可执行进程的对应工作目录,以使第一可执行进程看似是第二可执行进程,从而增加了诱导恶意软件尝试例如代码注入攻击的可能性。
[0030] 在一些实施方式中,端点设备102可以基于运行第一可执行进程来监视一个或多个程序标识符(PID)。例如,端点设备102可以监视在端点设备102上运行的程序集合的程序标识符集合,以检测正在运行的新程序、停止运行的程序、对程序标识符的改变等。附加地或者备选地,端点设备102可以基于运行第一可执行进程来监视可以被启动、停止、修改等的一个或多个事件、线程、进程等。
[0031] 在一些实施方式中,端点设备102可以基于运行第一可执行进程来监视存储器映射。例如,端点设备102可以确定存储器映射的快照,其可以包括标识由与第一可执行进程有关的进程所使用的一定数量的页面、与每个页面相关联的许可、每个页面的地址等的信息。附加地或者备选地,端点设备102可以确定标识与页面相关的第一可执行进程的模块、页面的特性(例如,页面是否被分类为已提交、保留、私有等)的信息。附加地或者备选地,端点设备102可以确定关联于与第一可执行进程有关的进程的一定数量的模块、存储器区域中的每个模块的所有权(例如,哪个进程拥有每个模块)等。在一些实施方式中,端点设备102可以在运行第一可执行进程之前和/或同时给存储器映射拍快照。附加地或者备选地,当基于暂停第二可执行进程从第二可执行进程内执行第一可执行进程的程序代码时,端点设备102可以在恢复第二可执行进程以执行程序代码之后给存储器映射拍快照。
[0032] 如由附图标记112和114所示,端点设备102的未知恶意软件可能检测到可执行进程正在运行,并且可能尝试执行恶意任务。例如,未知恶意软件可以确定类似于web浏览器的第一可执行进程正在运行,并且可能尝试将代码注入web浏览器中以例如窃取用户数据。在这种情况下,基于在端点设备102上作为后台进程运行以监视名称为WebBrowser.exe的应用的未知恶意软件,未知恶意软件可以确定第一可执行进程正在运行,该应用可以是未知恶意软件被设计来利用的web浏览器。基于检测到WebBrowser.exe正在运行,该未知恶意软件可能尝试执行恶意任务。在这种情况下,该未知恶意软件可以控制端点设备102,以将代码注入第一可执行进程中,从第一可执行进程中漏出数据,修改与第一可执行进程相关联的注册表或内核模块等。以这种方式,端点设备102可以使未知恶意软件攻击使用标题WebBrowser.exe并且模仿实际应用的第一可执行进程,而不是作为实际应用
WebBrowser.exe的第二可执行进程,从而使得端点设备102能够检测到未知恶意软件执行恶意任务的尝试。
[0033] 如图1C中以及由附图标记116所示,端点设备102可以基于监视设备参数来检测恶意软件。例如,端点设备102可以将所观察到的设备参数与一个或多个预期的设备参数进行比较,并且可以基于确定所观察到的设备参数(以及与第一可执行进程相关联的进程参数)与一个或多个预期设备参数之间的变化(variance)来检测恶意软件。在一些实施方式中,端点设备102可以将所存储的存储器映射与所观察到的存储器映射进行比较以检测恶意软件。例如,端点设备102可以基于运行第一可执行进程,将一个或多个所观察到的存储器值、状态、所有权关系等与标识预期值、状态、所有权关系等的所存储的信息进行比较。在这种情况下,基于确定所观察到的存储器映射与预期的存储器映射不匹配,端点设备102可以确定恶意软件已经尝试更改第一可执行进程的操作(例如,未知恶意软件已经尝试将代码注入第一可执行进程中),从而指示端点设备102上的恶意软件的存在。以这种方式,在未知恶意软件尚未被检测到并且不具有确定的签名等的情况下,端点设备102可以确定端点设备102上的恶意软件的存在,而不使用用于未知恶意软件的签名,从而改进恶意软件检测。
[0034] 在一些实施方式中,端点设备102可以分析一个或多个设备特性以确定恶意软件。例如,端点设备102可以基于将预期存储器映射与所观察到的存储器映射进行比较来标识一个或多个新页面或经更改的页面,并且可以分析一个或多个新页面或经更改的页面,以确定未知恶意软件(例如,端点设备102上的特定可执行进程)引起一个或多个新页面或经更改的页面。换言之,端点设备102可以在端点设备102上定位未知恶意软件。在一些实施方式中,端点设备102可以标别与页面相关联的工件(artifact)、与页面相关联的危害指示符、互斥体名称、因特网协议地址、web地址、域名、字符串、注册表密钥、消息等,这使得端点设备102能够定位未知恶意软件。在一些实施方式中,端点设备102可以标识页面上的程序代码,并且可以分析程序代码以标识未知恶意软件的源、未知恶意软件的意图行为等。
[0035] 如由附图标记118所示,端点设备102可以隔离恶意软件。例如,基于定位到未知恶意软件,端点设备102可以孤立恶意软件以避免对端点设备102的损害。附加地或者备选地,端点设备102可以执行另一响应动作。例如,端点设备102可以传送提供关于恶意软件的信息的警报。附加地或者备选地,端点设备102可以提供恶意软件以供进一步分析,以确定缓解解决方案、生成恶意软件的签名等。在一些实施方式中,端点设备102可以移除恶意软件。例如,基于检测到恶意软件的存在,端点设备102可以基于所存储的信息来确定用于从端点设备102移除恶意软件的过程,并且可以执行该过程以移除恶意软件。
[0036] 附加地或者备选地,基于确定参数的变化,端点设备102可以撤销由端点设备102上的恶意软件执行的一个或多个动作(例如,恢复一个或多个参数,删除一个或多个文件,改变一个或多个注册表密钥等)。附加地或者备选地,端点设备102可以将与恶意软件相关联的信息提供给沙盒环境以供进一步分析,并且可以使用沙盒环境来执行分析。附加地或者备选地,端点设备102可以将与恶意软件相关联的信息报告给安全服务,以用于防止恶意软件和/或由其他端点设备上的类似恶意软件的未来攻击。
[0037] 尽管本文所描述的一些实施方式是关于端点设备102的客户端设备类型(例如,检测以例如web浏览器应用为目标的恶意软件)来描述的,但是端点设备102可以是另一类型的设备。例如,当端点设备102是网络设备(例如,路由器)时,端点设备102可以生成被设计成类似于第二可执行进程的第一可执行进程(例如,路由软件可执行进程、切换软件可执行进程、网关软件可执行进程等),可以运行第一可执行进程,并且可以检测被存储在端点设备102上的、被设计为尝试攻击第二可执行进程的恶意软件。附加地或者备选地,端点设备102可以检测与由端点设备102正在传递的分组相关联的、并且被设计为尝试在经由端点设备102的传递期间攻击路由软件的恶意软件。在这种情况下,基于实现实时或接近实时的无签名恶意软件检测,端点设备102实现了针对网络设备的改进的安全性而不降低联网速度,以允许对分组的耗时的、基于沙盒环境的安全性测试。
[0038] 以这种方式,端点设备102使用蜜罐技术来实现恶意软件的无签名检测(例如,检测不使用签名的恶意软件和/或检测签名未知的恶意软件)。此外,基于使用被设计为看似是作为恶意软件的潜在目标的第二可执行进程的第一可执行进程,端点设备102降低了与恶意软件检测相关联的处理要求和/或存储器要求,从而实现实时或接近实时的恶意软件检测,并且相对于基于沙盒环境的解决方案改进了恶意软件检测。此外,端点设备102相对于其他基于端点的解决方案提高了恶意软件检测的准确性。
[0039] 如上所述,图1A至图1C仅仅作为示例被提供。其他示例是可能的,并且可以和关于图1A至图1C所描述的内容不同。
[0040] 图2是可以实现本文所描述的系统和/或方法的示例环境的图。如图2中所示,环境200可以包括客户端设备210、一个或多个网络设备220、服务器设备230和网络240。环境200的各设备可以经由有线连接、无线连接或有线连接和无线连接的组合互连。
[0041] 客户端设备210可以包括能够接收、生成、存储、处理和/或提供与检测恶意软件相关联的信息的一个或多个设备。例如,客户端设备210可以包括通信和/或计算设备,诸如移动电话(例如,智能电话、无线电话等)、膝上型计算机、平板计算机、手持式计算机、游戏设备、可穿戴通信设备(例如,智能手表、一副智能眼镜等)或者类似类型的设备。在一些实施方式中,客户端设备210可以是可以被恶意软件作为目标并且可以存储恶意软件的端点设备。在一些实施方式中,客户端设备210可以在客户端设备210上操作沙盒环境。在一些实施方式中,客户端设备210可以从环境200中的另一设备接收信息和/或向环境200中的另一设备传送信息。
[0042] 网络设备220包括能够处理和/或传递其他设备之间的流量的一个或多个设备(例如,一个或多个流量传递设备)。例如,网络设备220可以包括防火墙、路由器、网关、交换设备、集线器、网桥、反向代理、服务器(例如,代理服务器)、机架顶部(ToR)交换机、负载平衡器、交换机接口板、控制器、交换元件、分组处理组件或类似设备。在一些实施方式中,网络设备220可以是可以被恶意软件作为目标并且可以存储恶意软件的端点设备。在一些实施方式中,网络设备220可以在网络设备220上操作沙盒环境。在一些实施方式中,网络设备220可以是在外壳(诸如机箱)内被实现的物理设备。在一些实施方式中,网络设备220可以是由计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。
[0043] 服务器设备230包括能够存储、处理和/或路由发送与检测恶意软件相关联的信息的一个或多个设备。例如,服务器设备230可以包括服务器,该服务器包括计算资源,该计算资源可以与以下相关地被使用:提供用于恶意软件检测的可执行进程、远程运行端点设备(诸如网络设备220等)上的可执行进程和/或监视端点设备。在一些实施方式中,服务器设备230可以使用被设计为类似于第二可执行进程的第一可执行进程以在服务器设备230上执行恶意软件检测。在一些实施方式中,服务器设备230可以是可以被恶意软件作为目标并且可以存储恶意软件的端点设备。在一些实施方式中,服务器设备230可以在服务器设备230上操作沙盒环境。在一些实施方式中,服务器设备230可以包括允许服务器设备230从环境200中的其他设备接收信息和/或向环境200中的其他设备传送信息的通信接口
[0044] 网络240包括一个或多个有线和/或无线网络。例如,网络240可以包括蜂窝网络(例如,长期演进(LTE)网络、码分多址(CDMA)网络、3G网络、4G网络、5G网络、另一类型的下一代网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网(PSTN))、通信网络、电信网络、私有网络、自组织网络、内联网、因特网、基于光纤的网络、云计算网络等,和/或这些或其他类型的网络的组合。
[0045] 在一些实施方式中,客户端设备210、网络设备220和/或服务器设备230可以是由云计算环境或数据中心的一个或多个计算设备实现的虚拟设备。
[0046] 图2中所示的设备的数目和布置作为示例被提供。在实践中,与图2中的那些设备相比,可以存在附加的设备、更少的设备、不同的设备和/或网络、或者被不同布置的设备。此外,图2中所示的两个或更多个设备可以在单个设备内被实现,或者图2中所示的单个设备可以被实现为多个分布式设备。附加地或者备选地,环境200的设备的集合(例如,一个或多个设备)可以执行被描述为正由环境200的另一设备集合执行的一个或多个功能。
[0047] 图3A至图3B是图2的一个或多个设备的示例组件的图。图3A是设备300的示例组件的图。设备300可以对应于客户端设备210、网络设备220和/或服务器设备230。在一些实施方式中,客户端设备210、网络设备220和/或服务器设备230可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3A所示,设备300可以包括总线305、处理器310、存储器315、存储组件320、输入组件325、输出组件330和通信接口335。
[0048] 总线305包括允许设备300的组件之间的通信的组件。处理器310在硬件、固件或硬件和软件的组合中被实现。处理器310采用以下形式:中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器微控制器、数字信号处理器(DSP)、现场可编程阵列(FPGA)、专用集成电路(ASIC)或另一类型的处理组件。在一些实施方式中,处理器310包括能够被编程以执行功能的一个或多个处理器。存储器315包括随机存取存储器(RAM)、只读存储器(ROM)和/或另一类型的动态或静态存储设备(例如,闪速存储器、磁存储器和/或光存储器),其存储供处理器310使用的信息和/或指令。
[0049] 存储组件320存储与设备300的操作和使用相关的信息和/或软件。例如,存储组件320可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、压缩盘(CD)、数字通用光盘(DVD)、软盘、盒式磁带、磁带和/或另一类型的非瞬态计算机可读介质,以及对应的驱动器
[0050] 输入组件325包括允许设备300接收信息的组件,诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克)。附加地或者备选地,输入组件325可以包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速度计陀螺仪和/或致动器)。输出组件330包括提供来自设备300的输出信息的组件(例如,显示器、扬声器和/或一个或多个发光二极管(LED))。
[0051] 通信接口335包括类似收发器的组件(例如,收发器和/或分离的接收器和发送器),其使得设备300能够与其他设备通信,诸如经由有线连接、无线连接或者有线连接和无线连接的组合。通信接口335可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口335可以包括以太网接口、光学接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等。
[0052] 设备300可以执行本文所描述的一个或多个过程。设备300可以基于处理器310执行由非瞬态计算机可读介质(诸如存储器315和/或存储组件320)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或跨多个物理存储设备分布的存储器空间。
[0053] 软件指令可以从另一计算机可读介质或经由通信接口335从另一设备被读入存储器315和/或存储组件320。当被执行时,被存储在存储器315和/或存储组件320中的软件指令可以使处理器310执行本文所描述的一个或多个过程。附加地或者备选地,可以使用硬连线电路装置代替软件指令或与软件指令组合,以执行本文所描述的一个或多个过程。因此,本文所描述的实施方式不限于硬件电路装置和软件的任何特定组合。
[0054] 图3A中所示的组件的数目和布置作为示例被提供。在实践中,与图3A中的那些组件相比,设备300可以包括附加的组件、更少的组件、不同的组件、或者被不同布置的组件。附加地或者备选地,设备300的组件的集合(例如,一个或多个组件)可以执行被描述为正由设备300的另一组件集合执行的一个或多个功能。
[0055] 图3B是设备350的示例组件的图。设备350可以对应于网络设备220。在一些实施方式中,网络设备220可以包括一个或多个设备350和/或设备350的一个或多个组件。如图3B中所示,设备350可以包括一个或多个输入组件355-1至355-B(B≥1)(下文统称为输入组件355,并且单独作为输入组件355)、切换组件360、一个或多个输出组件365-1至365-C(C≥1)(下文统称为输出组件365,并且单独作为输出组件365)、以及控制器370。
[0056] 输入组件355可以是用于物理链路的附接点,并且可以是用于传入流量(诸如分组)的入口点。输入组件355可以处理传入流量,诸如通过执行数据链路层封装或解封装。在一些实施方式中,输入组件355可以发送和/或接收分组。在一些实施方式中,输入组件355可以包括输入线卡,其包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个接口卡(IFC)、分组转发组件、线卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实施方式中,设备350可以包括一个或多个输入组件355。
[0057] 切换组件360可以将输入组件355与输出组件365互连。在一些实施方式中,切换组件360可以经由一个或多个交叉开关、经由总线和/或与共享的存储器被实现。共享的存储器可以充当临时缓冲器,以在分组最终被调度以递送到输出组件365之前存储来自输入组件355的分组。在一些实施方式中,切换组件360可以使得输入组件355、输出组件365和/或控制器370能够通信。
[0058] 输出组件365可以存储分组并且可以调度分组以用于在输出物理链路上传输。输出组件365可以支持数据链路层封装或解封装,和/或各种更高级协议。在一些实施方式中,输出组件365可以发送和/或接收分组。在一些实施方式中,输出组件365可以包括输出线卡,其包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个IFC、分组转发组件、线卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实施方式中,设备350可以包括一个或多个输出组件365。在一些实施方式中,输入组件355和输出组件365可以由相同的组件集合(例如,输入/输出组件可以是输入组件355和输出组件365的组合)来实现。
[0059] 控制器370包括以下形式的处理器,例如,CPU、GPU、APU、微处理器、微控制器、DSP、FPGA、ASIC和/或另一类型的处理器。处理器在硬件、固件或硬件和软件的组合中被实现。在一些实施方式中,控制器370可以包括一个或多个处理器,其可以被编程以执行功能。
[0060] 在一些实施方式中,控制器370可以包括RAM、ROM和/或另一类型的动态或静态存储设备(例如,闪速存储器、磁存储器、光学存储器等),其存储供控制器370使用的信息和/或指令。
[0061] 在一些实施方式中,控制器370可以与被连接到设备300的其他设备、网络和/或系统通信,以交换关于网络拓扑的信息。控制器370可以基于网络拓扑信息来创建路由表,基于路由表来创建转发表,并且将转发表转发到输入组件355和/或输出组件365。输入组件355和/或输出组件365可以使用转发表来执行针对传入和/或传出分组的路由查找。
[0062] 控制器370可以执行本文所描述的一个或多个过程。控制器370可以响应于执行由非瞬态计算机可读介质存储的软件指令而执行这些过程。计算机可读介质在本文中被定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或跨多个物理存储设备分布的存储器空间。
[0063] 软件指令可以从另一计算机可读介质或经由通信接口从另一设备被读入与控制器370相关联的存储器和/或存储组件。当被执行时,被存储在与控制器370相关联的存储器和/或存储组件中的软件指令可以使控制器370执行本文所描述的一个或多个过程。附加地或者备选地,可以使用硬连线电路装置代替软件指令或与软件指令组合,以执行本文所描述的一个或多个过程。因此,本文所描述的实施方式不限于硬件电路装置和软件的任何特定组合。
[0064] 图3B中所示的组件的数目和布置作为示例被提供。在实践中,与图3B中的那些组件相比,设备300可以包括附加的组件、更少的组件、不同的组件、或者被不同布置的组件。附加地或者备选地,设备350的组件的集合(例如,一个或多个组件)可以执行被描述为正由设备350的另一组件集合执行的一个或多个功能。
[0065] 图4是用于实时无签名恶意软件检测的示例过程400的流程图。在一些实施方式中,图4的一个或多个过程框可以由设备(例如,端点设备,诸如客户端设备210、网络设备220或服务器设备230)来执行。在一些实施方式中,图4的一个或多个过程框可以由与该设备分离或包括该设备的另一设备或一组设备来执行。
[0066] 如图4所示,过程400可以包括:生成第一可执行进程的一个或多个版本,其中第一可执行进程与一个或多个经确定性地定义的参数相关联,其中第一可执行进程的一个或多个版本与设备的一个或多个对应的第二可执行进程共享一个或多个公共特性,其中第一可执行进程的一个或多个版本是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程(框410)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以生成第一可执行进程的一个或多个版本,如上面结合图1A至图1C所述。在一些实施方式中,第一可执行进程可以与一个或多个经确定性地定义的参数相关联,并且第一可执行进程的一个或多个版本可以与设备的一个或多个对应的第二可执行进程共享一个或多个公共特性。在一些实施方式中,第一可执行进程的一个或多个版本可以是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程。
[0067] 如图4中进一步所示,过程400可以包括:运行第一可执行进程的一个或多个版本(框420)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以运行第一可执行进程的一个或多个版本,如上面结合图1A至图1C所述。
[0068] 如图4中进一步所示,过程400可以包括:在运行第一可执行进程的一个或多个版本时,监视设备的一个或多个设备参数或第一可执行进程(框430)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、通信接口335、控制器370等)可以在运行第一可执行进程的一个或多个版本时监视设备的一个或多个设备参数或第一可执行进程,如上面结合图1A至图1C所述。
[0069] 如图4中进一步所示,过程400可以包括:基于监视设备的一个或多个设备参数或第一可执行进程,确定一个或多个经确定性地定义的参数中的参数相对于针对该参数的预期值的变化(框440)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以基于监视设备的一个或多个设备参数或第一可执行进程,确定一个或多个经确定性地定义的参数中的参数相对于针对该参数的预期值的变化,如上面结合图1A至图1C所述。
[0070] 如图4中进一步所示,过程400可以包括:基于确定参数的变化,提供指示与设备相关的恶意软件的存在的信息(框450)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、输出组件330、通信接口335、切换组件360、输出组件365、控制器370等)可以基于确定参数的变化来提供指示与设备相关的恶意软件的存在的信息,如上面结合图1A至图1C所述。
[0071] 过程400可以包括附加的实施方式,诸如下面所描述的和/或关于本文描述的任何其他过程所描述的任何单个实施方式或者实施方式的任何组合。
[0072] 在一些实施方式中,设备可以基于确定参数的变化来检测恶意软件的存在,可以在检测到恶意软件的存在之后确定用于移除恶意软件的补救技术,并且可以使用补救技术自动移除恶意软件。在一些实施方式中,第一可执行进程可以包括源代码。在一些实施方式中,该设备可以是端点设备或沙盒设备。
[0073] 在一些实施方式中,一个或多个经确定性地定义的参数可以包括与针对第一可执行进程的经定义的行为相关联的存储器映射。在一些实施方式中,第一可执行进程可以驻留在设备的一个或多个存储器中,并且可以在执行期间维持静态存储器映射。在一些实施方式中,一个或多个公共特性可以包括公共文件名、公共库链接、公共模块链接、公共动态链接库链接或公共依赖性链接中的至少一个。
[0074] 在一些实施方式中,设备可以与执行第一可执行进程的一个或多个版本相关地执行一个或多个对应的第二可执行进程。在一些实施方式中,当执行一个或多个对应的第二可执行进程时,设备可以以暂停模式执行一个或多个对应的第二可执行进程中的第二可执行进程,可以将与第二可执行进程相对应的第一可执行进程的一个或多个版本中的版本相关联的可执行进程代码注入第二可执行进程中,并且可以基于注入可执行进程代码,从第二可执行进程执行第一可执行进程的一个或多个版本中的版本。
[0075] 尽管图4示出了过程400的示例框,但是在一些实施方式中,与图4中描绘的那些框相比,过程400可以包括附加的框、更少的框、不同的框、或者被不同布置的框。附加地或者备选地,过程400的框中的两个或更多个框可以并行地被执行。
[0076] 图5是用于实时无签名恶意软件检测的示例过程500的流程图。在一些实施方式中,图5的一个或多个过程框可以由设备(例如,端点设备,诸如客户端设备210、网络设备220或服务器设备230)来执行。在一些实施方式中,图5的一个或多个过程框可以由另一设备或与该设备分离或包括该设备的一组设备来执行。
[0077] 如图5中所示,过程500可以包括:生成第一可执行进程,其中第一可执行进程与经确定性地定义的存储器映射相关联(框510)。例如,端点设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以生成第一可执行进程,如上面结合图1A至图1C所述。
在一些实施方式中,第一可执行进程可以与经确定性地定义的存储器映射相关联。
[0078] 如图5中进一步所示,过程500可以包括:在端点设备中执行第一可执行进程,其中第一可执行进程与端点设备的第二可执行进程共享一个或多个公共特性,其中第一可执行进程是被设计为类似于第二可执行进程的可执行进程,并且第二可执行进程是被设计为在端点设备上执行功能的合法可执行进程(框520)。例如,端点设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以在端点设备中执行第一可执行进程,如上面结合图1A至图1C所述。在一些实施方式中,第一可执行进程可以与端点设备的第二可执行进程共享一个或多个公共特性。在一些实施方式中,第一可执行进程可以是被设计为类似于第二可执行进程的可执行进程,并且第二可执行进程可以是被设计为在端点设备上执行功能的合法可执行进程。
[0079] 如图5中进一步所示,过程500可以包括:在第一可执行进程的执行期间监视端点设备的存储器映射或第一可执行进程(框530)。例如,端点设备(例如,使用处理器310、存储器315、存储组件320、通信接口335、控制器370等)可以在第一可执行进程的执行期间监视端点设备的存储器映射或第一可执行进程,如上面结合图1A至图1C所述。
[0080] 如图5中进一步所示,过程500可以包括:基于监视存储器映射,确定存储器映射相对于经确定性地定义的存储器映射的变化(框540)。例如,端点设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以基于监视存储器映射来确定存储器映射相对于经确定性定义的存储器映射的变化,如上面结合图1A至图1C所述。
[0081] 如图5中进一步所示,过程500可以包括:基于确定存储器映射的变化,检测没有签名的恶意软件的存在(框550)。例如,端点设备(例如,使用处理器310、存储器315、存储组件320、通信接口335、控制器370等)可以基于确定存储器映射的变化来检测没有签名的恶意软件的存在,如上面结合图1A至图1C所述。
[0082] 如图5中进一步所示,过程500可以包括:基于检测到恶意软件的存在,提供指示与端点设备相关的恶意软件的存在的信息(框560)。例如,端点设备(例如,使用处理器310、存储器315、存储组件320、输出组件330、通信接口335、切换组件360、输出组件365、控制器370等)可以基于检测到恶意软件的存在来提供指示与端点设备相关的恶意软件的存在的信息,如上面结合图1A至图1C所述。
[0083] 过程500可以包括附加的实施方式,诸如下面所描述的和/或关于本文描述的任何其他过程所描述的任何单个实施方式或者实施方式的任何组合。
[0084] 在一些实施方式中,当执行第一可执行进程时,设备可以从位于端点设备上的一个或多个文件夹执行第一可执行进程。在一些实施方式中,一个或多个文件夹可以包括临时文件夹或具有与第二可执行进程相关联的名称的文件夹中的至少一个。在一些实施方式中,设备可以更改第一可执行进程的工作目录,以匹配第二可执行进程的工作目录。
[0085] 在一些实施方式中,当监视存储器映射时,设备可以对存储器映射的实例拍快照。在一些实施方式中,当对存储器映射的实例拍快照时,设备可以确定以下中的至少一个:与第一可执行进程相关地被使用的一定数量的页面、与第一可执行进程相关地被使用的一定数量的模块、模块所有权、页面的大小、页面的许可、页面的地址、与页面相对应的模块名称、页面的特性集合、页面是否已被提交、页面是否已被保留、或页面是否为私有。
[0086] 尽管图5示出了过程500的示例框,但是在一些实施方式中,与图5中描绘的那些框相比,过程500可以包括附加的框、更少的框、不同的框、或者被不同布置的框。附加地或者备选地,过程500的框中的两个或更多个框可以并行地被执行。
[0087] 图6是用于实时无签名恶意软件检测的示例过程600的流程图。在一些实施方式中,图6的一个或多个过程框可以由设备(例如,端点设备,诸如客户端设备210、网络设备220或服务器设备230)来执行。在一些实施方式中,图6的一个或多个过程框可以由另一设备或与该设备分离或包括该设备的一组设备来执行。
[0088] 如图6中所示,过程600可以包括:生成第一可执行进程,其中第一可执行进程与一个或多个经确定性地定义的参数相关联(框610)。例如,设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以生成第一可执行进程,如上面结合图1A至图1C所述。
在一些实施方式中,第一可执行进程可以与一个或多个经确定性地定义的参数相关联。
[0089] 如图6中所示,过程600可以包括:在设备中执行第一可执行进程的一个或多个版本,其中第一可执行进程的一个或多个版本与设备的一个或多个对应的第二可执行进程共享一个或多个特性,其中第一可执行进程的一个或多个版本是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程(框620)。例如,设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以在设备中执行第一可执行进程的一个或多个版本,如上面结合图1A至图1C所述。在一些实施方式中,第一可执行进程的一个或多个版本可以与设备的一个或多个对应的第二可执行进程共享一个或多个特性。在一些实施方式中,第一可执行进程的一个或多个版本可以是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程可以是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程。
[0090] 如图6中进一步所示,过程600可以包括:在第一可执行进程的一个或多个版本的执行期间监视设备的一个或多个设备参数或第一可执行进程(框630)。例如,设备(例如,使用处理器310、存储器315、存储组件320、通信接口335、控制器370等)可以在第一可执行进程的一个或多个版本的执行期间监视设备的一个或多个设备参数或第一可执行进程,如上面结合图1A至图1C所述。
[0091] 如图6中进一步所示,过程600可以包括:由设备并且基于监视设备的一个或多个设备参数或第一可执行进程来确定一个或多个经确定性地定义的参数中的参数相对于针对该参数的预期值的变化(框640)。例如,设备(例如,使用处理器310、存储器315、存储组件320、通信接口335、控制器370等)可以基于监视设备的一个或多个设备参数或第一可执行进程来确定一个或多个经确定性地定义的参数中的参数相对于针对该参数的预期值的变化,如上面结合图1A至图1C所述。
[0092] 如图6中进一步所示,过程600可以包括:基于确定参数的变化,检测不使用签名的恶意软件的存在(框650)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以基于确定参数的变化来检测不使用签名的恶意软件的存在,如上面结合图1A至图1C所述。
[0093] 如图6中进一步所示,过程600可以包括:自动更改一个或多个设备参数,作为对恶意软件的存在的响应(框660)。例如,该设备(例如,使用处理器310、存储器315、存储组件320、控制器370等)可以自动更改一个或多个设备参数,作为对恶意软件的存在的响应,如上面结合图1A至图1C所述。
[0094] 过程600可以包括附加的实施方式,诸如下面所描述的和/或关于本文描述的任何其他过程所描述的任何单个实施方式或者实施方式的任何组合。
[0095] 在一些实施方式中,监视一个或多个设备参数可以包括监视进程标识符集合、事件集合或线程集合中的至少一个。在一些实施方式中,设备可以基于确定参数的变化来确定关于设备状态的信息,其中该信息与以下中的至少一个相关联:页面集合、页面工件集合、危害指示符集合、互斥体名称集合、因特网协议地址集合、web地址集合、域名集合、字符串集合、注册表密钥集合、消息集合、或者代码的存在。
[0096] 在一些实施方式中,设备可以在检测到恶意软件的存在之后确定用于移除恶意软件的补救技术,并且可以使用补救技术自动移除恶意软件。在一些实施方式中,设备可以在检测到恶意软件的存在之后自动孤立恶意软件。
[0097] 尽管图6示出了过程600的示例框,但是在一些实施方式中,与图6中描绘的那些框相比,过程600可以包括附加的框、更少的框、不同的框、或者被不同布置的框。附加地或者备选地,过程600的框中的两个或更多个框可以并行地被执行。
[0098] 下面是实施例的示例:
[0099] 1.一种设备,包括:一个或多个存储器;以及一个或多个处理器,用以:生成第一可执行进程的一个或多个版本,其中第一可执行进程与一个或多个经确定性地定义的参数相关联,其中第一可执行进程的一个或多个版本与设备的一个或多个对应的第二可执行进程共享一个或多个公共特性,并且其中第一可执行进程的一个或多个版本是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程;运行第一可执行进程的一个或多个版本;在运行第一可执行进程的一个或多个版本时,监视设备的一个或多个设备参数或第一可执行进程;基于监视设备的一个或多个设备参数或第一可执行进程,确定一个或多个经确定性地定义的参数中的参数相对于针对参数的预期值的变化;以及基于确定参数的变化,提供指示与设备相关的恶意软件的存在的信息。
[0100] 2.根据示例1的设备,其中一个或多个处理器还用以:基于确定参数的变化,检测恶意软件的存在;在检测到恶意软件的存在之后,确定用于移除恶意软件的补救技术;以及使用补救技术自动移除恶意软件。
[0101] 3.根据示例1的设备,其中第一可执行进程包括源代码。
[0102] 4.根据示例1的设备,其中设备是端点设备或沙盒设备。
[0103] 5.根据示例1的设备,其中一个或多个经确定性地定义的参数包括与针对第一可执行进程的经定义的行为相关联的存储器映射。
[0104] 6.根据示例1的设备,其中第一可执行进程驻留在设备的一个或多个存储器中,并且在执行期间维持静态存储器映射。
[0105] 7.根据示例1的设备,其中一个或多个公共特性包括以下中的至少一个:公共文件名,公共库链接,公共模块链接,公共动态链接库链接,或者公共依赖性链接。
[0106] 8.根据示例1的设备,其中一个或多个处理器还用以:与执行第一可执行进程的一个或多个版本相关地执行一个或多个对应的第二可执行进程。
[0107] 9.根据示例8的设备,其中当执行一个或多个对应的第二可执行进程时,一个或多个处理器用以:以暂停模式执行一个或多个对应的第二可执行进程中的第二可执行进程;将与对应于第二可执行进程的第一可执行进程的一个或多个版本中的版本相关联的可执行进程代码注入到第二可执行进程中;以及基于注入可执行进程代码,从第二可执行进程执行第一可执行进程的一个或多个版本中的版本。
[0108] 10.一种存储指令的非瞬态计算机可读介质,指令包括:一个或多个指令,一个或多个指令在由端点设备的一个或多个处理器执行时使一个或多个处理器:生成第一可执行进程,其中第一可执行进程与经确定性地定义的存储器映射相关联;在端点设备中执行第一可执行进程,其中第一可执行进程与端点设备的第二可执行进程共享一个或多个公共特性,并且其中第一可执行进程是被设计为类似于第二可执行进程的可执行进程,并且第二可执行进程是被设计为在端点设备上执行功能的合法可执行进程;在第一可执行进程的执行期间,监视端点设备的存储器映射或者第一可执行进程;基于监视存储器映射,确定存储器映射相对于经确定性地定义的存储器映射的变化;基于确定存储器映射的变化,检测没有签名的恶意软件的存在;以及基于检测到恶意软件的存在,提供指示与端点设备相关的恶意软件的存在的信息。
[0109] 11.根据示例10的非瞬态计算机可读介质,其中使一个或多个处理器执行第一可执行进程的一个或多个指令使一个或多个处理器:从位于端点设备上的一个或多个文件夹执行第一可执行进程。
[0110] 12.根据示例11的非瞬态计算机可读介质,其中一个或多个文件夹包括以下中的至少一个:临时文件夹,或者具有与第二可执行进程相关联的名称的文件夹。
[0111] 13.根据示例10的非瞬态计算机可读介质,其中一个或多个指令在由一个或多个处理器执行时还使一个或多个处理器:更改第一可执行进程的工作目录,以匹配第二可执行进程的工作目录。
[0112] 14.根据示例10的非瞬态计算机可读介质,其中使一个或多个处理器监视存储器映射的一个或多个指令使一个或多个处理器:对存储器映射的实例拍快照。
[0113] 15.根据示例14的非瞬态计算机可读介质,其中使一个或多个处理器对存储器映射的实例拍快照的一个或多个指令使一个或多个处理器:确定以下中的至少一个:与第一可执行进程相关地被使用的一定数量的页面,与第一可执行进程相关地被使用的一定数量的模块,模块所有权,页面的大小,页面的许可,页面的地址,与页面相对应的模块名称,页面的特性集合,页面是否被提交,页面是否被保留,或者页面是否为私有。
[0114] 16.一种方法,包括:由设备生成第一可执行进程,其中第一可执行进程与一个或多个经确定性地定义的参数相关联;由设备在设备中执行第一可执行进程的一个或多个版本,其中第一可执行进程的一个或多个版本与设备的一个或多个对应的第二可执行进程共享一个或多个特性,并且其中第一可执行进程的一个或多个版本是被设计为类似于一个或多个对应的第二可执行进程的一个或多个可执行进程,并且一个或多个对应的第二可执行进程是被设计为在设备上执行一个或多个功能的一个或多个合法可执行进程;在第一可执行进程的一个或多个版本的执行期间,由设备监视设备的一个或多个设备参数;由设备并且基于监视设备的一个或多个设备参数或第一可执行进程来确定一个或多个经确定性地定义的参数中的参数相对于针对参数的预期值的变化;基于确定参数的变化,由设备检测不使用签名的恶意软件的存在;以及由设备自动地更改一个或多个设备参数,作为对恶意软件的存在的响应。
[0115] 17.根据示例16的方法,其中监视一个或多个设备参数包括:监视以下中的至少一个:进程标识符集合,事件集合,或者线程集合。
[0116] 18.根据示例16的方法,还包括:基于确定参数的变化,确定关于设备的状态的信息,其中信息与以下中的至少一个相关联:页面集合,页面工件集合,危害指示符集合,互斥体名称集合,因特网协议地址集合,web地址集合,域名集合,字符串集合,注册表密钥集合,消息集合,或者代码的存在。
[0117] 19.根据示例16的方法,还包括:在检测到恶意软件的存在之后,确定用于移除恶意软件的补救技术;以及使用补救技术自动移除恶意软件。
[0118] 20.根据示例16的方法,还包括:在检测到恶意软件的存在之后,自动孤立恶意软件。
[0119] 前述公开内容提供说明和描述,但并非旨在穷举或将实施方式限于所公开的精确形式。鉴于以上公开内容,修改和变型是可能的,或者可以从实施方式的实践中被获得。
[0120] 如本文中所使用的,术语组件旨在宽泛地被解释为硬件、固件和/或硬件和软件的组合。
[0121] 明显的是,本文所描述的系统和/或方法可以在不同形式的硬件、固件或硬件和软件的组合中被实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限制于实施方式。因此,本文描述了系统和/或方法的操作和行为而没有参考特定的软件代码——应当理解,可以将软件和硬件设计为基于本文的描述来实现系统和/或方法。
[0122] 尽管在权利要求中记载了和/或在说明书中公开了特征的特定组合,但是这些组合并不旨在限制可能实施方式的公开。实际上,许多这些特征可以按照未在权利要求中被具体记载和/或在说明书中被公开的方式来组合。尽管列出的每个从属权利要求可能直接依赖于仅一个权利要求,但是可能的实施方式的公开包括每个从属权利要求与权利要求集合中的每个其他权利要求组合。
[0123] 本文所使用的元素、动作或指令都不应当被解释为关键或必要的,除非明确如此说明。而且,如本文所使用的,冠词“一(a)”和“一个(an)”旨在包括一个或多个项,并且可以与“一个或多个”互换地使用。此外,如本文所使用的,术语“集合”旨在包括一个或多个项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或多个”互换地使用。在旨在仅一个项的情况下,使用术语“一个(one)”或类似语言。而且,如本文所使用的,术语“具有”、“含有”、“拥有”等旨在是开放式术语。另外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈