专利名称:防止网络攻击的报文转发方法和网关的制作方法
技术领域:
本发明涉及网络攻击,尤其涉及一种防止网络攻击的报文转发方法和网关。
背景技术:
Over Billing(过度计费)是一种常见的网络攻击方式,其原理是,Internet上的 服务器,利用其探测到的客户端的IP地址,通过与客户端已经建立的连接来穿透防火墙, 向客户端发送大量的报文,导致客户端被错误的计费。这时,客户端会被多计费,导致用户 的投诉。为了解决这一问题,可以使用QoS保证技术,在网关侧按照客户端的QoS签约进行 下行的限流,这样服务器端发出的超出QoS的报文将被丢弃,然而,如果签约的QoS较大,那 么服务器端还是能够发送很多的下行报文,计费还是有很大的误差。因此,目前一般是采用 网关与防火墙连动的方式,这种方式下,网关将用户的在线情况通过信令通知到防火墙,防 火墙对已经下网的用户的IP地址涉及的流进行清理,完全阻断,当用户再次使用这个IP地 址的时候,服务器发起的连接就失效了,报文无法下行,从而保护了用户。但是这种方式仍 然存在以下缺陷1、对于在线的用户,没有好的办法阻断恶意下行流量;2、需要网关设备 和防火墙的定制接口的开发工作,并且难以在不同厂家的设备之间使用。
发明内容
本发明实施例提供了一种防止网络攻击的报文转发方法和网关,以避免网络侧发 起的Over Billing的攻击导致的恶意计费,同时改善终端用户的体验。本发明实施例的上述目的是通过如下技术方案实现的一种防止网络攻击的报文转发方法,所述方法包括当接收到客户端发送的上行报文时,判断所述上行报文是否是ICMP不可达报文;如果所述上行报文不是ICMP不可达报文,则将下行报文令牌计数器置满;判断上行报文令牌计数器是否为零;如果上行报文令牌计数器为零,则丢弃所述上行报文;如果上行报文令牌计数器不为零,则将所述上行报文令牌计数器减一,并将所述 上行报文转发到服务器端。一种网关,所述网关包括接收单元,用于接收客户端发送的上行报文,或者服务器端发送的下行报文;逻辑单元,用于在所述接收单元接收到客户端发送的上行报文时,判断所述上行 报文是否为ICMP不可达报文;并用于在所述上行报文不是ICMP不可达报文时,判断上行报 文令牌计数器是否为零;处理单元,用于在所述逻辑单元的判断结果为所述上行报文不是ICMP不可达报 文时,将下行报文令牌计数器置满;并在所述逻辑单元的判断结果为上行报文令牌计数器 为零时,丢弃所述上行报文,或者在所述逻辑单元的判断结果为上行报文令牌计数器不为
4零时,将所述上行报文令牌计数器减一;发送单元,用于在所述逻辑单元的判断结果为上行报文令牌计数器不为零时,将 所述上行报文转发到服务器端。一种防止网络攻击的报文转发方法,所述方法包括当接收到服务器端发送的下行报文时,将上行报文令牌计数器置满;判断下行报文令牌计数器是否为零;如果下行报文令牌计数器为零,则丢弃所述下行报文;如果下行报文令牌计数器不为零,则将所述下行报文令牌计数器减一,并将所述 下行报文转发到客户端。本发明实施例提供的方法和网关,通过一种令牌机制,监控了基于 流的上下行报文的转发流程,防止了任何单向过度发包的情况。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不 构成对本发明的限定。在附图中图1为本发明实施例的方法应用于网关的网络架构示意图;图2为本发明一个实施例的方法流程图;图3为本发明另一实施例的方法流程图;图4为本发明实施例的网关的组成框图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附 图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本 发明,但并不作为对本发明的限定。图1为本实施例的防止网络攻击的报文转发方法应用于网关的网络架构示意 图,请参照图1,该网络架构中除了包括网关GGSN以外,还包括客户端UE以及服务器端 Server。在网关GGSN中,可以预先设置每个上行报文允许Server端下行报文的个数,也 即预先设置下行报文令牌计数器的个数;也可以在收到上行报文后,利用深度报文解析 (DPI)能力获知业务类型,并参考业务类型定义每个上行报文允许Server端下行报文的个 数,也即据此设置下行报文令牌计数器的个数,例如HTTP的链接可以设置允许下行报文的 个数为5,又例如RTSP的链接,则设置允许下行报文的个数为50 ;还可以在预先设置了下行 报文令牌计数器的个数后,如果收到上行报文,则利用DPI能力获知业务类型,并参考该业 务类型对上述下行报文令牌计数器的个数进行调整。如果超出上述定义值,就在网关GGSN 丢弃,如此可以阻断Server端不顾客户端响应能力的情况下,过度发送报文。同样的,在该 网关GGSN中,也可以预先设置每个下行报文允许客户端上行报文的个数,也即预先设置上 行报文令牌计数器的个数;也可以利用深度报文解析(DPI)能力获知业务类型,并参考业 务类型定义每个下行报文允许客户端上行报文的个数,也即据此设置上行报文令牌计数器 的个数,例如HTTP的链接可以设置允许上行报文的个数为5,又例如RTSP的链接,则设置允 许上行报文的个数为10 ;还可以在预先设置了上行报文令牌计数器的个数后,如果收到下 行报文,则利用DPI能力获知业务类型,并参考该业务类型对上述上行报文令牌计数器的
5个数进行调整。如果超出这个定义值,也在网关GGSN丢弃,如此可以防止客户端向服务器 端发送过多的报文。图2和图3为本发明实施例提供的防止网络攻击的报文转发方法的流程图, 该方法应用于网关,由网关通过监控客户端在使用业务的过程中建立的流信息,例如 TCP (Transmission Control Protocol,传输控制协、议)禾口 UDP(User Datagram Protocol, 用户数据包协议),检测上下行的报文的个数,使用上/下行报文作为令牌,来控制报文的 转发。其中图2为本发明实施例提供的防止网络攻击的报文转发方法中,当网关接收到客户 端发送的上行报文时的流程图,请参照图2,该方法包括步骤201 判断所述上行报文是否是ICMP不可达报文;其中,如果下行出现恶意报文,例如服务器端不顾客户端的响应能力,频繁向客户 端发送报文,则该报文很有可能为恶意报文,如此则有可能导致上行出现ICMP不可达报 文。再例如,从Server端来的下行报文发送给了客户端,客户端没有监听这个端口,认为是 非法报文,则向Server端回一个ICMP不可达报文。步骤202 如果所述上行报文不是ICMP不可达报文,则判断上行报文令牌计数器 是否为零;其中,如前所述,本实施例可以根据前述三种方法设置上行报文令牌计数器的个 数,以对报文转发情况进行计数,如果该上行报文令牌计数器的个数为零,则说明发送了过 多的上行报文,应该停止上行。步骤203 如果上行报文令牌计数器为零,则丢弃所述上行报文,然后将下行报文 令牌计数器置满;其中,由于上行报文令牌计数器为零,需要停止上行,则可以将该上行报文丢弃。 而由于有上行的报文,则还要将下行报文令牌计数器置满,表示可以允许下行报文的顺畅 通过,其中,将下行报文令牌计数器置满的处理也可以放在步骤202中,本实施例并不以此 作为限制。其中,如前所述,本实施例可以根据前述三种方法设置下行报文令牌计数器的个 数,以对报文转发情况进行计数。步骤204 如果上行报文令牌计数器不为零,则将所述上行报文令牌计数器减一, 然后将下行报文令牌计数器置满,并将所述上行报文转发到服务器端。其中,由于上行报文令牌计数器不为零,则说明还可以继续发送上行报文,则此时 将该上行报文转发到服务器端,同时将上行报文令牌计数器减一,表示可以发送的上行报 文减少了一个。同样的,由于有上行的报文,则还要将下行报文令牌计数器置满,表示可以 允许下行报文的顺畅通过,其中,将下行报文令牌计数器置满的处理也可以放在步骤202 中,本实施例并不以此作为限制。在本实施例中,根据步骤201的判断结果,如果上行报文是ICMP不可达报文,如前 所述,则说明下行可能出现了恶意报文,此时将下行报文令牌计数器清零,也即禁止转发下 行报文。本实施例的方法不仅适用于TCP流,也同样适用于UDP流,在此不再赘述。当前状态下,网关作为转发设备,对报文流的健康状态是不关注的,这就导致了客
6户端不可避免地收到恶意报文,在客户端只能被动响应丢包,而本实施例提供的方法使得 网关可以判断报文流是否正常,在网关计费之前丢包,减少了计费误差。图3为本发明实施例提供的防止网络攻击的报文转发方法中,当网关接收到服务 器端发送的下行报文时的流程图,需要说明的是,本实施例的方法可以单独进行,也可以结 合图2所示实施例的方法进行,本实施例并不以此作为限制,且在结合图2所示实施例的方 法进行时,并不限制其先后顺序。请参照图3,该方法包括步骤301 判断下行报文令牌计数器是否为零;其中,如前所述,本实施例可以根据前述三种方法设置下行报文令牌计数器的个 数,以对报文转发情况进行计数,如果该下行报文令牌计数器的个数为零,则说明发送了过 多的下行报文,应该停止下行。步骤302 如果下行报文令牌计数器为零,则丢弃所述下行报文,然后将上行报文 令牌计数器置满;其中,由于下行报文令牌计数器为零,需要停止下行,则可以将该下行报文丢弃。 而由于有下行的报文,则还要将上行报文令牌计数器置满,表示可以允许上行报文的顺畅 通过,其中,将上行报文令牌计数器置满的处理也可以在网关接收到服务器端发送的下行 报文时执行,本实施例并不以此作为限制。其中,如前所述,本实施例可以根据前述三种方法设置上行报文令牌计数器的个 数,以对报文转发情况进行计数。步骤303 如果下行报文令牌计数器不为零,则将所述下行报文令牌计数器减一, 然后将上行报文令牌计数器置满,并将所述下行报文转发到客户端。其中,由于下行报文令牌计数器不为零,则说明还可以继续发送下行报文,则此时 将该下行报文转发到客户端端,同时将下行报文令牌计数器减一,表示可以发送的下行报 文减少了一个。同样的,由于有下行的报文,则还要将上行报文令牌计数器置满,表示可以 允许上行报文的顺畅通过,其中,将上行报文令牌计数器置满的处理也可以在网关接收到 服务器端发送的下行报文时执行,本实施例并不以此作为限制。本实施例的方法不仅适用于TCP流,也同样适用于UDP流,在此不再赘述。当前状态下,网关作为转发设备,对报文流的健康状态是不关注的,这就导致了客 户端不可避免地收到恶意报文,在客户端只能被动响应丢包,而本实施例提供的方法使得 网关可以判断报文流是否正常,在网关计费之前丢包,减少了计费误差。本发明实施例提供的方法,通过一种令牌机制,监控了基于流的上下行报文的转 发流程,通过对上行和下行报文流程的处理,解决了单向过多地进行上行和下行的问题,防 止了任何单向过度发包的情况。由于这个机制是逐流实现的,所以不会影响用户的正常的 业务传递。又由于只要进行一个简单的计数和判断即可实施本方案,因此实现简单。图4为本发明实施例提供的网关的组成框图,请参照图4,该网关包括接收单元41,用于接收客户端发送的上行报文,或者服务器端发送的下行报文;其中,接收单元41接收到的客户端发送的上行报文或者服务器端发送的下行报 文为传输控制协议报文或者用户数据包协议报文。逻辑单元42,用于在接收单元41接收到客户端发送的上行报文时,判断所述上行 报文是否为ICMP不可达报文;并用于在所述上行报文不是ICMP不可达报文时,判断上行报文令牌计数器是否为零;处理单元43,用于在逻辑单元42的判断结果为所述上行报文不是ICMP不可达 报文时,将下行报文令牌计数器置满;并在逻辑单元42的判断结果为上行报文令牌计数器 为零时,丢弃所述上行报文,或者在逻辑单元42的判断结果为上行报文令牌计数器不为零 时,将所述上行报文令牌计数器减一;发送单元44,用于在逻辑单元42的判断结果为上行报文令牌计数器不为零时,将 所述上行报文转发到服务器端。在一个实施例中,处理单元43还用于在逻辑单元42的判断结果为,所述上行报文 是ICMP不可达报文时,将下行报文令牌计数器清零。在一个实施例中逻辑单元42还用于在接收单元41接收到服务器端发送的下行报文时,判断下行 报文令牌计数器是否为零;处理单元43还用于在接收单元41接收到服务器端发送的下行报文时,将上行报 文令牌计数器置满;并在逻辑单元42的判断结果为下行报文令牌计数器为零时,丢弃所述 下行报文,或者在逻辑单元42的判断结果为下行报文令牌计数器不为零时,将所述下行报 文令牌计数器减一;发送单元44还用于将所述下行报文转发到客户端。在一个实施例中,该网关还包括设置单元45,用于预先设置上行报文令牌计数器的个数以及下行报文令牌计数器 的个数;或者,在接收单元41接收到客户端发送的上行报文或者服务器端发送的下行报文 后,利用深度报文解析能力获知业务类型,参考业务类型设置上行报文令牌计数器的个数 或者下行报文令牌计数器的个数;或者,预先设置上行报文令牌计数器的个数以及下行报 文令牌计数器的个数,在接收到客户端发送的上行报文或者服务器端发送的下行报文后, 利用深度报文解析能力获知业务类型,根据业务类型调整所述上行报文令牌计数器的个数 或者所述下行报文令牌计数器的个数,以提供给逻辑单元42进行报文数量的判断,以及提 供给处理单元43进行数值的重置。本实施例的网关的各组成部分分别用于实现前述方法的各步骤,由于在方法实施 例中,已经对各步骤进行了详细说明,在此不再赘述。本发明实施例提供的网关,通过一种令牌机制,监控了基于流的上下行报文的转 发流程,通过对上行和下行报文流程的处理,解决了单向过多地进行上行和下行的问题,防 止了任何单向过度发包的情况。由于这个机制是逐流实现的,所以不会影响用户的正常的 业务传递。又由于只要进行一个简单的计数和判断即可实施本方案,因此实现简单。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保 护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。
权利要求
一种防止网络攻击的报文转发方法,其特征在于,所述方法包括当接收到客户端发送的上行报文时,判断所述上行报文是否是ICMP不可达报文;如果所述上行报文不是ICMP不可达报文,则将下行报文令牌计数器置满;判断上行报文令牌计数器是否为零;如果上行报文令牌计数器为零,则丢弃所述上行报文;如果上行报文令牌计数器不为零,则将所述上行报文令牌计数器减一,并将所述上行报文转发到服务器端。
2.根据权利要求1所述的方法,其特征在于如果所述上行报文是ICMP不可达报文,则将下行报文令牌计数器清零。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括 当接收到服务器端发送的下行报文时,将上行报文令牌计数器置满; 判断下行报文令牌计数器是否为零;如果下行报文令牌计数器为零,则丢弃所述下行报文;如果下行报文令牌计数器不为零,则将所述下行报文令牌计数器减一,并将所述下行 报文转发到客户端。
4.根据权利要求3所述的方法,其特征在于,所述上行报文或者所述下行报文为传输 控制协议报文或者用户数据包协议报文。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括预先设置上行报文令牌计数器的个数以及下行报文令牌计数器的个数;或者 在接收到客户端发送的上行报文或者服务器端发送的下行报文后,利用深度报文解析 能力获知业务类型,根据业务类型设置上行报文令牌计数器的个数或者下行报文令牌计数 器的个数;或者预先设置上行报文令牌计数器的个数以及下行报文令牌计数器的个数,在接收到客 户端发送的上行报文或者服务器端发送的下行报文后,利用深度报文解析能力获知业务类 型,根据业务类型调整所述上行报文令牌计数器的个数或者所述下行报文令牌计数器的个数。
6.一种防止网络攻击的报文转发方法,其特征在于,所述方法包括 当接收到服务器端发送的下行报文时,将上行报文令牌计数器置满; 判断下行报文令牌计数器是否为零;如果下行报文令牌计数器为零,则丢弃所述下行报文;如果下行报文令牌计数器不为零,则将所述下行报文令牌计数器减一,并将所述下行 报文转发到客户端。
7.根据权利要求6所述的方法,其特征在于,所述下行报文为传输控制协议报文或者 用户数据包协议报文。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括预先设置上行报文令牌计数器的个数以及下行报文令牌计数器的个数;或者 在接收到客户端发送的上行报文或者服务器端发送的下行报文后,利用深度报文解析 能力获知业务类型,根据业务类型设置上行报文令牌计数器的个数或者下行报文令牌计数 器的个数;或者预先设置上行报文令牌计数器的个数以及下行报文令牌计数器的个数,在接收到客 户端发送的上行报文或者服务器端发送的下行报文后,利用深度报文解析能力获知业务类 型,根据业务类型调整所述上行报文令牌计数器的个数或者所述下行报文令牌计数器的个数。
9.一种网关,其特征在于,所述网关包括接收单元,用于接收客户端发送的上行报文,或者服务器端发送的下行报文;逻辑单元,用于在所述接收单元接收到客户端发送的上行报文时,判断所述上行报文 是否为ICMP不可达报文;并用于在所述上行报文不是ICMP不可达报文时,判断上行报文令 牌计数器是否为零;处理单元,用于在所述逻辑单元的判断结果为所述上行报文不是ICMP不可达报文时, 将下行报文令牌计数器置满;并在所述逻辑单元的判断结果为上行报文令牌计数器为零 时,丢弃所述上行报文,或者在所述逻辑单元的判断结果为上行报文令牌计数器不为零时, 将所述上行报文令牌计数器减一;发送单元,用于在所述逻辑单元的判断结果为上行报文令牌计数器不为零时,将所述 上行报文转发到服务器端。
10.根据权利要求9所述的网关,其特征在于所述处理单元还用于在所述逻辑单元的判断结果为,所述上行报文是ICMP不可达报 文时,将下行报文令牌计数器清零。
11.根据权利要求9所述的网关,其特征在于所述逻辑单元还用于在所述接收单元接收到服务器端发送的下行报文时,判断下行报 文令牌计数器是否为零;所述处理单元还用于在所述接收单元接收到服务器端发送的下行报文时,将上行报文 令牌计数器置满;并在所述逻辑单元的判断结果为下行报文令牌计数器为零时,丢弃所述 下行报文,或者在所述逻辑单元的判断结果为下行报文令牌计数器不为零时,将所述下行 报文令牌计数器减一;所述发送单元还用于将所述下行报文转发到客户端。
12.根据权利要求11所述的网关,其特征在于,所述接收单元接收到的客户端发送的 上行报文或者服务器端发送的下行报文为传输控制协议报文或者用户数据包协议报文。
13.根据权利要求9所述的网关,其特征在于,所述网关还包括设置单元,用于预先设置上行报文令牌计数器的个数以及下行报文令牌计数器的个 数;或者,在所述接收单元接收到客户端发送的上行报文或者服务器端发送的下行报文后, 利用深度报文解析能力获知业务类型,根据业务类型设置上行报文令牌计数器的个数或者 下行报文令牌计数器的个数;或者,预先设置上行报文令牌计数器的个数以及下行报文令 牌计数器的个数,在接收到客户端发送的上行报文或者服务器端发送的下行报文后,利用 深度报文解析能力获知业务类型,根据业务类型调整所述上行报文令牌计数器的个数或者 所述下行报文令牌计数器的个数。
全文摘要
本发明实施例提供一种防止网络攻击的报文转发方法和网关,所述方法包括当接收到客户端发送的上行报文时,判断所述上行报文是否是ICMP不可达报文;如果所述上行报文不是ICMP不可达报文,则将下行报文令牌计数器置满;判断上行报文令牌计数器是否为零;如果上行报文令牌计数器为零,则丢弃所述上行报文;如果上行报文令牌计数器不为零,则将所述上行报文令牌计数器减一,并将所述上行报文转发到服务器端。本发明实施例提供的方法和网关,通过一种令牌机制,监控了基于流的上下行报文的转发流程,防止了任何单向过度发包的情况。
文档编号H04L12/66GK101917450SQ20101027087
公开日2010年12月15日 申请日期2010年8月31日 优先权日2010年8月31日
发明者秦欣, 胡玉胜 申请人:华为技术有限公司