网络运营应用程序监测的制作方法

文档序号:17439330发布日期:2019-04-17 04:32阅读:132来源:国知局
网络运营应用程序监测的制作方法

本申请是于2016年6月29日提交的美国专利申请no.15/197,387的继续并要求其优先权,该申请通过引用整体并入本文。

本公开总体上涉及监测网络,并且更具体地涉及识别导致网络中的异常(相关的性能和安全)的应用程序。



背景技术:

网络监测工具监测网络中发生的通信。例如,网络监测工具可以监测网络信息,例如因特网协议(ip)源地址、ip目的地地址、传输协议(如tcp或udp)源端口、目的地端口和发送/接收的字节数。当计算设备创建通过网络传播的网络通信数据时,网络监测工具以预定义的时间间隔收集并存储该网络信息。然而,当网络监测工具监测计算设备之间的网络通信时,网络监测工具不监测计算设备内的使得计算设备生成网络通信数据的应用程序。结果,当网络中发生异常时,常规的网络监测工具可以识别导致异常的计算设备,而不是生成网络通信数据的应用程序。

这种透明度的缺乏可能产生从计算设备安全性到计算设备性能的问题。例如,当常规的网络监测工具识别由于网络攻击或可以被追溯到网络中的特定计算设备的应用程序而产生的网络中的异常时,没有方式来识别计算设备上的哪个应用程序是异常的起因。相反,系统管理员或法证分析员(forensicanalyst)被迫手动搜索在计算设备上执行的大量应用程序,并且尝试猜测并识别感兴趣的应用程序。当导致网络中的异常的应用程序停止在计算设备上执行并且在系统管理员或网络分析员搜索计算设备时不再能够被识别时,或者当导致网络异常的应用程序执行短暂时间并在多次简短执行期间使用不同端口时,这个问题被进一步加剧。

附图说明

图1是可以实施实施例的示例性系统的图示。

图2是根据实施例的监测引擎的图示。

图3a是根据实施例的确定网络中的异常的监测引擎的框图。

图3b是根据实施例的识别导致网络中的异常的应用程序的主监测引擎的框图。

图4是根据实施例的用于从节点收集网络信息和应用程序信息的方法的流程图。

图5是根据实施例的用于确定哪个应用程序导致网络中的异常的方法的流程图。

图6是示出计算系统的实施例的示意图。

通过参考下面的具体实施方式,可以最好地理解本公开的实施例及其优点。应当理解,相同的附图标记用于识别一个或多个附图中所示的相同元素,在附图中,其中的显示是为了说明本公开的实施例,而不是为了限制本公开的实施例。

具体实施方式

以下结合附图阐述的具体实施方式旨在作为各种配置的描述,并非旨在表示可实践本文所描述的概念的仅有配置。具体实施方式包括用于提供对各种概念的透彻理解的目的的具体细节。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践这些概念。在一些实例中,公知的结构和组件以框图形式示出,以便避免使这些概念难以理解。

本公开提供了用于确定在网络中产生异常的应用程序的系统、方法和计算机程序产品。实施例描述了安装在网络中的一个或多个节点(例如服务器、网络设备或客户端设备)上的监测引擎。监测引擎从承载监测引擎的每个节点收集网络信息,例如ip源地址、ip目的地地址、源端口、目的地端口和传输协议(如tcp/udp)。每当节点通过网络或以任何给定间隔发送或接收流时,可以由节点生成网络信息。流可以是包括由在节点上执行的应用程序之一发送或接收的数据的分组序列。另外,监测引擎从每个节点收集导致节点发送或接收流的应用程序的应用程序信息。应用程序信息可以存储在应用程序堆栈中并包括应用程序名称、应用程序标识符(id)、进程id、线程id和/或函数名称和/或导致节点在生成网络流量时生成应用程序的流和/或当前堆栈跟踪的网络信息的应用程序源代码的区段。在一些实施例中,监测引擎还收集该节点的时间戳,该时间戳指示应用程序请求节点生成网络信息的时间。

一旦监测引擎收集网络信息、应用程序信息和/或时间戳,监测引擎就存储所收集的信息以识别网络中的异常。在实施例中,监测引擎可以将网络信息、应用程序信息和/或时间戳存储在监测引擎可访问的节点的存储装置中。在另一个实施例中,每个节点的监测引擎可以传输网络信息、应用程序信息和/或时间戳以便存储在主监测引擎可访问的存储器中。主监测引擎可以存储和/或访问由多个节点上承载的多个监测引擎收集的网络信息、应用程序信息和/或时间戳。

在实施例中,为了确定网络中的异常,监测引擎可以接收包括与异常相关联的网络信息的请求消息。异常可能是由于网络攻击或本领域普通技术人员认为是网络异常的其他事件而产生的节点或流导致的网络中的瓶颈。示例性网络信息可以包括生成异常的一个或多个流的ip源地址、ip目的地地址、ip源端口和/或ip目的地端口和/或传输协议(例如tcp/udp,如下文所述的)。另外,网络信息还可以包括异常所发生的或当前正在网络中发生的时间。当监测引擎接收到请求消息时,监测引擎将请求消息中的网络信息与监测引擎在相同或近似时间在节点处收集的网络信息进行比较。基于该比较,监测引擎识别在节点处收集的网络信息,然后使网络信息与导致节点生成或接收流的应用程序的应用程序信息相关联。以这种方式,监测引擎识别哪个应用可能导致网络中的异常。

在另外的实施例中,主监测引擎可以类似地确定网络中的异常。当主监测引擎接收包括与异常相关联的网络信息的请求消息时,主监测引擎将请求中的网络信息与在相同或近似时间从多个节点收集的网络信息进行比较。基于该比较,主监测引擎识别在节点处收集的网络信息,然后使网络信息与导致节点生成或接收流的应用程序的应用程序信息相关联。以这种方式,主监测引擎识别哪个应用程序可能导致网络中的异常。

图1是可以实施实施例的示例性系统100。系统100包括网络102、客户端设备104、服务器106和网络设备107。

在实施例中,网络102可以被实施为单个网络或多个网络的组合。例如,在各种实施例中,网络102可以包括因特网或一个或多个内联网、陆线网络、无线网络和/或其他适当类型的网络。网络102可以是小规模通信网络,例如个域网或局域网,或者系统100的各种组件可访问的较大规模网络,例如广域网。

在实施例中,客户端设备104可以是受到用户控制并且被配置为通过网络102发送、接收和操纵从不同服务器106接收的数据的便携式和非便携式电子设备。示例性客户端设备104包括台式计算机、膝上型计算机、移动设备、平板电脑、智能电话、可穿戴计算设备、结合计算设备的眼镜、可植入计算设备等。

客户端设备104可以包括一个或多个应用程序108。应用程序108可以预先安装在客户端设备104上,安装在使用便携式存储器存储设备(诸如,光盘或拇指驱动器)的客户端设备104上,或者从服务器106下载到客户端设备104上。应用程序108可以在客户端设备104上执行并从用户接收指令和数据,并将指令和数据发送并传输到服务器106。

在实施例中,应用程序108可以使用客户端设备104向用户提供各种服务。安装在客户端设备104上的示例性应用程序108可以是支付交易应用程序。支付交易应用程序可以被配置为在全球范围内转移货币、接收货物和服务的支付、管理货币支出等。此外,应用程序108可以归支付服务提供商(例如,(sanjose,ca,usa))、电话服务提供商、社交网络服务提供商和/或其他服务提供商所有或控制。在实施例中,应用程序108也可以是分析应用程序。分析应用程序基于当前和历史数据执行业务逻辑,提供服务,并且测量并改进在客户端设备104上执行的其他应用程序的服务和功能的性能。在另一实施例中,应用程序108可以是用于实施客户端安全特征的安全应用程序、用于通过网络102与适当的应用程序编程接口(api)接口连接的编程客户端应用程序。在又一实施例中,应用程序108可以是允许用户通过网络102发送和接收电子邮件、呼叫、文本和其他通知的通信应用程序,例如电子邮件、短信、语音和即时通讯应用程序。在又一实施例中,应用程序108可以是位置检测应用程序,例如映射、指南针和/或全球定位系统(gps)应用程序。在又一实施例中,应用程序108可以是社交网络应用程序和/或商家应用程序。在又一实施例中,应用程序108可以是允许客户端设备104的用户接收、请求和/或查看产品和/或服务的信息的服务应用程序,并且还允许用户购买所选择的产品和/或服务。

在实施例中,应用程序108可以利用客户端设备104中所包括的许多组件来显示、接收输入、存储和传输数据,并且通过网络102与其他客户端设备104和服务器106通信。在图6中详细讨论了示例性组件。

在实施例中,服务器106可以是向网络102中的其他设备(例如,客户端设备104)提供功能的计算机设备或软件程序。在实施例中,服务器可以服务多个客户端设备104。例如,服务器106可以向客户端设备104提供服务和/或数据,代表客户端设备104存储数据等。示例性服务器106可以包括服务提供商服务器、支付提供商服务器、数据库服务器、文件服务器、邮件服务器、打印服务器、应用程序服务器、游戏服务器等。可存在数百或数千个服务器连接到网络102。下面描述了示例性服务提供商服务器106a、支付提供商服务器106b和数据库服务器106c。

在实施例中,服务提供商服务器106a可以向在客户端设备104上执行的多个应用程序108提供服务。服务提供商服务器106a还可以由服务提供商维护,例如电话服务提供商、社交网络服务和/或其他服务提供商。

在实施例中,服务提供商服务器106a执行应用程序110。应用程序110可以接收、处理并发送用于从客户端设备104发送的用户请求的产品和/或服务的数据。因此,应用程序110可以是被配置为在全球范围内转移货币、接收货物和服务的支付、管理货币支出等的金融服务应用程序。在实施例中,应用程序110还可以是被配置为实施客户端安全特征的安全应用程序或用于通过网络102与适当的应用程序编程接口(api)接口连接的编程客户端应用程序。在另一个实施例中,应用程序110可以是执行电子邮件、短信、语音和即时通讯功能的通信应用程序,该通信应用程序允许用户通过网络102发送和接收电子邮件、呼叫、文本和其他通知。在又一实施例中,应用程序110可以是位置检测应用程序,例如映射、指南针和/或gps应用程序。在又一实施例中,应用程序110还可以合并到社交网络应用程序和/或商家应用程序中。

在实施例中,当应用程序108将请求和/或数据发送到应用程序110时,应用程序110处理这些请求和数据。在另外的实施例中,应用程序110可以使用应用程序108从用户请求支付以处理请求。在实施例中,应用程序110可以使用支付提供商服务器106b来处理支付请求。例如,支付提供商服务器106b可以从应用程序110、112接收支付请求,这些应用程序使得支付提供商服务器106b将使用应用程序108的用户的资金转移到与服务提供商服务器106a相关联的服务提供商。

在实施例中,支付提供商服务器106b包括一个或多个交易或支付处理应用程序112。支付处理应用程序112便于在一方或多方或应用程序(例如应用程序108和110)之间转移资金。在实施例中,支付处理应用程序112可以被配置为从一个或多个应用程序108、110接收信息,这些应用程序在客户端设备104和/或服务提供商服务器106a上执行以便处理并完成金融交易。金融交易可以包括与用户借记/信用卡信息、支票账户信息、用户账户(例如,具有支付提供商服务器106b的支付账户)或其他支付信息相对应的财务信息。交易处理应用程序112可以通过向在服务提供商服务器106b上执行的应用程序110提供支付来完成购买请求的金融交易。在各种实施例中,交易处理应用程序112可以向客户端设备104提供交易历史(包括收据),以便提供物品和/或服务的购买证明。

在实施例中,为了完成金融交易(或其他交易),支付提供商服务器106b(或另一服务器106)可以在数据库114中存储交易。数据库114可以是存储在适于存储大量数据的存储器(例如图6中描述的存储器)中的一批表、图解、查询、视图等。在实施例中,在数据库服务器106c上可以承载数据库114,并且数据库114可以通过查询形式的消息访问应用程序108、110和112。在实施例中,支付提供商服务器106b可以在数据库114中建立用户帐户116。每个用户帐户116可以与使用具有支付提供商服务器106b的应用程序108的一个或多个用户相关联,以便于支付应用程序110提供的商品和/或服务。用户帐户116可以包括用户信息,例如姓名、地址、出生日期、支付/货币信息、旅行信息、附加用户财务信息和/或其他期望的用户数据。

如上所述,网络102还可以包括网络设备107。网络设备107包括路由器、网关、调制解调器、交换机、无线访问点设备等。在实施例中,网络设备107还包括便于网络102中的消息传送和数据访问的一个或多个应用程序。

如上所示,客户端设备104、服务器106和网络设备107可以经由网络102相互发送多个消息。这些消息可以由应用程序108、110和112中的一个或多个生成,并且使用从源计算设备(例如服务器106或客户端设备104)行进到目的地计算设备(例如服务器106或客户端设备104)的分组序列来发送。从源计算设备到目的地计算设备的分组序列的另一个术语可以是网络流、分组流、流量流或简单流。在网络102中行进的多个流在客户端设备104与服务器106之间创建网络通信流量。在实施例中,为了监测网络通信流量,一个或多个客户端设备104和服务器106可以包括监测引擎118。监测引擎118可以是安装或连接到服务器106或客户端设备104的软件应用程序或一块硬件。在另外的实施例中,每个客户端设备104或服务器106可存在一个监测引擎118。在另外的实施例中,监测引擎118可以在控制服务器106(例如)的同一实体的控制下。

在实施例中,监测引擎118可以监测由服务器106、网络设备107和客户端设备104发送和/或接收的流的网络信息。监测引擎118还可以使网络信息与在服务器106、网络设备107或客户端设备104上执行并且生成或接收流的应用程序相关联。在实施例中,为了使网络信息与应用程序信息相关联,监测引擎118可以要求访问承载应用程序的客户端设备104、服务器106或网络设备107的操作系统。

在实施例中,收集生成的流的应用程序的流和应用程序信息的网络信息具有许多优点。例如,当监测引擎118或网络102中的另一设备检测到行进通过网络102的流中的异常时,监测引擎118可以不仅识别哪个服务器106、客户端设备104或网络设备107导致流中的异常,还可以确定生成流的应用程序。在另一示例中,在网络攻击的情况下(在一些实施例中,网络攻击可以是蠕虫或在网络102中传播或散布的任何其他类型的恶意软件),监测引擎118可以能够检测蠕虫使用/影响的应用程序代码以释放网络攻击。在实施例中,即使在蠕虫停止在服务器106、客户端设备104或网络设备107上执行之后,监测引擎118也可以检测蠕虫使用的应用程序代码。在另一示例中,应用程序可以在网络102中创建许多流,使得当流行进通过网络时导致瓶颈。当监测引擎118检测到瓶颈时,监测引擎118可以识别哪个服务器106、客户端设备104或网络设备107负责该瓶颈以及哪个应用程序正在导致瓶颈,这使得能够检测或识别与流或异常相关联的根本原因或根应用程序。

图2是根据实施例的监测引擎的框图200。如上所述,监测引擎118可以作为软件或硬件组件安装在图1中的客户端设备104、服务器106或网络设备107(在图2中统称为节点201)上。

在实施例中,监测引擎118包括网络模块202、应用程序模块204和时间戳模块206。监测引擎118使用网络模块202、应用程序模块204和时间戳模块206来监测在节点201处接收和发送的流的网络信息以及在节点201上执行并生成或请求流的应用程序208的应用程序信息。在一些实施例中,示例性应用程序208可以是应用程序108、110或112。

在实施例中,当应用程序208在节点201上执行时,应用程序208使用操作系统210访问节点201的硬件和软件资源。操作系统210可以是管理节点201的硬件和软件资源的计算机软件,包括任务调度、专用于每个应用程序208的处理器时间以及可供应用程序208使用的存储器管理、网络管理等。

在实施例中,网络模块202监测节点201的网络活动。例如,当网络端口被打开以便通过网络102传输流时并且当网络端口被打开以便从网络102接收流时,网络模块202收集与流相关联的网络信息。示例性网络信息可以包括ip源地址、ip目的地地址、源端口、目的地端口、所使用的传输协议以及通过网络102发送或接收的字节数。在实施例中,传输协议可以对应于用于传输流的协议,例如用户数据报协议(udp)或传输控制协议(tcp),并且在一些示例中,传输协议可以是udp端口或tcp端口。

在实施例中,ip源地址是发起流的节点201的地址,并且ip目的地地址是作为流的目的地的节点201的地址。示例性ip源地址或ip目的地地址可以是与节点201相关联的数字地址或与节点201相关联的路由器。此外,ip源地址或ip目的地地址的格式和数值可以取决于ip协议版本,例如32位ipv4、128位ipv6或本领域中已知的其他协议版本。可以在制造或配置时将另外的ip源地址或ip目的地地址分配给节点201。在示例性实施例中,ip源地址或ip目的地地址可以是数字格式,例如x.y.z.w,其中x、y、z和w是从0至255的整数。

在实施例中,端口(无论源端口还是目的端口)可以是数字,例如16位数,尽管实现方式不限于该实施例。在另外的实施例中,16位数可以是无符号整数。

在实施例中,源端口识别在应用程序208的请求下引发通过网络102的流的端口。这样,源自节点201的流将通过源端口离开节点201。

在实施例中,目的地端口识别通过网络102接收流的端口。这样,在节点201处接收的流将通过目的地端口进入节点201。

在实施例中,操作系统210包括网络访问生成器212。网络访问生成器212可以确定流的ip源地址和源端口。在实施例中,网络访问生成器211可以从与节点201相关联的存储器中检索节点201的ip源地址,并且可以将节点201的源端口之一分配给生成包括在流中的消息的应用程序208。

在另外的实施例中,网络地址生成器212还检索作为流的目的地的节点201的ip目的地地址和ip目的地端口。例如,网络地址生成器212可以从生成流的应用程序208检索ip目的地地址,并且与目的地节点通信以使用例如握手协议来确定目的地端口。在另外的实施例中,网络访问生成器212可以根据由应用程序208之一指定的协议将来自应用程序208的消息格式化为分组,并使操作系统210引发用于通过网络102发送流的进程。例如,网络地址生成器212可以用来自应用程序208之一的网络信息和数据填充分组。在实施例中,分组可以包括头文件和数据区域,并且网络地址生成器212可以用网络信息填充头文件,网络信息为例如ip源地址、ip目的地地址、源端口、目的地端口和与协议相关联的端口类型以及具有来自应用程序208的消息或数据的数据区域。

在实施例中,网络访问生成器212还可以与监测引擎118的网络模块202通信。作为通信的部分,网络模块202可以从网络访问生成器212检索ip源地址、ip目的地地址、源端口、目的地端口和端口类型信息。在另一示例中,网络访问生成器212可以将流中的分组之一或分组的副本发送到网络模块202,并且网络模块202可以从分组检索网络信息,网络信息包括ip源地址、ip目的地地址、源端口、目的地端口和端口类型信息。

在实施例中,一旦网络模块202检索到网络信息,网络模块202可以将网络信息存储为网络信息203。在一个实施例中,监测引擎118可以将网络信息203存储在被分配给监测引擎118的存储器内的节点201上。在替代的实施例中,监测引擎118可以将网络信息203存储在中央数据存储库中或者存储为图1中讨论的数据库114中的数据。

在实施例中,应用程序模块204监测在节点201上执行的应用程序208的活动。例如,当应用程序208执行并利用节点201的资源时,应用程序208产生一个或多个进程和/或线程。在实施例中,操作系统210为应用程序208产生的进程以及在进程内产生的线程生成一个或多个应用程序堆栈214。在另外的实施例中,每个进程或线程可存在两个应用程序堆栈214,一个堆栈用于用户模式,并且一个堆栈用于操作系统210的内核模式。此外,一个或多个应用程序堆栈214是节点201中通过操作系统210可访问的存储器区域。

在实施例中,线程、进程和操作系统210使用应用程序堆栈214来添加和移除数据,例如,由应用程序208之一处理的数据、存储函数参数(如果有的话)、下一个指令的地址(一旦处理函数,就在函数之后执行)、执行代码等。例如,当进行与应用程序208相关联的函数的函数调用时,函数的参数和/或在函数完成之后执行的下一个指令的地址可以存储在应用程序堆栈214中。在另一示例中,当进行与应用程序208相关联的函数的函数调用时,在函数完成之后要执行的下一个指令的地址可以存储在应用程序堆栈214中,因为函数的参数可以存储在cpu寄存器中。在另外的实施例中,进程、线程等可以以后进先出(lifo)方式向应用程序堆栈214添加或移除数据,使得最后添加到应用程序堆栈214的数据是要从应用程序堆栈214中移除的第一数据,尽管实施方式不限于该实施例。

在再一实施例中,当应用程序208执行并产生进程和线程时,操作系统210存储与一个或多个控制块215中的执行应用程序208、进程和线程有关的信息。控制块215可以是存储在节点201的存储器中的数据结构。存储在控制块215中的示例性信息可以包括应用程序208的id、由应用程序208产生的进程和线程的进程id或线程id。在另外的实施例中,与每个应用程序208相关联的进程相关信息和线程相关信息可存在单独的控制块215,使得调用进程控制块的控制块215中的一个存储进程信息,并且调用线程控制块的控制块215中的第二个存储线程信息。此外,控制块215还可以存储指向由应用程序208的进程和线程使用的每个应用程序堆栈214的指针。

在实施例中,应用程序模块204可以访问应用程序堆栈214和控制块215并检索应用程序信息。例如,应用程序模块204可以从控制块215检索应用程序id、进程id和线程id。在另一示例中,应用程序模块204可以跟踪线程和进程的应用程序堆栈214,并从应用程序堆栈214中检索函数调用的名称、函数参数(如果有的话)、源代码的部分、函数完成后的指令等。在另外的实施例中,应用程序模块204可以在每次网络模块202从网络访问生成器212接收网络信息时、每次应用程序208请求端口访问以接收或发送流、或者以预定的时间间隔检索应用程序信息。

在实施例中,一旦应用程序模块204检索到应用程序信息,应用程序模块204可以将应用程序信息存储为应用程序信息205。在实施例中,监测引擎118可以将应用程序信息205存储在节点201上和存储在被分配给监测引擎118的存储器内,该监测引擎118可以是图6中描述的存储器之一。在替代的实施例中,监测引擎118可以将网络信息203存储在中央存储库、不同的服务器中或者存储为图1中讨论的数据库114中的数据。

在实施例中,时间戳模块206在节点201上记录时间,网络访问生成器212使用进程、线程等(使用应用程序堆栈214执行)生成用于请求网络访问的流和/或应用程序208的网络信息。时间戳模块206可以以秒、毫秒、纳秒等记录时间。在实施例中,可以通过时间戳记录时间,该时间戳是由节点201记录的事件的当前时间。在实施例中,每个节点201可以由系统管理员或外部应用程序以初始时间进行编程。操作系统210可以包括时间戳访问模块216,时间戳访问模块216在由其他应用程序(例如时间戳模块206)请求时从节点201检索时间戳。一旦时间戳模块206检索时间戳,时间戳模块206就将时间戳与网络信息203和/或应用程序信息205相关联或使该时间戳被包括在网络信息203和/或应用程序信息205中。在另外的实施例中,时间戳模块206还可以将在节点201处获取的时间戳转换为unix时间格式或坐标通用时间(utc)格式,以考虑可以执行节点201的各种时区。在再一实施例中,时间戳模块206还可以通过使用网络时间协议(ntp)同步节点201上的时间或者通过计算节点201的时间与主节点(例如承载主监测引擎的节点(如下所述))的时间之间的差异来解决网络102中的多个节点201之间的时间差异。

一旦监测引擎118收集网络信息203和应用程序信息205,监测引擎118就可以使网络信息203和应用程序信息205相关联,并识别应用208中的哪一个已经生成或接收流。此外,因为应用程序信息205还可以包括应用程序id、线程id、进程id、函数调用的名称和/或应用程序208的源代码的部分,监测引擎118可以确定应用程序208的哪个线程、进程、函数等生成了流。

在实施例中,监测引擎118可以使用网络信息203和应用程序信息205来确定哪个应用208在网络102中创建异常。图3a是根据实施例的确定网络中的异常的监测引擎的框图300a。例如,监测引擎118可以接收请求消息302,该请求消息302包括与网络中的异常相关联的网络信息。请求消息302可以源自由系统管理员使用的客户端设备104,虽然实施方式不限于该实施例。示例性网络信息可以包括ip源地址、源端口、ip目的地地址、目的地地址、传输协议、时间戳或以上中的任何一个。请求消息302中的时间戳可以是在网络102中检测到异常的时间。在接收时,监测引擎118可以搜索与请求消息302中的网络信息相对应的网络信息203。如果找到对应的网络信息203,则监测引擎118使网络信息203与应用程序信息205相关联,以确定哪个应用、进程、线程等在网络102中产生异常。

在实施例中,监测引擎118可以生成响应消息304。响应消息304可以包括应用程序信息,该应用程序信息包括与请求消息302中接收的网络信息对应的应用程序208的应用程序id、函数调用、源代码的区段、进程id、线程id等。在另外的实施例中,消息响应中的数据可以显示在计算设备的显示屏上,例如客户端设备104之一,使得系统管理员可以识别在网络102中导致异常的应用程序,手动或通过脚本终止应用程序,或者采取纠正网络102中的异常的另一个动作。

图3b是根据实施例的识别导致网络中的异常的应用的主监测引擎的框图300b。如图3b所示,多个节点201包括监测引擎118,每个节点201一个监测引擎118。

框图300b包括主监测引擎306。主监测引擎306可以在图1中详细讨论的计算设备之一上执行。在框图300b中,主监测引擎306从多个节点201接收网络信息203和应用程序信息205。主监测引擎306将网络信息203和应用程序信息205存储在数据库(例如数据库114)中或主监测引擎306可访问的另一个存储装置中。在另外的实施例中,主监测引擎306还存储已生成网络信息203和应用程序信息205的节点201的凭证。在另一实施例中,主引擎306可以从网络信息203导出节点201的凭证。

在实施例中,主监测引擎306接收请求消息308。请求消息308可以类似于图3a中描述的请求消息302,并且包括网络102中观察到的异常的网络信息。在另外的实施例中,可以在由系统管理员使用的客户端设备104之一上生成请求消息308。

响应于请求消息308,主监测引擎306使用包括在请求消息308中的网络信息来确定可能已在网络102中生成异常的一个或多个节点201的应用程序信息205。例如,主引擎306确定网络信息203,该网络信息203匹配请求消息308中的一些或所有网络信息,然后检索对应于网络信息203的应用程序信息205。

在实施例中,主监测引擎306生成响应消息310。响应消息310类似于图3a中讨论的响应消息304,并且可以包括一些或所有网络信息203以及一些或所有应用程序信息205。在另外的实施例中,主监测引擎306可以发送响应消息310,以便在承载主监测引擎306的计算设备上或由系统管理员使用的客户端设备104上显示。

图4是根据实施例的用于从节点收集网络信息和应用程序信息的方法400的流程图。可以使用图1-2和3a-3b中描述的硬件和软件组件来实施方法400。

在操作402,收集网络信息。例如,监测引擎118的网络模块202针对从节点201生成或由节点201接收的每个流收集节点201上的网络信息,网络信息包括ip源地址、ip目的地地址、源端口和目的地端口信息。另外,网络模块202还收集对应于传输协议的端口类型,例如通过网络102传输流的udp或tcp。

在操作404,收集应用程序信息。例如,网络引擎118的应用程序模块204收集生成或接收流的应用程序208的应用程序信息。例如,应用程序模块204从操作系统210访问当前运行线程的应用程序堆栈214和控制块215,并从应用程序堆栈214和控制块215检索应用程序信息。如上所述,示例性应用程序信息可以是应用程序id、进程id、线程id、函数名称、函数参数(如果有的话)、函数完成后的指令或者请求流的网络访问的代码区段等。

在操作406,收集时间戳信息。例如,监测引擎118的时间戳模块206确定节点210上的时间戳,在该时间戳期间,在节点201上生成网络信息或由应用程序208请求网络信息。在实施例中,操作406可以结合操作402和/或操作404发生。在另外的实施例中,时间戳模块206可以将时间戳合并为网络信息203和/或应用程序信息205的部分。

在操作408,存储网络信息和应用程序信息。例如,监测引擎118将网络信息203、应用程序信息205和时间戳存储在存储装置中。如上所述,存储装置可以与监测引擎118相关联。在另一实施例中,网络信息203和应用程序信息205可以被发送到主监测引擎306,该主监测引擎306从多个监测引擎118收集网络信息203和应用程序信息205。

图5是根据实施例的用于确定哪个应用导致网络中的异常的方法500的流程图。可以使用图1-2和3a-3b中描述的硬件和软件组件来实施方法500。

在操作502,识别网络中的异常。示例性异常可以是由多个流或由节点201发送/接收的多个流(作为网络攻击的结果)创建的网络102中的瓶颈。

在操作504,接收具有网络信息的请求消息。例如,主监测引擎306接收包括识别异常的网络信息的请求消息308。网络信息可以是描述ip源地址、ip目的地地址、源端口、目的地端口、传输协议或以上的任何组合的网络数据。数据还可以包括识别异常的时间的时间戳。

在操作506-508,识别导致异常的应用程序。在操作506,将请求消息308中的网络信息与存储在主监测引擎306可访问的存储装置中的、来自多个节点201的网络信息进行比较。该比较可以识别一个或多个网络信息203候选项。在另外的实施例中,包括在请求消息308的网络信息中的时间戳也可以针对精确或近似时间与存储在网络信息203中的时间戳匹配。近似时间可以是小于与网络信息203一起存储的时间戳的预先配置的时间范围的时间。时间戳可以进一步将网络信息203候选项缩小到导致异常的流的网络信息203。

在操作508,识别应用程序。例如,主监测引擎306使网络信息203与监测引擎118从节点201检索的的对应应用程序信息205相关联。

在操作510,生成响应消息。例如,主监测引擎306生成响应消息310。响应消息310可以包括网络信息203和应用程序信息205。

在操作512,发送响应消息。例如,主监测引擎306将响应消息310发送到客户端设备104,该客户端设备104在显示屏幕上显示网络信息203和应用程序信息205。基于响应消息310中的信息,客户端设备104可以从系统管理员接收输入以终止对应于网络信息203和应用程序信息205的应用程序208。

现在参考图6,示出了适合于实施图1至图5中描述的系统和方法的计算机系统600的实施例。

根据本公开的各种实施例,计算机系统600(例如计算机和/或服务器)包括总线602或用于传送信息的其他通信机构,其互连子系统和组件,例如处理组件604(例如,处理器、微控制器、数字信号处理器(dsp)、fpga等)、系统存储器组件606(例如,ram)、静态存储组件608(例如,rom)、磁盘驱动器组件610(例如,磁或光)、网络接口组件612(例如,调制解调器或以太网卡)、显示组件614(例如,crt或lcd)、输入组件618(例如,键盘、小键盘或虚拟键盘)、光标控制组件620(例如,鼠标、指针或轨迹球)、位置确定组件622(例如,如图所示的全球定位系统(gps)设备、蜂窝塔三角测量设备和/或本领域已知的各种其他位置确定设备)和/或相机组件623。在一个实施方式中,磁盘驱动器组件610可以包括具有一个或多个磁盘驱动器组件的数据库。

根据本公开的实施例,计算机系统600通过执行包含在存储器组件606中的一个或多个指令序列的处理器604来执行特定操作,例如本文中关于移动通信设备、移动设备和/或服务器所描述的。这样的指令可以从另一计算机可读介质(例如静态存储组件608或磁盘驱动器组件610)被读入到系统存储器组件606中。在其他实施例中,硬连线电路可以用于代替软件指令或与软件指令组合以实施本公开。

逻辑可以被编码在计算机可读介质中,该计算机可读介质可以指代参与向处理器604提供指令以供执行的任何介质。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。在实施例中,计算机可读介质是非暂时性的。在各种实施方式中,非易失性介质包括光盘或磁盘,例如磁盘驱动器组件610,易失性介质包括动态存储器,例如系统存储器组件606,并且传输介质包括同轴电缆、铜线和光纤(包含包括总线602的导线)。在一个示例中,传输介质可以采用声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些声波或光波。

一些常见形式的计算机可读介质包括,例如,软盘、软磁盘、硬盘、磁带、任何其他磁介质、cd-rom、任何其他光学介质、打孔卡、纸带、具有孔的图案的任何其他物理介质、ram、prom、eprom、flash-eprom、任何其他存储器芯片或盒式磁带、载波或适合于计算机读取的任何其他介质。在一个实施例中,计算机可读介质是非暂时性的。

在本公开的各种实施例中,用于实践本公开的指令序列的执行可以由计算机系统600执行。在本公开的各种其他实施例中,通过通信链路624耦合到网络134(例如,例如lan、wlan、ptsn和/或各种其他有线或无线网络,包括电信网络、移动网络和蜂窝电话网络)的多个计算机系统600可以执行指令序列以彼此协调地实践本公开。

计算机系统600可以通过通信链路624和网络接口组件612发送和接收包括一个或多个程序(即,应用程序代码)的消息、数据、信息和指令。网络接口组件612可以包括单独或集成的天线,以实现经由通信链路624的发送和接收。接收的程序代码可以由处理器604以直接使用的方式执行,和/或存储在磁盘驱动器组件610或一些其他非易失性存储组件中以供执行。

在适用的情况下,可以使用硬件、软件或硬件和软件的组合来实施本公开提供的各种实施例。同样在适用的情况下,在不脱离本公开的范围的情况下,本文阐述的各种硬件组件和/或软件组件可以组合成包括软件、硬件和/或两者的复合组件。在适用的情况下,在不脱离本公开的范围的情况下,可以将这里阐述的各种硬件组件和/或软件组件分成包括软件、硬件或两者的子组件。另外,在适用的情况下,可以设想到软件组件可以被实施为硬件组件,反之亦然。

根据本公开的软件(例如程序代码和/或数据)可以存储在一个或多个计算机可读介质上。还可以设想到本文中识别的软件可以使用联网和/或以其他方式的一个或多个通用或专用计算机和/或计算机系统来实施。在适用的情况下,本文描述的各种步骤的顺序可以被改变、组合成复合步骤和/或分成子步骤以提供本文描述的特征。

前述公开内容并非旨在将本公开限制于所公开的精确形式或特定使用领域。因此,可以设想到,根据本公开,本公开的各种替代实施例和/或修改(无论是在本文中明确描述或暗示)都是可能的。在已经如此描述了本公开的实施例的情况下,本领域普通技术人员将认识到,在不脱离本公开的范围的情况下,可以在形式和细节上进行改变。因此,本公开仅受权利要求的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1