路由器及TCP端口防御方法转让专利

申请号 : CN200910308498.7

文献号 : CN102045251B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈中昶

申请人 : 国基电子(上海)有限公司鸿海精密工业股份有限公司

摘要 :

一种路由器,连接本地计算机与远程计算机,该路由器包括:设置模块、接收模块、时钟模块、计数模块以及识别模块,分别用于设置多个识别参数,接收TCP封包,根据接收的TCP封包的时间戳以及所设置的识别参数判断该远程计算机是否为攻击者,并在确认为攻击者时在一个时间段内将该远程计算机发送的所有TCP封包丢弃。本发明还提供一种TCP端口防御方法。利用本发明可有效防御对计算机TCP端口的攻击以及端口扫描。

权利要求 :

1.一种路由器,该路由器连接本地计算机与远程计算机,其特征在于,所述路由器包括:设置模块,用于设置第一时间段与第二时间段,以及设置远程计算机允许连接所述本地计算机次数的最大值;

接收模块,用于接收TCP封包,所述TCP封包包括SYN封包;

时钟模块,用于计时以及记录所述本地计算机接收每一个TCP封包的时间戳;

计数模块,用于在接收到一个SYN封包时,根据该SYN封包的时间戳计算发送该SYN封包的远程计算机在该时间戳之前的第一时间段内与所述本地计算机建立了TCP连接但未传送数据的次数;及识别模块,用于在所述计数模块计算的次数超过了所设置的最大值时识别该远程计算机为攻击者,并在以该SYN封包的时间戳作为起点的第二时间段内将该远程计算机发送的所有TCP封包丢弃。

2.如权利要求1所述的路由器,其特征在于:

所述的路由器还包括计时器与封包计数器;

所述的设置模块还用于设置一个时间阀值及TCP封包传送的最小数目以判断远程计算机与本地计算机之间的TCP连接是否处于闲置状态;

所述的计时器用于在远程计算机与本地计算机建立TCP连接后开始计时,若所述本地计算机利用该TCP连接从该远程计算机接收到TCP封包后,则所述计时器清零并再次开始计时;

所述的封包计数器用于计算所述本地计算机与该远程计算机建立TCP连接后所接收的TCP封包数量;及所述的识别模块还用于当所述计时器计算的时间达到所设置的时间阀值并且所述封包计数器计算的TCP封包数量小于或等于所设置的最小数目时,确认该TCP连接处于闲置状态。

3.如权利要求2所述的路由器,其特征在于:

所述的路由器还包括连线计数器;

所述的设置模块还用于设置一个闲置连线限制数目;

所述的连线计数器用于计算该远程计算机与所述本地计算机之间处于闲置状态的TCP连接数量;及所述的识别模块还用于当所述连线计数器计算的处于闲置状态的TCP连接数量超过所设置的闲置连线限制数目时,识别该远程计算机为攻击者,并在识别后的第二时间段内将该远程计算机发送的所有TCP封包丢弃。

4.如权利要求1所述的路由器,其特征在于,所述本地计算机与远程计算机通过三向交握Three-way Handshake建立TCP连接。

5.一种TCP端口防御方法,应用于路由器中,该路由器连接本地计算机与远程计算机,其特征在于,该方法包括:设置第一时间段与第二时间段,以及设置远程计算机允许连接所述本地计算机次数的最大值;

所述本地计算机接收一个从远程计算机发出的SYN封包;

记录接收该SYN封包的时间戳;

根据该SYN封包的时间戳计算发送该SYN封包的远程计算机在该时间戳之前的第一时间段内与所述本地计算机建立了TCP连接但未传送数据的次数;及当所计算的次数超过了所设置的最大值时,识别该远程计算机为攻击者,并在以该SYN封包的时间戳作为起点的第二时间段内将该远程计算机发送的所有TCP封包丢弃。

6.如权利要求5所述的TCP端口防御方法,其特征在于,该方法还包括:设置一个时间阀值及TCP封包传送的最小数目以判断远程计算机与本地计算机之间的TCP连接是否处于闲置状态;

在远程计算机与本地计算机建立TCP连接后启动封包计数器;

启动计时器开始计时;

判断所述本地计算机是否从该远程计算机接收到TCP封包;

若本地计算机未从该远程计算机接收到TCP封包,则判断所述计时器计算的时间是否达到所设置的时间阀值;

若所述计时器计算的时间达到所设置的时间阀值,则判断所述封包计数器计算的TCP封包数量是否小于或等于所设置的最小数目;及若所述封包计数器计算的TCP封包数量小于或等于所设置的最小数目,则确认该TCP连接处于闲置状态。

7.如权利要求6所述的TCP端口防御方法,其特征在于,该方法还包括:设置一个闲置连线限制数目;

在所述本地计算机与远程计算机建立TCP连接后启动连线计数器;

当所述连线计数器计算的处于闲置状态的TCP连接数量超过所设置的闲置连线限制数目时,识别该远程计算机为攻击者,并在识别后的第二时间段内将该远程计算机发送的所有TCP封包丢弃。

8.如权利要求6所述的TCP端口防御方法,其特征在于,该方法还包括:若本地计算机从该远程计算机接收到TCP封包,则所述计时器清零并重新开始计时。

9.如权利要求6所述的TCP端口防御方法,其特征在于,所述本地计算机与远程计算机通过三向交握Three-way Handshake建立TCP连接。

说明书 :

路由器及TCP端口防御方法

技术领域

[0001] 本发明涉及一种计算机安全管理装置及方法,尤其涉及一种路由器及TCP(Transmission Control Protocol,传输控制协议)端口防御方法。

背景技术

[0002] 当本地计算机通过路由器以及网络与远程计算机或主机、服务器等相连时,若一台或多台远程计算机向本地计算机发出多个TCP封包以请求建立TCP连接时,路由器便无法为其他的远程计算机转发正常的封包。如此,可能会导致路由器中充斥着大量的垃圾封包,而无法正常连接网络。例如,本地计算机可能遭到端口扫描、病毒攻击等,使得路由器无法正常工作。

发明内容

[0003] 鉴于以上内容,有必要提供一种路由器,可解决端口扫描的问题以及防御利用TCP连接发起的攻击。
[0004] 此外,还有必要提供一种TCP端口防御方法,可解决端口扫描的问题以及防御利用TCP连接发起的攻击。
[0005] 一种路由器,该路由器连接本地计算机与远程计算机,所述路由器包括:设置模块,用于设置第一时间段与第二时间段,以及设置远程计算机允许连接所述本地计算机次数的最大值;接收模块,用于接收TCP封包,所述TCP封包包括SYN封包;时钟模块,用于计时以及记录所述本地计算机接收每一个TCP封包的时间戳;计数模块,用于在接收到一个SYN封包时,根据该SYN封包的时间戳计算发送该SYN封包的远程计算机在该时间戳之前的第一时间段内与所述本地计算机建立了TCP连接但未传送数据的次数;及识别模块,用于在所述计数模块计算的次数超过了所设置的最大值时识别该远程计算机为攻击者,并在以该SYN封包的时间戳作为起点的第二时间段内将该远程计算机发送的所有TCP封包丢弃。
[0006] 一种TCP端口防御方法,应用于路由器中,该路由器连接本地计算机与远程计算机,该方法包括:设置第一时间段与第二时间段,以及设置远程计算机允许连接所述本地计算机次数的最大值;所述本地计算机接收一个从远程计算机发出的SYN封包;记录接收该SYN封包的时间戳;根据该SYN封包的时间戳计算发送该SYN封包的远程计算机在该时间戳之前的第一时间段内与所述本地计算机建立了TCP连接但未传送数据的次数;及当所计算的次数超过了所设置的最大值时,识别该远程计算机为攻击者,并在以该SYN封包的时间戳作为起点的第二时间段内将该远程计算机发送的所有TCP封包丢弃。
[0007] 相较于现有技术,所述的路由器及TCP端口防御方法,可解决端口扫描的问题以及防御利用TCP连接发起的攻击。

附图说明

[0008] 图1是本发明路由器的较佳实施方式的运行环境图。
[0009] 图2是本发明路由器的较佳实施方式的功能模块图。
[0010] 图3是本发明路由器的较佳实施方式的建立TCP连接示意图。
[0011] 图4是本发明TCP端口防御方法的第一实施方式的流程图。
[0012] 图5是本发明TCP端口防御方法的第二实施方式的闲置连接确认流程图。
[0013] 图6是本发明TCP端口防御方法的第二实施方式的流程图。

具体实施方式

[0014] 如图1所示,是本发明路由器的较佳实施方式的运行环境图。多个远程计算机6(图1中仅画出一个远程计算机6)可通过网络5、调制解调器4以及路由器1与本地计算机3建立连接。本发明的目的在于防止远程计算机6对本地计算机3的传输控制协议(TransmissionControl Protocol,TCP)端口30进行扫描或进行攻击。
[0015] 为实现该目的,在本较佳实施方式中,所述的路由器1用于识别所述远程计算机6是否对所述本地计算机3的TCP端口30进行扫描或进行攻击。
[0016] 所述网络5,可以是因特网(Internet),还可以是其它类型的通讯网络。
[0017] 如图2所示,是本发明路由器的较佳实施方式的功能模块图。在本较佳实施方式中,所述的路由器1包括处理器10以及内存12。所述处理器10用于执行所述路由器1中安装或嵌入的各类软件。所述的内存12用于存储各类数据,例如,各类配置参数等。
[0018] 在本较佳实施方式中,所述的路由器1还包括多个功能模块,分别是:设置模块20、接收模块21、时钟模块22、计数模块23、识别模块24。
[0019] 所述的设置模块20,用于设置第一时间段与第二时间段,以及设置远程计算机6允许连接所述本地计算机3次数的最大值。所述第一时间段与第二时间段的用途将在下文作详细介绍。
[0020] 所述的接收模块21,用于接收各种类型的TCP封包。例如,在所述远程计算机6与所述本地计算机3建立TCP连接前需完成三向交握(Three-way Handshake)。如图3所示的TCP连接示意图,首先,所述远程计算机6先传送SYN封包至所述本地计算机3,表示要和所述本地计算机3通讯端口建立联机。如果所述本地计算机3的TCP端口30有开放,则所述本地计算机3会返回SYN ACK封包至所述远程计算机6。然后,所述远程计算机6会再送出ACK封包至所述本地计算机3表示TCP连接已经成功。在TCP连接建立后,所述远程计算机6与所述本地计算机3即可发送数据封包以实现数据的交换。如果所述本地计算机3的TCP端口30没有开放,则会返回RST封包至所述远程计算机6。
[0021] 此外,若需断开TCP连接,也仍需传送多次封包以作确认。
[0022] 所述的时钟模块22,用于计时以及记录所述本地计算机3接收每一个TCP封包的时间戳。
[0023] 若所述的远程计算机6需要与本地计算机3建立TCP连接,所述远程计算机6先发送一个SYN封包,所述的接收模块21接收该SYN封包,所述的时钟模块22记录接收该SYN封包的时间戳。
[0024] 所述的计数模块23,用于根据该SYN封包的时间戳计算发送该SYN封包的远程计算机在该时间戳之前的第一时间段内与所述本地计算机3建立了TCP连接但未传送数据的次数,即计算出有多少个TCP连接在所述远程计算机6与本地计算机3完成三向交握后并未传送任何数据封包。
[0025] 例如,所述的第一时间段设置为10秒,接收该SYN封包的时间戳是9点5分12秒,则所述的计数模块23将计算9点5分2秒至9点5分12秒之间该远程计算机6与所述本地计算机3之间建立了TCP连接但未传送数据的次数。
[0026] 所述的识别模块24,用于在所述计数模块23计算的次数超过了所设置的最大值时识别该远程计算机6为攻击者,并在以该SYN封包的时间戳作为起点的第二时间段内将该远程计算机6发送的所有TCP封包丢弃。例如,设置模块20所设置的远程计算机6允许连接所述本地计算机3次数的最大值为20个,所设置的第二时间段为10分钟,若计数模块23所计算的次数超过了20个,则识别模块24确认该远程计算机6为攻击者,则从接收该SYN封包的时间戳9点5分12秒起的10分钟内,将该远程计算机6所发送的所有TCP封包丢弃。
[0027] 在其它实施方式中,所述的路由器1还包括封包计数器25、计时器26以及连线计数器27。
[0028] 所述的设置模块20,还用于设置一个时间阀值及TCP封包传送的最小数目以判断远程计算机6与本地计算机3之间的TCP连接是否处于闲置状态,并设置一个闲置连线限制数目。
[0029] 所述的计时器26,用于在远程计算机6与本地计算机3建立TCP连接后即开始计时,若所述本地计算机3利用该TCP连接从该远程计算机6接收到TCP封包后,则所述计时器清零并再次开始计时。详细流程可参考下文针对图5与图6的流程说明。
[0030] 所述的封包计数器25,用于计算所述本地计算机3与该远程计算机6建立TCP连接后所接收的TCP封包数量,而所述本地计算机3与该远程计算机6建立TCP连接前的三向交握时传送的封包数量不计算在内。
[0031] 所述的识别模块24,还用于当所述计时器26计算的时间达到所设置的时间阀值并且所述封包计数器25计算的TCP封包数量小于或等于所设置的最小数目时,确认该TCP连接处于闲置状态。
[0032] 所述的连线计数器27,用于计算该远程计算机6与所述本地计算机3之间处于闲置状态的TCP连接数量。
[0033] 所述的识别模块24,进一步用于当所述连线计数器27计算的处于闲置状态的TCP连接数量超过所设置的闲置连线限制数目时,识别该远程计算机6为攻击者,并在识别后的第二时间段内将该远程计算机6发送的所有TCP封包丢弃。
[0034] 实际应用中,往往有多个远程计算机6与所述本地计算机3相连接,因此,封包计数器25、计时器26及连线计数器27的数量可以是一个以分别计算每个远程计算机6与所述本地计算机3之间的TCP连接数量、封包传送数量及相应的时间,也可以是多个以对应于所述远程计算机6的数量。
[0035] 如图4所示,是本发明TCP端口防御方法的第一实施方式的流程图。首先,步骤S2,所述的设置模块20设置第一时间段与第二时间段。
[0036] 步骤S4,所述的设置模块20设置远程计算机6允许连接所述本地计算机3次数的最大值。
[0037] 步骤S6,所述的接收模块21从远程计算机6处接收一个SYN封包。
[0038] 步骤S8,所述的时钟模块22记录接收该SYN封包的时间戳。
[0039] 步骤S10,所述的计数模块23根据该SYN封包的时间戳计算发送该SYN封包的远程计算机在该时间戳之前的第一时间段内与所述本地计算机3建立了TCP连接但未传送数据的次数,即计算出有多少个TCP连接在所述远程计算机6与本地计算机3完成三向交握后并未传送任何数据封包。
[0040] 步骤S12,所述的识别模块24判断所述计数模块23计算的次数是否超过所设置的最大值。若该计算的次数未超过所设置的最大值,则流程返回步骤S6。
[0041] 若该计算的次数超过了所设置的最大值,于步骤S14,所述的识别模块24识别该远程计算机6为攻击者。
[0042] 步骤S16,所述的识别模块24在以该SYN封包的时间戳作为起点的第二时间段内将该远程计算机6发送的所有TCP封包丢弃,并结束本流程。
[0043] 如图5所示,是本发明TCP端口防御方法的第二实施方式的闲置连接确认流程图。首先,步骤S20,所述的设置模块20设置一个时间阀值及TCP封包传送的最小数目以判断远程计算机6与本地计算机3之间的TCP连接是否处于闲置状态。
[0044] 步骤S22,所述的设置模块20设置一个闲置连线限制数目。
[0045] 步骤S24,所述的封包计数器25在远程计算机6与所述本地计算机3建立了TCP连接后启动。
[0046] 步骤S26,所述的计时器26也在建立了TCP连接后启动以开始计时。
[0047] 步骤S28,所述的接收模块22判断是否接收到TCP封包。若接收到TCP封包,则流程返回至步骤S26,重新启动计时器26,即清零后重新开始计时。
[0048] 若没有接收到TCP封包,于步骤S30,所述的识别模块24判断所述计时器26计算的时间是否达到所设置的时间阀值。若未达到所设置的时间阀值,则流程返回步骤S28。
[0049] 若达到所设置的时间阀值,于步骤S32,所述的识别模块24判断所述封包计数器25计算的TCP封包数量是否小于或等于所设置的最小数目。若计算的TCP封包数量大于所设置的最小数目,则流程结束。
[0050] 若计算的TCP封包数量小于或等于所设置的最小数目,于步骤S34,所述的识别模块24确认该TCP连接处于闲置状态,然后结束本流程。
[0051] 如图6所示,是本发明TCP端口防御方法的第二实施方式的流程图。首先,步骤S40,所述的连线计数器27在远程计算机6与所述本地计算机3建立了TCP连接后启动。
[0052] 步骤S42,所述的识别模块24判断所述连线计数器27计算的该远程计算机6与所述本地计算机3之间处于闲置状态的TCP连接数量是否超过所设置的闲置连线限制数目。若所述连线计数器27计算的闲置状态的TCP连接数量没有超过所设置的闲置连线限制数目,则流程返回至步骤40。
[0053] 若所述连线计数器27计算的闲置状态的TCP连接数量超过所设置的闲置连线限制数目,于步骤S44,所述的识别模块24识别该远程计算机6为攻击者。
[0054] 步骤S46,所述的识别模块24在识别后的第二时间段内将该远程计算机6发送的所有TCP封包丢弃,然后结束本流程。
[0055] 以上实施方式仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施方式对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换都不应脱离本发明技术方案的精神和范围。