用于扩充网络流量报告的方法及系统与流程

文档序号:17290949发布日期:2019-04-03 03:57阅读:189来源:国知局
用于扩充网络流量报告的方法及系统与流程

本申请要求于2016年6月6日提交的美国临时专利申请no.62/346,170的权益,其公开内容通过引用整体并入本文。

本发明涉及用于使用域名信息来扩充网络流量报告的新过程的实施方案。



背景技术:

诸如网关和/或网络设备(例如,路由器)之类的计算机器通常被配置成输出网络流量报告。这些报告包括在其进入机器或者退出机器时关于传入网络流量/传出网络流量(即,互联网协议(“ip”)地址)的信息,并且通常提供ip端点的概览,以及数据速率(无论是本地网络的内部还是本地网络的外部)以及所发送和接收的数据量。两种最流行的网络流量报告标准是思科网络流(cisconetflow)和ipfix。图1和图2是这些类型的报告的示例。

诸如防病毒(av)软件提供商之类的企业通常利用报告来分析并优化带宽结构(例如,用户带宽使用模式),进行系统问题调查以及执行安全评估和/或识别异常。例如,在评估机器或者网络安全时,这些报告通常用于检测本地网络上的入侵企图和受感染的硬件/软件(例如,针对恶意代理,诸如恶意软件或者病毒)。还可以使用恶意软件/命令和控制(c&c)主机签名数据库或者复杂的行为/机器学习分析技术来帮助识别这些问题。

然而,对域名系统(dns)解析的ip地址而言,传统的报告(其通常基于互联网协议版本4[ipv4]和/或版本6[ipv6])对于带宽优化或者安全评估而言通常是不可靠的;这些报告仅指示目标ip地址(仅由数字和点组成),然而知道用户打算访问的实际域名(例如,www.avg.com)则更有用。用户dns查询和随后进行的实际连接并未彼此“链接”的事实还使问题复杂化。

反向dns查询是现有的解决此问题的一种方法。但是,由于dns是动态的并且经常更改(并且由于dns实现了别名技术,即,cname),因此该方法通常无法揭示与所报告的ip地址对应的所有域名。例如,对同一地址的两个连续请求可能会导致两个不同的响应(即,由于负载平衡);此外,更改经常发生,而不进行通知。

例如,来自台式计算机的关于流量的netflow报告可能包括以下行项:2016-02-2632:15:32.4341.030tcp192.168.0.1:42343->10.0.226.24:80xxxxxxx。该行表示到具有ip地址“10.0.226.24”的服务器的传出流量。反向dns查询此地址可能会显示域名“apps-build-prod-idc-ams001.mgm.avg.com”。然而,如果网页浏览器应用程序被指示访问该域名,则可能会显示错误消息。这种情况在满足如下条件时会出现:如果服务器实际上作为两个在不同域名下可访问的虚拟主机(例如,jenkins.avg-labs.com和sonar.avg-labs.com),这两个虚拟主机都指向“apps-build-prod-idc-ams001.mgm.avg.com”(请注意,dns系统允许将域引用到域)。因此,根据输入到该网页浏览器应用程序的域名,可以从同一目标服务器机器获得不同的网页应用程序。

再例如,如图2中的netflow报告所描绘的那样,主机“127.0.0.1”请求访问主机地址“212.71.233.101”(经由端口80处的http连接)。通常,分析师(或者可能是自动化系统)可能通过下述方式来确认这是否是对特定网站的http请求:

a)经由统一资源定位符(url)“http://212.71.233.101/”访问网站并查看其内容;

b)进行反向dns查询(ptr)以尝试检索与“212.71.233.101”相关联的dns名称;以及

c)确认来自第三方提供商的网站的分类目录中的dns名称。

在此示例中,可能会产生两个域名:“evproc.com”和“li646-101.members.linode.com”。这是因为远程服务器使用地址“212.71.233.101”来用于两个不同的web应用程序——一个用于服务evproc.com(普通软件),而另一个用于服务hedgestash.com(有害网站/网络钓鱼软件)。根据原始请求中所使用的dns名称(对于其,网络流量报告中捕获了流量),服务器将为不同的web应用程序提供服务;例如,它可能默认为evproc.com提供服务。然而,如果原始用户web请求是访问“hedgestash.com”,则仅根据传统的网络流量报告来确定这将是困难的。现有的网络流算法根本不捕获关于诸如超文本传输协议(http)、安全超文本传输协议(https)、简单邮件传输协议(smtp)之类的流行协议的连接的重要参数(例如,主机的dns名称)。实际上,如上所述,dns本质上是动态的。因此,hedgestash.com可能只存在很短的时间,之后它可能会消失,而几乎不存在痕迹。

因此,针对网络流量报告中的一个或多个行项,识别用于访问目标资源/服务器的原始或实际dns名称将是有益的。这可以称为dns查询(在“请求时”进行的)到网络流的“映射”。



技术实现要素:

总体上,本发明的目的在于通过使用dns信息来扩充报告的方式增强在安全评估期间安全应用的操作和/或网络流量报告的分析。

根据本发明的一个示例性实施方案,提供了一种利用域名服务(“dns”)信息来扩充网络流量数据的方法。该方法涉及一种具有至少一个数据处理器的网络设备,并且包括监测通过网络的dns响应流量,从响应流量中提取对应于至少一个网页请求中提交的至少一个域名的至少一个域名记录,以及提供所述至少一个域名记录以包含在网络流量数据中。

本发明的其他目的和优点部分地是明显的,并且将部分地从说明书中看出,并且本发明的范围将在权利要求中指出。

因此,本发明包括构造的特征、元件的组合和部件的布置,以及各个步骤以及这些步骤中的一个或多个相对于其他一些步骤中的每个步骤的关系,所有这些都在本文所阐述的结构中进行了举例说明,并且本发明的范围将在权利要求中指出。

附图说明

在下文中参考附图更详细地描述了本发明的实施例,在附图中:

图1和图2是根据现有技术的网络流量报告的示例;

图3a和图3b是示出了根据本发明实施方案的用于扩充一个或多个网络流量报告的示例性过程的流程图;

图4是示出了根据本发明实施方案的dns高速缓存的示意图;

图5是示出了根据本发明实施方案的用于dns高速缓存的示例性过程的流程图;

图6是示出了根据本发明实施例的利用dns名称信息来扩充网络流量报告的另一示例性过程的流程图;以及

图7是根据图3a、图3b、图5以及图6所示的过程中的一个或多个过程来扩充的网络流量报告的示例。

具体实施方式

根据本发明的实施方案,系统可以利用原始dns查询信息或上下文(例如,当发生ipv4和/或ipv6连接时)来扩充网络流量报告(例如,netflow报告或者ipfix报告),所述网络流量报告被实时确定,特别是在发出那些查询/连接请求时进行确定。

图3a和图3b示出了根据本发明实施方案的可以由系统执行以扩充一个或多个网络流量报告的示例性过程300和示例性过程350。参考图3a,过程300可以开始于步骤302——例如,通过进入“混杂”模式。可以接收一个或多个ipv4数据包和/或ipv6数据包(步骤304),并且可以确定所接收的数据包是否包括dns回复或者应答(步骤306)——例如,通过对数据包中的信息进行分类以识别dns应答的存在。如果所接收的数据包包括dns应答,则该过程可以包括从数据包中提取“查询主机”值(步骤308),从dns应答中提取键值“a”、键值“aaa”以及键值“cname”(步骤310),以及利用下述项中的一个或多个将记录添加到一个或多个dns高速缓存中:键值“a”、键值“aaa”以及键值“cname”,值“查询主机(queryhost)”,以及创建时间(步骤312)。步骤312优选地包括确保所新添加的记录优先于其他名称或者域名冲突。过程300还可以包括从dns高速缓存中移除过期条目(步骤314)并将一个或多个报告(例如,网络流量报告或数据)保存到存储器(例如,硬盘等)中以反映任何变化(步骤316)。返回至步骤306,如果所接收的数据包不包括dns应答,而是任何其他类型的tcp数据包和/或udp数据包,则该过程可以进行至a并且进入过程350的流程(图3b)。

过程350可以包括从数据包中提取ip地址(步骤352)并且分析数据包中的内容以确定数据包是否对应于tcp会话(步骤354)。如果数据包是关于tcp会话,则过程350可以包括提取tcp会话参数(步骤356)并且确定会话是否用于新建立的连接(步骤358)。如果会话是关于新建立的连接,则过程350可以包括利用所提取的ip地址查询dns高速缓存(步骤360)。如果可获得关于该查询的结果(步骤362),则过程350可以包括查询dns高速缓存以获得该结果(步骤364),并且进行到b以返回至过程300的步骤316。在一些实施方案中,可以重复查询dns高速缓存以获得结果,例如,直到检索到最后的结果为止。如果在步骤362处没有获得结果,则过程350可以包括在一个或多个网络流量报告或数据中创建新条目(步骤374)——例如,如果可获得结果,通过添加时间信息,ip地址以及dns名称——并且进行到c以返回到过程300的步骤316。

返回至步骤354,如果数据包并非关于tcp会话,则过程350可以包括确定或检查ip地址活跃的最后时间(步骤368)。如果相对较长时间之前ip地址还是活跃的(在步骤370),则过程350可以包括在ip会话打开时关闭该ip地址的记录(步骤372),进行到步骤374,并从该处继续该过程,如图所示。另一方面,如果ip地址活跃的最后时间是相对最近的(在步骤370),则过程350可以包括更新关于该ip记录的流量计数器(步骤378)并且确定该记录的时间是否早于报告时段(步骤380)。如果记录的时间早于报告时段,则过程350可以包括重新创建记录(步骤382)并进行到d以返回至过程300的步骤316。如果记录的时间不早于报告时段,则过程350可以进行到e以直接返回到过程300的步骤316。

返回至步骤358,如果会话不是关于新建立的连接,则过程350可以包括确定tcp会话是否关闭(步骤376)。如果tcp会话关闭,则过程350可以进行到步骤372;否则,该过程可以进行到步骤378。

根据各个实施方案,系统可以实现为算法,并且更具体地,实现为网络流捕获软件(例如,netflow)的扩展。该算法可以(i)能够检查dns应答流量[例如,比其他数据更深或更集中],(ii)将应答信息推送到优先级的高速缓存中,(iii)以相反的顺序挖掘或“移动”缓存以恢复在请求时或在请求时使用的原始dns名称信息,以及(iv)将恢复的原始dns名称信息添加到网络流量报告中。

来自使用原始dns名称信息扩充的网络流量报告的流量行项的示例如下:2016-02-2632:15:32.4341.030tcp

192.168.0.1:42343->10.0.226.24(jenkins.avg-labs.com):80xxxxxxx。优先的dns高速缓存内容的示例如下:

1、jenkins.avg-labs.com:apps-build-prod-idc-ams001.mgm.avg.com。

2、apps-build-prod-idc-ams001.mgm.avg.com:10.0.226.24。

图4是示出示例性dns高速缓存以及其中的内容的示意图。

根据示例性实施方案,系统可以生成网络流量和链路连接(例如,http连接),该链路连接(例如,http连接)在建立连接时或者在将要建立连接时由所示流量显示给相关的dns名。在某些实施方案中,系统可以实现为扩展现有的流捕获软件应用程序的特殊dns模块。例如,该模块可以被配置成:

1、捕获所有的传入dns流量;

2、从dns回复中提取原始网页请求以及记录a、aaa、以及cname;

3、将这些数据组织到一个或多个特定高速缓存中;以及

4、提供捕获流程软件的界面,使得软件可以迅速恢复所请求的连接中使用的适当的dns名称。

图5是示出了根据本发明实施方案的用于dns高速缓存的示例性过程500的流程图。开始于步骤502,该过程可以包括捕获从dns服务器发送到网络(例如,lan)上的主机的dns应答信息(步骤504),从dns应答中提取“查询主机”(步骤506),以及从所述应答中提取数据“a”、“aaa”以及“cname”(步骤508)。过程500还可以包括进行到网络主机的子高速缓存(步骤510),并且针对提取的每个“a”和“aaa”,创建或更新高速缓存中的现有条目ip->name(步骤512),以及针对提取的每个“cname”,创建或更新高速缓存中的现有条目cname->name(步骤514)。在步骤514之后,过程500可以返回到步骤504以重复该过程。

图6是示出了根据本发明实施方案的利用dns名称信息来扩充网络流量报告的另一示例性过程600的流程图。过程600可以是网络流量报告生成系统或算法的扩展,并且可以在每个新的输出tcp或udp连接上执行(步骤602)。该过程可以包括提取源ip地址和目标ip地址(步骤604),进行(例如,提取)源ip地址的子高速缓存(步骤606),以及从目标ip地址查找dns名称(步骤608)。如果在步骤610处查找失败,则过程600可以包括确定查找结果是否可以从先前步骤中的任意步骤获得(步骤614)。如果可获得结果,则过程600可以包括将dns名称记录到一个或多个网络流量报告或者数据中(步骤616)并且在步骤618处结束。如果没有获得结果,则过程600可以在步骤618处结束。返回至步骤610,如果查找成功,则过程600可以包括利用所接收的dns名称/cname来重复查询(例如,以递归方式)(步骤612)。步骤610和步骤612之间的这种递归循环可以模拟后向递归解析,并且可以用于提取ip的最高级别名称(而不仅仅是中间cname)。

图7示出了是网络流量报告的示例(例如,根据图3a、图3b、图5以及图6所示的过程中的一个或多个过程进行扩充)。

应当理解的是,过程300、过程350、过程500以及过程600中所示的步骤仅仅是说明性的,并且可以修改或省略现有步骤,可以添加附加步骤,并且可以改变某些步骤的顺序。

因此,本发明的实施方案有利地提供包括关于一些报告的连接请求或所有报告的连接请求的原始请求的dns名称的网络流。这使网络分析人员、自动化工具等能够优化网络带宽(例如,针对个人用户)并识别网络安全问题。应当理解的是,在某些实施方案中,扩充的网络流量报告可以用于检测恶意程序,例如未授权的智能手机应用程序。本文所描述的新颖系统——包括利用来自高速缓存的dns名称补充网络流,可以克服现有dns高速缓存解决方案的缺点,其不影响各个主机的分组。

应当理解的是,前述主题可以体现为设备、系统、方法和/或计算机程序产品。因此,一些主题或者全部主题可以体现为硬件和/或软件(包括固件、驻留软件、微代码、状态机、门阵列等)。此外,所述主题可以采用计算机可用存储介质或者计算机可读存储介质上的计算机程序产品的形式,计算机可用程序代码或者计算机可读程序代码体现在介质中,供指令执行系统使用或者与指令执行系统结合使用。计算机可用介质或者计算机可读介质可以是能够包含、存储、传送、传播或传输程序以供指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的任何介质。

计算机可用介质或计算机可读介质可以是例如电子的、磁的、光学的、电磁的、红外的或半导体的系统、装置、设备或者传播介质。计算机可读介质可以包括计算机存储介质和通信介质。

计算机存储介质包括通过任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的易失性介质和非易失性介质、可移动介质和不可移动介质。计算机存储介质包括可用于存储信息并且可由指令执行系统访问的ram、rom、eeprom、闪存或其他存储器技术。

通信介质通常以诸如载波或其它传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块、或其它数据,并且包括任何信息传递介质(有线信息传递介质或无线信息传递介质)。经调制的数据信号可以被定义为通过对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。

当主题体现在计算机可执行指令的大体上下文中时,该实施方案可以包括由一个或多个系统、计算机或其他设备执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。通常,在各种实施例中,可以根据需要组合或分发程序模块的功能。

本领域普通技术人员将理解的时候,本文中所使用的术语“互联网”是指通过一组标准协议(例如tcp/ip和http)链接在一起以形成全球分布式网络的计算机网络(公共和/或私有)的集合。尽管该术语旨在表示什么是现在通常认为的互联网,但是其还旨在包括将来可能做出的变化,这包括对现有协议的改变和添加。

因此可以看出的是,在前面的描述和附图中明显的那些目的中,有效地实现了上述目的,并且由于可以在执行上述方法,并且因为在不脱离本发明的精神和范围的情况下,可以在执行上述方法和针对系统阐述的结构中进行某些改变,因此这旨在将上面的描述中包含的和附图中示出的所有内容解释为说明性的而不是限制性的。

还应当理解的是,以下权利要求旨在涵盖本文所述的本发明的所有一般特征和具体特征,以及本发明范围的所有陈述从字面上来讲应该落在所述一般特征与具体特征之间。

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