背景技术:
本发明,于其一些实施例中,是有关于用于恶意连线检测的多个系统及多个方法,特别是,但非专门是,有关于用于检测一恶意代码的多个系统及多个方法,其中所述恶意代码利用多个网络连线进行一恶意活动及/或通信。
某些种类的恶意代码攻击多个计算机且使用所述主计算机以通过一网络连线与多个其它服务器连接。于一示例中,所述网络连线是由所述恶意代码本身所引发,例如,以传送一被窃取的数据至一远程服务器。于另一示例中,所述恶意软件将一代码插入至一正当的应用程序,接着,所述被插入的代码引发至一远程服务器的一连线,以传送一被窃取的数据。
一种恶意攻击的一示例为一先进的有针对性的攻击(ata),所述先进的有针对性的攻击为一复杂的攻击,于所述复杂的攻击中,未经授权的一方获得存取一网络的权限,且保持长时间不被检测到。大多数的先进的有针对性的攻击的意图为窃取数据,而非为对所述网络造成损害。多个先进的有针对性的攻击是针对具有高价值信息的多个行业中的多个组织,所述多个行业例如为多个信用卡服务商、多个政府机关,及金融服务业。
多个反先进的有针对性的攻击的解决方案的多个示例是基于所述攻击的检测或所述渗透的恶意代码的检测。于另一示例中,多个其它的工具被设计以检测在行动中的一不正常或恶意活动。
技术实现要素:
依据本发明的一些实施例的一方面,一种用于检测及防止建立用于恶意通信的一网络连线的一企图的计算机实现的方法被提供,所述方法包含步骤:检测用于建立一网络连线的一连线建立过程,其中所述连线建立过程是由在一用户端上运行的一代码所引发;分析在所述引发代码的至少一堆栈跟踪中的多笔记录,以检测建立一恶意通信的一尝试,其中所述网络连线被使用于一恶意活动;及当所述分析的步骤检测到基于所述网络连线建立所述恶意通信的所述尝试时,阻挡所述网络连线的建立。
可选地,所述分析所述多笔记录的步骤包含:分析流动数据,其中所述流动数据包括所述至少一堆栈跟踪,及由下述组成的群组中的至少一成员:与所述连线建立相关的线程数据、模块数据及程序数据。
可选地,所述方法还包含︰分别在每一用户处收集与所述至少一堆栈跟踪及/或流动数据相关的一数据;分别从每一用户传输与所述至少一堆栈跟踪相关的所述数据至一中央服务器;其中由所述中央服务器进行所述分析的步骤。可选地,与所述至少一堆栈跟踪相关的所述数据包括一动态代码。
可选地,所述方法还包含︰当基于所述网络连线建立所述恶意通信的所述尝试没有被检测到时,准许所述连线建立过程激活所述网络连线。
可选地,所述分析的步骤在所述网络连线的激活前被进行。
可选地,当所述网络连线被激活时,所述分析的步骤在由所述引发应用程序进行的一恶意活动及/或通信相关数据前送之前被进行。
可选地,所述至少一堆栈跟踪是在依据用于引发所述连线建立过程的一互联网协议的一传输控制协议(tcp)而执行的所述连线建立期间被收集。
可选地,在所述检测后停止所述连线建立过程。
可选地,所述至少一堆栈跟踪及/或流动数据是在引发所述连线建立过程时被获得。
可选地,所述至少一堆栈跟踪包括多个堆栈跟踪的至少一顺序,其中所述多个堆栈跟踪是在所述连线建立过程中的多个点位被获得;及所述分析的步骤包含:将所述多个堆栈跟踪与流动数据分析匹配,其中所述流动数据分析代表建立所述恶意通信的所述尝试。
可选地,所述分析的步骤包含:分析所述至少一堆栈跟踪的所述多笔记录,以用于一未知模块及一列入黑名单的或列入白名单的模块中的至少一个,其中所述未知模块及所述列入黑名单的或列入白名单的模块中的至少一个代表所述引发应用程序的感染。
可选地,所述分析的步骤包含:分析所述至少一堆栈跟踪,以用于被多个未被感染的应用程序使用的连线建立流动数据分析,其中所述多个未被感染的应用程序在进行所述分析的步骤的一中央服务器处被指定为有效。
可选地,所述分析的步骤包含:比对所述至少一堆栈跟踪与连线建立堆栈流动数据分析,其中当所述应用程序没有被一被插入代码感染时,所述连线建立堆栈流动数据分析被预期将会被所述应用程序产生,其中所述被插入代码引发建立所述恶意活动/通信的所述尝试。
依据本发明的一些实施例的一方面,一种用于检测建立用于恶意通信的一网络连线的一企图的系统被提供,所述系统包含︰至少一闸道器,被配置以:接收一代码的至少一堆栈跟踪,其中所述代码是在用于与一基于网络的服务器建立一网络连线的一连线建立过程中运行在一用户端上;分析在所述至少一堆栈跟踪中的多笔记录,以决定建立一恶意通信的一尝试存在或不存在,其中所述网络连线被使用于一恶意活动;当所述多笔记录被与一恶意流动数据分析匹配时,检测建立用于所述恶意通信的所述网络连线的一企图;及产生一信号,所述信号代表使用所述网络连线建立所述恶意通信的所述尝试。
可选地,所述接收的步骤包含:接收至少一流动数据;及所述分析所述多笔记录的步骤包含:分析所述流动数据,其中所述流动数据包括所述至少一堆栈跟踪,及由下述组成的群组的至少一成员:与所述连线建立相关的线程数据、模块数据及程序数据。
可选地,所述至少一闸道器存在于一远程服务器,其中所述远程服务器通过一网络与所述用户端通信。
可选地,所述至少一闸道器为存在于所述用户端的一软件模块。
可选地,所述至少一闸道器为一代理服务器。
可选地,所述系统还包含:用于安装在所述用户端的一终点模块,被配置以:检测由所述代码引发的所述网络连线的建立;传输所述至少一堆栈跟踪及/或流动数据至所述闸道器;从所述闸道器接收所述信号;及阻挡所述连线建立过程以防止基于所述被接收的信号而激活所述网络连线。
可选地,所述至少一闸道器还被配置以防止基于所述被接收的信号而激活所述网络连线。
可选地,所述系统还包含:与所述至少一闸道器通信的一管理服务器,其中所述管理服务器被配置以收集被所述至少一闸道器产生的所述信号,以用于与每一用户相关的每一网络连线请求。可选地,所述管理服务器还包括一使用者接口,被配置以让一使用者进行由下述组成的群组的至少一成员:审查所述多个被产生的信号、管理所述多个被产生的信号、中央控制所述至少一闸道器的所述配置、中央控制与所述至少一闸道器通信的至少一用户端的所述配置、监控所述至少一闸道器的状态,及监控与所述至少一闸道器通信的至少一用户端的状态。
可选地,在所述用户端上运行的所述应用程序为一浏览器。
可选地,所述连线建立过程被一应用编程接口管理,其中所述应用编程接口代表用于所述网络连线的一本地终点。
可选地,在所述用户端上运行的所述应用程序为一管理程序的一部分。
可选地,在所述用户端上运行的所述应用程序为一未经授权的恶意应用程序。
可选地,所述系统还包含:以一堆栈流动数据分析来更新所述至少一闸道器,以识别从多个其它用户端而来的一相似堆栈流动数据,其中所述堆栈流动数据分析与被识别出建立用于所述恶意通信的所述网络连线的所述企图相关联。
可选地,所述至少一闸道器还被配置以:当所述网络连线为激活的时,接收所述应用程序的至少一堆栈跟踪;及分析在所述至少一堆栈跟踪中的多笔记录,以使用所述激活的网络连线为一后连线建立恶意活动进行监控。
可选地,所述至少一闸道器还被配置以:从多个用户的每一个接收多个至少一流动数据;及分析所述多个至少一流动数据以检测一协同攻击。
依据本发明的一些实施例的一方面,一种用于检测建立用于恶意通信的一网络连线的一企图的计算机程序产品被提供,所述计算机程序产品包含︰至少一非瞬时性的计算机可读存储介质,及多个程序指令存储于所述至少一存储介质中的至少一个上,所述多个程序指令包含:多个程序指令,用于检测用于建立一网络连线的一连线建立过程,其中所述连线建立过程是由在一用户端上运行的一代码所引发;多个程序指令,用于分析在所述引发代码的至少一堆栈跟踪中的多笔记录,以检测建立一恶意通信的一尝试,其中所述网络连线被使用于一恶意活动;及多个程序指令,用于当所述分析的步骤检测到基于所述网络连线建立所述恶意通信的所述尝试时,阻挡所述网络连线的建立。
除非另有被定义,本文中所使用的所有的多个技术及/或科学术语有与本发明所属领域的技术人员所公知者相同的意义。虽然与本文中所描述者相似或等同的多个方法与多个题材可被使用以实施或测试本发明的多个实施例,多个示例性的方法及/或多个示例性的题材将于下被描述。在冲突的情况下,包含多个定义的专利说明书将为优先。此外,所述多个题材、所述多个方法及所述多个示例仅为说明性,而非意图为必要地限制性。
附图说明
本发明的一些实施例于本文中被以仅为示例的方式参照附图描述。因现将特别详细参照附图,须强调所显示之细节为以示例的方式,且为用于本发明的多个实施例的说明性讨论的多个目的。在这方面,配合附图的说明使得本发明的多个实施例如何可被实施对于本领域的技术人员而言为明白易懂的。
于附图中:
图1a是依据本发明的一些实施例的一计算机实现的方法,用于检测一网络连线的一恶意活动,其中,防止发生在一闸道器处。
图1b是依据本发明的一些实施例的一计算机实现的方法,用于检测一网络连线的一恶意活动,其中,防止发生在一用户处。
图2是依据本发明的一些实施例的一系统的框图,所述系统用于检测及阻挡一网络连线的一恶意活动。
图3a至3b是依据本发明的一些实施例的多个调用堆栈的多个示例。
图4是依据本发明的一些实施例的一被计算机化的方法的一流程图,所述被计算机化的方法是用于收集堆栈数据。
图5a是依据本发明的一些实施例的一被计算机化的方法的一流程图,所述被计算机化的方法是用于收集线程相关流动数据。
图5b是依据本发明的一些实施例的一被计算机化的方法的一流程图,所述被计算机化的方法是用于收集程序相关流动数据。
图5c是依据本发明的一些实施例的一被计算机化的方法的一流程图,所述被计算机化的方法是用于收集模块相关流动数据。
具体实施方式
本发明,于其一些实施例中,是有关于用于恶意连线检测的多个系统及多个方法,特别是,但非专门是,有关于用于检测一恶意代码的多个系统及多个方法,其中所述恶意代码利用多个网络连线进行一恶意活动及/或通信。
本发明的一些实施例一方面是有关于用于检测建立用于一恶意活动/通信的一网络连线的一企图的多个系统及/或多个方法。基于多个被连接的用户的每一个传输代表一或多个本地调用堆栈的一数据及选择性的与所述连线建立过程相关的一操作系统数据至一闸道服务器,以用于分析的步骤,在所述用户端处的多个连线建立被在所述中央闸道器处监控。所述连线建立调用堆栈被监控及/或被分析以识别一恶意代码,其中所述连线建立调用堆栈可选地被在所述用户端处的下述的一或多个丰富化:一相关的程序、一模块分析数据、一动态产生的代码及/或多个线程的互动。如本文中所述,术语「流动数据」是指在所述用户端处被收集的所述数据,所述数据包括所述调用堆栈数据及可选地一或多个程序数据、一模块分析数据及/或一线程数据。
经识别出与所述连线建立过程相关的恶意活动,所述连线建立过程被停止及/或被结束。所述网络连线被防止被建立。通过一远程服务器与一本地恶意代理之间的所述网络连线的数据传输被防止。如此,通过所述网络的恶意数据传输被在所述恶意代理能使用所述网络连线而造成损害前被停止,所述使用所述网络连线而造成损害例如为使用所述网络连线而从所述远程服务器窃取一数据,或使用所述网络连线而从所述本地用户传输一被窃取的数据至所述远程服务器。在所述激活的网络连线已被建立的多种情况下,所述网络连线为恶意活动的出现被监控。当恶意活动被识别出时,所述激活的连线可被关闭或被阻挡。
被恶意代码感染的一应用程序或所述恶意代码应用程序本身通过,例如,操作系统的一接口程序(例如,套接口)可引发建立所述网络连线。用于所述恶意通信的所述网络建立活动在所述网络连线的最终设置前被识别出,所述网络连线提供至及/或来自所述本地应用程序的数据传输。经检测到所述建立请求、建立引发,及/或在所述连线建立过程本身中,例如在所述互联网协议(ip)族的所述传输控制协议(tcp)的一多步握手过程前及/或中,与所述引发应用程序相关的所述流动数据可被分析。
在详细解释本发明的至少一实施例前,应理解本发明非必要地将其应用限制在以下之说明中所陈述及/或在附图及/或示例中所显示的所述多个元件及/或多个方法的所述多个构造的细节及所述安排。本发明能够有多个其它的实施例或能够被以各种方式实施或实行。
本发明可为一系统、一方法及/或一计算机程序产品。所述计算机程序产品可包括一计算机可读存储介质(或多个计算机可读存储介质),所述计算机可读存储介质有多个计算机可读程序指令于其上,以用于使一处理器实行本发明的多个方面。
所述计算机可读存储介质能够为一有形设备,所述有形设备能够保持及存储多个指令,以供一指令执行设备使用。所述计算机可读存储介质可为,例如,但不限于为,一电子存储设备、一磁存储设备、一光学存储设备、一电磁存储设备、一半导体存储设备,或前述的任何适当的组合。所述计算机可读存储介质的多个较具体的示例的一非穷尽的清单包括以下:一便携式计算机软盘、一硬盘、一随机存取存储器(ram)、一只读存储器(rom)、一可擦除可编程只读存储器(eprom或闪存)、一静态随机存取存储器(sram)、一便携式光盘只读存储器(cd-rom)、一数字多用盘(dvd)、一闪盘、一软盘,或前述的任何适当的组合。一计算机可读存储介质,如本文中所使用,不是被解释为多个瞬时性的信号本身,例如多个无线电波或多个其它自由传播的电磁波、传播通过一波导管或多个其它传输介质的多个电磁波(例如,穿越通过一光纤电缆的多个光脉冲),或被传输通过一电线的多个电信号。
本文中所述的多个计算机可读程序指令能够从一计算机可读存储介质被下载至多个分别的计算/处理设备,或经由一网络下载至一外部计算机或外部存储设备,所述网络例如为一互联网、一局域网络、一广域网络及/或一无线网络。所述网络可包含多条传输用铜电缆、多条传输用光纤、无线传输、多个路由器、多个防火墙、多个交换器、多个闸道计算机及/或多个边缘服务器。在每一计算/处理设备中,一网络适配卡或网络接口从所述网络接收多个计算机可读程序指令,并前送所述多个计算机可读程序指令,以用于存储在所述分别的计算/处理设备内的一计算机可读存储介质中。
用于实行本发明的多个操作的多个计算机可读程序指令可为多个汇编指令、多个指令集架构(isa)指令、多个机器指令、多个机器相关指令、微代码、多个固件指令、一状态设置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,所述编程语言包括一面向对象的编程语言,例如smalltalk、c++等,及多种常规的过程式编程语言,例如"c"语言,或多种类似的编程语言。所述多个计算机可读程序指令可完全地在所述使用者计算机上执行、部分地在所述使用者计算机上执行、作为一个独立的软件包执行、部分在所述使用者计算机上及部分在一远程计算机上执行,或完全在所述远程计算机或服务器上执行。在涉及所述远程计算机的情形中,所述远程计算机可通过任何种类的网络,连接到所述使用者计算机,所述任何种类的网络包括一局域网络(lan)或一广域网络(wan),或者,可连接到一外部计算机(例如使用一互联网服务提供商来通过一互联网连接)。在一些实施例中,通过利用所述多个计算机可读程序指令的状态信息而个性化所述电子电路,所述电子电路例如为可编程逻辑电路、现场可编程口阵列(fpga)或可编程逻辑阵列(pla),所述电子电路可执行所述多个计算机可读程序指令,从而进行本发明的多个方面。
本文参照依据本发明的多个实施例的多个方法、多个装置(系统)和多个计算机程序产品的多个流程图例证及/或多个框图描述了本发明的多个方面。应当理解,所述多个流程图例证及/或所述多个框图的每一方框及所述多个流程图例证及/或所述多个框图中多个方框的多个组合,都能够由多个计算机可读程序指令执行。
运些多个计算机可读程序指令可被提供给一通用计算机、一专用计算机或一其它可编程数据处理装置的一处理器,以产生一种机器,以致于所述多个指令在经由所述计算机或所述其它可编程数据处理装置的所述处理器执行时,创建了实现所述流程图及/或所述框图中的一个或多个方框中规定的所述多个功能/所述多个动作的装置。运些计算机可读程序指令也可被存储在一计算机可读存储介质中,运些计算机可读程序指令能够使得一计算机、一可编程数据处理装置及/或多个其它设备以一特定方式工作,以致于有指令被存储于其中的所述计算机可读存储介质包括一个制造品,所述制造品包括实现所述流程图及/或所述框图中的一个或多个方框中规定的所述多个功能/所述多个动作的多方面的多个指令。
所述多个计算机可读程序指令也可被加载到一计算机、一其它可编程数据处理设备、或一其它设备上,以使在所述计算机、所述其它可编程设备或所述其它设备上进行一系列操作步骤,以产生一计算机实现的过程,以致于在所述计算机、所述其它可编程设备或所述其它设备上执行的所述多个指令实现所述流程图及/或所述框图中的一个或多个方框中规定的所述多个功能/所述多个动作。
附图中的所述流程图和所述多个框图显示了依据本发明的不同实施例的多个系统、多个方法和多个计算机程序产品的可能实现的体系架构、功能和操作。在这方面,所述流程图或所述多个框图中的每个方框可代表一模块、一程序段或多个指令的一部分,所述模块、所述程序段或所述多个指令的所述部分包含用于实现规定的逻辑功能的一或多个可执行指令。在一些替换的实现中,在所述方框中被标注的多个功能可不同于在附图中被标注的顺序发生。例如,两个被连续显示的方框实际上可实质并行地被执行,或所述两个方框有时也可按相反的顺序被执行,依照被设及的所述功能而定。也要注意的是,所述框图及/或所述流程图例证中的每个方框、及在所述框图及/或所述流程图例证中的多个方框的多个组合,能够由多个专用的基于硬件的系统来实现,所述多个专用的基于硬件的系统进行所述多个被规定的功能或动作,或实现多个专用硬件与计算机指令的多个组合。
如本文所定义,术语「连线建立」是指在某个应用程序能通过一网络连线传输及/或接收一数据前发生的所述被计算机化的方法。所述连线建立过程可被从所述某个应用程序接收多个引发命令的一应用编程接口管理及/或执行,以建立所述连线、从所述某个应用程序接收一数据而通过所述已建立的连线传输,及/或传输通过所述已建立的连线所接收的一数据至所述某个应用程序。
现参照图1a,其是依据本发明的一些实施例的一计算机实现的方法的一流程图,所述计算机实现的方法是用于检测用于一恶意活动及/或通信的一网络连线,其中防止发生在所述闸道器处。亦参照图2,图2是依据本发明的一些实施例的一系统,所述系统是用于检测及防止用于一恶意通信的一网络连线。参照图2描述的所述系统可执行参照图1a描述的所述方法。所述多个系统及/或方法检测建立用于一恶意活动及/或通信的所述网络连线的一企图,所述恶意活动及/或通信与一恶意代理相关联,及在所述恶意代理能利用所述网络连线基于一数据传输及/或接收进行所述恶意活动前停止及/或提前结束所述连线建立过程。如此,由所述恶意代理通过所述网络连线执行多个远程命令被防止。例如,一数据(例如,一银行资料、多个信用卡号码、一财务资料、一军事情报、一机密信息及一敏感信息)的偷窃被防止,所述数据的所述偷窃是由在所述恶意代理的控制下通过所述网络连线传输一数据所进行。于另一示例中,在一远程计算机处的一数据的修改及/或删除被防止,所述数据的所述修改及/或删除是由所述恶意代理通过所述网络连线所进行。于又一示例中,所述恶意代理无法存取一远程服务器而获得多个额外的指令。
当一计算机(例如,一用户及/或一服务器)被所述恶意代理感染时,所述多个系统及/或方法防止所述恶意代理通过所述网络连线进行一恶意活动。所述多个系统及/或方法提供一额外级别的保障,其中已被一未被检测到的及/或未知的恶意代理感染的一计算机被防止基于使用所述网络连线的一活动对多个其它远程计算机及/或所述本地计算机本身造成损害。
所述多个系统及/或方法可检测以所述操作系统的一权限运行的多个恶意代理,所述多个恶意代理可绕过多个安全措施以建立多个网络连线,所述多个恶意代理例如为一管理程序恶意代码。如此之多个恶意代理可企图在不使用多个操作系统功能的情况下,及/或由禁用及/或绕过所述终点模块而建立多个连线。这些企图以所述多个连线建立请求的形式被所述闸道器阻挡,且被所述闸道器监控,以不被所述多个终点模块丰富化及/或签核。
检测设置与所述恶意代理相关联的所述网络连线的所述企图允许识别否则会有困难识别的及/或否则会在损害已发生后才被识别出的多个恶意代理及/或一恶意活动。例如,某些恶意代理在空闲状态时有困难或不能被检测到,但仅在激活状态时被检测到。在如此之情况下,所述多个系统及/或方法在通过所述网络连线造成损害前检测为所述连线建立过程的一部分的所述恶意活动。
所述多个系统及/或方法可在损害通过所述网络连线发生前,识别建立用于一恶意活动及/或通信的多个网络连线的多个企图,所述建立是基于未经授权的代码执行(亦即,一攻击者控制一应用程序而执行一恶意代码)。否则,如此之未经授权的代码执行可能有困难在造成损害前被检测到。
建立用于一恶意活动及/或通信的所述网络连线的所述企图可在不必要地识别所述某个有感染性的恶意代码代理的情况下被检测到及被停止。如此,多个未知的恶意代理可被防止存取所述网络连线以进行一恶意活动。
可选地,用于检测用于一恶意活动及/或通信的所述连线的所述多个系统及/或方法被安装在,例如,一系统200内。
所述系统200包括至少一用户202,所述用户202例如为一笔记本计算机、一台式计算机、一移动设备(例如,一智能手机、一平板计算机)及/或一服务器。所述用户202为一终点用户,所述终点用户能够引发一新的网络连线,所述新的网络连线是用于来自所述用户202及/或至所述用户202的一数据传输。所述终点用户202可为一服务器。
所述用户202包括多个网络连线能力,所述多个网络连线能力例如为一网络接口、一发送器,及/或一接收器。所述用户202可通过一或多个网络206与一远程服务器204通信,所述一或多个网络206例如为一无线网络、一有线网络、一蜂窝网络、一互联网、一私有网络,及其多个网络的多个组合。
可选地,一终点模块208a被安装在所述一或多个用户202的一存储器上或与所述一或多个用户202通信,(例如,被预先安装、被与在所述用户上运行的一操作系统整合,及/或从一远程服务器或一本地存储器被下载且被本地安装)。可选地,所述终点模块208a包含多个程序指令,所述多个程序指令是用于被所述用户202的一处理器执行,及用于监控在所述用户202上的一连线建立相关的活动,如本文所述。可替换地或额外地,所述模块208a进行由一闸道器210下指示的多个功能,例如,以停止所述连线建立及/或以允许所述连线建立。
所述闸道器210从所述用户202接收一连线建立相关数据,分析所述数据,且识别建立用于一恶意活动及/或通信的所述网络连线的所述企图,如本文所述。可选地,所述闸道器210为一代理服务器,所述代理服务器作为在所述用户202上的某个应用程序与一接口之间的一中介设备,所述用户202的所述某个应用程序引发建立所述网络连线,及所述接口控制建立所述网络连线。所述闸道器210通过直接控制及/或产生一警示信号,所述警示信号指示所述连线建立的所述状态,而停止所述连线建立或允许继续所述连线建立。
所述闸道器210可为用于安装在一计算机上的一软件模块,及/或用于与多个其它计算机通信的一硬件装置。可替换地或额外地,所述闸道器210被安装以从多个用户202接收一数据。所述闸道器210可被安装于所述网络206内,以通过所述网络206与所述一或多个用户202通信,例如,所述闸道器210可为一远程服务器、一被本地安装的服务器,及/或被安装于所述网络206本身内的一设备,所述被本地安装的服务器被安装在所述一或多个用户202与所述网络206之间的一接口处(例如,一网络接口设备),以用于与被预定的一组用户202通信,所述被预定的一组用户202例如为在一私人组织网络内,被安装于所述网络206本身内的所述设备例如为一内部及/或边界网络设备(例如,一个二层设备、一个三层设备、一路由器、一闸道器及一桥接器)。
一或多个恶意代理212感染所述用户202。应注意的是,所述用户的所述感染可在所述安装前发生。
所述恶意代理212可包含多个程序指令以建立至一远程恶意目标服务器214通过所述网络206的一连线,及/或以利用所述用户202与一远程正当服务器204之间通过所述网络206的一连线。
所述恶意代理212的一示例为一动态连结程式库的插入。所述动态连结程式库的插入为一种被使用于在另一程序的所述地址空间内运行一代码的工艺,在另一程序的所述地址空间内运行所述代码是例如通过强迫所述程序加载及执行所述动态连结程式库进行。所述动态连结程式库的插入可被多个外部程序使用而以所述程序的多个作者没有预期或计画的方式影响另一程序的所述行为。多个黑客可对所述动态连结程式库的插入的工艺加以利用,及将一被感染的有效载荷插入至多个终点应用程序,以恶意操纵所述原应用程序。例如,宙斯(zeus)为以一木马程序形式呈现的一恶意代理,所述木马程序使用所述动态连结程式库的插入至一互联网浏览器应用程序,以为窃取客户信息及/或钱,而劫持多个金融组织注定的网络连线。宙斯通过挂钩多个http处理功能而监控及操纵所述多个网络连线及由所述网页浏览器所存取的一数据。
一恶意代理212的另一示例为检测的绕过。某个恶意代码被编程以能以所述操作系统及/或以多个高阶程式的权限运行,例如,一管理程序恶意代码。如此的恶意代码轻易地绕过多个安全措施,并且任意地建立多个网络连线。
一恶意代理212的又一示例为未经授权的代码执行。所述未经授权的代码执行在一攻击者为执行他/她自己的一恶意代码而使用一恶意动作以控制一程序的代码执行时发生。所述恶意代码被以运行在一受影响的终点用户的一后台的一恶意代码应用程序的方式执行,而允许所述黑客恶意地操纵所述用户。
多个恶意代理212的多个其它示例包括多个病毒、多个蠕虫、多个木马程序、一间谍软件及一广告软件。一恶意代理212可被以一可被执行的代码、一脚本语言、一应用程序及一其它软件的方式安装。
参照图1a及1b,发生在所述用户处的多个方框可发生在图2的一用户202处,且发生在所述闸道器处的一方框可发生在图2的一闸道器210处。
在102中,一连线建立企图被检测到。可选地,由运行在一用户端上的一应用程序建立一网络连线以连线至一基于网络的服务器的一引发意见(例如,一请求)被检测到。所述应用程序可被一恶意代码212感染,如本文所述。
可选地,所述应用程序及/或用户被监控以检测建立所述网络连线的所述企图。例如,一终点模块208a监控一用户202以检测由一应用程序及/或代码208c(被安装于所述用户202上及/或与所述用户202通信)而来的建立通过一网络206的一连线的一企图。
可选地,所述网络连线被企图以一新的连线的方式被建立。可替换地,所述网络连线被企图以作为被去活化及/或被停止的一先前连线的一重建立。
所述应用程序可企图建立至一可信任的来源的所述网络连线,所述可信任的来源例如为一远程正当服务器204(例如,数据由其被窃取),及/或可企图建立至一恶意的来源的所述网络连线,所述恶意的来源例如为一远程恶意目标服务器214(例如,数据被传输至其,及/或作为一远程恶意控制器)。
企图建立多个网络连线的多个被恶意的感染的应用程序及/或恶意代码208c的多个示例包括:多个浏览器、一即时通信应用程序、多个字处理应用程序、多个图像编辑应用程序、多个音乐应用程序、被安装于一应用程序内的一或多个更新模块、所述操作系统本身、多个远程计算机控制应用程序及多个数据同步应用程序。被感染的应用程序及/或恶意代码208c可为一管理程序或虚拟机器监控程序的一部分,所述虚拟机监控程序创建及/或运行多个虚拟机器,例如,如本文所述。用户202可包括一虚拟机器主机。多个被感染的应用程序及/或恶意代码208c可为一未经授权的恶意应用程序的一部分,例如,如本文所述。多个被感染的应用程序及/或恶意代码208c可为所述应用编程接口的一部份,所述应用编程接口管理所述连线建立,例如,所述套接口。
可选地,所述引发消息(例如,请求)及/或所述连线建立,例如,被终点模块208a在所述用户端处被检测到。所述请求可基于被接收到的连线建立的多个企图的通知以与在所述用户处的所述操作系统相关联的方式被检测到,例如,基于所述应用程序发出一命令给一应用编程接口,所述应用编程接口代表用于在所述用户处进行通信的本地终点,例如,一网络套接口,如一互联网套接口。所述命令可用于创建一新的网络套接口及/或可为创建所述新的网络套接口之后的一信号。于另一示例中,所述请求可基于所述应用程序发出一命令给一先前被创建的套接口被检测到。在所述用户端处的检测防止所述恶意代理建立与所述用户之外的多个服务器的多个连线。
可选地,所述网络建立过程是基于与所述远程服务器的一参数协商过程,例如基于所述tcp的,例如一握手过程。可替换地或额外地,所述网络建立过程非为基于所述参数协商过程,例如基于所述用户数据报协议(udp)的,例如一无连接网络连线。
在104中,一堆栈数据被收集,例如,如以下参照图4所述。
可选地,在106中,一额外的流动数据208d在所述命令引发建立所述网络连线的期间被获得,所述额外的流动数据208d例如为与多个线程、多个程序及/或多个模块相关的流动数据,例如,如以下参照图5a、5b及5c所述。
在108中,所述流动数据被例如终点模块208a传输至闸道器210,所述流动数据包括(方框104的)与所述连线建立过程相关的调用堆栈208b的数据,及可选地包括(方框106的)所述增加的流动数据,所述终点模块208a可存取在用户202中的所述堆栈数据及/或其它流动数据。
在110中,所述闸道器接收由所述用户所传输的所述流动数据。所述数据传输可通过一网络发生。
在112中,所述数据被分析以检测建立用于一恶意活动及/或通信的一连线的一企图。所述数据可包括在所述流动数据中的多笔记录,所述流动数据代表程序、多个线程及多个模块,及在所述用户端处被执行的动态代码。
所述多笔记录被分析以检测建立一恶意活动及/或通信的一尝试存在或不存在,所述网络连线于其中是被用于恶意活动,所述恶意活动例如为窃取数据。
通过当所述多笔记录代表非法流动数据时检测建立用于所述恶意活动及/或通信的所述网络连线的所述企图,建立所述恶意通信的所述尝试可被被识别出。
所述分析的步骤可由闸道器210进行,所述闸道器210分析所述堆栈数据以检测建立用于一恶意活动及/或通信的所述连线的一企图,及产生一信号,所述信号代表所述恶意通信存在或不存在。
可选地,所述堆栈跟踪是从一调用堆栈被获得,所述调用堆栈与企图建立所述网络连线的所述应用程序相关。所述堆栈跟踪包括在所述调用堆栈中的多个模块的多个顺序的多个模式及/或一或多个快照,所述调用堆栈与所述连线建立相关。例如,所述堆栈跟踪包括在所述跟踪被获得时于所述调用堆栈中的所述多个模块。所述多个模块可基于在所述调用堆栈中的多个代表被导出,所述多个代表例如为在所述调用堆栈中的指向所述多个模块的多个指针。
一或多个堆栈跟踪可在所述请求期间、在引发所述连线建立过程期间及/或在所述连线建立过程中的一或多个点位被获得。在所述连线建立过程中的多个点位被采集的所述多个堆栈跟踪是被选择以采集在所述堆栈中的多个变化,所述多个变化发生在所述请求期间及/或所述连线建立过程中。
所述分析的步骤是在所述应用程序与所述远程服务器或恶意服务器之间的一数据通信前被进行,所述数据通信例如为由所述引发应用程序通过所述网络进行的数据前送。可选地,所述分析的步骤是在建立所述网络连线前被进行。可替换地或额外地,所述分析的步骤是在激活所述网络会话前被进行。如此,在所述恶意代理能通过所述网络连线行动前,例如在传输未经授权的数据(即,窃取数据)前,所述连线建立过程的有效性可被决定。
当运行于所述用户上的一应用程序被感染(例如,基于被插入的代码)并企图基于所述有感染性的代码建立所述外部连线时,所述多个连线建立堆栈调用与当相同的应用程序没有被感染时的多个堆栈调用不同。
所述分析的步骤是基于企图建立所述网络连线的所述恶意应用程序被进行,所述恶意应用程序造成与所述连线建立过程相关的所述调用堆栈的一流动数据分析不同于当所述恶意应用程序不存在时的一调用堆栈流动数据分析。
所述分析的步骤是基于一方法或多个方法平行地或顺序地被进行。所述分析的步骤是由所述闸道器210基于从用户202接收的多个消息所进行,所述多个消息包括连线建立相关的堆栈208b数据及/或流动数据208d,如本文所述。所述分析的步骤是在所述连线建立过程前及/或中,在由应用程序208c通过所述网络连线进行数据传输前被进行,如本文所述。多个分析方法的一些示例包括:
将多个堆栈跟踪与流动数据分析进行匹配及/或使其彼此有相关性,所述流动数据分析代表建立所述恶意连线的所述尝试。
将所述堆栈中的多个模块与一被预定的白名单中的多个被验证过的模块进行比对及/或使其彼此有相关性,以识别不在所述白名单中的多个未知的模块。所述多个未知的模块被怀疑为所述引发应用程序的一恶意感染。所述多个被验证过的模块可例如被一系统管理员手动指定为是有效的、基于从一恶意代码防止服务器被下载而被指定是有效的,及/或基于从多个未被感染的应用程序中的机器学习而被指定是有效的。
将所述堆栈中的多个模块与一被预定的黑名单中的多个已知的恶意模块进行比对及/或使其彼此有相关性,以识别在所述堆栈中的恶意模块。
将所述堆栈跟踪中的多个模块的所述流动数据分析与被验证过的连线建立流动数据分析进行比对及/或使其彼此有相关性,例如多个相似的或等同的已知安全模式。多个模块的所述流动数据分析可包括所述堆栈中的多个模块的顺序及/或发生在所述堆栈中的多个变化。
识别在与恶意活动相关联的所述跟踪中被记载的多个独特事件。
将所述堆栈数据与连线建立堆栈流动数据分析进行比对及/或使其彼此有相关性,所述连线建立堆栈流动数据分析被预期是当所述应用程序尚未被感染时由所述应用程序所产生。所述感染例如为受被插入的代码感染,所述被插入的代码企图使用所述应用程序建立用于一恶意活动及/或通信的所述连线。
证实在所述堆栈中的多个模块没有被一未知的模块的代码加载。与所述未知的模块相关联暗示有恶意代码。
验证在所述程序中的所述调用线程及多个其它线程非为由未知的模块的代码所创建。与所述未知的模块相关联暗示有恶意代码。
验证所述程序的一可执行档格式。多个无效的格式可为与恶意代码相关联。
多个用户可一起被监控。从多个闸道器而来的监控数据可一起被分析。在所述闸道器所收集的从所述多个用户而来的堆栈数据,及/或从多个闸道器而来的数据可一起被分析,以识别恶意活动的一模式,例如从一客户蔓延到另一客户的恶意软件感染,及/或从多个用户而来的一协同攻击的建立,所述多个用户在短时间内建立至单一目标服务器及/或至多个目标服务器的多个网络连线。
所述比对可基于与多个相似的模式的直接比对被进行。使其彼此有相关性可被进行以识别与恶意活动相关的一统计显着的相关性,及/或与被验证过的安全活动相关的一统计显着的相关性。
所述比对及/或使其彼此有相关性可例如由一函数或由一分类器进行,所述函数或所述分类器被训练以接受所述一或多个堆栈跟踪与一或多个流动数据分析为输入,并输出指示恶意行为存在或恶意行为不存在的一信号。
现参照图3a至3b,其是依据本发明的一些实施例的与所述连线建立过程相关的多个调用堆栈的多个示例。为清楚的目的,图3a至3b绘示一部份的跟踪。
图3a绘示一被感染的浏览器的一调用堆栈302,所述被感染的浏览器企图建立一连线,例如以与一金融及/或银行网站连接。调用堆栈302通过与调用堆栈304进行比对而被分析,所述调用堆栈304代表一未被感染的浏览器预期有的一与被验证过的连线建立相关的堆栈。所述分析的步骤检测到某个档案308(即,shlwapi.dll)为找不到,且至一未知的模块306的一代码指针为存在。基于所述流动数据分析,怀疑有恶意代码。
图3b绘示一被感染的字处理程序的一调用堆栈312,所述被感染的字处理程序企图建立一网络连线,以与使用未经授权的代码执行的一攻击者连接。堆栈312包含未知的代码316。相比之下,调用堆栈314为当所述字处理程序为未被感染时所述字处理程序在企图建立一网络连线期间的一调用堆栈。调用堆栈314包含至一模块318(即,mso.dll)的指针,至所述模块318的所述指针不存在于被感染的调用堆栈316中。
在方框114中,所述分析的结果被存储于在所述闸道器内的或与所述闸道器连接的一存储器中。
在116中,与所述网络连线企图相关的数据被通过所述网络从所述用户传输至所述闸道器。可选地,方框102被完成及所述网络连线被激活以允许数据传输。数据(例如,网络消息,如多个封包)被通过所述激活的网络从所述用户传输至所述闸道器。起初,与所述通信建立协议相关的多个封包被例如基于所述tcp握手过程传输。可选地,多个数据封包被之后地及/或顺序地通过所述连线传输。
在118中,与所述网络连线企图相关而被传输的所述数据及/或通过所述激活的网络而被传输的数据被在闸道器处接收。
在120中,方框114的所述多个被存储的结果被存取以决定是否所述被接收的数据(例如,多个封包)为与恶意活动相关联或是否所述被接收的数据已被验证为可被允许的。
可选地,在122中,当建立所述恶意通信的所述企图被检测到时,所述连线建立过程在所述闸道器处被所述闸道器本身阻挡。建立用于一恶意活动及/或通信的所述网络连线被防止。例如当多个握手封包被识别为与恶意活动相关时,所述网络连线可被防止激活。可替换地或额外地,所述激活的网络连线为恶意活动而被监控,且当恶意活动被检测到时被阻挡。例如,当所述网络连线是基于一无连接协议时,所述无连接协议如所述用户数据报协议(udp)不要求一握手过程,被传送的所有的多个封包(或一选择的封包子集)可被监控,或每个传送线程的至少第一封包或若干封包可被监控。
可由闸道器210通过防止与所述连线建立过程相关的多个封包被递送及/或发出多个消息以结束所述连线建立而进行结束。所述网络连线可被阻挡,或所述网络连线可被结束。
可选地,在124中,指示检测到建立所述恶意通信的所述企图的一警告被产生。所述警告被提交给所述使用者(例如,被显示在与用户202连接的一显示器上)及/或给一系统管理员(例如,被显示在与闸道器222或一第三方事件管理平台连接的一显示器上)。所述使用者可进一步行动,例如告知收到有所述恶意通信,及可选地运行一反恶意代码程序以自所述用户移除所述有感染性的代理。可替换地或额外地,所述警示消息被格式化成可由多个其它反恶意代码产品接收,而可引起所述恶意代码的移除。
可替换地,在126中,当所述连线建立没有被识别为恶意及/或被验证为安全时,所述连线建立过程被准许继续建立所述网络连线、激活所述网络连线,及/或继续允许通过所述被激活的网络进行数据传输。终点模块208a及/或闸道器210可产生多个信号以准许所述连线建立。当所述连线建立已被停止以让所述分析的步骤被继续进行时,终点模块208a及/或闸道器210可恢复所述连线建立。
可选地,一或多个方框104至126被重复以监控所述被激活的网络连线。可选地,所述堆栈及/或其它流动数据在建立所述网络连线后为恶意活动被监控。可选地,所述堆栈通过所述用户传送所述堆栈数据至所述闸道器而被监控。
所述堆栈可,例如连续地、在被预定的多个期间及/或在多个被选择的事件中(例如,在所述网络连线的配置中的多个变化),被监控。
所述网络连线可为可疑的恶意行为被(例如,所述闸道器)监控。经检测到所述可疑的恶意行为,所述管理可发出至所述用户的一命令,以传输用于分析的步骤的所述额外的信息。例如,所述被感染的程序的一存储器转储。
所述堆栈数据可,例如当所述网络连线为使用中时,连续地在所述用户处被记录。所述堆栈的所述记录可被周期性地传输至所述闸道器以用于分析的步骤。
可选地,与所述连线建立监控相关的所述数据被收集及/或被分析。数据包括,例如,代表对于每一网络连线建立企图而言所述恶意通信存在或不存在的所述多个调用堆栈跟踪、多个信号及/或多个消息,及/或多个产生的警告。数据可从终点模块208a及/或闸道器210被传输至一管理服务器220。
与多个方框116至126的所述后连线建立监控相关的数据可被闸道器210收集及/或分析,且被传输至管理服务器220以用于分析的步骤。
管理服务器220是(例如,通过网络206)与一或多个闸道器210及/或用户202通信。管理服务器220可将来自多个闸道器及/或用户的所述数据聚合,以提供,例如一综合分析。可替换地或额外地,管理服务器220可收集单一用户的单一使用者的数据,例如,以提供所述某个用户的一分析。
可选地,管理服务器220包括一使用者接口模块222,所述使用者接口模块222允许一使用者进行一或多个功能。多个使用者可例如借助一浏览器通过一网络连线存取使用者接口222。多个用户及/或闸道器的数据,或每个用户及/或闸道器的数据可被中央查看及/或分析。
管理服务器220及/或使用者接口222进行以下一或多个功能:
审查由所述闸道器所产生的所述信号:指示有多个恶意通信企图的多个警告及/或指示没有多个恶意通信企图的多个消息。
管理所产生的所述信号:认出多个趋势及行动,例如,识别多个用户之间的一恶意代理的蔓延,停止一新被检测到的恶意代理,隔离一高度被感染的用户。
中央控制所述一或多个闸道器的配置:例如,以指示有多个恶意代理的新的堆栈流动数据分析来更新所述闸道器、以指示有被验证过的且安全的行为的新的堆栈流动数据分析来更新所述闸道器,及将多个闸道器与多个用户匹配。
中央控制所述一或多个用户的配置:例如,以多个被更新的终点模块来更新所述多个用户、将用户与闸道器匹配,及启动至所述闸道器的堆栈数据的传输。
监控所述一或多个闸道器的状态:例如,查看多个警告的数量、多个相似的警告的模式、与所述多个警告相关联的用户,及多个恶意通信占多个连线的总数的百分比。
监控所述一或多个用户的状态:例如,多个连线企图的数量、多个恶意通信的多个警告的数量、多个恶意通信的百分比、多个被怀疑被感染的应用程序,及查看多个相似的恶意企图的流动数据分析。
可选地,多个闸道器210及/或多个终点模块208a基于所述分析的步骤被更新,例如通过由服务器220、闸道器210及/或终点模块208a所传输的多个更新消息。所述连线建立所涉及的所述本地闸道器及/或多个终点模块可被更新。没有涉及所述被分析的连线建立过程的多个其它闸道器及/或(例如,位于远程的)的多个用户的多个终点模块可被更新。所述更新可允许识别未来相似的多个恶意通信建立模式,例如,相同的被感染的应用程序重复地企图建立多个恶意通信、一不同的应用程序被所述恶意代理感染,及/或先前未被感染的的用户变为被一相似的恶意代理感染。
现参照图1b,其是依据本发明的一些实施例的一计算机实现的方法,所述计算机实现的方法是用于检测用于恶意活动的一网络连线,其中防止发生在所述用户处。为清楚及简洁的目的,已参照图1a所描述的多个方框的说明被省略。多个新的方框及/或多个新的特征被描述。
应注意的是图1a可被在例如一私有网络体系架构内实现,所述私有网络体系架构例如为一组织内的一网络,所述组织例如为一公司。为恶意活动尝试存取多个外部的服务器的所述组织网络内的多个用户在所述闸道器处被共同地阻挡。
在所述用户外、在网络内及/或在所述服务器端处(即,由所述闸道器)进行的用于恶意通信的连线建立的检测可中央地识别及防止一协同的基于连线的攻击,所述协同的基于连线的攻击是由在多个用户处的多个恶意代理所引发。
基于所述闸道器的恶意通信识别可防止来自没有终点模块208a被安装于其上的用户的多次攻击。
图1b可,例如在从一网络外连接的多个单独的用户内,被实现。尝试通过所述网络存取多个外部服务器的所述单独的用户被在所述用户本身处阻挡。
可选地,组合图1a及1b的一体系架构被实现,于所述体系架构中,多个恶意相关的网络连线可被在所述闸道器及所述用户两处(或任一处)被阻挡。所述双重的防止可提供一额外级别的保障,其中能绕过在所述用户级别的所述防止的恶意代码在所述闸道器级别被阻挡。
在102中,一连线建立企图被识别,如参照图1a所述。
在104中,堆栈数据及可选的其它流动数据(如在方框106中)被收集,如参照图1a所述。
可选地,在130中,所述连线建立过程在所述用户处被例如模块208a停止。所述连线建立过程的被停止为一额外的安全措施,以防止建立用于恶意活动的网络连线。停止所述连线建立过程提供时间给所述闸道器以便进行分析的步骤而决定所述连线建立企图为与恶意活动相关联何时发生。
所述连线建立过程可通过存储与所述连线建立相关的所述多个消息及防止所述消息被传输至所述网络而被停止。
在108中,所述被收集的流动数据被传输至所述闸道器,如参照图1a所述。
在110中,所述闸道器接收所述被传输的流动数据,如参照图1a所述。
在112中,所述闸道器分析所述被接收的流动数据以决定与所述连线建立企图相关联的恶意活动存在或不存在,如参照图1a所述。
可选地,在132中,当所述恶意活动被识别出时,一事件被产生,例如,被以一网络消息的形式产生。所述网络消息被传输至所述分别的用户。
可选地,在134中,经从所述闸道器接收所述网络消息,所述用户阻挡及/或防止所述连线建立过程。所述网络连线可被阻挡及/或防止被激活。
经从闸道器210接收多个消息,所述多个消息指示检测到网络连线建立的恶意企图,结束可在所述用户处由终点模块208a进行,例如,通过发出防止所述编程接口进行所述连线建立的多个消息进行。
可替换地,在136中,当恶意活动被识别为不存在时,一消息被传输至所述用户。
可选地,在138中,当被接收的所述消息指示所述网络连线不与恶意活动相关联时,所述连线建立过程被允许继续,及/或所述网络连线被激活。
现参照图4,其是依据本发明的一些实施例的一计算机实现的方法的一流程图,所述计算机实现的方法是用于收集堆栈数据。所述方法可由被安装在用户202上的终点模块208a进行。
可选地,在402中,连线建立被检测到,例如,如参照图1a的方框102所述。
可替换地或额外地,在404中,一新的线程的创建被识别出,例如,基于为指示有所述新的线程的行为而监控所述堆栈。
可替换地或额外地,在406中,一新的程序的创建被识别出,例如,基于为指示有所述新的程序的行为而监控所述堆栈。
可选地,在408中,堆栈数据208b的收集被引起。一或多个方框402、404及/或406的检测引起所述堆栈数据收集。
在410中,在所述堆栈中与引起所述堆栈数据收集相关联的所述记录被分析以识别动态代码存在于所述堆栈内。如本文所述,术语「动态代码」是指可执行且不与存储于一操作系统盘上的一现存的档案对应及/或相关的一代码,所述操作系统盘例如为一硬盘、一钥匙盘、一非易失性外部存储盘,及一远程服务器盘。动态代码仅在运行期间存在于所述存储器,且在所述永久存储器(例如,硬盘)上没有等同的代码。动态代码暗示有恶意代码的存在。
可选地,在412中,所述动态代码为恶意代码的存在被分析。
在414中,在所述堆栈中的所述一或多个模块被分析。
在416中,一检查被进行以决定多个额外的记录存在或不存在于所述堆栈中。可选地,在418中,当所述一或多个额外的记录为存在时,通过重复方框410所述多个额外的记录被分析。可替换地,在420中,当没有更多的记录时,所述堆栈数据收集完成。
现参照图5a,其是依据本发明的一些实施例的一计算机实现的方法的一流程图,所述计算机实现的方法是用于收集线程相关流动数据。所述方法可由被安装于用户202上的终点模块208a进行。
在502a中,例如基于为创建多个新的线程而进行的操作系统的监控,一新的线程的创建被识别出。
在504a中,所述新的线程的父线程被分析以决定所述父线程为与恶意活动相关联何时发生。所述父线程的分析的步骤被进行,例如,如参照图1a的方框112所述。
可选地,在506a中,当所述父线程被决定为恶意的时,所述当前的线程被标示为恶意的。可替换地或额外地,在508a中,所述调用堆栈被检查以决定所述调用堆栈为有效或无效,例如,为有动态代码的存在,及/或如参照图1a的方框112所述。
可选地,在510a中,当所述调用堆栈为无效时,所述当前的线程被标示为是恶意的。可替换地或额外地,在512a,所述父线程被分析以决定所述父线程已将所述线程插入至所述程序何时发生。所述被插入的线程可基于多个线程的一程序被检测到,例如,当所述父线程的所述程序不同于所述当前的线程的所述程序时,所述当前的线程被认为是一插入。
可选地,在514a中,当所述父线程被识别为是被插入的线程,所述当前的线程被标示为是被插入的线程。所述被插入的线程暗示有恶意代码。可替换地或额外地,在516a中,所述当前的线程被分析以决定所述当前的线程为被插入的线程何时发生。可选地,在518a中,当所述分析的步骤识别所述当前的线程为被插入的线程时,所述当前的线程被标示为是被插入的代码。
现参照图5b,其是依据本发明的一些实施例的一被计算机化的方法的一流程图,所述被计算机化的方法是用于收集程序相关流动数据。所述方法可由被安装于用户202上的终点模块208a进行。
多个方框502b至518b对应图5a的多个方框502a至518a,多个方框502b至518b是关于一程序而非图5a的所述线程。值得注意的是:在方框512b中,一分析的步骤被进行以决定所述程序为由被插入的线程所创建何时发生。在方框516b中,所述当前的主要模块格式被分析以识别所述模块格式为有效或无效。在518b中,当所述程序可执行格式被识别为是无效的,所述当前的程序被标示为是恶意的。
现参照图5c,其是依据本发明的一些实施例的一被计算机化的方法的一流程图,所述被计算机化的方法是用于收集模块相关流动数据。所述方法可由被安装于用户202上的终点模块208a进行。
在508c中,一分析的步骤被进行以决定一新的模块已被加载至所述程序何时发生。
在504c中,所述新的模块的所述加载线程被分析以决定所述加载线程为与恶意活动相关联何时发生。所述加载线程的分析被进行,例如,如参照图1a的方框112所述。
可选地,在506c中,当所述加载线程被决定为是恶意的,所述当前的模块被标示为是恶意的。可替换地或额外地,在508c,例如,基于被进行于图5a的所述分析的步骤,一分析的步骤被进行以决定所述加载线程已被插入何时发生。
可选地,在510c中,当所述加载线程为被插入时,所述当前的模块被标示为是恶意的。可替换地或额外地,在512c中,所述模块格式被分析以决定所述模块格式为有效或无效何时发生,例如,一可移植可执行代码包含在所述标头中无效的一栏位,所述栏位例如为指向所述代码外的一位置的一入口点栏位。
可选地,在514c中,当所述模块格式被决定为是无效的,所述当前的模块被标示为是恶意的。可替换地或额外地,在516c中,一分析的步骤被进行以决定所述模块被使用一全域加载方法加载何时发生。如本文所述,术语「全域加载方法」是指多个不同的程序加载的一模块,所述多个不同的程序可为彼此不相关。一全域被加载的模块暗示有恶意活动。
可选地,在518c中,当所述分析的步骤识别所述当前的模块为一全域被加载的模块,所述当前的模块被标示为是全域的。
附图中的所述流程图和所述多个框图显示了依据本发明的各种实施例的多个系统、多个方法和多个计算机程序产品的可能实现的体系架构、功能和操作。在这方面,所述流程图或所述多个框图中的每个方框可代表一模块、一程序段或多个代码的一部分,所述模块、所述程序段或所述多个代码的所述部分包含用于实现规定的逻辑功能的一或多个可执行指令。也应注意的是,在一些替换的实现中,在所述方框中被标注的多个功能可不同于在附图中被标注的顺序发生。例如,两个被连续显示的方框实际上可实质并行地被执行,或所述两个方框有时也可按相反的顺序被执行,依照被设及的所述功能而定。也要注意的是,所述框图及/或所述流程图例证中的每个方框、及在所述框图及/或所述流程图例证中的多个方框的多个组合,能够由多个专用的基于硬件的系统来实现,所述多个专用的基于硬件的系统进行所述多个被规定的功能或动作,或多个专用硬件与计算机指令的多个组合。
关于本发明的各种实施例的描述已经出于例证的目的而给出,但是并非意图是穷尽性的或者限定于所公开的多个实施例。在不脱离所述多个实施例的范围和精神的情况下,许多修改和变化将会是本领域技术人员所清楚的。本文所使用的术语被选择以最佳地解释所述多个实施例的原理、实际应用或者相对市场上可找得到的技术的技术改进,或者使得本领域技术人员能够理解本文所公开的多个实施例。
可预期的是,从本申请的成熟而来的一专利的生命期间,许多相关的恶意代理、用户、网络、堆栈及服务器将被开发,且多个术语「恶意代理」、「用户」、「网络」、「堆栈」及「服务器」的范围意图是以先验包含所有如此之新的技术。
如本文所用的术语“约”是指±10%。
多个术语「包含(comprises)」、「包含(comprising)」、「包括(includes)」、「包括(including)」、「具有(having)」及其多个词形变化是指「包括但不限于」。此术语包含多个术语「由......组成(consistingof)」及「基本上由......组成(essentiallyconsistingof)」。
术语「基本上由......组成(essentiallyconsistingof)」是指组合物或方法可包括多个额外的成分及/或多个步骤,但只有当所述多个额外的成分及/或多个步骤实质上不改变所要求保护的组合物或方法的多个基本特征及新特征。
本文所使用的单数型式「一」、「一个」及「所述」包括复数引用,除非上下文另有明确规定。例如,术语「一化合物」或「至少一种化合物」可以包括多个化合物,包括其混合物。
本文中所用的词汇「示例性(exemplary)」表示「用作为一示例(example),实例(instance)或例证(illustration)」。任何被描述为「示例性」实施例未必被解释为优选或优于其它实施例和/或排除与来自其它实施例的多个特征结合。
本文中所用的词汇「可选择地(optionally)」表示「在一些实施例中提供,而在多个其它实施例中不提供」。任何本发明的特定实施例可以包括多个「可选择的」特征,除非此类特征相冲突。
在整个本申请中,本发明的各种实施例可以以一个范围的形式存在。应当理解,以一范围形式的描述仅仅是因为方便及简洁,不应理解为对本发明范围的硬性限制。因此,应当认为所述的范围描述已经具体公开所有可能的子范围以及该范围内的多个单一数值。例如,应当认为从1到6的范围描述已经具体公开子范围,例如从1到3,从1到4,从1到5,从2到4,从2到6,从3到6等,以及所数范围内的多个单一数字,例如1、2、3、4、5及6,此不管范围为何皆适用。
每当在本文中指出一数值范围,是指包括所指范围内的任何引用的数字(分数或整数)。术语,第一指示数字及第二指示数字「之间的范围」及第一指示数字「到」第二指示数字「的范围」在本文中可互换,并指包括第一及第二指示数字,及其间的所有分数及整数。
可以理解,本发明中的某些特征,为清楚起见,在分开的实施例的内文中描述,也可以在单一实施例的组合中提供。相反地,本发明中,为简洁起见,在单一实施例的内文中所描述的各种特征,也可以分开地、或者以任何合适的子组合、或者在适用于本发明的任何其它描述的实施例中提供。在各种实施例的内文中所描述的某些特征,并不被认为是那些实施方案的必要特征,除非该实施例没有那些元素就不起作用。
虽然本发明结合其具体实施例而被描述,显而易见的是,许多替换、修改及变化对于那些本领域的技术人员将是显而易见的。因此,其意图在包括落入所附权利要求书的范围内的所有替换、修改及变化。
在本说明书中提及的所有出版物、专利及专利申请以其整体在此通过引用并入本说明书中。其程度如同各单独的出版物、专利或专利申请被具体及单独地指明而通过引用并入本文中。此外,所引用的或指出的任何参考文献不应被解释为承认这些参考文献可作为本发明的现有技术。本申请中标题部分在本文中用于使本说明书容易理解,而不应被解释为必要的限制。