一种攻击报文的溯源方法和装置与流程

文档序号:12162059阅读:417来源:国知局
一种攻击报文的溯源方法和装置与流程

本申请涉及通信技术领域,尤其涉及一种攻击报文的溯源方法和装置。



背景技术:

网络环境中存在着攻击报文,攻击报文会对服务、链路等资源造成威胁和影响。虽然大部分攻击报文可以在攻击末端进行防御处理,但攻击报文在网络中的转发仍会造成运营商的链路资源的占用和浪费。

为了能在源头上对攻击报文进行防御,往往需要查询攻击报文的来源(以下简称攻击源),此过程称为攻击报文的溯源。

一种溯源手段为在攻击末端抓取攻击报文,通过分析工具查找攻击报文的源网际协议(Internet Protocol,IP)地址,查找到的源IP地址即为攻击源。

但由于网络中的报文是基于目的IP地址转发的,因此攻击源可以对攻击报文的源IP地址进行伪造来躲避溯源。这导致通过上述方式从攻击报文中获取到的源IP地址可能是被攻击源伪造后的虚假源地址,这给攻击源的确定带来了难度。



技术实现要素:

有鉴于此,本申请提供一种攻击报文的溯源方法和装置,可以解决攻击报文携带了虚假源地址这种情况下的攻击溯源问题。

具体地,本申请是通过如下技术方案实现的:

本申请第一方面,提供了一种攻击报文的溯源方法,所述方法包括:

获取待溯源的攻击报文;

确定所述攻击报文的五元组和攻击时间段;

根据所述五元组和攻击时间段,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识;

将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列;

将得到的排列结果中的第一个路由器的标识所对应的路由器确定为所述攻击报文的攻击源。

在一个可能的设计中,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识时,可以通过如下方式实现:

首先,在预先获取的netflow日志中查询与所述五元组和攻击时间段匹配的路由器的标识;

然后,将查询到的所述匹配的路由器的标识确定是所述攻击报文经过的路由器的标识;

其中,所述匹配的路由器转发过携带所述五元组的报文,且转发该报文的时刻落在所述攻击时间段内;

或者,所述匹配的路由器转发过携带所述五元组的报文,且转发该报文的时刻与所述攻击时间段的开始时刻的差值的绝对值小于设定阈值;

或者,所述匹配的路由器转发过携带所述五元组的报文,且转发该报文的时刻与所述攻击时间段的结束时刻的差值的绝对值小于设定阈值。

在一个可能的设计中,在将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列时,可以通过如下方式实现:

首先,获取网络拓扑;

然后,将查询到的路由器的标识按照所述网络拓扑指示的路由器连接关系进行排列。

在一个可能的设计中,在将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列时,可以通过如下方式实现:

首先,获取路由器的下一跳信息;

然后,将查询到的路由器的标识按照所述下一跳信息指示的路由器连接关系进行排列。

在一个可能的设计中,在将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列时,可以通过如下方式实现:

首先,获取各路由器转发所述攻击报文的时刻;

然后,将查询到的路由器的标识按照转发所述攻击报文的先后顺序进行排列。

本申请第二方面,提供了一种攻击报文的溯源装置,所述装置具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。

一种可能的实现方式中,所述攻击报文的溯源装置可以包括:

获取单元,用于获取待溯源的攻击报文;

确定单元,用于确定所述攻击报文的五元组和攻击时间段;

查询单元,用于根据所述五元组和攻击时间段,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识;

排列单元,用于将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列;

溯源单元,用于将得到的排列结果中的第一个路由器的标识所对应的路由器确定为所述攻击报文的攻击源。

另一种可能的实现方式中,所述攻击报文的溯源装置可以包括网络接口和处理器,所述网络接口和所述处理器之间通过总线系统相互连接;所述处理器用于执行以下操作:

通过所述网络接口获取待溯源的攻击报文;确定所述攻击报文的五元组和攻击时间段;根据所述五元组和攻击时间段,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识;将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列;将得到的排列结果中的第一个路由器的标识所对应的路由器确定为所述攻击报文的攻击源。

本申请提供的方法通过收集全网的netflow日志,从中分析出已知攻击报文的转发路径,从而确定出攻击报文的真实来源。

附图说明

图1是本申请实施例提供的一种系统架构的示意图;

图2是本申请实施例提供的一种攻击报文的溯源方法的流程图;

图3A和图3B是本申请提供的一个实施例的网络示意图;

图4是本申请实施例提供的一种攻击报文的溯源装置的结构示意图;

图5是本申请实施例提供的另一种攻击报文的溯源装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面结合说明书附图和各实施例对本申请技术方案进行说明。

本申请提供的方法通过收集全网的netflow日志,从中分析出已知攻击报文的转发路径,从而确定出攻击报文的真实来源。

下面通过图1对本申请提供的方法所应用的系统架构进行描述:

参见图1,图1为本申请提供的一种系统架构图,该系统架构可包括路由器和溯源装置。

下面分别对本系统架构所涉及的各网元的功能进行说明。

路由器,用于在不同的子网之间传递报文。根据部署位置的不同,路由器可分为省级路由器、地市级路由器、县级路由器等。每台路由器上都保存有netflow日志,netflow日志记录了该路由器转发过的报文的五元组、传输控制协议标识(TCP flag)、接口、路由,以及该路由器转发报文时的时间点等相关信息信息。本申请实施例中,路由器还可以用于将本路由器上存储的netflow日志发送给溯源装置进行存储。

溯源装置,用于接收各路由器的netflow日志,并在接收到netflow日志时进行解析存储,存储完成后等待有攻击发生时查找使用。当攻击发生时,溯源装置可以通过本装置上的其它功能或其它攻击发现设备获取到攻击报文的相关信息,如攻击报文的五元组(源IP地址、目的IP地址、源端口、目的端口和传输层协议)以及攻击发生的时间段等信息。溯源装置在确定上述信息后,在本地预先存储的netflow日志中查询与获取到的攻击时间段和攻击报文的五元组匹配的报文的转发情况,得到攻击报文的转发路径,该转发路径的起始端即为攻击溯源结果。

本申请实施例并不限制溯源装置的部署位置,只要溯源装置与各路由器保持网络可达即可。例如,溯源装置可以和现有的网元集成在一个物理服务器上,或者,溯源装置也可以独立部署。

此外,如果涉及的网络过于庞大,还可以采取分布式的部署方式,在网络中部署多个溯源装置,每个溯源装置处理部分路由器的netflow日志。

至此,完成对图1的系统架构的描述。

基于上述图1提供的系统架构,下面通过图2对本申请提供的方法进行描述:

参见图2,图2为本申请提供的方法流程图。如图2所述,该流程可包括以下步骤:

步骤201:溯源装置获取待溯源的攻击报文。

当攻击源向攻击目的端发起攻击时,网络中的攻击检测设备可以检测到此次攻击,从而通知给溯源装置。

溯源装置可以在攻击目的端随机抓取一个或多个攻击报文,对于抓取到的每个攻击报文都可以按照图2所示的方法处理。

步骤202:溯源装置确定所述攻击报文的五元组和攻击时间段。

这里所说的攻击时间段指的是攻击开始到攻击结束的时间段,即遭受攻击的设备从发生异常到异常结束的时间范围。

溯源装置可以从攻击检测设备上获知攻击报文的攻击时间段。

步骤203:溯源装置根据所述五元组和攻击时间段,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识。

本申请实施例中,网络中的路由器可以实时地将本路由器上存储的netflow日志发送给溯源装置,由溯源装置进行解析存储。存储格式如表1所示,每条记录记载了路由器的标识,该标识对应的路由器转发某个报文的时间点,以及在这个时间点转发的该报文的五元组、该报文在路由器上的出入接口和该报文的下一跳地址等信息。

表1

当攻击发生时,溯源装置可以在预先获取的netflow日志中查询与攻击报文的五元组和攻击时间段匹配的路由器的标识,并可以将查询到的所述匹配的路由器的标识确定是所述攻击报文经过的路由器的标识。

其中,所述匹配的路由器需要满足以下三个条件中的任一个:

条件一:所述匹配的路由器转发过携带所述攻击报文的五元组的报文,且转发该报文的时刻落在所述攻击报文的攻击时间段内。

例如,假设某个攻击报文的攻击时间段为2016/1/1 10:00至2016/1/1 10:10,如果路由器1在2016/1/1 10:03转发过与该攻击报文的五元组相同的报文,则可以认为路由器1转发过该攻击报文。

考虑到不同路由器的设备时间可能存在差异,因此本申请实施例还提出了以下条件二和条件三。

条件二:所述匹配的路由器转发过携带所述攻击报文的五元组的报文,且转发该报文的时刻与所述攻击报文的攻击时间段的开始时刻的差值的绝对值小于设定阈值。

例如,假设某个攻击报文的攻击时间段为2016/1/1 10:00至2016/1/1 10:10,如果路由器1在2016/1/1 09:59转发过与该攻击报文的五元组相同的报文,且设定阈值为5分钟,则可以认为路由器1转发过该攻击报文。

条件三:所述匹配的路由器转发过携带所述攻击报文的五元组的报文,且转发该报文的时刻与所述攻击报文的攻击时间段的结束时刻的差值的绝对值小于设定阈值。

例如,假设某个攻击报文的攻击时间段为2016/1/1 10:00至2016/1/1 10:10,如果路由器1在2016/1/1 10:03转发过与该攻击报文的五元组相同的报文,且设定阈值为5分钟,则可以认为路由器1转发过该攻击报文。

步骤204:溯源装置将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列。

得到的排列结果即为攻击报文的转发路径。实际应用中可以有多种排列方式,本申请实施例仅列举三种。

第一种:首先获取网络拓扑,然后将步骤203中查询到的路由器的标识,按照所述网络拓扑指示的路由器连接关系进行排列。

例如假设查询到3个路由器,分别为路由器1、路由器2和路由器3,溯源装置可以将这3个路由器在网络拓扑图中标示出并连接成一条路径,如果连接结果是路由器1和路由器2相连,路由器2和路由器3相连,且已知路由器3靠近攻击目的端,从而可以认为该攻击报文的转发路径为:从路由器1转发到路由器2,再从路由器2转发到路由器3。

第二种:首先获取各路由器的下一跳信息,然后将步骤203中查询到的路由器的标识,按照所述下一跳信息指示的路由器连接关系进行排列。

例如,假设查询到3个路由器,分别为路由器1、路由器2和路由器3,如果路由器2是路由器1的下一跳,路由器3又是路由器2的下一跳,从而可以根据路由的下一跳关系,认为该攻击报文的转发路径为:从路由器1转发到路由器2,再从路由器2转发到路由器3。

第三种:首先可以从本地存储的netflow日志中获取各路由器转发所述攻击报文的时刻,然后将步骤203中查询到的路由器的标识,按照转发所述攻击报文的先后顺序进行排列。

例如,假设查询到3个路由器,分别为路由器1、路由器2和路由器3,如果这3个路由器转发攻击报文的时间点依次是10:00、10:01和10:02,从而可以根据时间的先后顺序,认为该攻击报文的转发路径为:从路由器1转发到路由器2,再从路由器2转发到路由器3。

具体采用哪种排列方式可以视网络情况而定,例如,如果各路由器的设备时间实现了同步,则可以采取第三种排列方式,如果各路由器的设备时间存在较大差异,则可以采取第一种或第二种排列方式。

步骤205:溯源装置将得到的排列结果中的第一个路由器的标识所对应的路由器确定为所述攻击报文的攻击源。

可选的,溯源装置在查询攻击报文经过的路由器的标识时,还可以查询攻击报文在路由器上出入接口,从而可以进一步确定出攻击源在该起始路由器的入接口所连接的设备上。

至此,完成对图2所示流程的描述。

通过图2所示流程可以看出,在本申请中,无论抓取到的攻击报文携带的源IP地址是否真实,均可以利用已有的netflow日志分析出已知攻击报文的转发路径,从而确定出攻击报文的真实来源。

为了更清楚地说明本申请的技术方案,下面通过一个实施例对上述技术方案做进一步的说明,需要说明的是,此实施例仅仅是本申请的一种实现方式,不构成对本申请的限定。

参见图3A,攻击源的实际地址为1.1.1.1,其向攻击目的端8.8.8.8发起攻击时,将报文的源IP地址伪造成10.10.10.10。

溯源装置在攻击目的端抓取攻击报文,得到该攻击报文的五元组和攻击时间段。通过分析在该攻击时间段内全部的netflow日志,得到以下结果:

路由器1收到过源IP地址为10.10.10.10、目的IP地址为8.8.8.8的报文,该报文在该路由器上的入接口为接口1,出接口为接口2;

地市1出口路由器收到过源IP地址为10.10.10.10、目的IP地址为8.8.8.8的报文,该报文在该路由器上的入接口为接口1,出接口为接口2;

A省出口路由器收到过源IP地址为10.10.10.10、目的IP地址为8.8.8.8的报文,该报文在该路由器上的入接口为接口1,出接口为接口2;

路由器2收到过源IP地址为10.10.10.10、目的IP地址为8.8.8.8的报文,该报文在该路由器上的入接口为接口2,出接口为接口1;

地市2出口路由器收到过源IP地址为10.10.10.10、目的IP地址为8.8.8.8的报文,该报文在该路由器上的入接口为接口2,出接口为接口1;

B省出口路由器收到过源IP地址为10.10.10.10目的IP地址为8.8.8.8的报文,该报文在该路由器上的入接口为接口2,出接口为接口1。

溯源装置通过已添加或自动发现的网络拓扑进行接口分析,将上述得到的查询结果在网络拓扑中展现并标示出,这些结果可以连接成一条路径,参见图3B的粗线所示,该粗线所连接的路由器的接口层进行过攻击报文的转发,为攻击报文的转发路径,该路径的起始端点即为攻击源。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

本申请实施例提供了一种攻击报文的溯源装置,用于实现上述方法中溯源装置的功能,如图4所示,溯源装置包括获取单元401、确定单元402、查询单元403、排列单元404和溯源单元405。

所述获取单元401,用于获取待溯源的攻击报文。

所述确定单元402,用于确定所述攻击报文的五元组和攻击时间段。

所述查询单元403,用于根据所述五元组和攻击时间段,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识。

所述排列单元404,用于将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列。

所述溯源单元405,用于将得到的排列结果中的第一个路由器的标识所对应的路由器确定为所述攻击报文的攻击源。

可选的,所述查询单元403具体用于:在预先获取的netflow日志中查询与所述五元组和攻击时间段匹配的路由器的标识;将查询到的所述匹配的路由器的标识确定是所述攻击报文经过的路由器的标识;

其中,所述匹配的路由器转发过携带所述五元组的报文,且转发该报文的时刻落在所述攻击时间段内;

或者,所述匹配的路由器转发过携带所述五元组的报文,且转发该报文的时刻与所述攻击时间段的开始时刻的差值的绝对值小于设定阈值;

或者,所述匹配的路由器转发过携带所述五元组的报文,且转发该报文的时刻与所述攻击时间段的结束时刻的差值的绝对值小于设定阈值。

可选的,在将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列时,所述排列单元404可以有以下3种实现方式:

第一种,获取网络拓扑;将查询到的路由器的标识按照所述网络拓扑指示的路由器连接关系进行排列。

第二种,获取路由器的下一跳信息;将查询到的路由器的标识按照所述下一跳信息指示的路由器连接关系进行排列。

第三种,获取各路由器转发所述攻击报文的时刻;将查询到的路由器的标识按照转发所述攻击报文的先后顺序进行排列。

本实施例中未尽之细节可参考上述图2所示方法中溯源装置的描述,在此不再赘述。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

其中,集成的单元采用硬件的形式实现时,所述获取单元401对应的实体的硬件可以是网络接口,例如图5的网络接口501,所述确定单元402、查询单元403、排列单元404和溯源单元405对应的实体的硬件可以为处理器,例如图5的处理器502。

基于上述提供的攻击报文的溯源方法,本申请还提供一种攻击报文的溯源装置,如图5所示,溯源装置包括网络接口501和处理器502,例如,所述网络接口501和所述处理器502可以通过总线503相互连接。

所述处理器502用于执行以下操作:

通过所述网络接口501获取待溯源的攻击报文;确定所述攻击报文的五元组和攻击时间段;根据所述五元组和攻击时间段,在预先获取的netflow日志中查询所述攻击报文经过的路由器的标识;将查询到的路由器的标识按照所述攻击报文的转发顺序进行排列;将得到的排列结果中的第一个路由器的标识所对应的路由器确定为所述攻击报文的攻击源。

所述网络接口501可以是有线接口,例如光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)、以太网(Ethernet)接口。网络接口501也可以是无线接口,例如无线局域网接口。

所述处理器502可以是通用处理器,包括中央处理器(central processing unit,CPU)、网络处理器(network processor,NP)等;还可以是数字信号处理器(figital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件等。

所述处理器502为CPU时,所述溯源装置还可以包括:存储器,用于存储程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可能包含随机存取存储器(random access memory,RAM),也可能还包括非易失性存储器(英文:non-volatile memory),例如至少一个磁盘存储器。所述处理器502执行所述存储器中存储的程序代码,实现上述功能。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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