一种中间人攻击的双向请求应答检测方法与流程

文档序号:27436904发布日期:2021-11-17 23:01阅读:312来源:国知局
一种中间人攻击的双向请求应答检测方法与流程

1.本发明涉及中间人攻击检测的技术领域,尤其涉及一种中间人攻击的双向请求应答检测方法。


背景技术:

2.凭借着出色的传输性能以及便捷的通信方式,基于ieee 802.11标准的无线局域网通信方式在人们的工作和日常生活中愈加重要。但无线局域网在数据传输过程中,缺少电缆类传输介质的保护,使其易于受到多种类型的恶意攻击。由于无线局域网的广播性质,恶意攻击者往往会寻找突破口,然后发起攻击,一旦攻击成功便有可能造成难以预料的损失。
3.无线局域网在安全机制方面注重可靠性和保密性,要求传送的数据能够可靠并且完整的传送给目标主机,不发生丢失和篡改,在目标主机接收后,能够将信息完整解码而不发生改变。近年来,由于系统存在的漏洞没有及时解决,网络中间人攻击事件层出不穷,其中arp欺骗攻击方式更为活跃。arp欺骗又被称为arp毒化,主要由于当一端发出应答消息而另一端在接收这种arp应答时,没有检查数据是否真实可靠便将报文数据列入arp缓存列表中。这主要由于arp协议虽然能够提高网络运行效率,但这种优势的前提是网络中各个主机互相信任,而arp协议作为一种数据链路层协议,并没有认证机制,具有高效性和无状态的特点,既不判断是否发送过arp请求,也不验证应答者的身份信息,可见这种“无状态”体现在任何主机都有伪造响应包的能力,并且即使没有接收到arp请求也可以进行响应,arp的本地缓存随着伪造报文的发送继续更新,这无疑给了网络病毒和黑客可乘之机。
4.目前,国内外对arp欺骗攻击的原理已经具有充足的研究,但对arp欺骗的防御效果却不理想。传统的防御方式有设置arp防火墙,虽然在一定程度上能够保护主机安全,具有主动防御的优势,但随着arp防火墙的设置需要不断地对外输送正确数据包,从而增加网络的负担,且主动防御的速度有限,一旦被攻击者超出便会导致防御失效;利用arp服务器也是常用手段,在所有主机中,专门指定一个主机充当arp服务器来响应剩余主机的arp请求,但这种关系不唯一,其他主机仍然可以接受来自其他服务器的arp响应;交换机或主机上绑定端口和mac地址,在各个主机上添加静态arp缓存条目用来对比数据包的ip地址和mac地址,根据数据包相同原则进行比对也能对抵御arp攻击起到缓解作用;利用arp欺骗无法跨网段进行攻击的局限,将网络划分成多个网段从而缩小范围,优点是能够缩小arp欺骗的攻击范围,缺点是不够灵活,无法避免网关遭受黑客攻击。
5.可见,传统的预防手段各有优缺点,仅仅依靠其中一种无法达到彻底预防中间人攻击的效果,需要根据实际需要将几种方法相互结合,各自发挥作用,但同时也会造成技术人员负担和资源的浪费。目前,在中间人攻击检测方面也做了许多尝试,基于arp缓存超时的攻击检测方法,单机就能实现中间人检测,但灵活性不高。广为流行的sdn保护中间人攻击的检测研究集中于分离控制界面和数据界面,但实验采样点受限的问题难以完美解决。


技术实现要素:

6.本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
7.鉴于上述现有存在的问题,提出了本发明。
8.因此,本发明提供了一种中间人攻击的双向请求应答检测方法,能够解决中间人攻击的三种手段,达到防御目的。
9.为解决上述技术问题,本发明提供如下技术方案:包括,通过报文解析工具对无线通信环境中的恶意报文进行解析;若报文的解析结果为请求报文,则通过请求报文检测模块进行检测,根据检测结果处理请求包;若所述报文的解析结果为应答报文,则通过应答报文检测模块进行检测,根据检测结果对arp缓冲区进行处理。
10.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:所述请求报文检测模块包括报文请求接收单元、判别单元、回复请求单元、调用发送请求单元、添加目标ip单元、发送请求单元和request线性请求表。
11.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:检测请求报文包括,通过报文请求接收单元接收所述请求包,而后通过判别单元比对目标ip地址与本机ip地址;通过回复请求单元将比对结果告知给所述调用发送请求单元,所述调用发送请求单元根据比对结果调用所述发送请求单元进行请求发送操作;当所述请求发出时,通过所述添加目标ip单元将解析的目标ip存放在所述request线性请求表中。
12.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:所述比对包括,若所述目标ip地址与本机ip地址相同,则通过所述回复请求单元对所述请求包作出回应,并调用所述发送请求单元进行所述请求发送操作;否则,则判定所述请求包为伪造的报文请求,将其丢弃并报告中间人攻击已发生。
13.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:还包括,通过所述request线性请求表存储本机接收或者发送的请求包中的ip地址和mac地址;所述request线性请求表依据时间准则对线性表中长时间没有获得更新的报文进行过滤删除。
14.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:所述应答报文检测模块包括respond线性应答表、接收应答单元、存放源ip单元、添加ip

mac映射单元、判别mac地址单元和arp缓冲区更新单元。
15.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:处理所述arp缓冲区包括,所述接收应答单元在接收到应答包时,通过所述存放源ip单元将源ip存放于所述respond线性应答表中;若所述应答包具有相同的源ip地址,则通过判别mac地址单元比较源mac地址和对应项的mac地址是否相同,若不相同,则判断所述应答包为伪造的应答包,存在中间人攻击的威胁;否则,则通过所述arp缓冲区更新单元对所述arp缓冲区进行更新;而后通过添加ip

mac映射单元将ip

mac映射添加到所述respond线性应答表中,将respond线性应答表中的对应项进行删除,并通过所述arp缓冲区更新单元对所述arp缓冲区进行更新。
16.作为本发明所述的中间人攻击的双向请求应答检测方法的一种优选方案,其中:
还包括,所述respond线性应答表依据时间准则对线性表中长时间没有获得更新的报文进行自动过滤删除。
17.本发明的有益效果:本发明突破了传统中间人防御的欠灵活性,即使攻击强度随时间逐步增强,也能保证数据包的真实性和完整性;通过添加判断条件,可根据输入的hostname进行分辨,将不满足条件的报文剔除,使网络信息传送更加安全;同时引入线性表,具有实时更新的优点,可依据时间准则自动过滤删除报文,大大提高了报文的检测效率;且具有良好的安全性、兼容性和扩展性,对主机性能影响小,在交互过程中不会产生很大的网络流量,尽可能的减少了系统和网络开销。
附图说明
18.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
19.图1为本发明第一个实施例所述的中间人攻击的双向请求应答检测方法的请求报文检测模块100工作原理示意图;
20.图2为本发明第一个实施例所述的中间人攻击的双向请求应答检测方法的应答报文检测模块200工作原理示意图;
21.图3为本发明第一个实施例所述的中间人攻击的双向请求应答检测方法的请求报文检测模块100和应答报文检测模块100的整体结构示意图;
22.图4为本发明第二个实施例所述的中间人攻击的双向请求应答检测方法的实验网络结构拓扑示意图;
23.图5为本发明第二个实施例所述的中间人攻击的双向请求应答检测方法的arp欺骗成功避免示意图;
24.图6为本发明第二个实施例所述的中间人攻击的双向请求应答检测方法的静态防御失效示意图;
25.图7为本发明第二个实施例所述的中间人攻击的双向请求应答检测方法的arp缓存恢复示意图。
具体实施方式
26.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
27.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
28.其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指
同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
29.本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
30.同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
31.本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
32.实施例1
33.在建立的正常通信过程中,中间人攻击会导致arp缓存列表的变化,此时主机ip对应的mac地址,会由攻击前本身真实的物理地址变为攻击者的mac地址,攻击机通常可通过下面三种手段,实现对目标主机的恶意篡改:
34.(1)目标主机收到攻击者的arp请求后发现报文请求的目标ip是本身。攻击者对目标主机发送虚假报文请求,这恰恰让目标主机错误的应答请求报文,将自身的arp缓冲区进行更新,导致中间人攻击成功。
35.(2)目标主机并没有对攻击机发送arp请求报文的情况下,攻击机伪造一个虚假报文向目标主机发送,此时的主机在收到虚假的报文后,按照虚假的ip

mac映射关系对arp表进行了更新,导致中间人攻击成功。
36.(3)目标主机广播中间人请求报文,向mac地址发送请求,这种广播后攻击机发送虚假报文后到的攻击方式,也能够实现中间人攻击,从而将目标主机的arp缓存进行更新。
37.根据中间人攻击的分析可知,目标主机无论是先收到了请求报文,还是延迟收到攻击者发送的应答报文,都可以更新arp缓冲区,为此本实施例提出一种中间人攻击的双向请求应答检测方法,可提供“请求报文检测”和“应答报文检测”双向检测,能够同时解决中间人攻击的三种手段,从而达到防御目的。
38.该方法具体包括:
39.s1:通过报文解析工具对无线通信环境中的恶意报文进行解析。
40.其中,报文来源于无线通信网络环境,在通信正常的情况下实现中间人攻击,从而获取恶意报文。
41.s2:若报文的解析结果为请求报文,则通过请求报文检测模块100进行检测,根据检测结果处理请求包。
42.请求报文检测模块100包括报文请求接收单元101、判别单元102、回复请求单元103、调用发送请求单元104、添加目标ip单元105、发送请求单元106和request线性请求表107;报文请求接收单元101用于接收请求包,判别单元102用于比对目标ip地址与本机ip地址的一致性,回复请求单元103用于将比对结果告知给调用发送请求单元104,调用发送请
求单元104用于控制发送请求单元106,添加目标ip单元105用于将解析的目标ip添加到request线性请求表107,发送请求单元106用于发送请求,request线性请求表107用于存放本机接收或者发送的请求包中的ip地址和mac地址和自动过滤不符合要求的报文。
43.检测的具体步骤如下:
44.(1)通过报文请求接收单元101接收请求包,而后通过判别单元102比对目标ip地址与本机ip地址;
45.若目标ip地址与本机ip地址相同,则进入步骤(2)
46.否则,则判请求包为伪造的报文请求,将其丢弃并报告中间人攻击已发生。
47.(2)通过回复请求单元103将比对结果告知给调用发送请求单元104,调用发送请求单元104根据比对结果调用发送请求单元106进行请求发送操作;
48.(3)当请求发出时,通过添加目标ip单元105将解析的目标ip存放在request线性请求表107中。
49.其中,request线性请求表107还用于存储本机接收或者发送的请求包中的ip地址和mac地址;
50.(4)request线性请求表107依据时间准则对线性表中长时间没有获得更新的报文进行过滤删除,从而提高检测效率。
51.s3:若报文的解析结果为应答报文,则通过应答报文检测模块200进行检测,根据检测结果对arp缓冲区进行处理。
52.应答报文检测模块200包括respond线性应答表201、接收应答单元202、存放源ip单元203、添加ip

mac映射单元204、判别mac地址单元205和arp缓冲区更新单元206;respond线性应答表201用于存放源ip、ip

mac映射和自动过滤删除不符合要求的报文,接收应答单元202用于接收应答包,存放源ip单元203用于将源ip存放在respond线性应答表201中,添加ip

mac映射单元204用于将ip

mac映射添加到respond线性应答表201中,判别mac地址单元205用于判别源mac地址和对应项的mac地址的一致性,arp缓冲区更新单元206用于更新arp缓冲区。
53.应答报文检测模块200检测的步骤如下:
54.(1)接收应答单元202在接收到应答包时,通过存放源ip单元203将源ip存放于respond线性应答表201中;
55.(2)若应答包具有相同的源ip地址,则通过判别mac地址单元205比较源mac地址和对应项的mac地址是否相同;
56.若不相同,则判断应答包为伪造的应答包,存在中间人攻击的威胁;否则,则通过arp缓冲区更新单元206对arp缓冲区进行更新;
57.(3)通过添加ip

mac映射单元204将ip

mac映射添加到respond线性应答表201中,将respond线性应答表201中的对应项进行删除,并通过arp缓冲区更新单元206对arp缓冲区进行更新。
58.较佳的是,respond线性应答表201可依据时间准则对线性表中长时间没有获得更新的报文进行自动过滤删除,从而提高检测效率;另外,请求报文检测部分和应答报文检测部分的实现,弥补了arp协议的“无序性”和“无状态”,将arp协议报文的检测设置相应的规则,删除无请求型应答和未认证型报文,并报告用户已发生中间人攻击。
59.实施例2
60.为了对本方法中采用的技术效果加以验证说明,本实施例选择传统的技术方案和采用本方法进行对比测试,以科学论证的手段对比试验结果,以验证本方法所具有的真实效果。
61.传统的技术方案灵活性较差,并且随着中间人攻击强度的增加,传统的防御方法面临防御失效,为验证本方法相对传统方法具有较高的灵活性,且能够应对高强度的arp攻击,本实施例中将搭建真实的无线通信实验环境,采用传统的设置arp防火墙和静态绑定和本方法分别对无线通信过程arp防御进行测试对比。
62.为了验证本方法的有效性,执行防御算法,再次使用driftnet嗅探工具进行嗅探,此时界面无法反馈通信信息,反复试验直到防御效果稳定,证明本方法能够抵御中间人攻击,有效性验证成功。
63.其中防御算法的步骤如下:
64.(1)首先进行环境配置;
65.在ubuntu环境下配置交叉编译环境(arm

linux

gcc)和build

essential环境,在ubuntu(攻击机)和windows10(靶机)操作系统下进行测试。
66.(2)自定义数据包的数量,伪造大量数据包输出至靶机,以降低主机的反应速度,接着执行中间人攻击程序实行arp欺骗。
67.(3)执行中间人攻击程序后,在ubuntu上使用dritnet嗅探工具进行信息嗅探,此时靶机误以为攻击机是网关,攻击者利用攻击机的嗅探工具窃取到相应的用户自定义参数,使得通信信息完全暴露在攻击者面前,从而实现双向欺骗。
68.对比结果分别如表1、图4~图7所示,
69.如图4所示,本实施例无线通信实验环境是将西门子变频器通过无线模块与变频电机建立连接,为了实现正常通信,将无线模块、客户机与攻击机成功配置到一个局域网内,从而实现三者的互联互通。
70.表1:arp攻击结果。
71.配置项攻击前攻击后攻击者ip192.168.1.3192.168.1.3攻击者mac00

0c

29

b8

32

a900

0c

29

b8

32

a9主机ip192.168.1.2192.168.1.2主机macac

b5

7d

e3

66

0100

0c

29

b8

32

a9
72.如表1所示,针对本实验环境中的无线通信过程实施arp攻击,可以看到arp缓存列表被更新,从arp缓存列表欺骗的变化可以发现,网关ip对应的mac地址,由攻击前本身真实的物理地址变为攻击者的mac地址,从而实现了中间人攻击欺骗的目的。
73.如图5所示,先通过传统的设置arp防火墙和静态绑定方法进行arp防御,人机交互界面由卡顿恢复正常,且arp列表恢复正常,说明arp攻击防御成功。
74.如图6所示,此时增加arp攻击自定义数据包,改为每秒发送10个数据包并逐渐增多,随着攻击强度的增加,传统防火墙防御速度低于arp攻击速度,此时静态绑定由静态变为动态,传统的防御算法失效。
75.可见传统防御方法无法应对高强度的arp攻击,保持攻击强度不减,此时执行本方
法后,尝试再次使用driftnet嗅探工具进行嗅探,此时攻击者无法获取变频电机敏感信息,此时查看arp缓存,arp列表被恢复如图7所示,从而验证了本方法能够用以防御中间人攻击,且相比传统的防御方法,对攻击强度的适应能力更强,更具灵活性。
76.应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术

包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
77.此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
78.进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
79.如在本技术所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
80.应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳
实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1