一种arp欺骗的分布式检测方法及系统的制作方法

xiaoxiao2020-10-23  42

一种arp欺骗的分布式检测方法及系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,具体涉及一种ARP欺骗的分布式检测方法及系统。
【背景技术】
[0002]中间人攻击(Man-1n-the-middle attack)是一种对网络中两台或多台终端之间的数据包进行攻击的方式。发动攻击时,攻击者位于合法终端的通信路径中间,通过捕获、修改、转发双方之间的数据包的手段来达到攻击的目的。
[0003]ARP协议,全称Address Resolut1n Protocol,工作在OSI七层网络模型中的第二层一数据链路层,它的作用是根据目标终端的IP来获得相应的硬件地址MAC。ARP设计时存在着一个问题,即它没有对ARP报文的来源是否合法进行验证,不会检查收到的应答报文是否合法,也不会检查本机是否发送过相应的ARP请求报文,这使得防范ARP攻击变得尤为重要。生活中常常出现以下现象时,很可能出现ARP欺骗的攻击。局域网内频繁出整体掉线,重启计算机或路由器后恢复正常。网速时快时慢,极其不稳定,但单机进行数据测试时一切正常。网上银行、游戏及QQ账号的频繁丢失。
[0004]现有的检测防御ARP欺骗的方法主要有:①终端级的被动检测:如果系统收到来自局域网内的ARP请求包,系统会检测其目的地址是否和本机的IP地址相同,如果相同说明局域网内有终端正在进行ARP欺骗。此种方法使得网关丢掉不合理的IP、MAC映射关系。主要的缺点是此方法不能保证建立的IP、MAC映射关系一定是正确的,不能保证数据库中存储的值一定是没有收到ARP欺骗的,可扩展性较差,被动性。②终端级的主动检测:在局域网内使用一台终端主动地不停地向整个网络内发送目的IP是本机的ARP请求包,如果整个局域网中有终端回应,则说明这个局域网内存在ARP欺骗攻击。这种方法的资源消耗较大,并且对于服务器的DOS攻击没有防御。③网络级的检测:局域网内的终端定期向局域网内的ARP服务器发送其ARP地址缓存表,这样,如果是局域网内哪台终端被攻击了,ARP服务器会通过它储存的其他终端的ARP混存表找出攻击源和被攻击的终端,从而进行定位。交换机或路由器分别对每个端口对应的用户终端MAC和IP地址进行绑定,同时对通过DHCP协议动态获得IP地址的终端设置一个较长的租约时间,从而使各个终端的MAC和IP的映射关系趋于稳定状态,从此来防御ARP攻击。
[0005]另外一种手动监测是指网络管理员利用命令行或wireshark等抓包工具进行抓包来查看终端的IP和MAC之间的映射关系,以此来发现是否存在可疑的用户终端,若存在则采取相应的措施。ARP欺骗攻击的监测系统能够对攻击者进行精准定位,同时断开发现ARP欺骗攻击的终端网络,从而有效缩小ARP的攻击范围,减小ARP攻击带来的威胁。但是该系统有一个前提是只能在监测到ARP欺骗之后才能做相应处理,如果系统没有监测到实际发生的ARP欺骗,那么该系统就没有任何作用。此方法对于网络管理员的要求较高,工作量大,容易产生误差。

【发明内容】

[0006]针对现有技术中的缺陷,本发明提供了一种ARP欺骗的分布式检测方法及系统,能够实时的检测发现ARP欺骗行为,检测效率高。
[0007]第一方面,本发明提供一种ARP欺骗的分布式检测方法,包括:
[0008]在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量;
[0009]根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包;
[0010]当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端对所述待验证的异常通信数据包进行验证。
[0011]可选的,所述根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包,包括:
[0012]在所述第一数据包的数量大于所述第二数据包的数量时,确定所述第一数据包中存在待验证的异常通信数据包。
[0013]可选的,所述当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,包括:
[0014]所述第一终端接收所述待验证的异常通信数据包,并提取所述待验证的异常通信数据包中的待验证MAC地址。
[0015]可选的,所述第一终端对所述待验证的异常通信数据包进行验证,包括:
[0016]所述第一终端通过将所述第一 MAC地址与所述待验证MAC地址进行比较,对所述待验证的异常通信数据包进行验证。
[0017]可选的,所述方法还包括:
[0018]所述第一终端在所述第一 MAC地址与所述待验证MAC地址不同时,确定所述待验证的异常通信数据包为异常通信数据包,并向所述异常通信数据包中的待验证MAC地址对应的终端发送拒绝服务的信息。
[0019]第二方面,本发明还提供了一种ARP欺骗的分布式检测系统,包括:
[0020]监控模块,用于在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量;
[0021]判断模块,用于根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包;
[0022]发送模块,用于当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端对所述待验证的异常通信数据包进行验证。
[0023]可选的,所述监控模块,用于:
[0024]在所述第一数据包的数量大于所述第二数据包的数量时,确定所述第一数据包中存在待验证的异常通信数据包。
[0025]可选的,所述发送模块,用于:
[0026]向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端接收所述待验证的异常通信数据包,并提取所述待验证的异常通信数据包中的待验证MAC地址。
[0027]可选的,所述发送模块,还用于:
[0028]向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端通过将所述第一 MAC地址与所述待验证MAC地址进行比较,对所述待验证的异常通信数据包进行验证。
[0029]可选的,所述发送模块,还用于:
[0030]向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端在所述第一 MAC地址与所述待验证MAC地址不同时,确定所述待验证的异常通信数据 包为异常通信数据包,并向所述异常通信数据包中的待验证MAC地址对应的终端发送拒绝服务的信息。
[0031]由上述技术方案可知,本发明提供的一种ARP欺骗的分布式检测方法及系统,通过监控在预设时间段内监控第一终端和第二终端之间通信的请求与应答的第一数据包的数量,以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,识别是否存在异常网络行为的异常通信数据包(即待验证的异常通信数据包),并在发现异常通信数据包时,向发送该数据包对应的终端发送拒绝服务的信息,保证了验证之后的终端的IP地址与MAC地址是一一对应的,该方法在未增加网络侧的信令负担的同时,达到高效动态的检测ARP攻击和反制。
【附图说明】
[0032]图1为本发明一实施例提供的一种ARP欺骗的分布式检测方法的流程示意图;
[0033]图2A和2B为本发明一实施例提供的识别异常网络行为的异常通信数据包的判断过程示意图;
[0034]图3为本发明一实施例提供的一种ARP欺骗的分布式检测系统的结构示意图。
【具体实施方式】
[0035]下面结合附图,对发明的【具体实施方式】作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0036]图1示出了本发明实施例提供的一种ARP欺骗的分布式检测方法的流程示意图,如图1所示,该方法包括:
[0037]101、在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及所述第一终端对应的第一MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量;
[0038]102、根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包;
[0039]103、当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端对所述待验证的异常通信数据包进行验证。
[0040]具体的,上述步骤102包括:
[0041]在所述第一数据包的数量大于所述第二数据包的数量时,确定所述第一数据包中存在待验证的异常通信数据包。
[0042]上述步骤103包括:
[0043]所述第一终端接收所述待验证的异常通信数据包,并提取所述待验证的异常通信数据包中的待验证MAC地址。
[0044]所述第一终端通过将所述第一 MAC地址与所述待验证MAC地址进行比较,对所述待验证的异常通信数据包进行验证。
[0045]所述第一终端在所述第一 MAC地址与所述待验证MAC地址不同时,确定所述待验证的异常通信数据包为异常通信数据包,并向所述异常通信数据包中的待验证MAC地址对应的终端发送拒绝服务的信息。
[0046]上述方法结合基于TCP报文数据中添加网络异常行为中同一 IP对应的MAC地址,在TCP建立连接到终止的过程中对其进行验证,对比此TCP报文数据中包含的MAC与目标服务器的MAC,发现真正的ARP欺骗。通过对于网络异常行为的验证,能够保证验证之后的IP、MAC映射关系一定是正确的没有受到欺骗。检测出ARP欺骗之后能够对其进行拒绝服务等反制措施,第一时间防止ARP欺骗带来的危害。同时没有增加网络侧的信令负担,达到高效地动态地检测ARP攻击与反制。
[0047]下面通过对上述方法进行详细说明:
[0048]首先利用识别算法判别网络中的异常行为,判断是否为可信任终端。
[0049]如图2A示出了终端之间应答的示意图,如图2B所示,识别算法左边代表A、B的IP之间通信的数据包的请求和应答数总和,右侧代表A、B的MAC之间的通信数据包之和。正常情况下,等式成立。在出现ARP欺骗时,由于攻击者不断地发送应答数据包,导致等式左边大于等式右边。此时,记录下等式左边超过右边时刻的Reply数据包,探测出异常网络行为。
[0050]ARP欺骗最开始、也是最关键的一步就是通过免费ARP Response信息,发送错误的网关ARP信息给局域网终端。在本网段首先发送大量的ARP Request扫描,通过Response报文收集当前活动的终端,随后给每个终端发送免费的ARP Response ;在这种情况下,路由器只能看到从一个固定的MAC地址发出大量ARP请求广播,而且这个过程可能会周期性重复。第二,ARP Cheater不需要逐个找局域网的终端IP,它直接冒充网关,通过免费ARPResponse广播通告全网;在这种情况下,路由器上应该可以观察到免费ARP Response报文,其Sender Internet Address信息就是自己的IP地址,而且从上面的实验中可以看到,这种免费ARP Response广播报文是非常频繁的。首先路由器检测是否出现从一个固定的MAC地址发出大量ARP请求广播。或者免费ARP Response广播报文。达到一定数量并且周期出现时即可判断为异常网络行为。
[0051]判断出异常网络行为后对其进行验证。
[0052]在出现任意一种网络异常行为后,记录下异常行为数据包的源IP地址、以及与源IP地址对应的MAC地址。向源IP的MAC地址的终端发送TCP数据包进行验证,TCP数据包的内容中包含MAC地址,收到此TCP报文的终端将会提取TCP包中的内容,若此TCP中的内容MAC地址与自身MAC地址相同,则验证通过,向发送终端回复验证通过的消息可进行安全连接。若此TCP中的内容MAC地址与自身MAC地址不同,则验证失败,此时在限定时间内发送终端无法收到验证通过的消息,则判断为ARP欺骗,则在ARP表项中移除此IP、MAC的映射关系。并且路由器将此MAC地址加入黑名单,若再收到此MAC地址的终端发送的消息则进行丢弃处理,网关不进行转发。
[0053]上述方法作为增强的ARP,可以实时分布式得检测发现异常的网络行为。各个终端之间不会相互干扰,检测效率高;结合基于TCP数据包数据中添加网络异常行为中同一 IP对应的MAC地址,在TCP建立连接到终止的过程中对其进行验证,对比此TCP数据包数据中包含的MAC与目标服务器的MAC,发现真正的ARP欺骗;通过对于网络异常行为的验证,能够保证验证之后的IP、MAC对应关系一定是正确的没有收到欺骗的;检测出ARP欺骗之后能够对其进行拒绝服务等反制措施,第一时间防止ARP欺骗带来的危害;同时该方法没有增加网络侧的信令负担,达到高效地动态地检测ARP攻击与反制。
[0054]图3示出了本发明一实施例提供的一种ARP欺骗的分布式检测系统的结构示意图,如图3所示,该系统包括:
[0055]监控模块31,用于在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量;
[0056]判断模块32,用于根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否 存在待验证的异常通信数据包;
[0057]发送模块33,用于当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端对所述待验证的异常通信数据包进行验证。
[0058]所述监控模块31,用于:
[0059]在所述第一数据包的数量大于所述第二数据包的数量时,确定所述第一数据包中存在待验证的异常通信数据包。
[0060]所述发送模块33,用于:
[0061]向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端接收所述待验证的异常通信数据包,并提取所述待验证的异常通信数据包中的待验证MAC地址。
[0062]所述发送模块33,还用于:
[0063]向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端通过将所述第一 MAC地址与所述待验证MAC地址进行比较,对所述待验证的异常通信数据包进行验证。
[0064]所述发送模块33,还用于:
[0065]向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端在所述第一 MAC地址与所述待验证MAC地址不同时,确定所述待验证的异常通信数据包为异常通信数据包,并向所述异常通信数据包中的待验证MAC地址对应的终端发送拒绝服务的信息。
[0066]上述系统与上述方法是一一对应的关系,本实施例不再对上述装置的实施细节进行详细说明。
[0067]本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0068]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
【主权项】
1.一种ARP欺骗的分布式检测方法,其特征在于,包括: 在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量; 根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包; 当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端对所述待验证的异常通信数据包进行验证。2.根据权利要求1所述的方法,其特征在于,所述根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包,包括: 在所述第一数据包的数量大于所述第二数据包的数量时,确定所述第一数据包中存在待验证的异常通信数据包。3.根据权利要求1所述的方法,其特征在于,所述当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,包括: 所述第一终端接收所述待验证的异常通信数据包,并提取所述待验证的异常通信数据包中的待验证MAC地址。4.根据权利要求3所述的方法,其特征在于,所述第一终端对所述待验证的异常通信数据包进行验证,包括: 所述第一终端通过将所述第一 MAC地址与所述待验证MAC地址进行比较,对所述待验证的异常通信数据包进行验证。5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 所述第一终端在所述第一 MAC地址与所述待验证MAC地址不同时,确定所述待验证的异常通信数据包为异常通信数据包,并向所述异常通信数据包中的待验证MAC地址对应的终端发送拒绝服务的信息。6.一种ARP欺骗的分布式检测系统,其特征在于,包括: 监控模块,用于在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量; 判断模块,用于根据所述请求与应答的第一数据包的数量以及所述第一终端对应的第一 MAC地址和所述第二终端对应的第二 MAC地址之间通信的第二数据包的数量,判断所述第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包; 发送模块,用于当确定所述第一数据包中存在待验证的异常通信数据包时,向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端对所述待验证的异常通信数据包进行验证。7.根据权利要求6所述的系统,其特征在于,所述监控模块,用于: 在所述第一数据包的数量大于所述第二数据包的数量时,确定所述第一数据包中存在待验证的异常通信数据包。8.根据权利要求6所述的系统,其特征在于,所述发送模块,用于: 向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端接收所述待验证的异常通信数据包,并提取所述待验证的异常通信数据包中的待验证MAC地址。9.根据权利要求8所述的系统,其特征在于,所述发送模块,还用于: 向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端通过将所述第一 MAC地址与所述待验证MAC地址进行比较,对所述待验证的异常通信数据包进行验证。10.根据权利要求9所述的系统,其特征在于,所述发送模块,还用于: 向所述第一 MAC地址对应的第一终端发送所述待验证的异常通信数据包,以使所述第一终端在所述第一 MAC地址与所述待验证MAC地址不同时,确定所述待验证的异常通信数据包为异常通信数据包,并向所述异常通信数据包中的待验证MAC地址对应的终端发送拒绝服务的信息。
【专利摘要】本发明公开了一种ARP欺骗的分布式检测方法及系统,该方法包括:在预设时间段内监控第一终端和第二终端之间通信的请求与应答的包含所述第一终端和所述第二终端IP地址的第一数据包的数量,以及第一终端对应的第一MAC地址和第二终端对应的第二MAC地址之间通信的第二数据包的数量;根据第一数据包的数量以及第二数据包的数量,判断第一终端和第二终端之间的通信的第一数据包中是否存在待验证的异常通信数据包;当确定第一数据包中存在待验证的异常通信数据包时,向第一MAC地址对应的第一终端发送待验证的异常通信数据包,以使第一终端对所述待验证的异常通信数据包进行验证。能够实时的检测发现ARP欺骗行为,检测准确度高,检测效率高。
【IPC分类】H04L29/06
【公开号】CN104901953
【申请号】CN201510225294
【发明人】朱大立, 庞娜, 范哲铭
【申请人】中国科学院信息工程研究所
【公开日】2015年9月9日
【申请日】2015年5月5日

最新回复(0)