一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

系统事件的自动语义建模的制作方法

2022-07-24 03:25:35 来源:中国专利 TAG:

系统事件的自动语义建模
1.关于赞助研究的声明
2.本发明是在政府支持下根据国防高级研究项目机构(darpa)授予的合同fa8650-15-c-7561完成的。政府对本发明享有一定权利。
技术领域
3.本公开一般涉及计算机网络安全,尤其涉及用于基于行为的表征恶意软件的技术。


背景技术:

4.侵入和异常检测产品、系统和服务是公知的。事实上,在几十年前引入了侵入检测方法和抗病毒解决方案。大多数传统的基于主机和基于网络的攻击/侵入检测产品利用静态签名匹配方法。例如,传统的反病毒、防火墙、侵入检测系统(ids)等依赖于具体的二进制或网络通信签名来标识攻击。检测过程通常包括:(i)攻击发现,(ii)签名选择,(iii)签名分发,以及(iv)端点签名匹配。
5.一类新的检测机制试图将越来越多的智能移植到端点中。然而,这些机制通常集中在单过程检测。过程内行为建模和检测也是公知的,如程序异常检测文献以及大多数现有技术的商业端点侵入检测产品所证明的。这些机制基本上监测系统事件(例如,每个进程的系统调用和/或windows api),然后基于其行为模型来决定该进程是否是恶意的。在实现跨进程的秘密攻击时,或者在攻击者利用良性进程来实现攻击目标时,这种类型的解决方案可能是无效的。
6.由于现代计算平台通常作为黑盒子,因此恶意软件或侵入动作的详细行为通常是不可见的。因此,即使利用复杂的基于行为的恶意软件检测系统,不完全的观察也会极大地限制检测攻击的能力,尤其是持续长时间的高级持续性威胁(apt)。特别地,诸如那些基于数据流和控制流图的技术的常用检测技术不是可容易观察的。相反,仅可监测系统调用跟踪。
7.尽管系统调用不足以理解底层程序的详细行为,但是它可能在高级别上揭示攻击者的动作和意图。例如,盘操作可由api调用跟踪来记录,并且写入(例如,写入到rundll32.exe)指示恶意代码被注入到系统文件中。除了盘操作之外,其他行为(例如,与远程服务器的通信、注册表改变、进程派生等)通常通过系统调用来展示,并且这些行为因此能够由监测系统记录。换言之,通常在api调用和系统事件的级别上检测攻击是实用的并且潜在重要的。
8.现有技术工作表明,系统事件在对恶意软件建模中是有效的,尤其是在恶意软件分类和规避的恶意软件检测中。例如,mohasisen等人描述了使用n元系统事件作为特征来对恶意软件家族进行分类。然而,在大数据的上下文中,没有任何优化的n元建模是不实际的。在另一种方法中,mohasisen等人使用系统事件的计数作为特征;然而,在该方法中,来自系统事件的细节被移除,并且这是不利的,因为缺失的细节可能是非常有信息性的。例
如,系统dll用于不同的情形,并且不能简单地建模为dll。bayer等人将样本建模为系统事件的集合,并且使用jaccard索引计算相似性。gionis等人描述了使用局部敏感散列(lsh)来有效地计算成对相似性,但是在该方法中,每个系统事件被认为是独立的并且对相似性度量的贡献是相等的。类似地,lindorfer等人将样本建模为一组系统事件,并且他们描述了使用jaccard索引作为距离度量。在这后一工作中,通过比较从不同环境监测的系统事件来标识规避的恶意软件。kirat等人描述了通过将事件映射到树结构来比较系统事件,其中父节点采集重要的组分(如事件操作),子节点表示不太重要的组分(如事件名称)。然后,通过层级确定相似性度量。然而,该分层结构不采集系统事件的底层活动。例如过程加载crypt32.dll很可能从远程服务器取得证书撤销列表(crl)。但是,任何这样的关系不能简单地通过检查底层事件操作类型和事件对象名来采集。在xu等人的专利中,基于时间模式移除冗余系统事件。但是,如果没有时间依赖性,则该方法不能确定事件的关系。
9.因此,仍然需要提供基于行为的恶意软件检测系统和方法,其可以优选地通过以暴露检测过程的更有用信息的方式并以一定级别评估系统事件来检测恶意软件攻击。


技术实现要素:

10.本发明提供了如所要求的用于检测执行环境中的异常行为的方法、装置和计算机程序产品。
附图说明
11.为了更完整地理解公开的主题及其优点,现在结合附图参考以下描述,在附图中:
12.图1描述了其中可以实现说明性实施例的示例性方面的分布式数据处理环境的示例性框图;
13.图2是其中可以实现说明性实施例的示例性方面的数据处理系统的示例性框图;
14.图3示出了其中可以实践本公开的技术的安全智能平台;
15.图4描绘了其中可实践本公开的技术的高级持续威胁(apt)平台;
16.图5示出了其中认知网络安全智能中心被用于管理端点机并且其中可以实现本公开的技术的操作环境;
17.图6描绘了本公开的恶意软件检测系统和系统事件建模器;
18.图7描绘了事件特征提取器成本函数;
19.图8描绘了由事件特征提取器计算的概率函数;以及
20.图9描绘了本公开的事件建模器的语义原型提取器所使用的余弦相似性函数。
具体实施方式
21.如以下将描述的,本文的技术利用机器学习来导出系统事件的语义模型以用于提供基于行为的恶意软件检测。通常,机器学习算法和相关联的机制作为在一个或多个计算机器中执行的软件来执行,例如,一个或多个计算机程序。作为背景,以下描述了可用于执行学习过程并使用所导出的系统事件模型的代表性计算机器和系统。还描述了若干执行环境(图3-5)。
22.现在参考附图,并且具体参考图1-2,提供了其中可以实现本公开的说明性实施例
的数据处理环境的示例性图。应当理解,图1-2仅是示例性的,并且不旨在断言或暗示关于其中可实现所公开的主题的各方面或实施例的环境的任何限制。在不脱离本发明的精神和范围的情况下,可以对所描述的环境进行许多修改。
23.现在参考附图,图1描绘了其中可以实现示例性实施例的各方面的示例性分布式数据处理系统的图形表示。分布式数据处理系统100可以包括其中可以实现示例性实施例的各方面的计算机网络。分布式数据处理系统100包括至少一个网络102,其是用于在分布式数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
24.在所描述的示例中,服务器104和服务器106与存储单元108连接到网络102。另外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以是例如个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110、112和114提供数据,例如启动文件、操作系统映像和应用。在所描绘的示例中,客户端110、112和114是到服务器104的客户端。分布式数据处理系统100可以包括未示出的附加服务器、客户端和其他设备。
25.在所描述的示例中,分布式数据处理系统100是因特网,其中网络102表示使用传输控制协议/因特网协议(tcp/ip)协议组来相互通信的网络和网关的世界范围的集合。因特网的核心是主节点或主机之间的高速数据通信线路的主干,其包括路由数据和消息的数千个商业、政府、教育和其它计算机系统。当然,分布式数据处理系统100也可以被实现为包括许多不同类型的网络,例如内联网、局域网(lan)、广域网(wan)等。如上所述,图1旨在作为示例,而不是作为对所公开的主题的不同实施例的架构限制,并且因此,图1中所示的特定元素不应被认为是对其中可以实现本发明的说明性实施例的环境的限制。
26.现在参考图2,示出了其中可以实现说明性实施例的各方面的示例性数据处理系统的框图。数据处理系统200是诸如图1中的客户端110的计算机的示例,实现本公开的说明性实施例的过程的计算机可用代码或指令可以位于其中。
27.现在参考图2,示出了可以实现说明性实施例的数据处理系统的框图。数据处理系统200是计算机的示例,例如图1中的服务器104或客户端110,其中可以放置用于说明性实施例的实现处理的计算机可用程序代码或指令。在该说明性示例中,数据处理系统200包括通信结构202,其提供处理器单元204、存储器206、永久性存储208、通信单元210、输入/输出(i/o)单元212和显示器214之间的通信。
28.处理器单元204用于执行可被加载到存储器206中的软件的指令。处理器单元204可以是一个或多个处理器的集合,或者可以是多处理器核,这取决于特定的实现方式。此外,处理器单元204可以使用一个或多个异构处理器系统来实现,其中主处理器与次级处理器存在于单个芯片上。作为另一个说明性示例,处理器单元204可以是包括相同类型的多个处理器的对称多处理器(smp)系统。
29.存储器206和永久性存储208是存储设备的示例。存储设备是能够临时和/或永久存储信息的任何硬件。在这些示例中,存储器206可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。永久性存储208可以根据特定的实现方式采取各种形式。例如,永久性存储208可以包括一个或多个组件或设备。例如,永久性存储208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的一些组合。永久性存储208使用的介质也可以是可移除的。例如,可移动硬盘驱动器可用于永久性存储208。
30.在这些示例中,通信单元210提供与其他数据处理系统或设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可通过使用物理和无线通信链路中的一者或两者来提供通信。
31.输入/输出单元212允许与可以连接到数据处理系统200的其它设备输入和输出数据。例如,输入/输出单元212可以提供用于通过键盘和鼠标的用户输入的连接。此外,输入/输出单元212可以向打印机发送输出。显示器214提供向用户显示信息的机制。
32.用于操作系统和应用或程序的指令位于永久性存储208上。这些指令可以被加载到存储器206中以便由处理器单元204执行。不同实施例的进程可以由处理器单元204使用计算机实现的指令来执行,该指令可以位于诸如存储器206的存储器中。这些指令被称为程序代码、计算机可用程序代码或计算机可读程序代码,其可以由处理器单元204中的处理器读取和执行。不同实施例中的程序代码可以在不同的物理或有形的计算机可读介质上实现,例如存储器206或永久性存储208。
33.程序代码216以功能形式位于可选择性地移除的计算机可读介质218上,并且可以被加载到或传送到数据处理系统200以便由处理器单元204执行。在这些示例中,程序代码216和计算机可读介质218形成计算机程序产品220。在一个示例中,计算机可读介质218可以是有形形式,诸如例如插入或放置到作为永久性存储208的一部分的驱动器或其他设备中以便传送到诸如作为永久性存储208的一部分的硬盘驱动器的存储设备上的光盘或磁盘。在有形形式中,计算机可读介质218还可以采取诸如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪存的永久性存储的形式。计算机可读介质218的有形形式也被称为计算机可记录存储介质。在一些情况下,计算机可记录介质218可以是不可移除的。
34.可替换地,程序代码216可以通过到通信单元210的通信链路和/或通过到输入/输出单元212的连接从计算机可读介质218传送到数据处理系统200。在说明性示例中,通信链路和/或连接可以是物理的或无线的。计算机可读介质还可以采用非有形介质的形式,例如包括程序代码的通信链路或无线传输。所示出的数据处理系统200的不同组件不意味着对可以实现不同实施例的方式提供架构限制。不同的说明性实施例可以在包括除了所示出的数据处理系统200的这些组件之外的组件或代替这些组件的数据处理系统中实现。图2中所示的其它组件可以与所示的说明性示例不同。作为一个示例,数据处理系统200中的存储设备是可以存储数据的任何硬件装置。存储器206、永久性存储208和计算机可读介质218是有形形式的存储设备的示例。
35.在另一示例中,总线系统可以用于实现通信结构202,并且可以包括一个或多个总线,诸如系统总线或输入/输出总线。当然,总线系统可以使用任何合适类型的架构来实现,该架构提供在附接到总线系统的不同组件或设备之间的数据传输。另外,通信单元可以包括用于发送和接收数据的一个或多个设备,诸如调制解调器或网络适配器。此外,存储器可以是例如存储器206或缓存,诸如在可存在于通信结构202中的接口和存储器控制器集线器中找到的。
36.用于执行本发明的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,编程语言包括诸如java
tm
、smalltalk、c 等的面向对象的编程语言,以及诸如“c”编程语言或类似的编程语言的传统的过程式编程语言。程序代码可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上
并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。
37.本领域的普通技术人员将理解,图1-2中的硬件可以根据实现而变化。除了图1-2中描述的硬件之外,或者作为其替代,还可以使用其它内部硬件或外围设备,例如闪存、等效的非易失性存储器或光盘驱动器等。此外,在不脱离所公开的主题的精神和范围的情况下,除了前面提到的smp系统之外,还可以将示例性实施例的进程应用于多处理器数据处理系统。
38.如将看到的,这里描述的技术可以结合诸如图1所示的标准客户端-服务器范例来操作,其中客户端机器与在一个或多个机器的集合上执行的因特网可访问的基于web的门户进行通信。终端用户操作能够访问门户并与门户交互的可连接因特网的设备(例如,台式计算机、笔记本计算机、支持因特网的移动设备等)。通常,每个客户端或服务器机器是诸如图2所示的包括硬件和软件的数据处理系统,并且这些实体通过诸如因特网、内联网、外联网、专用网或任何其它通信介质或链路等网络彼此通信。数据处理系统通常包括一个或多个处理器、操作系统、一个或多个应用程序以及一个或多个实用程序。数据处理系统上的应用提供对web服务的本机支持,包括但不限于对http、soap、xml、wsdl、uddi和wsfl等的支持。关于soap、wsdl、uddi和wsfl的信息可从万维网联盟(w3c)获得,万维网联盟负责开发和维护这些标准;关于http和xml的进一步信息可从因特网工程任务组(ietf)获得。假定熟悉这些标准。
39.诸如上述的计算机器可以提供机器学习。众所周知,机器学习涉及使用从数据迭代学习的分析模型和算法,从而允许计算机找到数据中的洞察而无需明确地编程到看哪里。机器学习可以是被监督的或无监督的。被监督的机器学习涉及使用训练示例,机器可以通过该训练示例学习如何执行给定任务。相反,无监督的机器学习涉及提供未经标记的数据对象,然后机器处理该数据对象以确定数据的组织。一种公知类型的无监督的机器学习是聚类,其指的是将一组观察分配到子集中的概念(子集被称为“聚类”),使得聚类内的观察具有相似度。聚类的常见方法是k均值聚类,k均值聚类是基于属性或特征将对象分类或分组为k个群组的算法,其通常通过最小化数据和对应聚类的质心之间的距离的平方来实现。经由聚类的无监督的机器学习提供了对数据进行分类的方式。公知的还有其它聚类算法。
40.具有事件取证的安全智能平台
41.图3中示出了其中可以实践本公开的技术的代表性安全智能平台。
42.通常,平台提供搜索驱动的数据探索、会话重建和取证智能以辅助安全事件调查。在相关部分中,平台300包括一组分组采集设备302、事件取证模块设备304、分布式数据库306和安全智能控制台308。分组采集和模块设备被配置为网络设备,或者它们可以被配置为虚拟设备。分组采集设备302操作用于采集离开网络的分组(使用已知的分组采集(pcap)应用编程接口(api)或其他已知技术),并且将该数据(例如,实时日志事件和网络流)提供给分布式数据库306,其中数据被存储并且可用于由取证模块304和安全智能控制台308进行分析。分组采集设备以面向会话的方式操作,采集流中的所有分组,并且索引元数据和有效载荷以使得能够进行快速搜索驱动的数据探索。数据库306提供取证库,该取证库是包括
由分组采集设备收集的信息的分布式且异构的数据集。控制台308提供web或云可访问的用户界面(ui),其暴露“取证”仪表板标签以促进调查者的事件调查工作流。调查者使用仪表板来选择安全事件。事件取证模块304取得用于所选择的安全事件的所有分组(包括元数据、有效载荷等),并重构会话以供分析。实现该类型的事件调查工作流的代表性商业产品是security incident forensics v7.2.3(或更高)。调查者使用这个平台在存储在数据库中的分布式和异构数据集上搜索,并接收统一的搜索结果列表。搜索结果可在网格中被合并,并且它们可在“数字印象(digital impression)”工具中被可视化,使得用户可探索标识之间的关系。
43.通常,用于上述系统的设备被实现为网络连接的非显示设备。例如,专门为执行传统的面向中间件服务的体系结构(soa)功能而构建的设备在某些计算机环境中是普遍的。soa中间件设备可以简化、帮助保护或加速xml和web服务部署,同时扩展企业上的现有soa基础设施。利用中间件专用硬件和轻量中间件栈可以解决传统软件解决方案所经历的性能负担。此外,设备形状因数提供了用于实现中间件soa功能的安全、可消耗的封装。这些类型的设备提供的一个特定优点是从后端系统卸载处理。这种类型的网络设备通常是机架安装的设备。该设备包括物理安全性,其使得该装置能够用作敏感信息的安全库。通常,制造设备,预先加载软件,然后部署在企业或其他网络操作环境内或与企业或其他网络操作环境相关联地部署设备;可替换地,该盒可以被本地定位,然后被提供有标准或定制的中间件虚拟映像,该中间件虚拟映像可以被安全地部署和管理,例如,在私有或内部部署的云计算环境内。该设备可以包括硬件和固件密码支持,可能用于加密硬盘上的数据。
44.这种类型的设备可以促进安全信息事件管理(siem)。例如,如上所述,securitysiem是包括可以被配置为这种类型的设备的分组数据采集设备的企业解决方案。该设备可操作例如以采集实时的第4层网络流数据,然后可以例如使用深度分组检查和其他技术从该流数据分析第7层应用有效载荷。其使用基于流程的网络知识、安全事件相关性和基于资产的漏洞评估的组合来提供情况感知和合规性支持。在基本的qradar siem安装中,诸如图4所示的系统被配置为收集事件和流数据,并生成报告。用户(例如,soc分析员)然后可以调查问题以确定网络问题的根本原因。
45.概括地,安全信息和事件管理(siem)工具提供了用于分析、管理、监测和报告it安全事件和漏洞的服务范围。该服务通常包括收集关于数据网络上的被监测的访问和意外发生的事件,并在相关上下文中分析它们以确定它们对剖析高阶安全事件的贡献。它们还可以包括防火墙配置、网络拓扑和连接可视化工具的分析,用于查看当前和潜在的网络流量模式、资产弱点与网络配置和流量的相关性以识别活动攻击路径和高风险资产,以及支持网络流量、拓扑和弱点暴露的策略遵从性监测。一些siem工具具有基于通过公共网络信息模型处理的设备配置的变换分析来建立诸如路由器、防火墙和交换机的被管理的网络设备的拓扑的能力。结果是可以用于安全威胁的模拟、防火墙过滤器的操作分析和其它应用的位置组织。然而,主设备标准是完全基于网络的和基于网络配置的。虽然存在多种方式来启动针对被管理的资产/系统的发现能力,并且虽然半自动地管理用户界面中的包括(即,通过用户界面的方法,其允许基于对基础网络中的初始配置和改变/删除两者的发现而被数据驱动的对拓扑及其显示和格式化的半自动的、基于人类输入的放置),但是在产生全自动
放置分析和建议的放置分析方面没有提供任何内容。
46.高级持续威胁(apt)预防
47.apt缓解和预防技术是公知的。例如,trusteer是防止漏洞利用(exploit)和恶意软件损害企业端点并提取信息的自动解决方案。这种类型的解决方案通常提供若干安全层,即利用防止、数据泄露防止和证书保护。
48.图4描绘了典型实施例,其中apt解决方案一般被架构为在企业端点402中执行的代理代码400,以及使得it安全性能够从中央控制位置管理(被管理的端点和不被管理的端点两者的)部署的基于web的控制台404。代理代码400通过监测应用406执行敏感操作(例如,将文件写入文件系统)时的应用状态来操作。通常,代理400使用合法应用状态的白名单来验证敏感操作在已知的合法状态下执行(或不执行)。漏洞利用将试图在未知(未列入白名单)状态下执行敏感操作,因此它将被停止。该方法使得apt代理能够准确地检测和阻止已知的和零日漏洞利用(zero-day exploit),而不知道任何关于威胁或漏洞利用的信息。“代理”可以是任何基于代码的模块、程序、进程、组件、线程等。
49.图4描述了apt攻击通常如何展开以及apt解决方案操作以有效阻止侵入的点。例如,这里攻击者408使用鱼叉式网络钓鱼电子邮件410来向雇员发送武器化文档,该文档包括隐藏的漏洞利用代码412。当用户用查看器打开文档时,诸如adobe acrobat或word,漏洞利用代码运行并附加到应用程序漏洞(application vulnerability)以便在雇员计算机402上默默地下载恶意软件。雇员永远不会意识到这种下载。另一选项是向用户发送到恶意站点的链接414。恶意站点可以是包括漏洞利用代码的恶意网站416或者是被泄密(例如,通过水洞攻击)的合法网站。当雇员点击链接并且浏览器呈现html内容时,漏洞利用代码运行并锁定到浏览器(或浏览器插件)漏洞上,以便在雇员计算机上默默下载恶意软件。链接还可以将用户引导到网络钓鱼站点(例如伪造的web应用登录页面)418以说服用户提交公司证书。在用高级恶意软件感染计算机402或损害公司证书之后,攻击者408在公司网络内建立了立足点,然后可以推进攻击。
50.如所描绘的,代理400保护企业在以下几个连接处免受这样的威胁:(1)恶意利用防止420,其防止恶意利用企图损害用户计算机;(2)泄露防止422,其防止恶意软件与攻击者通信并且如果机器已经感染恶意软件则发出信息;以及(3)证书保护424,其防止用户在未批准的公司站点(例如,包括网络钓鱼或诸如社交网络或电子商务等公共站点)上使用公司证书。在一种已知的方法中,代理通过使用合法应用状态的白名单来监测应用及其操作,从而执行这些和相关的操作。
51.通过附加的背景,信息窃取恶意软件可由用户直接安装在端点上而无需漏洞利用。为了泄漏数据,通常恶意软件必须直接或通过受损害的应用程序进程与因特网通信。高级恶意软件使用一些规避技术来绕过检测。例如,高级恶意软件损害另一个合法的应用进程,并且可能通过合法的网站(如论坛和google docs)与攻击者通信。代理400还可操作以停止展示数据渗露(exfiltration)状态的不可信代码的执行。为此,优选地,它验证仅允许可信程序使用数据过滤技术来与外部网络通信。代理优选地使用若干技术来识别未授权的渗露状态和恶意通信通道,并阻止它们。由于它监测主机本身上的活动,所以它具有良好的可见性,并且可以准确地检测和阻止这些渗漏状态。
52.这里对所标识的商业产品的引用不是限制性的,因为这里的方法可以利用任何
apt解决方案或功能来实现(即使嵌入在其它系统中)。
53.认知网络安全分析
54.图5描绘了包括认知网络安全智能中心500和端点502的基本操作环境。端点502是运行系统管理代码(软件)的联网设备,该代码使得智能中心500能够管理和监测端点。
55.端点通常是数据处理系统,例如上面在图2中描述的。智能中心500可以实现为例如图3中描述的安全管理平台,与例如图4中描述的apt解决方案相关联,或者在其他管理解决方案中。因此,例如,提供端点管理的已知商业产品和系统包括其为系统管理员提供远程控制、补丁管理、软件分发、操作系统部署、网络访问保护以及硬件和软件清单功能。该类型的商业系统可以被增强以包括本公开的端点进程间活动提取和模式匹配技术,或者该技术可以在专用于该目的的产品或系统中实现。
56.在典型的实现中,端点是运行诸如windows、mac osx、vmware esx、linux、unix的操作系统的物理或虚拟机器或设备,如诸如windows phone、symbian、ios和android的各种移动操作系统。网络安全智能中心通常作为包括多个机器和应用软件的网络可访问安全管理平台来操作。通常,智能中心支持网络安全分析,例如使用机器学习等。智能中心可以以专用方式操作以支持多个端点,或者代表各自具有其自己的端点的多个企业的“即服务”。通常,端点机器以客户端-服务器范例与智能中心通信,如图1所示和如上所述。智能中心可以在基于云的操作环境中被定位和访问。
57.在该方法中,事件(诸如进程间的事件)从端点(诸如端点502)发送到在智能中心500中执行的检测服务器,在此处对该事件进行分析。优选地,攻击检测发生在检测服务器中。该方法提供了有效的、系统的(与仅仅点对点(ad hoc)相反)机制,以例如经由进程间事件来记录端点活动,以用抽象(网络图)来描述感兴趣的恶意或可疑行为,以及以抽象模式来匹配具体活动(如在所记录的事件中所表示的)。该匹配使得系统能够对恶意/可疑行为采取动作(例如,通过暂停所涉及的进程、警告、丢弃正在进行的网络会话、暂停正在进行的磁盘操作等),以及辅助安全分析员定位感兴趣的活动(例如,威胁搜寻)或确定可以在工作流中实现以解决可疑或恶意活动的下一步骤。
58.系统事件的自动语义建模
59.以上述内容作为背景,现在描述本公开的系统事件建模技术及其在基于行为的异常检测中的使用。
60.在图6中描绘了关于被监测的计算系统601而实践了本公开的技术的基于行为的恶意软件检测系统600。被监测的计算系统605可以如上关于图2所述的而实现,并且假设其包括执行一组(运行时)进程603。例如,在例如数据存储器607中连续地监测和记录系统事件,例如,每个进程603的系统调用和api调用。监测、识别和存储系统事件的特定方式不是本公开的一个方面。在典型的实现中,例如通过操作系统或通过系统调用监测和程序工具记录这种类型的系统活动。本公开的恶意软件检测系统600被配置为在例如图3、图4或图5的上述操作系统环境中的任一个中执行。恶意软件系统600中的多个组件中的一个可以在基于云的架构中执行。在变型实现方式中,恶意软件检测系统在计算系统(其系统事件正被监测)中本机地执行。
61.同样如图6所示,本公开的系统事件建模器的代表性处理流水线包括三(3)个所描绘的模块,即:事件规范器602,(2)事件特征提取器604和(3)进程编码器606。通常,每个该
模块以软件实现,即,作为在一个或多个硬件处理器中执行的一组计算机程序指令实现。这些模块可以彼此集成、共同定位或分布式的,或者以其他方式在一个或多个计算实体中实现。这些功能中的一个或多个可以在云中实现。
62.在操作中,事件规范器602扫描在数据存储器607(例如,存储系统事件日志的数据库)中收集的原始系统事件。如其名称所暗示的,事件规范器602例如使用域知识608和诸如目录层次610的统计方法来规范化事件名称。该操作是有利的,因为它减少了需要由其它模块处理的独特系统事件的数量。在操作中,事件规范器大大减少了这些单例事件的数量,从而提供了计算和存储效率。如下面将更详细描述的,事件特征提取器604优选地使用事件共现策略,并且通过执行基于上下文的事件建模来提取系统事件的一个或多个特征。进程编码器616将进程603(其由多个系统事件组成)投影到特征向量空间。系统事件建模器的输出是语义系统事件模型616。如所描绘的,该模型然后由恶意软件检测器618使用,该恶意软件检测器操作以提供基于行为的恶意软件检测。
63.现在更详细地描述系统事件建模器的上述模块中的每一个。
64.如上所述,事件规范器进程602的基本目标是减少事件变化。规范器602经由域知识608和统计分析610处理原始系统事件,以减少系统事件数据集。优选地,领域知识和统计分析两者都被模块使用,尽管这不是必需的。在以下示例中可以看到该操作,该操作利用来自windows os的系统事件样本。这仅仅是代表性的使用情况,并且不旨在限制。在windows中,文件或注册表可以具有多个不同的名称,并且这是应用域知识608对于解决事件名称的不一致性有用的场景。在该示例中,假设域知识608提供以下事件名称规范化的详细规则:(1)标识sid、guid和散列,并用其类型(例如《sid》和《md5》)来替换它;(2)用其对应的系统环境变量替换完整目录;(3)标识通用命名约定,例如重命名\\?\c:\windows\system32\到c:\windows\system32;(4)用hkey_local_machine\software\classes替换hkey_classes_root;以及(5)从url中移除该路径,只保留远程服务器的完全合格的域名(fqdn)。除了应用域知识608之外,事件规范器(在该示例中)应用一个或多个统计方法610来减少事件名称的变化。因此,例如,这里事件规范器进程602对事件名(即文件名和注册表项)以及目录分层结构中的所有祖先的发生进行计数。然后,进程设置最小发生的阈值(或者该阈值被预配置),然后该进程用满足该要求的其最接近的祖先替换该单事件。如上所述,这些仅仅是用于window os系统事件用例的事件规范器的代表性操作。例如,通过使用域知识608,知道在windows操作系统中\\?\c:\windows\system32\等同于c:\windows\system32\。例如,使用统计方法610,系统将从注册表hkey_current_user\software\microsoft\windows\currentversion\run中移除应用程序名称。
65.概括地,事件规范化进程所应用的域知识和统计方法通常是实现特定的,其总体目标是将原始系统事件数据集缩减到可管理的大小以用于后续处理。
66.事件特征提取器模块604优选地通过事件共现来提取系统事件的一个或多个特征(已经由事件规范器602规范化),其中语义从训练中事件的特定共现来推断。因此,在示例中,配置文件的语义可以表示如下:向量(“vim”)-向量(“vimrc”) 向量(“bash”)=向量(“bashrc”);另一示例,接收-n-保存过程的语义可以由下式表达:向量(“nginx从ip接收数据”)-向量(“nginx写入到文件”) 向量(“sendmail从ip接收数据”)=向量(“sendmail写入到文件”))。当然,这些仅仅是代表性的示例
67.特征提取器被配置为将事件投影到向量空间,并且然后应用基于上下文的事件建模。优选地,并且如将描述的,基于上下文的事件建模从word2vec中的skip-gram模型导出,并且它基于如果事件出现在相同的观察样本中则它们是相关的这一洞察。特征提取器优选地还实现目标概率误差函数,如将描述的。
68.具体地,假设存在n个样本s={s1,s2,...,sn},并且每个样本包括系统事件s={e},e∈e的集合,其中e是总系统事件的集合。然后,如图7所示,将成本函数c定义为给定其上下文事件e'的目标系统事件e的对数似然性的总和。在该等式中,概率e|e'由事件的特征确定。现在,令fe是事件e的特征,令f'e是事件e的辅助权重,然后如图8所示对概率进行建模,其中fe·fe’是fe和f
e’的内积。优选地,例如使用梯度下降来训练特征和辅助权重。
69.如上所述,优选地,事件特征提取器模块提取系统事件的特征。根据这里的优选方法,该模型是从skip-gram模型导出的,该模型是mikolov等人在自然语言处理中首先提出的。如所知的,自然语言处理(nlp)是文本的解析和语义解释,其允许系统学习、分析和理解人类语言。文本表示在许多自然语言处理(nlp)任务中扮演重要角色,例如文档分类和聚类、意义消歧、机器翻译和文档匹配。在mikolov方法中,使用分布或上下文信息以及简单的神经网络模型来获得词和短语的向量空间表示。其中之一是word2vec,其是指将大文本语料库中的单词表示为n维空间(或n维特征空间)中的向量使得相似的单词彼此更接近的一类模型。一种特定模型是skip-gram模型。skip-gram模型试图在给定目标单词(中心单词)的情况下预测源上下文单词(周围单词)。在该模型中,上下文单词由滑动窗口确定。
70.根据本公开,并且如以下所解释的,该概念被扩展到自动提取系统事件的特征。特别地,在本文描述的模型中,优选地,相同观察样本中的所有其他事件被认为是目标事件的“上下文”。然后,所述技术优选地列举每个观察样本中的所有可能对,从而提供相关的“上下文”或语义含义。在图8所示的等式中,使用辅助权重f’,因为算法模拟神经网络模型,并且辅助权重对应于神经网络的输出层中的权重。
71.进程编码器模块606操作以将由多个系统事件组成的进程投影到特征向量空间。为此,进程编码器模块606将一个或多个语义原型定义为在特征空间中覆盖在距离阈值d
t
内的所有其他事件的代表性事件。通常,存在用于查找语义原型的若干解决方案。如下进行,被描述为语义原型提取器612的第一种解决方案。在每次迭代期间,编码器随机选取一个事件e
p
作为原型,并且如果e和e'之间的距离小于d
t
,则去除所有事件e'。如果还有事件,则例程返回并挑选另一原型事件,且该过程迭代直到完成。第二种解决方案被描述为统计特征616,其代替使用分层聚类来确定语义原型,并且当聚类之间的距离大于d
t
时停止该聚类算法。前一种方法有效地识别保留特征空间的空间结构的原型,而后一种方法集中于寻找最佳和准确的语义原型。通过标识语义原型,进程编码器606移除冗余事件,但仍保留事件特征空间的空间关系。
72.在去除冗余事件之后,进程编码器然后优选地通过测量进程的语义原型和系统事件之间的相似性来确定可观察样本的特征。形式上,假设存在m个语义原型ep={e1,e2,...,em},并且目标样本具有l个事件es={e'1,e'2,
···
,e'
l
}。令sim(e,e')为事件e和e'之间的余弦相似性。然后,如图9所示,计算样本特征ff的第i个元素,优选地,进程编码器使用统计度量作为粗粒度特征fc,另外,进程编码器计算每个操作的事件的百分比,以及训练集中不存在的非常见事件的百分比。该特征对于捕捉具有未知行为的程序是有用的。为了完成
该处理,然后将程序的特征计算为细粒度特征ff和粗粒度特征fc的级联。
73.返回参考图6,系统事件语义模型616的自动生成是同步或异步地、按需或响应于发生而执行的,并且该语义模型通常被周期性地、连续地或在给定发生时更新。如前所述,系统事件语义模型616然后在基于行为的恶意软件检测器618中使用以为计算系统提供前进恶意软件检测。
74.系统事件语义模型可用于便于对除其系统事件被记录并用于便于模型构建的计算系统以外的计算系统的恶意软件检测。
75.本公开的系统事件建模技术(其自动提取系统事件的特征)具有显著的优点。首先,该技术采集这些事件之间和之中的语义关系。训练是自动的,并且它需要很少的域知识。特别地,并且如上所述,自动学习(一个或多个)嵌入事件之间的语义关系;也就是说,为了使学习更有效,优选地在原始数据被提供给模型的训练阶段之前存在预处理步骤(即,事件规范器)。所需的域知识仅仅是实现规范化功能所需的知识。
76.此外,训练算法在计算上是有效的,尤其是在大数据集(大数据)的背景下,并且它适合于处理甚至大的稀疏数据集。如先前所描述,本公开的技术利用了如果事件的特征频繁地出现在同一可观察样本中则事件的特征在向量空间中应接近的概念。如果两个事件很可能在同一场景中发生(例如,检查网络连接、杀死防病毒服务等),则它们在特征空间中是接近的。如上所述,该模型能够重构系统事件之间的共现的概率,其中该概率由系统事件的特征确定。由于该假设,该特征采集可能出现在相同场景中的系统事件和组事件之间的语义关系。由于计算复杂性和人类直觉,主分量分析(pca)(其是寻找语义关系的替代方法)不满足这些要求。pca在计算上是昂贵的,尤其是当观测的数量和特征维度都很大时。如果将系统事件视为二进制特征,则特征向量是高度稀疏的,因此pca没有良好的性能。此外,pca的结果对于人类分析员来说并不直观。降维后的新特征向量是原始特征的线性组合,缺乏语义,不易被人理解。
77.实现用于系统事件建模的技术以自动提取一个或多个特征,这些特征然后可以用于分类和检测恶意软件。如已经描述的,这里的方法涉及构建语义模型,其是支持实体建模的一种信息模型,在这种情况下,实体是系统事件及其关系。所描述的模型采集事件之间的语义关系。此外,模型的训练是自动的,需要很少的域知识,并且该方法(其优选地包括训练之前的预处理)是高效的。
78.还如所提到的,这里的技术优选地应用类似于自然语言处理中的word2vec中的skip-gram模型的方法。在该模型中,上下文单词由滑动窗口确定。事件建模器在这里处理事件,而不是单词。在本文所述的模型中,同一可观察样本中的所有其他事件被认为是目标事件的上下文。然后,所述技术优选地列举每个观察样品中的所有可能对。尽管这种方法在理论上增加了训练集,但是事件的稀疏性保证了逐对枚举的实际数量不影响计算效率。
79.如上所述,所述技术的重要假设是,如果事件频繁出现在同一样本中,则事件的特征在向量空间中应该是接近的。在以上述方式训练后,模型能够重建系统事件之间的共现概率,其中该概率由系统事件的特征确定。由于该假设,特征采集可能出现在同一场景中的系统事件和组事件之间的语义关系。
80.还如所提到的,该技术优选地利用称为skip-gram的神经网络导出的构造,其中相同样本中的其他事件被认为是目标事件的上下文。为了建立模型,列举了每个观察样本中
的所有可能对。在该模型中,并且给定包括系统事件集和目标系统事件的样本,该样本中的其他事件被认为是目标事件的“上下文”,并且列举了所有可能的系统事件对。
81.如上所述,在训练模型之前,优选地,应用域知识和基于统计的技术来减少单例事件的数量。
82.本文的技术使得机器能够自动理解与语义相关联的机器事件。该方法优选地利用高维向量处理,其更全面并且即使对于稀疏数据集也高效地处理大量事件。
83.本文的方法被设计成在安全系统内或与安全系统相关联地以自动化方式实现,安全系统诸如图3中的seim设备或系统、如图4中所描绘的apt平台、图5中的基于云的网络安全分析系统、或其中系统事件被采集并可用于挖掘和检查的某一其他执行环境。所述的系统事件建模器(或其任何组件)可以驻留在这些设备、系统或平台中的任何一个中。然而,其中实现事件建模器技术的特定操作平台或计算环境不是限制。机器学习本身可以使用机器学习平台或服务来“作为服务”提供。
84.可替代地,上述功能可以实现为独立的方法,例如由处理器执行的基于软件的功能,或者它可以作为被管理的服务(包括作为经由soap/xml接口的web服务)而可用。本文描述的特定硬件和软件实现细节仅用于说明性目的,而不意味着限制所描述的主题的范围。
85.更一般地,在所公开的主题的上下文中的计算设备每个都是包括硬件和软件的数据处理系统(诸如图2中所示),并且这些实体通过诸如因特网、内联网、外联网、专用网络或任何其它通信介质或链路的网络彼此通信。数据处理系统上的应用提供对web和其它已知服务和协议的本机支持,包括但不限于对http、ftp、smtp、soap、xml、wsdl、uddi和wsfl等的支持。关于soap、wsdl、uddi和wsfl的信息可从万维网联盟(w3c)获得,万维网联盟负责开发和维护这些标准;关于http、ftp、smtp和xml的进一步信息可从因特网工程任务组(ietf)获得。假定熟悉这些已知的标准和协议。
86.这里描述的机制可以在各种服务器侧架构中实现或结合各种服务器侧架构来实现,包括简单的n层架构、门户网站、联合系统等。本文的技术可以在松散耦合的服务器(包括基于“云”)环境中实践。
87.更一般地,本文描述的主题可以采取完全硬件实施例、完全软件实施例或包括硬件和软件元素两者的实施例的形式。在优选实施例中,功能以软件实现,该软件包括但不限于固件、驻留软件、微代码等。此外,如上所述,基于标识上下文的访问控制功能可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合使用的程序代码。为了本说明书的目的,计算机可用或计算机可读介质可以是能够包括或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何装置。该介质可以是电、磁、光、电磁、红外或半导体系统(或装置或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和光盘。光盘的当前示例包括光盘只读存储器(cd-rom)、光盘读/写(cd-r/w)和dvd。计算机可读介质是有形物品。
88.计算机程序产品可以是具有用于实现一个或多个所描述的功能的程序指令(或程序代码)的产品。这些指令或代码可以在通过网络从远程数据处理系统下载之后存储在数据处理系统中的计算机可读存储介质中。或者,这些指令或代码可以存储在服务器数据处
理系统中的计算机可读存储介质中,并且适于通过网络下载到远程数据处理系统,以便在远程系统内的计算机可读存储介质中使用。
89.在代表性实施例中,基于机器学习的技术在专用计算机中实现,优选地在由一个或多个处理器执行的软件中实现。软件被维护在与一个或多个处理器相关联的一个或多个数据存储或存储器中,并且软件可以被实现为一个或多个计算机程序。共同地,该专用硬件和软件包括上述功能。
90.虽然以上描述了由本发明的某些实施例执行的操作的特定顺序,但是应当理解,这样的顺序是示例性的,因为替代实施例可以以不同的顺序执行操作、组合某些操作、重叠某些操作等。说明书中对给定实施例的引用指示所描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。
91.最后,虽然已经单独描述了系统的给定组件,但是本领域普通技术人员将理解,可以在给定指令、程序序列、代码部分等中组合或共享一些功能。
92.本文的技术提供了对另一技术或技术领域的改进,其中:恶意软件检测器、端点管理系统、apt解决方案、安全事件和事件管理(siem)系统以及网络安全分析解决方案。
93.这里的系统事件建模器技术可用于发现和作用于企业端点机之外的其它机器中的活动。此外,如技术人员将理解的,如本文描述的语义模型在运行时将(一个或多个)事件转到向量空间中,同时保持它们之间的语义关系。这提供了显著的优点,因为人类不需要明确地指定任何语义关系,从而减少对域知识的依赖。本文的这种方法通常适用于帮助系统管理员、安全分析员、软件开发者和其他人更好地理解感兴趣的软件的行为。因此,例如,软件开发者(在将模型结果提供到分析器中之后)可以使用本文的方法来发现软件缺陷或未定义的功能。系统管理员可以使用该方法来揭示与指定的策略或定义的使用不一致的行为。安全分析员可以使用该方法来检测恶意软件、攻击、高级持续性威胁(apt)等。总之,所描述的模型和方法提供了可由多个应用程序和用例使用的核心编码/嵌入功能。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献