经由分析无响应出站网络流量来检测感染的网络设备的制作方法

文档序号:7769401阅读:215来源:国知局
经由分析无响应出站网络流量来检测感染的网络设备的制作方法
【专利摘要】本发明涉及经由分析无响应出站的网络流量来检测感染的网络设备。本公开描述了用于经由分析无响应出站网络流量来检测感染的网络设备的一种或更多系统、方法、例程和/或技术。计算机实施的方法可以包含接收第一数据包信息作为输入的例程。方法可以包含执行如下例程,该例程分析第一数据包信息,以确定第一数据包信息是否识别与网络通信的开始关联的出站网络数据包。方法可以包含执行如下例程,如果第一数据包信息被确定为潜在的无响应数据包,则该例程在一个或更多数据存储件中存储和/或追踪第一数据包信息。方法可以包含执行如下例程,如果基于分析第二数据包信息确定第一数据包信息不是无响应数据包,则该例程移除和/或终止对第一数据包信息的追踪。
【专利说明】经由分析无响应出站网络流量来检测感染的网络设备
【技术领域】
[0001]本公开涉及网络安全,尤其涉及经由分析无响应出站的网络流量来检测感染的网络设备的一种或更多系统、方法、例程和/或技术。
【背景技术】
[0002]随着计算机的广泛使用,一些受到误导的个人和/或实体采用多种技术向毫无戒备的用户或实体的计算机传播恶意软件。恶意软件一般是指怀恶意的、有害的和/或不希望的可执行程序和/或数据,包含计算机病毒、间谍程序、未经请求的广告、广告可执行程序、不希望的内容等。反恶意软件程序被设计为检测和/或消除恶意软件。检测典型地通过使用周期性地更新的恶意软件定义文件,比如病毒定义文件,对用户计算机上的文件和文件夹进行扫描来实现。恶意软件定义文件可以指示建议恶意软件的模式。通过将用户计算机上的文件与恶意软件定义文件相比较,可以检测出一些恶意软件。如果恶意软件被检测到在给定的文件中,则该文件可以被标记以便注意和/或可以修复或删除。
[0003]通过将这类系统与在本申请的其余部分中并参考附图所述的本发明的一些方面相比较,传统和常规方法的其他限制和缺点对于本领域技术人员来说将会是显而易见的。

【发明内容】

[0004]本公开描述了用于经由分析无响应出站网络流量来检测感染的网络设备的一种或更多系统、方法、例程和/或技术。本公开的系统、方法、例程和/或技术可以被设计和/或修改以检测由攻击者所使用的不同技术。本公开的一个或更多实施例可以描述了分析没有接收到响应数据包或没有接收到带有实质性响应的数据包(即无响应数据包)的出站网络数据包,以检测设备和/或网络上的恶意软件。
[0005]本公开的一个或更多实施例描述了用于网络和/或设备安全的计算机实施的方法。方法可以在一个或更多计算机(例如一个或更多防火墙)上执行,并且可以包含在一个或更多计算机上执行的数个例程。方法可以包含接收第一数据包信息作为输入的例程。方法可以包含如下例程,其分析第一数据包信息,以确定第一数据包信息是否识别与网络通信的开始关联的出站网络数据包。方法可以包含如下例程,如果第一数据包信息识别与网络通信的开始关联的出站网络数据包,并且如果第一数据包信息被确定为潜在的无响应数据包,则该例程在一个或更多数据存储件中存储和/或追踪第一数据包信息。方法可以包含接收第二数据包信息作为输入的例程。方法可以包含如下例程,其分析第二数据包信息,以确定第二数据包信息是否识别响应于出站网络数据包的入站网络数据包。方法可以包含如下例程,如果第二数据包信息识别响应于出站网络数据包的入站网络数据包,并且如果基于第二数据包信息确定第一数据包信息不是无响应数据包,则该例程在一个或更多数据存储件中移除和/或终止对第一数据包信息的追踪。
[0006]在一些实施例中,第一数据包信息和第二数据包信息可以各自是数据包报头信息。在一些实施例中,第一数据包信息和第二数据包信息可以各自是归一化的数据包报头信息,其包含在一段时间内对于一个或更多数据包是共同的数据包报头信息。在一些实施例中,分析第一数据包信息以确定第一数据包信息是否识别与网络通信的开始关联的出站网络数据包的步骤可以包含分析第一数据包信息以确定第一数据包信息是否识别是SYN数据包的出站TCP网络数据包。
[0007]在一些实施例中,方法可以包含如下例程,其通过将第一数据包信息与过滤器配置数据比较来分析第一数据包信息,以确定是否应当过滤掉第一数据包信息。在一些实施例中,方法可以包含如下例程,其分析第一数据包信息,以确定第一数据包信息是否识别是在一个或更多数据存储件中存储和/或追踪的先前出站网络数据包的重传的网络数据包。在一些实施例中,方法可以包含如下例程,其分析第二数据包信息,以确定第二数据包信息是否识别是指示错误的数据包的网络数据包。在一些实施例中,方法可以包含如下例程,其在一个或更多数据存储件中引起移除和/或终止对已经在一个或更多数据存储件中存在了特定的时间段的数据包信息的追踪。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件接收数据包信息作为输入,所述数据包信息与在一段时间内没有接收到有效的响应数据包的出站网络数据包相关。方法也可以包含如下例程,其分析数据包信息并且生成一个或更多事件,该事件指示恶意软件可能存在于网络或设备中。
[0008]本公开的一个或更多实施例描述了用于网络和/或设备安全的计算机实施的方法。方法可以在一个或更多计算机(例如一个或更多防火墙)上执行,并且可以包含在一个或更多计算机上执行的数个例程。方法可以包含从网络流量接收多条数据包信息作为输入的例程。方法可以包含如下例程,其分析多条数据包信息,以识别在一段时间期间没有接收到响应数据包的出站网络数据包。方法可以包含如下例程,其在一个或更多数据存储件中存储和/或追踪数据包信息,该数据包信息与没有接收到响应数据包的出站网络数据包相关。在一些实施例中,分析多条数据包信息以识别在一段时间期间没有接收到响应数据包的出站网络数据包的步骤可以包含分析多条数据包信息以识别是死SYN数据包的出站网络数据包。
[0009]在一些实施例中,方法可以包含如下例程,其分析来自一个或更多数据存储件的数据包信息,以确定在网络流量中是否存在异常。方法也可以基于确定网络流量中是否存在异常而生成一个或更多事件,一个或更多事件指示恶意软件可能存在于网络中或在设备上。在一些实施例中,确定在网络流量中是否存在异常的步骤可以包含检测指示先进持续性威胁(APT)的异常。
[0010]在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定特定的源设备是否生成没有接收到响应数据包的多个出站网络数据包。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入。多条数据包信息的每一条可以与网络数据包关联,并且可以包含关联的数据包的源和目的地以及时间指示。在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常可以包含分析该组数据包信息以确定在该组中带有相同源和目的地的多条数据包信息的数目,并且确定带有相同的源和目的地的多条数据包信息的数目是否超过阈值。在一些实施例中,可以通过将时间段配置与每条数据包信息的时间指示相比较,使得在确定的一段时间内接收多条数据包信息,以此确定包含在该组中的多条数据包信息的数目。
[0011 ] 在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定多个源设备是否已经感染了相同的恶意软件。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件中接收包含多条数据包信息的一组数据包信息作为输入。多条数据包信息中的每一条可以与网络数据包关联,并且可以包含关联的数据包的源和目的地以及时间指示。在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析该组数据包信息以针对每个目的地确定在该组中用于每个唯一的源的多条数据包信息的数目,并且确定对于单个目的地,具有每个唯一的源的多条数据包信息的数目是否超过阈值。
[0012]在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定源设备是否尝试与多个目的地通信。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入。多条数据包信息中的每一条可以与网络数据包关联,并且可以包含关联的数据包的源和目的地以及时间指示。在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含:分析该组数据包信息,以针对每个源确定在该组中用于每个唯一的目的地的多条数据包信息的数目,并且对于单个源,确定具有每个唯一的目的地的多条数据包信息的数目是否超过阈值。
[0013]在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定特定的源设备是否以再发生的方式尝试与特定的目的地通信。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入。多条数据包信息中的每一条可以与网络数据包关联,并且可以包含关联的数据包的源和目的地以及时间指示。在该组中的多条数据包信息中的每一条可以具有相同的源和目的地。在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含:分析该组数据包信息,以针对每个目的地确定在该组中的多条数据包信息的数目,并且对于单个目的地,确定多条数据包信息是否超过阈值。
[0014]在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定特定的源设备是否在一时间段内以先前的时间段内的平均次数大约相同的平均次数尝试与特定的目的地通信。在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以进一步包含:对于单个目的地,确定该组中每个源带有单个目的地的多条数据包信息的平均数目;将平均数目与先前一组数据包信息的先前的平均数目相比较;以及确定平均数目和先前的平均数目是否大致相同。可以通过将时间段配置与每条数据包信息的时间指示相比较,使得在确定的一段时间内接收多条数据包信息,以此确定包含在该组中的多条数据包信息的数目。
[0015]在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定特定的源设备是否生成接收到无响应数据包的重复集群的出站网络数据包。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入。多条数据包信息中的每一条可以与网络数据包关联,并且可以包含关联的数据包的源和目的地以及时间指示。分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析该组数据包信息,且对于每个源,形成具有彼此相对接近的时间指示的多条数据包信息的数据包集群,以及确定在数据包集群之间的时间是否重复。
[0016]在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含分析数据包信息以确定特定的源设备是否以重复的集群的方式尝试与特定的目的地通信。在一些实施例中,方法可以包含如下例程,其从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入。多条数据包信息中的每一条可以与网络数据包关联,并且可以包含关联的数据包的源和目的地以及时间指示。在一些实施例中,分析来自一个或更多数据存储件的数据包信息以确定在网络流量中是否存在异常的步骤可以包含:分析该组数据包信息,且对于每个源/目的地对,形成具有彼此相对接近的时间指示的多条数据包信息的数据包集群,以及确定在数据包集群之间的时间是否重复。
[0017]本公开的一个或更多实施例描述了用于网络和/或设备安全的数据处理系统。系统可以包含:与一个或更多网络相通信的一个或更多通信单元;存储计算机代码的一个或更多存储器单元;以及耦合至一个或更多通信单元和一个或更多存储器单元的一个或更多处理器单元。一个或更多处理器单元可以执行存储在一个或更多存储器单元中的计算机代码,以使数据处理系统适于:从网络流量接收多条数据包信息作为输入;分析多条数据包信息,以识别在一段时间期间接收无响应数据包的出站网络数据包;以及在一个或更多数据存储件中存储和/或追踪数据包信息,该数据包信息与已经接收到无响应数据包的出站网络数据包相关。一个或更多处理器单元可以执行存储在一个或更多存储器单元中的计算机代码,以使数据处理系统适于:分析来自一个或更多数据存储件的数据包信息,以确定在网络流量中是否存在异常;以及基于确定网络流量中是否存在异常而生成一个或更多事件,一个或更多事件指示恶意软件可能存在于网络中或在设备上。在一些实施例中,数据处理系统可以是防火墙。
[0018]从以下描述和附图中将更全面的理解本公开的这些优势、方面和新颖特点以及其他优势、方面和新颖特点,以及其示出实施例的细节。应当明白的是,上述一般性描述仅是示例性的和说明性的,不限制所要求的本公开。
【专利附图】

【附图说明】
[0019]在以下公开中描述了若干特征和优势,其中使用以下附图作为示例解释了若干实施例。
[0020]图1示出网络设置的示例性组件、连接和交互的方框图,其中本公开的一个或更多实施例在这种网络设置中可能是有用的。
[0021]图2示出根据本公开的一个或更多实施例的网络设置的示例性组件、连接件和交互的方框图以及无响应数据包警报模块的方框图。
[0022]图3示出根据本公开的一个或更多实施例的可能会在无响应数据包提取器中发现的示例性组件、例程、算法、配置数据等的方框图。
[0023]图4示出根据本公开的一个或更多实施例的可能会在列表清理模块中发现的示例性组件、例程、算法、配置数据等的方框图。
[0024]图5示出根据本公开的一个或更多实施例的可能会在数量检测器模块中发现的示例性组件、例程、算法、配置数据等的方框图。
[0025]图6示出根据本公开的一个或更多实施例的可能会在目的地检测器模块中发现的示例性组件、例程、算法、配置数据等的方框图。
[0026]图7A示出根据本公开的一个或更多实施例的可能会在集群检测器模块中发现的示例性组件、例程、算法、配置数据等的方框图。
[0027]图7B示出随着时间由源代码尝试的示例性连接的曲线图,如根据本公开的一个或更多实施例所描述的。
[0028]图8示出根据本公开的一个或更多实施例的可以部分地或全面地执行本公开的一个或更多方法、例程和解决方案的示例性数据处理系统的示意图。
【具体实施方式】
[0029]各种技术的目标在于,检测和/或防止恶意软件的攻击,但这些解决方案已经证明,对于处理由攻击者或黑客所使用的各种技术是无效的。根据由攻击者所使用的一种示例性技术,恶意软件,有时称为先进持续性威胁(以下简称“APT”),通过一些进入机制感染目标机器并安装能够为攻击者执行动作的软件程序。在安装以后,APT可以经由计算机网络通常以定期和反复的方式开始“调用”主机或主机列表或者为其“设信标”。这些调用或信标的目的可能是要绕过公司或个人的防火墙,这些防火墙倾向于阻止大多数入站流量,但允许大多数出站流量。软件程序可以允许攻击者指示或控制受害设备,以便为攻击者执行动作,比如调查其他计算系统、从受感染的设备收集数据和/或将信息泄露给攻击者。为了使这种信标技术有效,例如由攻击者控制的服务器或IP地址可能在感染之前由恶意软件程序指定并保存,使得恶意软件程序能够通过发送出站数据与攻击者通信。这种服务器或IP地址或者服务器或IP地址的列表可以由攻击者在将来进行更新。为了使恶意软件按预期的运行,一般需要在规定的时间间隔联系至攻击者控制的服务器或服务器组(通常被认为是命令&控制服务器或C&C服务器),使得能够建立控制和/或能够获取对恶意软件的更新。攻击者可能使C&C服务器离线很长时间,以防止服务器被安全公司折中或关闭。因此,大多数信标尝试可能是不成功的,因为C&C服务器将不会在线,并且这些请求将会以错误返回或将永远也不会返回。这种信标尝试一般可以被认为是无响应的(例如无响应出站数据包和/或网络流量)。
[0030]本公开描述了用于经由分析无响应出站网络流量来检测感染的网络设备的一种或更多系统、方法、例程和/或技术。本公开的系统、方法、例程和/或技术可以被设计和/或修改以检测由攻击者所使用的各种技术,其中检测的执行可以不需要已识别的威胁的签名和/或指纹,或不需要关于众所周知的恶意IP地址的知识。本公开的系统、方法、例程和/或技术可以被设计和/或修改以检测由攻击者所使用的各种技术,其中检测的执行可以不需要显著数量的人机交互或手动检查来确定是否存在恶意软件感染。本公开的系统、方法、例程和/或技术可以被设计和/或修改以检测由攻击者所使用的各种技术,其中可以通过分析对于特定类别的感染是共同的行为模式来执行检测。本公开的系统、方法、例程和/或技术可以被设计和/或修改以检测由攻击者所使用的各种技术,其中检测可以在恶意软件的“信标”阶段期间(即在恶意软件的感染和激活之间的时间)执行。
[0031]本公开的一个或更多实施例可以描述对出站网络数据包的分析,该出站网络数据包没有接收到响应数据包或带有实质性响应的数据包(即无响应数据包),以检测设备和/或网络上的恶意软件。术语无响应数据包可以指如下出站网络数据包,其没有接收到响应数据包或接收到没有实质性响应的数据包,例如仅指示连接错误的数据包。作为一个示例,术语“死SYN”可以指没有接收到对应的响应数据包(例如SYN-ACK数据包)的TCP同步(SYN)数据包。作为另一示例,复位或RST数据包可以指指示连接错误且可能并不指示有效响应数据包的TCP数据包。本公开的一个或更多实施例可以描述了使用无响应数据包追踪(例如死SYN追踪)来检测设备和/或网络上的恶意软件,例如先进持续性威胁(APT)。本公开的一个或更多实施例可以描述了对无响应数据包(例如死SYN数据包)的数量、周期性、集群和/或目标目的地的分析。本公开的一个或更多实施例可以描述了向操作员、程序、服务或其它实体警报可能指示恶意软件存在的一个或更多条件。本公开的一个或更多实施例可以描述了使用过滤器和/或控制参数来限制假阳性警报的数量。
[0032]应当明白的是,本公开中的描述可以应用于不同通信协议,例如发送初始出站数据包或初始出站流量并期望一些实质性响应返回的任一通信协议。示例性通信协议可以是TCP、UDP、其它路由协议或任一其他通信协议。应当明白的是,虽然本公开中的不同描述可以解释特定协议的示例,例如TCP协议(以及死SYN追踪)示例,以便清楚地解释本公开,但是本发明所提供的描述可以应用于不同的其他通信协议和无响应数据包。
[0033]图1示出网络设置100的示例性组件、连接和交互的方框图的图示,其中本公开的一个或更多实施例在这种网络设置中可能是有用的。应当明白的是,网络设置100可以包含比图1所示的额外或更少的组件、连接和交互。图1关注可能是组件、连接和交互的大得多的网络的一部分。网络设置100可以包含网络102、防火墙104、数个内部设备(例如内部设备106、108、110、111)以及数个外部设备(例如外部设备112、114、116)。网络102可以是用来在不同设备之间,比如数据处理系统之间,以及可能的其他设备之间,提供通信链路的媒介。网络102可以包含连接,比如无线或有线通信链路。在一些示例中,网络102代表世界范围的一组网络和网关,其使用传输控制协议互联网协议(TCP/IP)套件协议来彼此通信。在一些示例中,网络102可以包含内联网、局域网(LAN)或广域网(WAN)。
[0034]在图1所示的示例中,数字120代表网络设置100的一部分,其为“内部的”,这意味着它在防火墙或一些其它设备或程序的后面,这些其他设备或程序试图检测出网络102上的恶意活动并试图保持内部设备106、108、110、111免于恶意软件、病毒等。作为一个示例,防火墙104可以是公司防火墙,且内部部分120可以是处于公司内部网络内的全部或部分设备。内部设备106、108、110、111可以是数据处理系统、服务器、打印机、电脑、膝上型计算机、智能手机、PDA或可以与网络通信的任一其他类似种类的设备。外部设备112、114、116可以是数据处理系统、服务器、计算机等,它们被设计和/或编程以攻击内部设备,比如内部设备 106、108、110、111。
[0035]本公开的一个或更多实施例可以在位于内部设备106、108、110、111和网络102之间的设备上运行。例如本公开的一个或更多实施例可以在防火墙104上运行。防火墙104可以是能够被编程以执行计算机代码的一个或更多数据处理系统,该计算机代码可以执行经由对无响应出站网络流量的分析来检测已感染的网络设备的一种或更多系统、方法、例程和/或技术。在一些实施例中,本公开的一种或更多系统、方法、例程和/或技术可以被计为例如布置在一个或更多设备(比如防火墙104)内的硬件。在一些实施例中,本公开的一种或更多系统、方法、例程和/或技术可以被设计为硬件和软件的结合。在一些实施例中,本公开的系统、方法、例程和/或技术可以使用多于一个防火墙设备来实施。例如,一个或更多防火墙设备可以作为较大的单元一起工作。
[0036]图2示出网络设置200的示例性组件、连接和交互的方框图的图示,其中本公开的一个或更多实施例在这种网络设置中可能是有用的。图2示出了网络流量202、数据包报头捕获引擎204、数据包报头列表206、无响应数据包警报模块208以及事件列表210的图示。网络流量202可以包含原始数据包流,例如流过网络(比如图1的网络102)的原始数据包流。数据包报头捕获引擎204可以监视和/或分析来自网络流量202的原始数据包,且可以提取和/或捕获数据包的报头。数据包的报头可以包含关于数据包的信息,包括路由信息,比如源信息(例如源IP地址(Src),源端口号(SrcPort))和目的地信息(例如目的地IP地址(Dst)、目的地端口号(DstPort))。应当明白的是,在本公开的一些实施例中,“目的地”可以指不仅仅是单个目的地(例如单个计算机、IP地址等)。例如,目的地可以一般地指一个或更多组特定的目的地,例如网络或IP地址等的范围。因此,即使在此描述的不同实施例可能讨论一个目的地,但应该理解,可以将在此描述的技术应用到一个或更多组目的地的不同实施例或替换实施例被预期。
[0037]在一些实施例中,数据包捕获弓丨擎204可以将报头“归一化(normalize)”,这意味着它可以将一段时间内(例如在一分钟内)在网络流量202中看到的全部相同的报头成组(group)。数据包报头捕获引擎204可以存储在该时间段内的第一个数据包的时间(开始时间)和在该时间段内的最后一个数据包的时间(结束时间)。数据包报头捕获引擎204可以例如在数据包报头列表206中存储数据包报头。数据包报头列表可以是数据库或可以包含信息行的一些其他数据存储件。如果报头捕获引擎204将报头归一化,则它可以将一段时间内每组相同的报头存储在报头列表206的单个行中,包括在该段时间内所看到的相同报头的次数的计数。报头捕获引擎204也可以存储每组报头的开始时间和结束时间。在这方面,数据包报头信息可以被压缩到报头列表的较少行中同时仍然保存着信息。
[0038]数据包报头列表206可以作为输入提供给无响应数据包警报模块208。应当明白的是,图2中示出的示例仅是网络流量可能会怎样被捕获、积累和/或存储以供分析的一个示例。在本公开的其他实施例中,无响应数据包警报模块208可以接受其他形式的数据包信息作为输入。例如,无响应数据包警报模块208可以适于分析全部原始数据包捕获、流量和/或数据包流信息和/或其他格式的数据包信息。作为另一示例,无响应数据包警报模块208可以分析每个数据包报头而不是分析归一化的报头。在这些示例中,报头列表206可以为每个报头存储准确的或近似的到达时间而不是开始和结束时间。为了清楚地描述在此描述的系统、方法、例程和/或技术,本公开将关注例如来自报头列表206的归一化报头,作为用于无响应数据包警报模块208的数据包信息的源。然而,应当明白的是,对在此描述的不同系统、方法、例程和/或技术的描述也可以应用于其他的数据包信息源。
[0039]无响应数据包警报模块208可以包含数个组件、例程、算法、代码、配置数据等。无响应数据包警报模块208可以包含无响应数据包提取器212、过滤器配置(config)文件214、追踪的连接列表216、列表清理模块218、数量检测器模块220、目的地检测器模块222和集群检测器模块224。无响应数据包提取器212可以被编程和/或修改以读取和分析来自报头列表206的报头条目。网络流量可以利用多种通信协议中的一个或更多,且无响应数据包提取器212可以读取和分析与正在使用的协议关联的数据包报头条目。在一些实施例中,网络流量可以利用TCP协议,在这种情况下,无响应数据包提取器212可以读取和分析TCP数据包报头条目。无响应数据包提取器212可以检测、提取和/或启动或引起无响应数据包(例如死-SYN数据包)的存储。无响应数据包警报模块208可以使用或接受过滤器配置数据214 (例如一个或更多过滤器配置(config)文件)作为输入。无响应数据包警报模块208可以将数据和/或命令传递给追踪的连接列表216,且作为从无响应数据包提取器212通信的结果,追踪的通信列表可以将数据添加至它的数据存储件和/或从其移除数据。
[0040]追踪的连接列表216可以是数据库或其他数据存储件,例如易于搜索的数据存储件。追踪的连接列表中的每个条目或行都可以包含唯一的“元组(tuple)”。元组可以指关于包含多条数据的数据包的信息。作为一个示例,元组可以包含开始时间和结束时间(如报头捕获引擎204所确定的)和来自数据包报头的信息,比如源信息(例如源IP地址(Src)、源端口(SrcPort))、目的地信息(例如目的地IP地址(Dst)、目的地端口(DstPort))、一个或更多标志(如果该协议使用标志的话,例如TCP标志)以及从开始时间开始到结束时间结束的时间段内报头捕获引擎204所看到的相同报头的数量。应当明白的是,在本公开的一些实施例中,“目的地”可以指不仅仅是单个目的地(例如单个计算机、IP地址等)。例如,目的地一般地可以指一个或更多组特定的目的地,例如网络或IP地址等的范围。因此,尽管在此描述的不同实施例可能讨论一个目的地,但应该理解,可以将在此描述的技术应用于一个或更多组目的地的不同实施例或替换实施例被预期。追踪的连接列表可以与列表清理模块218通信。列表清理模块可以与追踪的连接列表通信,以维护追踪的连接列表中的条目,例如移除已经在列表中存在了一段时间的条目。
[0041]数个独立的检测器进程可以与追踪的连接列表216通信,并且可以利用存储在追踪的连接列表216中的信息。检测器进程的示例是数量检测器220、目的地检测器222以及集群检测器224。虽然在此详细描述了这三个示例进程,但本公开也考虑了以类似方式工作的其他检测器进程。每个检测器进程都从追踪的通信列表216接受条目作为输入。每个条目可以是如上面所解释的元组。每个检测器进程可以输出一个或更多的事件,例如可以传递给另一实体以便分析的事件。这些事件可以指示在可能感兴趣的网络流量中已检测到异常。例如,操作员可以手工地检验事件日志并可以采取行动,例如,移除损坏了的软件或阻止设备执行恶意操作。作为另一示例,事件可以由软件包、事件相关工具、事件日志记录机制或其他外部实体来分析,且这些实体可以检测感兴趣的情景和/或将威胁级别分配到事件。
[0042]图3示出根据本公开的一个或更多实施例的可以在无响应数据包提取器300中发现的示例性组件、例程、算法、配置数据等的方框图的图示。无响应数据包提取器300可以类似于图2的无响应数据包提取器212。无响应数据包提取器300可以与数据包报头列表302和追踪的连接列表304通信,它们可以分别类似于图2所示的数据包报头列表206和追踪的连接列表216。
[0043]无响应数据包提取器300可以被编程和/或修改以读取和分析来自报头列表302的归一化的报头条目。在一些实施例中,无响应数据包提取器300可以读取和分析归一化的数据包报头条目(例如TCP数据包报头条目)。无响应数据包提取器300可以利用数个组件、例程、算法、配置数据等来检测、提取和/或启动或引起无响应数据包(例如死SYN数据包)的存储。在步骤306,归一化的报头或记录可以从报头列表302中当前条目或行中读
取或获取(retrieve)。记录可以包含识别数据包的唯--组信息。在一些示例中,信息包
含以下内容:源信息(例如Src、SrcPort)>目的地信息(例如Dst、DstPort)、一个或更多标志(如果协议具有标志的话,例如TCP标志)、开始时间、结束时间以及在该时间段内(即在开始时间和结束时间之间)表示的这种相同数据包报头的数量。在其他示例中,例如在单独地捕获报头而不是在一时间段内使其聚集的示例中,归一化的报头信息可以包含单个的时间,而不是开始时间和结束时间。这些唯一地识别数据包的信息可以被称为“归一化”的字段。对于每个数据包,归一化的字段可以保存在报头列表302中,且对于每个连接都保存在追踪的连接列表304中。例如在追踪的连接列表中所使用的术语连接可以指类似于归一化的数据包的信息。然而,术语连接表明归一化的数据包是一次完整的网络事务或握手,例如TCP握手。
[0044] 作为网络事务或握手的一个示例,讨论了 TCP握手,它是旨在帮助完全描述此处的技术而决无意限制本公开所考虑的通信协议的类型。一般来说,TCP协议需要3次握手,以经过网络(例如互联网)建立连接。TCP的三次握手技术可以被称为SYN、SYN-ACK, ACK,因为存在三个消息,它们通过TCP发送以在两台计算机之间协商和开始TCP会话。TCP握手机制被设计为使得尝试通信的两台计算机能够在传输数据之前协商网络TCP套接字连接的参数,例如SSH和HTTP网页浏览器请求。根据TCP协议传输的第一条消息是SYN消息或数据包,其从源(src)传输到目的地(dst)。根据TCP协议传输的第二条消息是SYN-ACK消息或数据包,其从目的地(dst)传输到源(src)。根据TCP协议传输的第三条消息是ACK消息或数据包,其从源(src )传输到目的地(dst)。无响应数据包提取器300可以被编程和/或修改以认识到几乎每种TCP事务都以SYN消息或数据包开始,并且为了形成正确的连接,src必须从dst接收一些响应。根据TCP协议,响应数据包可以是一些不同于SYN-ACK的消息类型。因此,无响应数据包提取器300可以被编程和/或修改以针对响应数据的类型是灵活的。
[0045]在步骤308,无响应数据包提取器300可以例如通过分析报头的标志或标志字段(例如TCP标志)来分析在步骤306读取的归一化的报头,从而确定数据包(例如TCP数据包)是否是初始通信(例如SYN消息或数据包)。如果数据包是初始通信(例如SYN消息),则无响应数据包提取器300可以将该数据包解释为事务或通信的开始或初始。如果该数据包关联于事务或网络通信的开始且如果该数据包信息如进一步描述地被确定为潜在的无响应数据包,则数据包提取器300可以引起对该数据包的数据包信息的存储和/或追踪。如果数据包是初始通信(例如SYN消息),则在步骤310,无响应数据包提取器300可以确定是否应当将数据包过滤掉,这意味着将不会追踪数据包。数据包可以因为多种原因和通过多种方式过滤掉。例如,可以过滤掉正尝试启动与可信目的地连接的数据包。在步骤310,无响应数据包提取器300可以使用例如来自配置文件或配置数据库的过滤器配置数据312。过滤器配置数据可以是用户创建的和/或用户提供的,并且它可以包含指示应当过滤掉特定的数据包的字段列表等。例如,过滤器配置数据可以含有应当过滤掉的源列表、目的地列表和/或源/目的地的结合列表。作为另一示例,过滤器配置数据可以含有指示应当过滤掉的数据包的时间、时间段或其他基于时间的度量。例如,如果用户或管理员知道网络或机器将会例如为了维修或计划内的断电而停机一段时间,则这种基于时间的过滤可能是有用的。在步骤310,无响应数据包提取器300可以将在步骤306读取的归一化报头与过滤器配置数据312比较,并且如果文件指示应当过滤掉数据包,则无响应数据包提取器300不追踪连接并移动至报头列表302中的下一行或下一归一化报头(步骤314)。
[0046]如果报头/数据包(例如TCP SYN报头/数据包)在步骤310没有被过滤掉,则在步骤316,如果无响应数据包提取器300确定初始通信数据包是由重传协议(例如TCP重传协议)引起的,则移除初始通信数据包(例如TCP SYN消息)(即不追踪)。作为一个示例,根据TCP协议,在数据包被确定为无响应的或死的之前,TCP SYN消息可以被尝试四次。在初始SYN消息以后的随后的SYN消息尝试被称为重传。因此,在步骤316,如果初始通信数据包(例如SYN消息)是例如在一段时间内的带有相同的报头信息(例如src、dst、src-port、dst-port等)的随后的初始通信数据包,则它可以被确定为重传。在一些实施例中,无响应数据包提取器300可以与追踪的连接列表304通信,以确定最近是否检测到类似的初始通信数据包。在一些实施例中,无响应数据包提取器300可以确定数据包是来自数据包本身的信息(例如数据包的报头)的重传。移除(即不追踪)重传消息可以防止重复追踪相同的TCP连接。
[0047]在步骤318,如果初始通信数据包或消息(例如TCP SYN数据包或消息)没有被过滤掉或移除,则归一化报头可以被传递给追踪的连接列表304,使得追踪的连接列表304可以例如针对每个归一化报头利用一个条目或一行来将归一化报头信息作为潜在的无响应数据包保存、存储和/或追踪。例如,如果归一化报头含有指示在开始时间和结束时间之间看到的类似报头的数量(即计数)的字段,如果计数为I或更多,则无响应数据包提取器300可以保存或存储归一化报头信息。在这方面,潜在的无响应数据包例如死SYN数据包可以被添加到追踪的连接列表。如果添加到追踪的连接列表的连接后来没有被例如确定看到了针对此连接的响应或答复的一些其他例程、步骤等移除,则连接可以被标志为可以指示恶意软件的无响应数据包。将在下面描述可以从追踪的连接列表移除连接的例程、步骤、组件、规则等。在步骤318以后,无响应数据包提取器300移动至报头列表302中的下一行或下一归一化报头(步骤314)。
[0048]在步骤308,无响应数据包提取器300可以例如通过分析报头的标志或标志字段(例如TCP标志字段)来分析在步骤306读取的归一化的报头,从而确定数据包(例如TCP数据包)是否是初始通信数据包(例如SYN消息或数据包)。如果数据包不是初始通信数据包(例如SYN消息),则无响应数据包提取器300可以进一步分析数据包。在步骤320和步骤322,无响应数据包提取器300可以确定在步骤306读取的数据包报头是否是对在追踪的连接列表304中追踪的通信的响应或答复数据包。如果数据包是响应或答复,则先前分析的初始通信数据包(例如TCP SYN数据包)不是无响应数据包,并且可以不标志为恶意软件。在步骤320,无响应数据包提取器300可以与追踪的连接列表304通信,以确定条目或连接是否已经存在于数据库中,该数据库包含与即时报头(Src-to-Dst)相比实际上是颠倒的报头信息。如果带有特定的Src和Dst的TCP SYN数据包根据通信协议(例如TCP协议)传输,则可以预期的是,对初始通信数据包(例如SYN数据包)的响应数据包具有与初始通信数据包的Dst相同的Src并且具有与初始通信数据包的Src相同的Dst。如果即时数据包和存储的数据包的报头信息以这种颠倒的方式匹配,则即时数据包可以是对先前存储在追踪的连接列表304中的连接的响应数据包。如果即时数据包和存储的数据包的报头信息不匹配,则数据包将被忽略(即不追踪),且无响应数据包提取器300移动至报头列表302中的下一行或下一归一化报头(步骤314)。
[0049]在步骤322,无响应数据包提取器300可以确定响应数据包是否含有标志(例如TCP标志)或指示响应数据包不含有实质性响应的其它数据。作为一个示例,标志可以指示连接错误(例如TCP协议中的RST(复位)标志)。根据TCP协议,复位数据包被用来指示连接被拒绝。如果数据包含有实质性的响应(例如不是连接错误),则无响应数据包提取器300可以通过例如与追踪的连接列表304通信来移除数据包或报头(Src-to-Dst)以免被追踪(步骤324)。无响应数据包提取器300可以移除数据包以免被追踪,因为响应数据包是从目的地接收的,并且响应数据包是实质性的(即不是复位数据包或指示拒绝连接的数据包)。无响应数据包提取器300可以移除数据包以免被追踪,因为已经确定数据包不是无响应数据包(例如死SYN)。因此,数据包将不会被标记为潜在的恶意软件。在从追踪的连接列表304中移除数据包以后,无响应数据包提取器300可以移动至报头列表302中的下一行或下一归一化报头(步骤314)。在步骤322,如果无响应数据包提取器300确定数据包不是实质性数据包,例如复位数据包或指示连接错误的数据包,则忽略数据包(即对应的数据包没有从追踪的连接列表中移除),并且无响应数据包提取器300可以移动至报头列表302中的下一行或下一归一化报头(步骤314)。在这方面,无响应数据包提取器300可以处理连接错误或复位数据包,就像根本没有响应返回一样。
[0050]图4示出根据本公开的一个或更多实施例的可以在列表清理模块400中发现的示例性组件、例程、算法、配置数据等的方框图的图示。列表清理模块400可以类似于图2的列表清理模块218。列表清理模块400可以与追踪的连接列表404通信,追踪的连接列表404可以类似于图2的追踪的连接列表216。
[0051]列表清理模块400可以与追踪的连接列表404通信,以维护追踪的连接列表404中的条目,例如与追踪的连接列表404通信,使得追踪的通信列表404移除已经在列表中存在了一段时间且不再需要追踪的条目。列表清理模块400可以利用数个组件、例程、算法、配置数据等来维护追踪的连接列表404中的条目。在步骤406,列表清理模块400可以选择和读取追踪的通信列表404中的一个条目或一行(例如当前条目或行)。在步骤408,列表清理模块400可以确定连接是否已经在列表中存在了足够长的时间使得其应当不再被追踪。列表清理模块400可以将在数据包报头中的时间字段(例如结束时间)与一个或更多时间限制(例如最大存储时间限制)相比较。例如,如果归一化报头含有开始时间和结束时间,则列表清理模块400可以将时间限制与结束时间相比较,因为结束时间可能代表了追踪的连接被看到的最近的时间。时间限制可以是用户提供的和/或用户指定的,例如在时间限制配置数据410中,时间限制配置数据410是例如来自配置文件或配置数据库。时间限制可以设置为多个值,例如日、周、月等。参考步骤408,如果追踪的连接没有超过时间限制,则列表清理模块400针对追踪的连接列表404可以没有启动动作,并可以返回到步骤406,从而选择和/或读取在追踪的连接列表404中的下一条目或行。
[0052]列表清理模块400可以出于多种原因而从追踪的连接列表中移除条目。例如,时间限制可以代表确定在一段时间以后,如果已标志的连接在根本上是要处理的话,则在该时间将会应对或处理已标志的连接。作为另一示例,用来实施本公开的一个或更多实施例的系统可能具有有限的资源,例如数据存储。用于移除连接的时间限制可以是防止追踪的连接列表消耗太多资源和/或过多存储空间的明智的方式。
[0053]在步骤412,如果追踪的连接比时间限制更久,则列表清理模块400可以与追踪的连接列表404通信,使得追踪的连接列表400可以移除连接。然后,列表清理模块400可以指示可以返回到步骤406,从而选择和/或读取追踪的连接列表404中的下一条目或行。
[0054]图5示出根据本公开的一个或更多实施例的可以在数量检测器500中发现的示例性组件、例程、算法、配置数据等的方框图的图示。数量检测器500可以类似于图2的数量检测器220。数量检测器500可以与追踪的连接列表504通信,追踪的连接列表504可以类似于图2的追踪的连接列表216。数量检测器500可以利用存储在追踪的连接列表504中的信息。
[0055]数量检测器500可以从追踪的通信列表504接受条目作为输入。每个条目可以包含元组。作为一个示例,元组可以包含开始时间和结束时间以及唯一的数据包报头信息,比如源信息(例如源IP地址(Src)、源端口(SrcPort))和目的地信息(例如目的地IP地址(Dst)、目的地端口(DstPort)),如报头捕获引擎在开始时间开始到结束时间结束的时间段内所看到的。应当明白的是,在本公开的一些实施例中,“目的地”可以指不仅仅是单个目的地(例如单个计算机、IP地址等)。例如,目的地可以一般地指一个或更多组特定的目的地,例如网络或IP地址等的范围。因此,尽管在此描述的不同实施例可以讨论一个目的地,但应该理解,可以将在此描述的技术应用于一个或更多组的目的地的不同实施例或替换实施例被预期。数量检测器500可以输出一个或更多事件(参见步骤530和事件列表502),例如可以传递给另一实体以便分析和/或动作的事件。这些事件可以指示在可能感兴趣的网络流量中已检测到异常。恶意软件黑客可以不断地改变他们的目的地服务器以避免检测;因此,针对追踪的连接列表中的数据,数量检测器500可以利用数个不同检查和/或比较,例如从而检测可能指示恶意软件的不同类型的行为。
[0056]数量检测器500可以利用数个组件、例程、算法、配置数据等来分析各种无响应追踪的连接,以确定连接是否潜在地指示恶意软件和/或受感染的设备。在步骤506,数量检测器500可以从追踪的连接列表504中选择和/或读取数个条目或行。例如,数量检测器500可以读取在一段时间内的带有唯一源和目的地(例如唯一 Src、Dst、SrcPort和DstPort)的全部条目。该时间段可以是与图2的报头捕获引擎204所使用的时间段不同的时间段。由数量检测器500所使用的时间段可以跨越追踪的连接列表504中的若干条目或行。
[0057]由数量检测器500所使用的时间段可以是例如通过时间段配置数据508由用户定义和/或用户提供的,时间周期配置数据508是例如来自配置文件或配置数据库。由数量检测器500所使用的时间段可以被调整以提供最少的假阳性事件产生。可以使用由数量检测器500所使用的时间段,因为用于追踪的连接的答复或响应数据包将需要一段时间才被接收。可以使用由数量检测器500所使用的时间段,使得允许无响应数据包提取器300有时间从追踪的连接列表中移除任一“未死的”数据包(接收实质性响应的数据包)。由数量检测器500所使用的时间段可以用来处理如上所述的重传协议,这会花若干分钟时间(例如对于TCP协议是3分钟)。数量检测器500可以利用允许完成重传协议的缓冲区的时间段,例如对于TCP协议是5分钟。数量检测器500可以利用如下时间段,其足够长以允许合理数量的无响应数据包建立在追踪的连接列表504中,例如使得能够检测到趋势和/或复发。太短的时间段可能导致不均匀地或间歇性地检测异常。
[0058]在本公开的一些实施例中,数量检测器500可以利用两个或更多时间段。一个时间段可以相对较短,例如以快速地检测问题,而另一时间段可以较长,例如以更准确地检测异常和/或潜在地受感染的设备(即具有较高的置信度和/或准确度)。作为一个示例,较短的时间段可以是60分钟,而较长的时间段可以是两天。各种其他时间段可以用来优化结果和/或用来瞄准(target)用户和/或管理员感兴趣的情形。出于多种原因,两个或更多时间段可能是有用的。例如,不同类型的恶意软件可能会表现出不同的信标行为(例如较短或较长的信标循环)。数量检测器500可以使用不同的时间段来试图捕获根据不同信标行为发送的数据包。
[0059]在步骤510,一旦在时帧(或多个时帧)内选择了带有唯一源和目的地(例如唯一的Src、Dst、SrcPort> DstPort字段)的一组数据包或报头,数量检测器500就可以计数出唯一的源/目的地元组(例如Src、Dst、DstPort元组)的数量。这个计数可以用来检测单个给定的源设备对于同一目的地设备和/或服务生成了多个无响应数据包(即未答复SYN尝试)的情况。在步骤516,将计数与阈值比较,以确定计数是否超过阈值。阈值可以是例如通过阈值配置数据522由用户配置和/或用户提供的,阈值配置数据522是例如来自配置文件或配置数据库。在步骤516,如果计数小于阈值,则将不采取操作(步骤528),并且数量检测器500返回到步骤506,以选择下一组唯一的元组。如果计数大于阈值,则数量检测器500可以生成事件(步骤530)并可以将事件传递给事件列表502。然后,数量检测器500可以返回到步骤506,以选择下一组唯一的元组。
[0060]对于数量检测器500和不同阈值配置数据(例如配置数据522、524、526)以及不同的阈值比较(例如步骤516、518、520),应当明白的是,在使用多个时间段的情况下,如上文所解释的,可以使用额外的阈值和/或可以增加额外的阈值比较步骤。例如,在不同的阈值比较步骤(例如步骤516、518、520),阈值比较步骤对于每个时间段可以执行不同的比较,并且对于每个时间段可以参考不同的阈值。在这方面,数量检测器500可以生成与这些不同阈值、阈值比较和时间段对应的一个或更多事件。
[0061]在步骤512,一旦在时帧(或多个时帧)内选择了带有唯一源/目的地(例如唯一的Src、Dst、SrcPort, DstPort字段)的一组数据包或报头,数量检测器500就可以为每个唯一的目的地设备或服务(例如唯一的Dst/DstPort元组)计数出不同源设备的数量。这个计数可以用来检测多个源设备已感染有同一恶意软件且全部尝试与同一 C&C服务器通信的情况。在步骤518,将计数与阈值比较,以确定计数是否超过阈值。阈值可以是例如通过阈值配置数据524由用户配置和/或用户提供的,阈值配置数据524是例如来自配置文件或配置数据库。在步骤518,如果计数小于阈值,则将不采取动作(步骤528),并且数量检测器500返回到步骤506,以选择下一组唯一的元组。如果计数大于阈值,则数量检测器500可以生成事件(步骤530)并可以将事件传递给事件列表502。然后,数量检测器500可以返回到步骤506,以选择下一组唯一的元组。
[0062]在步骤514,一旦在时帧(或多个时帧)内选择了带有唯一源/目的地(例如唯一的Src、Dst、SrcPort> DstPort字段)的一组数据包或报头,数量检测器500就可以计数每个源设备已尝试通信且失败了的不同目的地设备或服务(例如唯一的Dst/DstPort元组)的数量。这个计数可以用来检测单个源设备正在尝试与多个目的地设备通信但是不断失败的情况。这种情况可以指示APT恶意软件的常见行为。在步骤520,将计数与阈值比较,以确定计数是否超过阈值。阈值可以是例如通过阈值配置数据526由用户配置和/或用户提供的,阈值配置数据526是例如来自配置文件或配置数据库。在步骤520,如果计数小于阈值,则将不采取动作(步骤528),并且数量检测器500返回到步骤506,以选择下一组唯一的元组。如果计数大于阈值,则数量检测器500可以生成事件(步骤530)并可以将事件传递给事件列表502。然后,数量检测器500可以返回到步骤506,以选择下一组唯一的元组。
[0063]图6示出根据本公开的一个或更多实施例的可以在目的地检测器模块600中发现的示例性组件、例程、算法、配置数据等的方框图的图示。目的地检测器600可以类似于图2的目的地检测器222。目的地检测器600可以与追踪的连接列表604通信,追踪的连接列表604可以类似于图2的追踪的连接列表216。目的地检测器600可以利用存储在追踪的连接列表604中的信息。
[0064]目的地检测器600可以从追踪的通信列表604接受条目作为输入。每个条目可以包含元组。作为一个示例,元组可以包含开始时间和结束时间以及唯一的数据包报头信息,比如源信息(例如源IP地址(Src)、源端口(SrcPort))和目的地信息(例如目的地IP地址(Dst)、目的地端口(DstPort)),如报头捕获引擎在开始时间开始到结束时间结束的时间段内所看到的。应当明白的是,在本公开的一些实施例中,“目的地”可以指不仅仅是单个目的地(例如单个计算机、IP地址等)。例如,目的地可以一般地指一个或更多组特定的目的地,例如网络或IP地址等的范围。因此,尽管在此描述的不同实施例可以讨论一个目的地,但应该理解,可以将在此描述的技术应用于一个或更多组的目的地的不同实施例或替换实施例被预期。目的地检测器600可以输出一个或更多事件(参见步骤620、632和事件列表602),例如可以传递给另一实体以便分析和/或动作的事件。这些事件可以指示在可能感兴趣的网络流量中已检测到异常。
[0065]目的地检测器600可以利用数个组件、例程、算法、配置数据等来分析不同无响应追踪的连接,以确定连接是否潜在地指示恶意软件和/或受感染的设备。在步骤606,目的地检测器600可以从追踪的连接列表604中选择和/或读取数个条目或行。例如,目的地检测器600可以读取在一段时间内的带有唯一源/目的地的全部条目(例如Src、Dst、SrcPort和DstPort)。该时间段可以是与图2的报头捕获引擎204所使用的时间段不同的时间段。由目的地检测器600所使用的时间段可以跨越追踪的连接列表604中的若干条目或行。
[0066]由目的地检测器600所使用的时间段可以是例如通过时间周期配置数据608由用户定义和/或用户提供的,时间周期配置数据608是例如来自配置文件或配置数据库。由目的地检测器600所使用的时间段可以被调整,使得目的地检测器600可以检测在比例如图5的数量检测器500所使用的时间段长的时间段内的数据包中的异常。由目的地检测器600所使用的时间段可以被调整,以提供最少的假阳性事件生成,例如足够长以允许更明确地看出通信趋势的时间段。作为一个示例,恶意软件程序例如APT程序可能会尝试与同一目的地服务器通信,有时以一定间隔做出同一数量的尝试。另外,一些黑客可能会维护多个目的地服务器,并且一些恶意软件程序可能会在对特定服务器的连接尝试之间等待较长的时间段。由目的地检测器600所使用的时间段可以被调整,使得时间段足够长以注意到在较长的时间段内的到特定目的地的趋势,例如源尝试联系特定目的地的平均次数(例如在两周内尝试15次)。
[0067]在本公开的一些实施例中,目的地检测器600可以利用两个或更多时间段。多个时间段可以是重叠的,例如一周的时间段、四周的时间段以及八周的时间段。目的地检测器600可以利用多个时间段来尝试检测不同类型的恶意软件和/或不同类型的信标行为。在利用多个时间段的实施例中,阈值配置数据616针对每个时间段可以包含不同组的配置数据,例如在配置数据库中的不同配置文件或不同数据。
[0068]在步骤610,一旦在时帧(或多个时帧)内选择了带有唯一源/目的地(例如唯一的Src、Dst、SrcPort> DstPort字段)的一组数据包或报头,目的地检测器600就可以计数每个目的地(例如Dst、DstPort元组)在该组中发生的次数。这个计数可以用来检测多个源尝试与共同的目的地(例如潜在的APTC&C服务器)建立连接的情形。在步骤612,分析了来自该组的每个唯一的目的地(例如Dst/DstPort元组)。作为步骤612的子步骤,在步骤614,针对来自该组的每个唯一的目的地(例如Dst/DstPort元组),将该目的地发生的次数的计数与阈值比较,以确定计数是否超过阈值。阈值可以是例如通过阈值配置数据616由用户配置和/或用户提供的,阈值配置数据616是例如来自配置文件或配置数据库。在步骤614,如果计数小于阈值,则将不采取动作(步骤618),并且目的地检测器600可以返回到步骤606,以选择下一组唯一的元组。如果计数大于阈值,则目的地检测器600可以生成事件(步骤620)并可以将事件传递给事件列表602。事件可以指示特定的目的地(例如Dst/DstPort的结合)与潜在的恶意软件(例如APT) C&C服务器或设备相关。然后,目的地检测器600可以返回到步骤606,以选择下一组唯一的元组。
[0069]在步骤622,一个或更多例程可以开始确定在步骤614识别的特定目的地(例如Dst/DstPort元组)是否是反复的恶意软件(例如APT) C&C服务器或设备。在步骤622,目的地检测器600可以计算特定目的地(例如Dst/DstPort元组)已经是每个源设备的无响应数据包(例如死SYN数据包)目标的平均次数。这个计算可以提供在时间段内发生的源尝试与目的地连接的频率的估计值。在步骤624,步骤622的计算结果可以与针对一个或更多先前的时间段执行的相同计算的结果(即每个源的平均目的地)比较。在步骤626,如果来自当前时间段和过去时间段的平均值接近,例如彼此在I标准方差内,这可以指示源以定期和反复的方式尝试连接至同一目的地,例如潜在的C&C服务器(例如在目前的两周、先前的两周等内有15次尝试),这可以指示在恶意软件中以定期间隔尝试建立信标的再发生代码。在步骤630,目的地检测器600可以与追踪的连接列表604通信,以获取和/或生成具有带当前目的地(例如Dst/DstPort元组)的无响应数据包(例如死SYN数据包)的全部源设备的列表。然后,目的地检测器600可以针对每个源生成事件,并且可以将这些事件传递至事件列表602。每个源的事件可以例如以高概率指示源有可能感染了尝试与关联目的地的C&C服务器通信的恶意软件,例如APT恶意软件。
[0070]在步骤626,如果来自当前时间段和过去时间段的平均值不接近,例如彼此不在I标准方差内,则目的地检测器600可以不生成任一事件,并且可以返回到步骤606,以选择下一组唯一的元组。
[0071]图7A示出根据本公开的一个或更多实施例的可以在集群检测器模块700中发现的示例性组件、例程、算法、配置数据等的方框图的图示。集群检测器700可以类似于图2的集群检测器224。集群检测器700可以与追踪的连接列表704通信,追踪的连接列表704可以类似于图2的追踪的连接列表216。集群检测器700可以利用存储在追踪的连接列表704中的信息。
[0072]集群检测器700可以从追踪的通信列表704接受条目作为输入。每个条目可以包含元组。作为一个示例,元组可以包含开始时间和结束时间以及唯一的数据包报头信息,比如源信息(例如源IP地址(Src)、源端口(SrcPort))和目的地信息(例如目的地IP地址(Dst)、目的地端口(DstPort)),如报头捕获引擎在开始时间开始到结束时间结束的时间段内所看到的。应当明白的是,在本公开的一些实施例中,“目的地”可以指不仅仅是单个目的地(例如单个计算机、IP地址等)。例如,目的地可以一般地指一个或更多组特定的目的地,例如网络或IP地址等的范围。因此,尽管在此描述的不同实施例可以讨论一个目的地,但应该理解,可以将在此描述的技术应用于一个或更多组的目的地的不同实施例或替换实施例被预期。集群检测器700可以输出一个或更多事件(参见步骤720、736和事件列表702),例如可以传递给另一实体以便分析和/或动作的事件。这些事件可以指示在可能感兴趣的网络流量中已检测到异常。
[0073]集群检测器700可以利用数个组件、例程、算法、配置数据等来分析不同无响应追踪的连接,以确定连接是否潜在地指示恶意软件和/或受感染的设备。例如,集群检测器700可以检测由源做出的无响应连接尝试的集群之间的周期性。在步骤706,集群检测器700可以从追踪的连接列表704中选择和/或读取数个条目或行。例如,集群检测器700可以读取一时间段内的全部条目,并可以按源将条目成组。该时间段可以是与图2的报头捕获引擎204所使用的时间段不同的时间段。由集群检测器700 (在步骤706)所使用的时间段可以跨越追踪的连接列表704中的若干条目或行。
[0074]由集群检测器700所使用的时间段(在步骤706)可以是例如通过时间周期配置数据708由用户定义和/或用户提供的,时间周期配置数据708是例如来自配置文件或配置数据库。由集群检测器700所使用的时间段(在步骤706)可以被调整,使得集群检测器700可以检测在比例如由图5的数量检测器500所使用的时间段长的时间段内的数据包中的异常。由集群检测器700使用的时间段(在步骤706)可以比例如由图6的目的地检测器600使用的时间段短。由集群检测器700所使用的时间段可以被调整,使得可以检测到针对特定源的再发生行为。例如,运行在受感染设备上的恶意软件可以在短时间段内尝试做出若干连接(例如与若干不同的目的地服务器连接)(即连接可以在时间上聚集在一起),然后,恶意软件可以在尝试另一集群连接之前等待相对较长的时间段。换句话说,恶意软件(例如APT恶意软件)可以以定期和反复的间隔将信标(或信标集群)发送至C&C服务器。
[0075]在本公开的一些实施例中,集群检测器700可以利用两个或更多时间段,例如以最小化假阳性事件生成。多个时间段可以是重叠的,例如两周的时间段、四周的时间段以及六周的时间段。集群检测器700可以利用多个时间段来尝试检测不同类型的恶意软件和/或不同类型的信标行为。在利用多个时间段的实施例中,阈值配置数据708和/或724对于每个时间段可以包含不同组的配置数据,例如在配置数据库中的不同配置文件或不同数据。
[0076]在步骤710,对于每个唯一的源,分析来自该组的带有共同源的全部条目或数据包(步骤706)。作为步骤710的子步骤,在步骤712,对于每个源,全部数据包可以成组到时间集群中。图7B示出了曲线图750,其示出了源随时间尝试示例性连接。如在图7B中能够看出的,在10:00:00标记之后不久发生了第一集群752,且在10:57:36标记附近发生了第二集群754。再次参考图7A,集群检测器700可以被编程和/或设计为识别相对接近在一起的不同连接尝试作为单个集群而不是若干离散的数据点。集群检测器700可以被编程和/或设计为将相对接近在一起的不同连接尝试组合成单个数据点(例如图7B中的两个数据点752、754)。然后,集群检测器700可以例如使用集群数据点执行操作、例程等,因为当比较连接尝试的集群而不是精确的连接时间时,模式可以是更明显的。
[0077]在步骤714,集群检测器700可以测量连接尝试的集群之间的时间。在步骤716,集群检测器700可以确定集群之间的时间表现为以重复模式还是定期间隔形成。例如,在步骤716,集群检测器700可以检测连接尝试集群之间的时间是否接近,例如彼此在I标准方差内。在步骤716,如果集群之间的时间没有表现为形成模式,则集群检测器700针对事件生成(步骤718)不采取动作,并返回到步骤710,以为每个源重复迭代。如果集群之间的时间表现为形成模式,则集群检测器700可以生成适当的事件(步骤720),并可以将事件传递给事件列表702。事件可以指示特定的源可能感染了恶意软件,例如可以以循环的方式正在向C&C服务器建立信标的APT恶意软件。然后,集群检测器700可以返回到步骤710,以针对每个源重复迭代。
[0078]在步骤722,集群检测器700可以开始一个或更多例程,它们类似于在步骤706开始的例程。例如,在步骤722开始的例程可以使用类似的集群和检测步骤。在步骤722开始的例程可以使用与在步骤706开始的例程不同的输入数据组,因此,(在步骤736)生成的事件可以是不同的。在步骤722,集群检测器700可以从追踪的连接列表704中选择和/或读取数个条目或行。例如,集群检测器700可以读取一时间段内的全部条目,并可以按源/目的地元组(例如Src/Dst/DstPort元组)将条目成组。由集群检测器700 (在步骤722)所使用的时间段可以跨越追踪的连接列表704中的若干条目或行。由集群检测器700 (在步骤722)使用的这个时间段可以是例如通过时间周期配置数据724由用户定义和/或用户提供的,时间周期配置数据724是例如来自配置文件或配置数据库。该时间段可以类似于与时间段配置数据708相关联的时间段;然而,它可以是不同的和/或是独立配置的。在步骤726,对于每个唯一的源/目的地(例如Src/Dst/DstPort元组),分析了来自该组的带有共同源/目的地的全部条目或数据包(步骤722)。然后,以类似于步骤712、714、716、718、720的方式执行步骤728、730、732、734、736。在步骤736生成的事件可以指示特定的源极可能感染了恶意软件(例如APT恶意软件),并且还可以精确地指示源正在向哪一个C&C服务器或设备建立信标。知道C&C服务器可以帮助精确地确定哪一个恶意软件程序或APT恶意软件程序存在于Src设备上。
[0079]关于经由分析无响应出站网络流量来检测已感染的网络设备的益处,以下描述了本公开的一个或更多实施例的进一步的益处。应当明白的是,所描述的益处并不是限制或要求,并且一些实施例可以省略一个或更多已描述的益处。
[0080]本公开的一个或更多实施例可以适合在网络安全工具的较大套件或程序包内操作。本公开中描述的系统、方法、例程和/或技术可以在网络安全程序包内形成一个或更多工具,例如作为生成警报事件等的一个源。网络安全程序包还可以包含可以分析警报事件的一个或更多事件相关器等。
[0081]本公开中描述的系统、方法、例程和/或技术可以允许检测恶意软件而不需要针对识别威胁的签名和/或指纹,或者不需要知道关于众所周知的恶意IP地址。因为所描述的系统、方法、例程和/或技术可以通过分析数据包行为检测恶意软件而不分析恶意软件程序的代码,所以它能够检测范围广泛的恶意代码,例如签名和/或指纹文件还未知的新恶意软件程序。因此,本公开中所描述的系统、方法、例程和/或技术可以提供依赖基于大规则或签名的比较方法的各种技术的益处。
[0082]本公开中所描述的系统、方法、例程和/或技术可以使如下分析自动化,如果安全专业人员能够分析整个数据包流并识别出压倒性数量的数据(例如在一些样本实施方式中每天超过160亿数据包)中的模式,则安全专业人员将可能执行这些分析。在此所描述的系统、方法、例程和/或技术可以有助于安全专业人员迅速地识别出潜在受感染的设备,从而优化了时间。另外,因为不需要关于威胁(即签名等)的以前的知识,安全专业人员可能不需要以特定类型的知识来“装填”系统,因此系统可以花费更少的精力和时间来设置。另外,安全专业人员能够检测他们以前可能没有时间或信息来检测的威胁。
[0083]本公开中所描述的系统、方法、例程和/或技术可以允许显著的成本节约,例如因为可能需要更少的人力来检测威胁。本公开中所描述的系统、方法、例程和/或技术可以帮助个人和实体防止敏感信息的丢失,例如知识产权和机密信息。有害恶意软件的早期检测可以允许个人或实体及早采取补救措施,在大型实体的情况下,这可以节省数以百万计美
J Li ο
[0084]本公开中所描述的系统、方法、例程和/或技术,包括在不同描述的实施例的流程图和/或方框图中示出的示例性方法和例程,可以实施为由数据处理系统执行的软件,其中该数据处理系统被编程,使得数据处理系统适合执行和/或实行在此所描述的方法、例程、技术和解决方案。在此涉及的方框图或流程图中的每个方框或符号可以代表计算机可使用的或可读的程序代码的模块、节段或部分,这些程序代码包括用于由一个或更多数据处理系统实施特定的功能或多种功能的一个或更多可执行指令。在本公开的一些替换实施方式中,在方框图或流程图的方框或符号中示出的功能或多种功能可以以在附图中标注的顺序以外的顺序发生。例如,在一些情况下,连续显示的两个方框或符号可以基本上同时执行,或多个方框有时可以以相反的顺序执行,这取决于所涉及的功能性。本公开的不同实施例能够采取存储在永久储存体和/或计算机可使用或计算机可读的介质上的计算机代码的形式,其可从计算机程序产品访问,从而提供由计算机或执行指令的任一设备或系统使用的程序代码,或者与它们有关的程序代码。部分或全部计算机代码可以在数据处理系统执行代码之前被加载进数据处理系统的存储器中。
[0085]现在转到图8,描述了示例性数据处理系统800的图示,数据处理系统800可以部分或整体地执行本公开的一种或更多方法、例程和/或技术。在本公开的一些实施例中,多于一个数据处理系统例如数据处理系统800可以用来实施在此所描述的方法、例程、技术和解决方案。在图8的示例中,数据处理系统800可以包含通信构造802,其在组件之间提供了通信,这些组件是例如处理器单元804、存储器806、永久存储体808、通信单元810、输入/输出(I/o)单元812以及显示器814。在一个特定的实施例中,数据处理系统800可以是个人计算机(PC)或与显示器、键盘、鼠标及其他可能的外围设备关联的其他计算机架构。在另一特定的实施例中,数据处理系统可以是例如图1所示的防火墙104。
[0086]处理器单元804可以用来执行可以被加载进存储器806的指令(例如软件程序)。依据特定的实施方式,处理器单元804可以是一组一个或更多处理器或者可以是多处理器内核。进一步,处理器单元804可以使用一个或更多异质处理器系统实施,在该异质处理器系统中,主处理器与二级处理器存在于单个芯片上。作为另一示范性的示例,处理器单元804可以是对称的多处理器系统,其包含多个同一类型的处理器。
[0087]在这些示例中,存储器806可以是例如随机存取存储器或任一其他合适的易失或非易失性存储设备。
[0088]永久存储体808可以依据特定的实施方式而采取不同的形式。例如,永久存储体808可以含有一个或更多组件或设备。例如,永久存储体808可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的某些结合。由永久存储体808所使用的介质也可以是可移除的。例如可以使用可移除硬盘驱动器。
[0089]用于操作系统的指令可以位于永久存储体808上。在一个特定的实施例中,操作系统可以是数个已知的操作系统的一些版本。用于应用程序和/或程序的指令也可以位于永久存储体808上。这些指令可以被加载进存储器806,以便由处理器单元804执行。例如,在本公开中描述的不同实施例的过程可以由处理器单元804使用计算机实施的指令来执行,计算机实施的指令可以被加载进存储器,比如存储器806。这些指令被称为程序代码,计算机可使用的程序代码或计算机可读的程序代码,其可以由处理器单元804中的处理器读取和执行。不同实施例中的程序代码可以体现在不同物理或有形的计算机可读介质上,比如存储器806、永久存储体808和/或其他计算机可读介质,例如作为CD或DVD的一部分。
[0090]用于应用程序和/或程序的指令可以位于不是永久性地包含在数据处理系统800中的计算机可读介质818上。例如,程序代码816可以以功能形式位于计算机可读介质818上,并且可以被加载进或转移到数据处理系统800,以便由处理器单元804执行。程序代码816和计算机可读介质818可以形成计算机程序产品820。在一个示例中,计算机可读介质818可以是有形形式,比如插入或置入驱动器或其他设备的光盘或磁盘中,以便传输到存储设备,比如作为永久存储体808的一部分的硬盘驱动器上。驱动器或其他设备可以例如经由通信构造802或经由输入/输出单元812连接至数据处理系统800的其它组件并与其通信。在另一有形形式中,计算机可读介质818可以是永久存储体,比如连接至数据处理系统800的硬盘驱动器或闪存。
[0091]为了本公开的目的,计算机可使用或计算机可读介质一般可以是任何有形的装置,其能够含有、存储、传递、传播或传输由系统(例如执行指令的系统)所使用的或与其相关的数据(比如软件程序)。计算机可使用的或计算机可读介质可以是例如但不限于电磁光盘、电磁红外线或半导体系统或传播介质。计算机可读介质的非限制性示例包含半导体或固态存储器磁带、可移除计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘可以包含光盘只读存储器(⑶-ROM)、光盘读写(⑶R/W)和DVD。进一步,计算机可使用或计算机可读介质可以含有或存储计算机可读或可使用的程序代码,使得当计算机可读或可使用程序代码在计算机上执行时,该计算机可读或可使用的程序代码的执行使计算机执行特定的例程、程序、步骤等。计算机可读介质的有形形式也称为计算机可记录存储介质。
[0092]显示器814可以提供用来向用户显示信息的机构,例如经由CRT、IXD或LED监视器、LED灯或其他类型的显示器。
[0093]输入/输出(I/O)单元812允许与可以连接至数据处理系统800的其他设备输入和输出数据。例如,输入/输出单元812可以提供用户通过键盘、触摸屏、鼠标和/或其它指针设备进行输入的连接。进一步,输入/输出单元812可以发送输出至打印机。输入/输出设备能够直接地或者通过介入的I/O控制器耦合至系统。不同的通信适配器也可以耦合至系统,以使数据处理系统能够通过介入的专用或公用网络耦合至其他数据处理系统或远程打印机或存储设备。非限制性示例,比如调制解调器和网络适配器,仅是几个当前可用类型的通信适配器。程序代码816可以通过至输入/输出单元812的连接从计算机可读介质818转移至数据处理系统800。在示范性的示例中,连接可以是物理的或无线的。计算机可读介质也可以采取非有形介质的形式,比如含有程序代码的通信链接或无线传输。
[0094]为数据处理系统800示出的不同组件并不意味着对可以实施不同实施例的方式提供了架构限制。不同示范性的实施例可以实施在如下数据处理系统中,该数据处理系统包含除了为数据处理系统800示出的那些组件以外的组件,或者包含取代它们的组件。图8中示出的其他组件能够根据所示的示范性示例而变化。例如,总线系统可以用来实施通信构造802,并且可以由一个或更多总线比如系统总线或输入/输出总线组成。总线系统可以使用任一合适类型的架构来实施,该架构提供了在附连至总线系统的不同组件或设备之间的数据传输。另外,通信单元可以包含用来发送和接收数据的一个或更多设备,比如调制解调器或网络适配器。进一步的存储器可以是例如,存储器806和/或高速缓存,比如可能存在于通信构造802中的接口和存储器控制器集线器中发现的那些。
[0095]通信单元810可以提供与其他数据处理系统或设备的通信。在这些示例中,通信单元810可以是网络接口卡(NIC)。通信单元810可以通过使用物理和/或无线通信链接两者中的任一个或这两者来提供通信。通信单元810可以允许数据的输入和输出。通信单元810可以有助于数据(例如数据包、报头等)的捕获或来自另一设备的数据的传输。
[0096]计算机可读介质也可以采取非有形介质的形式,比如含有程序代码的通信链接或无线传输。
[0097]为了示出和描述的目的已呈现不同的有利实施例的描述,其并非意在穷举或限制于公开形式的实施例。对于本领域技术人员来说,许多修改和变化将会是明显的。不同实施例可以包含:
[0098]Al.一种用于网络和/或设备安全的计算机实施的方法,其包括:在一个或更多计算机上执行如下例程,该例程从网络流量接收多条数据包信息作为输入;在所述一个或更多计算机上执行如下例程,该例程分析所述多条数据包信息,以识别在一段时间期间没有接收到响应数据包的出站网络数据包;以及在所述一个或更多计算机上执行例程,该例程在一个或更多数据存储件中存储和/或追踪数据包信息,该数据包信息与没有接收到响应数据包的出站网络数据包相关。
[0099]A2.根据Al所述的计算机实施的方法,其中分析所述多条数据包信息以识别在一段时间期间没有接收到响应数据包的出站网络数据包的步骤包含分析所述多条数据包信息以识别是死SYN数据包的出站网络数据包。
[0100]A3.根据Al所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程分析来自所述一个或更多数据存储件的数据包信息,以确定在所述网络流量中是否存在异常;以及基于确定在所述网络流量中是否存在异常而生成一个或更多事件,所述一个或更多事件指示恶意软件可能存在于网络中或在设备上。
[0101]A4.根据A3所述的计算机实施的方法,其中确定在所述网络流量中是否存在异常的步骤包含检测指示先进持续性威胁(APT)的异常。
[0102]A5.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否已经生成没有接收到响应数据包的多个出站网络数据包。
[0103]A6.根据A3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入,其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,并且其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含:分析该组数据包信息以确定在该组中带有相同源和目的地的多条数据包信息的数量;以及确定带有相同源和目的地的多条数据包信息的数量是否超过阈值。
[0104]A7.根据A6所述的计算机实施的方法,其中通过将时间段配置与每件数据包信息的时间指示相比较,使得在确定的一段时间内接收多条数据包信息,以此确定包含在该组中的多条数据包信息的数量。
[0105]AS.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定多个源设备是否已经感染了相同的恶意软件。
[0106]A9.根据A3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入,其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,并且其中分析来自所述一个或更多数据存储件的数据包信息以便确定在所述网络流量中是否存在异常的步骤包含:分析该组数据包信息,以对于每个目的地,确定在该组中针对每个唯一源的多条数据包信息;以及对于单个目的地,确定具有每个唯一源的多条数据包信息的数量是否超过阈值。
[0107]A10.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定源设备是否尝试与多个目的地通信。
[0108]All.根据A3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入,其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,并且其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含:分析该组数据包信息,以对于每个源,确定在该组中针对每个唯一目的地的多条数据包信息的数量;以及对于单个源,确定具有每个唯一目的地的多条数据包信息的数量是否超过阈值。
[0109]A12.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否以再发生的方式尝试与特定的目的地通信。
[0110]A13.根据A3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行例程,该例程从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入,其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,其中在该组中的多条数据包信息中的每一条具有相同的源和目的地,并且其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含:分析该组数据包信息,以对于每个目的地,确定在该组中的多条数据包信息的数量;以及对于单个目的地,确定多条数据包信息的数量是否超过阈值。
[0111]A14.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否在一时间段内以与在先前的时间段内的平均次数大约相同的平均次数尝试与特定的目的地通信。
[0112]A15.根据A13所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤进一步包含:对于单个目的地,确定在该组中每个源带有单个目的地的多条数据包信息的平均数量;将所述平均数量与先前一组数据包信息的先前的平均数量相比较;以及确定所述平均数量和所述先前的平均数量是否大致相同。
[0113]A16.根据A13所述的计算机实施的方法,其中通过将时间周期配置与每条数据包信息的时间指示相比较,使得在确定的一段时间内接收多条数据包信息,以此确定包含在该组中的多条数据包信息的数量。
[0114]A17.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否生成没有接收到响应数据包的重复集群的出站网络数据包。
[0115]A18.根据A3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程从一个或更多数据存储件接收包含多条数据包信息的一组数据包信息作为输入,其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含:分析该组数据包信息,且对于每个源,形成具有彼此相对接近的时间指示的多条数据包信息的数据包集群;以及确定在所述数据包集群之间的时间是否重复。
[0116]A19.根据A3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否在重复的集群中尝试与特定的目的地通信。
[0117]A20.根据A3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程从一个或更多数据存储件接收包含多件数据包信息的一组数据包信息作为输入,其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含:分析该组数据包信息,且对于每个源/目的地对,形成具有彼此相对接近的时间指示的多条数据包信息的数据包集群;以及确定在所述数据包集群之间的时间是否重复。
[0118]B1.一种用于网络和/或设备安全的计算机实施的方法,其包括:在一个或更多计算机上执行如下例程,该例程接收第一数据包信息作为输入;在所述一个或更多计算机上执行如下例程,该例程分析所述第一数据包信息,以确定所述第一数据包信息是否识别与网络通信的开始关联的出站网络数据包;以及在所述一个或更多计算机上执行如下例程,如果所述第一数据包信息识别与网络通信的开始关联的出站网络数据包,并且所述第一数据包信息被确定为潜在的无响应数据包,则该例程在一个或更多数据存储件中存储和/或追踪所述第一数据包信息。
[0119]B2.根据BI所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程接收第二数据包信息作为输入;在所述一个或更多计算机上执行如下例程,该例程分析所述第二数据包信息,以确定所述第二数据包信息是否识别响应于所述出站网络数据包的入站网络数据包;以及在所述一个或更多计算机上执行如下例程,如果所述第二数据包信息识别响应于所述出站网络数据包的入站网络数据包,并且基于所述第二数据包信息确定所述第一数据包信息不是无响应数据包,则该例程在所述一个或更多数据存储件中移除和/或终止对所述第一数据包信息的追踪。
[0120]B3.根据B2所述的计算机实施的方法,其中所述第一数据包信息和所述第二数据包信息都是数据包报头信息。
[0121]B4.根据B2所述的计算机实施的方法,其中所述第一数据包信息和所述第二数据包信息都是归一化的数据包报头信息,其包含在一段时间内对于一个或更多数据包是共同的数据包报头信息。
[0122]B5.根据B2所述的计算机实施的方法,其中分析所述第一数据包信息以确定所述第一数据包信息是否识别与网络通信的开始关联的出站网络数据包的步骤包含分析所述第一数据包信息以确定所述第一数据包信息是否识别是SYN数据包的出站TCP网络数据包。
[0123]B6.根据B3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程通过将所述第一数据包信息与过滤器配置数据比较来分析所述第一数据包信息,以确定是否应当过滤掉所述第一数据包信息。
[0124]B7.根据B3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程分析所述第一数据包信息,以确定所述第一数据包信息是否识别是在所述一个或更多数据存储件中存储和/或追踪的先前的出站网络数据包的重传的网络数据包。
[0125]B8.根据B3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程分析所述第二数据包信息,以确定所述第二数据包信息是否识别是指示错误的数据包的网络数据包。
[0126]B9.根据B3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程在所述一个或更多数据存储件中移除和/或终止对已经在所述一个或更多数据存储件中存在了特定的时间段的数据包信息的追踪。
[0127]B10.根据B3所述的计算机实施的方法,进一步包括:在所述一个或更多计算机上执行如下例程,该例程从所述一个或更多数据存储件接收数据包信息作为输入,所述数据包信息与在一段时间内没有接收到有效响应数据包的出站网络数据包相关;以及在所述一个或更多计算机上执行如下例程,该例程分析所述数据包信息并且生成一个或更多事件,这些事件指示恶意软件可能存在于网络中或设备上。
[0128]与其他有利实施例相比,进一步不同的有利实施例可以提供不同的优点。选择和描述选定的实施例或多个实施例是为了最好地解释实际应用的实施例的原理,并且使其他本领域技术人员能够明白带有适合于预期的特定用途的各种修改的各种实施例的公开。
【权利要求】
1.一种用于网络和/或设备安全的计算机实施的方法,其包括: 在一个或更多计算机上执行如下例程,该例程从网络流量接收多条数据包信息作为输A ; 在所述一个或更多计算机上执行如下例程,该例程分析所述多条数据包信息,以识别在一时间段期间接收无响应数据包的出站网络数据包;以及 在所述一个或更多计算机上执行如下例程,该例程引起在一个或更多数据存储件中存储和/或追踪与已经接收到无响应数据包的出站网络数据包相关的数据包信息。
2.根据权利要求1所述的计算机实施的方法,其中分析所述多条数据包信息以识别在一时间段期间接收无响应数据包的出站网络数据包的步骤包含分析所述多条数据包信息以识别是死SYN数据包的出站网络数据包。
3.根据权利要求1所述的计算机实施的方法,进一步包括: 在所述一个或更多计算机上执行如下例程,该例程分析来自所述一个或更多数据存储件的数据包信息,以确定在所述网络流量中是否存在异常;以及 基于确定所述网络流量中是否存在异常,生成一个或更多事件,所述一个或更多事件指示恶意软件可能存在于网络中或设备上。
4.根据权利要求3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否已经生成接收无响应数据包的多个出站网络数据包。
5.根据权利要求3所述的计算机实施的方法,进一步包括: 在所述一个或更多计算机上执行如下例程,该例程从一个或更多数据存储件接收一组数据包信息作为输入,该组数据包信息包括多条数据包信息, 其中所述多条数据包信息中的每一条与网络数据包关联,并包含关联的数据包的源和目的地以及时间指示,以及 其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含: 分析该组数据包信息,以对于每个目的地,确定在该组中针对每个唯一的源的多条数据包信息的数目;以及 对于单个目的地,确定具有每个唯一的源的多条数据包信息的数目是否超过阈值。
6.根据权利要求3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据报信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否以再发生的方式尝试与特定的目的地通信。
7.根据权利要求3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否生成接收无响应数据包的重复集群的出站网络数据包。
8.根据权利要求3所述的计算机实施的方法,其中分析来自所述一个或更多数据存储件的数据包信息以确定在所述网络流量中是否存在异常的步骤包含分析数据包信息以确定特定的源设备是否在重复集群中尝试与特定的目的地通信。
9.一种用于网络和/或设备安全的数据处理系统,其包括: 与一个或更多网络通信的一个或更多通信单元;存储计算机代码的一个或更多存储器单元;以及 耦合至所述一个或更多通信单元和所述一个或更多存储器单元的一个或更多处理器单元,其中所述一个或更多处理器单元执行存储在所述一个或更多存储器单元中的计算机代码,以使所述数据处理系统适于执行权利要求1至8中任一项所述的方法。
10.一种包括计算机可读指令的计算机可读介质,该计算机可读指令当由数据处理系统中的一个或更多处理器单元执行时,使所述数据处理系统执行权利要求1至8中任一项所述的方法。`
【文档编号】H04L29/06GK103685223SQ201310400109
【公开日】2014年3月26日 申请日期:2013年9月5日 优先权日:2012年9月11日
【发明者】A·R·戴维斯, T·M·奥尔德里奇 申请人:波音公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1