一种防止地址解析协议攻击的方法

文档序号:7656445阅读:141来源:国知局
专利名称:一种防止地址解析协议攻击的方法
技术领域
本发明涉及IP(因特网协议)网络通信安全技术,尤其涉及提供一种防止ARP(地址解析协议)攻击的方法。
背景技术
ARP协议存在缺少安全机制的设计缺陷,使其易受攻击和欺骗。常见的有ARP扫描攻击,ARP代理欺骗等。攻击者经常利用病毒程序或黑客程序对网络系统设备进行攻击,可导致网络性能严重下降甚至网络瘫痪。ARP协议的安全性弱点成为TCP/IP(传输控制协议/因特网协议)协议簇的短板,如ARP病毒使网络中的主机对网关设备进行ARP扫描攻击可使整个子网通讯中断。所以ARP协议的安全机制亟待加强。
对于ARP扫描攻击,已有的防范方法有限制一个端口的ARP数量,和限制一个MAC(媒体访问控制)的ARP数量等。这些方法没有解决ARP安全性问题,只是在一定程度上减小了ARP攻击的破坏程度。当网络中多台主机感染了ARP病毒,限制一个端口ARP数量的方法失效。如果进行ARP扫描时源MAC地址也随机变化,限制每个MAC地址的ARP数量方法也是形同虚设,这样的病毒变种一定会出现。
而对于ARP欺骗攻击和ARP代理攻击,现有安全机制完全不能发现。一个黑客程序能够轻而易举的欺骗正在进行IP通信的两台设备,从中进行IP分组的代理。
综上所述,当前需要一种有效防止ARP攻击的方案。

发明内容
本发明所要解决的技术问题是提供一种防止ARP攻击的方法,克服当前ARP协议的安全性问题和缺陷,提高了ARP协议应对已有各种攻击的安全性。
为了解决上述问题,本发明提供了一种防止地址解析协议攻击的方法,包括以下步骤,a、鉴别设备收到被鉴别设备发送的ARP表项;b、鉴别设备根据收到的ARP表项向被鉴别设备发送IP地址鉴别请求帧,进行IP地址鉴别;c、所述被鉴别设备收到所述鉴别设备的IP地址鉴别请求帧后,所述被鉴别设备回复IP地址鉴别应答帧,如果所述IP地址鉴别成功,则形成主机路由条目;否则,所述IP地址鉴别失败,拒绝所述被鉴别设备。
进一步地,上述方法还可包括,所述步骤a中,所述ARP表项包括请求所述鉴别设备IP地址的ARP request地址解析协议请求报文或者发给所述鉴别设备IP地址的ARP reply地址解析协议应答报文。
进一步地,上述方法还可包括,所述步骤a中,如果所述鉴别设备收到的是请求自己IP地址的ARP request报文,则所述鉴别设备向所述被鉴别设备回复ARP reply报文。
进一步地,上述方法还可包括,所述步骤b中,所述IP地址鉴别请求帧包括ICMP echo request因特网控制消息协议请求回显报文、或ICMPtimestamp request因特网控制消息协议时戳请求报文。
进一步地,上述方法还可包括,所述步骤c中,所述进行IP地址鉴别,其协议包括使用TCP/IP协议簇的多种协议,所述使用TCP/IP协议簇的多种协议包括地址解析协议、因特网控制消息协议、传输控制协议;所述进行IP地址鉴别选用所述使用TCP/IP协议簇的多种协议中的一种协议,或者选用所述使用TCP/IP协议簇的多种协议中多种协议同时联合鉴别;所述进行IP地址的鉴别利用所述鉴别设备和所述被鉴别设备的TCP/IP协议栈的会话进行鉴别。
进一步地,上述方法还可包括,所述步骤c中包括,所述被鉴别设备收到所述鉴别设备的IP地址鉴别请求帧后,其TCP/IP协议栈能够做出应答,即成为所述IP地址鉴别应答帧;所述IP地址鉴别应答帧包括ICMP echoreply因特网控制消息协议回显应答报文。
进一步地,上述方法还可包括,所述步骤b中,所述鉴别设备启动一个定时器,同时根据收到的所述地址解析协议表项,向所述被鉴别设备发送一个所述ICMP echo request报文。
进一步地,上述方法还可包括,所述步骤c中,包括以下步骤,步骤130、判断在定时器规定时间内是否收到了所述被鉴别设备回复的ICMP echo reply报文,如果是,则执行步骤140,否则,执行步骤150;步骤140、如果收到的ICMP echo reply报文与地址解析协议表项无冲突,则执行步骤160,否则,执行步骤150;步骤150、鉴别设备拒绝地址解析协议表项,丢弃所述地址解析协议表项;步骤160、鉴别设备接收地址解析协议表项,收到的所述地址解析协议表项有效,用该地址解析协议表项形成一个主机路由条目。
进一步地,上述方法还可包括,所述步骤140中,所述ICMP echo reply报文包括报文的入端口、媒体访问控制地址、IP地址信息;所述ICMP echo reply报文与地址解析协议表项无冲突,即报文的入端口、媒体访问控制地址、IP地址信息与地址解析协议表项无冲突。
进一步地,上述方法还可包括,当所述鉴别设备向所述被鉴别设备发送一个ICMP echo request报文时,要求所述被鉴别设备的TCP/IP协议栈进行响应;采用发送ICMP echo request大包的方式,而且每次进行IP地址鉴别发送的ICMP echo request包长不固定,只有收到的ICMP echo reply报文的长度也合格时,所述地址解析协议表项才能被接受。
与现有技术相比,应用本发明方法,对于ARP病毒攻击,这个IP网络具有了免疫能力,中毒的主机,不管是对网关进行ARP扫描,还是对其他主机进行ARP扫描,也不管是进行ARP request扫描攻击,还是进行ARPreply扫描攻击,由于其伪造的IP地址全部被识别出来从而被拒绝,因此不会对网关系统设备和其他主机的IP通信造成影响,同时,中毒的主机其IP通信也是正常的,因为其真正的IP地址也能够被识别出来从而被接受;对于ARP代理攻击,当前黑客程序还不能骗过利用ICMP(网际控制报文协议)协议进行的IP地址鉴别,即使可以进行IP地址鉴别时的ICMP ping欺骗,但是在主动IP地址鉴别的过程中,只要是利用被鉴别设备TCP/IP协议栈的正常的响应特性,可以根据本发明改变一下IP地址鉴别方法,比如系统可以主动发起ICMP timestamp request报文而等待ICMP timesamp reply报文等。由此看出,本发明通过引入主动IP地址鉴别方法,提高了ARP协议应对已有各种攻击的安全性。


图1是本发明具体实施方式
中鉴别设备利用ICMP协议形成主机路由的流程图;图2是本发明具体实施方式
中带主动IP地址检查的ARP协议状态图;图3是本发明具体实施方式
中网络通信设备ARP request响应报文交互示意图;图4是本发明具体实施方式
中网络通信设备ARP reply响应报文交互示意图;图5是本发明具体实施方式
中应用ICMP协议进行IP地址鉴别ARPrequest响应流程图;图6是本发明具体实施方式
中应用ICMP协议进行IP地址鉴别ARPreply响应流程图。
图7是本发明具体实施方式
中防止地址解析协议攻击的方法的流程图。
具体实施例方式
下面结合附图对本发明具体实施方式
作进一步说明。
本发明具体实施方式
适用于任何使用IP协议进行通信的领域,包括网络系统设备和网络终端设备,在本发明具体实施方式
中简称为鉴别设备,如路由器,三层交换机,ATM(异步传输模式)交换机,服务器,工作站,桌面计算机等。
鉴别设备在ARP协议形成主机路由的过程中,可以有选择的增加一个主动的进行IP地址鉴别。其中主动的进行IP地址的鉴别的方法,就是要求该鉴别设备必须利用被鉴别的IP地址,与被鉴别设备进行至少一次成功的IP地址鉴别协议交互,其中被鉴别设备的TCP/IP协议栈未被病毒程序完全感染或未被黑客程序完全控制;利用鉴别设备和被鉴别设备的TCP/IP协议栈的会话进行IP地址的鉴别;鉴别设备不立即采信ARP协议形成的表项,而是主动使用该ARP协议形成的表项与被鉴别设备进行TCP/IP协议簇中一种或几种协议的交互,进行证实。
本发明具体实施方式
没有引入新的协议,而是通过组合使用了目前广泛使用的TCP/IP协议簇的已有协议达到IP地址鉴别的目的;本发明具体实施方式
描述的主动的进行IP地址鉴别方法也是附加于ARP协议的,系统管理员可以根据需要将主动IP地址鉴别功能投入和退出运行。
本发明具体实施方式
不要求网络中所有设备都实现主动的进行IP地址鉴别功能,因为主动的进行IP地址鉴别的方法是利用被鉴别设备TCP/IP协议栈的正常的协议应答响应特性达成的;网络设备即使不能进行主动IP地址鉴别,但完全可以成为被鉴别设备;只是实现了主动的进行IP地址鉴别功能的网络设备或主机,可以更有效的保护自己免受ARP攻击。
报文交互一定是由鉴别设备主动发起,交互过程中一定使用了被鉴别IP地址。如果被鉴别设备能够与鉴别设备进行正常的协议交互,那么IP地址可以被鉴别设备接受,形成主机路由;否则鉴别设备拒绝此IP地址,不形成主机路由,可以考虑打印告警或形成日志。
进行IP地址鉴别的协议可以使用TCP/IP协议簇的多种协议,如ARP,ICMP(因特网控制消息协议),甚至TCP(传输控制协议)协议等。其特点是鉴别设备发送所选用协议的一个请求报文,要求被鉴别设备进行协议应答,通过双方协议栈之间的会话摒除各种攻击造成的欺骗。可以只选用其中的一种协议,也可以同时选用多种协议联合鉴别。
ARP协议是可以选用的,而且也能起到一定的效果。选用ARP协议作为IP地址鉴别的协议一定是可用的,因为进行IP地址鉴别的协议步骤前,鉴别设备一定收到过被鉴别设备的ARP协议报文,即使该ARP协议报文来自被鉴别设备的病毒程序,也可以假定被鉴别设备支持ARP协议而不影响鉴别结果。但这里存在一个怪圈,进行IP地址鉴别的目的是为了提高ARP协议的安全性,同时ARP协议本身的安全机性缺陷,又使用ARP协议的IP地址鉴别变的不够可靠。
举例说明,一方面,对于ARP request(地址解析协议请求)扫描攻击,能起到较好防范效果。鉴别设备在收到ARP request报文后,会发送一个ARPreply(地址解析协议应答)报文,这是正常的ARP协议交互。然后进入IP地址鉴别步骤,鉴别设备向对方发送一个于ARP request,如果IP地址是伪造的,对方协议栈不会回应,一般ARP request扫描攻击程序也不会回应,能够鉴别出IP地址的真伪。换一个场合,假设一台主机受到ARP病毒感染,对网关设备进行ARP reply扫描攻击。网关设备在收到病毒程序发送的ARPreply报文后进入IP地址鉴别步骤,广播发送一个ARP request报文进行IP地址请求。即使感染病毒的主机的IP协议栈本来没有响应该ARP request报文,但是病毒程序反复发送ARP reply报文扫描子网,网关设备也很可能在规定时间内收到ARP reply报文。基于上面提到的基本假设,网关设备还是可能被欺骗。
ICMP协议是几乎所有IP通信设备广泛实现的协议,同时协议包都是单播的,是目前可选的最佳协议。
鉴别设备上可以用命令配置主机路由形成的方式,简单的ARP驱动,还是进行IP地址鉴别;可以在端口模式下增加一条命令,如ARP distinguish via ICMP echo鉴别设备在收到大量ARP协议报文,或出现大量IP地址迁移时,也可以触发启动IP地址鉴别功能;同时主动IP地址鉴别功能不只能应用于新学的ARP表项,也可以对已经形成主机路由的ARP表项进行IP地址检查。
如图7所示,本发明具体实施方式
中一种防止地址解析协议攻击的方法,其中被鉴别设备的TCP/IP协议栈未被病毒程序完全感染或未被黑客程序完全控制,包括以下步骤,步骤10、鉴别设备收到被鉴别设备发送的ARP表项;所述ARP表项包括请求所述鉴别设备IP地址的ARP request地址解析协议请求报文或者发给所述鉴别设备IP地址的ARP reply地址解析协议应答报文。
如果所述鉴别设备收到的是请求自己IP地址的ARP request报文,则所述鉴别设备根据ARP协议,向所述被鉴别设备回复ARP reply报文。
若鉴别设备收到发给自己IP地址的ARP reply报文,即使是攻击报文,也可以假设自己曾发过请求对方IP地址的ARP request报文,这是正常的ARP协议交互阶段。
步骤20、鉴别设备根据收到的ARP表项向被鉴别设备发送IP地址鉴别请求帧,进行IP地址鉴别;IP地址鉴别请求帧可以是一个ICMP echo request(ICMP请求回显)报文,也可以是ICMP timestamp request报文,或其他协议报文。
进行IP地址鉴别的协议可以使用TCP/IP协议簇的多种协议,如ARP,ICMP(因特网控制消息协议),甚至TCP(传输控制协议)协议等;其特点是鉴别设备发送所选用协议的一个请求报文,要求被鉴别设备进行协议应答,通过双方协议栈之间的会话摒除各种攻击造成的欺骗;可以只选用其中的一种协议,也可以同时选用多种协议联合鉴别。
步骤30、被鉴别设备收到鉴别设备的IP地址鉴别请求帧后,所述被鉴别设备回复IP地址鉴别应答帧,如果所述IP地址鉴别成功,则形成主机路由条目;否则,所述IP地址鉴别失败,拒绝所述被鉴别设备。
被鉴别设备收到鉴别设备的IP地址鉴别请求帧后,其TCP/IP协议栈能够做出应答,即成为IP地址鉴别应答帧;所述IP地址鉴别应答帧包括ICMPecho reply报文。
如图1所示,当IP地址鉴别功能开启时,鉴别设备利用ICMP协议形成主机路由的流程,其中被鉴别设备的TCP/IP协议栈未被病毒程序完全感染或未被黑客程序完全控制,包括以下步骤,步骤110、鉴别设备收到请求自己IP地址的ARP request报文,向发送者回复ARP reply报文;鉴别设备根据ARP协议,向发送者回复ARP reply报文。
发送者即被鉴别设备。
若鉴别设备收到发给自己IP地址的ARP reply报文,即使是攻击报文,也可以假设自己曾发过请求对方IP地址的ARP request报文,这是正常的ARP协议交互阶段。
步骤120、鉴别设备启动一个定时器,同时根据收到的ARP表项,向被鉴别设备发送一个ICMP echo request报文;在正常的ARP协议交互阶段成功完成后,进入IP地址鉴别阶段。新形成的ARP表项成为待鉴别ARP表项,其IP地址成为待鉴别IP地址,声称拥有该IP地址的对端设备成为待鉴别设备。
步骤130、判断在规定时间内是否收到了ICMP echo reply(ICMP回显应答)报文,如果是,则执行步骤140,否则,执行步骤150;判断在定时器规定的时间内是否收到了ICMP echo reply报文,如果是,则执行步骤140,否则,执行步骤150。
步骤140、如果收到的ICMP echo reply报文与ARP表项无冲突,则执行步骤160,否则,执行步骤150;ICMP echo reply报文包括报文的入端口、MAC地址、IP地址等信息。
ICMP echo reply报文与ARP表项无冲突,即报文的入端口、MAC地址、IP地址等信息与ARP表项无冲突。
步骤150、拒绝ARP表项,丢弃所述ARP表项;在规定时间内没有收到ICMP echo reply报文,或收到的ICMP echo reply报文与待鉴别ARP表项有冲突,则认为新形成的ARP表项无效,拒绝ARP表项,丢弃该待鉴别ARP表项,可以考虑打印告警或形成日志。
步骤160、接受ARP表项,ARP表项有效,形成一个主机路由条目。
接受ARP表项,新形成的ARP表项有效,用该ARP表项形成一个主机路由条目。
为了加强安全性,当鉴别设备向被鉴别设备发送一个ICMP echo request报文时,希望被鉴别设备的TCP/IP协议栈进行响应;为了进一步增加安全性,可以采用发送ICMP echo request“大包”的方式,而且每次进行IP地址鉴别发送的ICMP echo request包长是不固定的,只有收到的ICMP echoreply报文的长度也合格时,待鉴别ARP表项才能被接受,这样又基本杜绝了病毒程序同时进行ARP reply扫描和ICMP echo reply扫描的攻击方式。
如图2,利用主动IP地址鉴别的功能,在启动IP地址鉴别的功能后,ARP协议不再直接形成主机路由条目(图中虚线部分),ARP表项必须通过IP地址鉴别才能形成主机路由条目,鉴别失败将导致该ARP表项被拒绝。
图3和图4分别显示了一台路由器和一台主机的报文交互过程,图3表示路由器和主机都使用了主动IP地址鉴别方法。图4则表示了只有路由器使用了主动IP地址鉴别方法时的报文交互过程。
图3中路由器和主机在完成ARP协议交互后,都发送IP地址鉴别请求帧,这里的IP地址鉴别请求帧可以是一个ICMP echo request报文,也可以是ICMP timestamp request(ICMP时戳请求)报文,或其他协议报文;路由器和主机收到对方的IP地址鉴别请求帧后,其TCP/IP协议栈能够做出应答,即成为IP地址鉴别应答帧;路由器和主机如果都收到IP地址鉴别应答帧,这建立主机路由,然后双方可以进行正常的IP通信。
下面结合具体实例对本发明具体实施方式
作进一步说明。
具体实例1如图5所示,这里充当IP地址鉴别请求帧的是ICMP echo request报文,充当IP地址鉴别应答帧的是ICMP echo reply报文,其中被鉴别设备的TCP/IP协议栈未被病毒程序完全感染或未被黑客程序完全控制,包括以下步骤,
步骤210、鉴别设备收到请求自己IP地址的ARP request报文;步骤220、向发送者回复ARP reply报文;发送者即被鉴别设备。
步骤230、鉴别设备根据收到的ARP表项,向被鉴别设备发送一个ICMP echo request报文;步骤240、鉴别设备启动一个定时器;步骤250、如果在定时器规定时间内收到了所述被鉴别设备回复的ICMP echo reply报文,则执行步骤260,否则,执行步骤270;步骤260、如果收到的ICMP echo reply报文与待鉴别ARP表项无冲突,则执行步骤160,否则,执行步骤270;步骤270、拒绝ARP表项,ARP表项无效,丢弃所述ARP表项,打印告警或形成日志;步骤280、接收ARP表项,ARP表项有效,形成一个主机路由条目。
具体实例2如图6所示,若鉴别设备收到发给自己IP地址的ARP reply报文,即使是攻击报文,也可以假设自己曾发过请求对方IP地址的ARP request报文,其中被鉴别设备的TCP/IP协议栈未被病毒程序完全感染或未被黑客程序完全控制,包括以下步骤,步骤310、鉴别设备收到发给自己IP地址的ARP reply报文;步骤320、鉴别设备根据收到的ARP表项,向被鉴别设备发送一个ICMP echo request报文;步骤330、鉴别设备启动一个定时器;步骤340、如果在定时器规定时间内收到了所述被鉴别设备回复的ICMP echo reply报文,则执行步骤350,否则,执行步骤360;步骤350、如果收到的ICMP echo reply报文与待鉴别ARP表项无冲突,则执行步骤370,否则,执行步骤360;步骤360、拒绝ARP表项,ARP表项无效,丢弃所述ARP表项,打印告警或形成日志;步骤370、接受ARP表项,ARP表项有效,形成一个主机路由条目。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种防止地址解析协议攻击的方法,包括以下步骤,a、鉴别设备收到被鉴别设备发送的地址解析协议表项;b、鉴别设备根据收到的地址解析协议表项向被鉴别设备发送IP地址鉴别请求帧,进行IP地址鉴别;c、所述被鉴别设备收到所述鉴别设备的IP地址鉴别请求帧后,所述被鉴别设备回复IP地址鉴别应答帧,如果所述IP地址鉴别成功,则形成主机路由条目;否则,所述IP地址鉴别失败,拒绝所述被鉴别设备。
2.如权利要求1所述的方法,其特征在于,所述步骤a中,所述地址解析协议表项包括请求所述鉴别设备IP地址的ARP request地址解析协议请求报文或者发给所述鉴别设备IP地址的ARP reply地址解析协议应答报文。
3.如权利要求2所述的方法,其特征在于,所述步骤a中,如果所述鉴别设备收到的是请求自己IP地址的ARP request报文,则所述鉴别设备向所述被鉴别设备回复ARP reply报文。
4.如权利要求3所述的方法,其特征在于,所述步骤b中,所述IP地址鉴别请求帧包括ICMP echo request因特网控制消息协议请求回显报文、或ICMP timestamp request因特网控制消息协议时戳请求报文。
5.如权利要求4所述的方法,其特征在于,所述步骤c中,所述进行IP地址鉴别,其协议包括使用TCP/IP协议簇的多种协议,所述使用TCP/IP协议簇的多种协议包括地址解析协议、因特网控制消息协议、传输控制协议;所述进行IP地址鉴别选用所述使用TCP/IP协议簇的多种协议中的一种协议,或者选用所述使用TCP/IP协议簇的多种协议中多种协议同时联合鉴别;所述进行IP地址的鉴别利用所述鉴别设备和所述被鉴别设备的TCP/IP协议栈的会话进行鉴别。
6.如权利要求5所述的方法,其特征在于,所述步骤c中包括,所述被鉴别设备收到所述鉴别设备的IP地址鉴别请求帧后,其TCP/IP协议栈能够做出应答,即成为所述IP地址鉴别应答帧;所述IP地址鉴别应答帧包括ICMP echo reply因特网控制消息协议回显应答报文。
7.如权利要求6所述的方法,其特征在于,所述步骤b中,所述鉴别设备启动一个定时器,同时根据收到的所述地址解析协议表项,向所述被鉴别设备发送一个所述ICMP echo request报文。
8.如权利要求7所述的方法,其特征在于,所述步骤c中,包括以下步骤,步骤130、判断在定时器规定时间内是否收到了所述被鉴别设备回复的ICMP echo reply报文,如果是,则执行步骤140,否则,执行步骤150;步骤140、如果收到的ICMP echo reply报文与地址解析协议表项无冲突,则执行步骤160,否则,执行步骤150;步骤150、鉴别设备拒绝地址解析协议表项,丢弃所述地址解析协议表项;步骤160、鉴别设备接收地址解析协议表项,收到的所述地址解析协议表项有效,用该地址解析协议表项形成一个主机路由条目。
9.如权利要求8所述的方法,其特征在于,所述步骤140中,所述ICMP echo reply报文包括报文的入端口、媒体访问控制地址、IP地址信息;所述ICMP echo reply报文与地址解析协议表项无冲突,即报文的入端口、媒体访问控制地址、IP地址信息与地址解析协议表项无冲突。
10.如权利要求9所述的方法,其特征在于,当所述鉴别设备向所述被鉴别设备发送一个ICMP echo request报文时,要求所述被鉴别设备的TCP/IP协议栈进行响应;采用发送ICMP echo request大包的方式,而且每次进行IP地址鉴别发送的ICMP echo request包长不固定,只有收到的ICMPecho reply报文的长度也合格时,所述地址解析协议表项才能被接受。
全文摘要
本发明公开了一种防止地址解析协议攻击的方法,包括以下步骤,首先鉴别设备收到被鉴别设备发送的ARP表项;然后鉴别设备根据收到的ARP表项向被鉴别设备发送IP地址鉴别请求帧,进行IP地址鉴别;最后被鉴别设备收到所述鉴别设备的IP地址鉴别请求帧后,所述被鉴别设备回复IP地址鉴别应答帧,如果所述IP地址鉴别成功,则形成主机路由条目;否则,所述IP地址鉴别失败,拒绝所述被鉴别设备。应用本发明,克服当前ARP协议的安全性问题和缺陷,提高了ARP协议应对已有各种攻击的安全性。
文档编号H04L29/06GK101094235SQ20071012298
公开日2007年12月26日 申请日期2007年7月4日 优先权日2007年7月4日
发明者张海峰 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1