MAC地址泛洪攻击:
1、由于交换表空间的有限性,新的来源MAC地址不断的填写交换表项,当表被填满后,新的表项将会替代旧的表项。
2、如果攻击者发送大量的具有不同伪造源MAC地址的帧,由于交换机的自学习功能,整个交换表将会被垃圾表项填满。当有正常的数据帧到达时,由于交换表不再有正常的MAC地址表项,交换机完全退化为广播模式,从而使得攻击者又可以用嗅探的方式窃听数据。
MAC地址泛洪攻击预防:
1、MAC地址-接口号绑定:固化MAC地址-接口号表项,即为每个接口号设置固定的MAC地址,只接收和转发这些固定MAC地址的数据帧。这种方法有极大的网络维护工作量,不适用大型,并且一旦更换了网卡,必须重新绑定。
2、限制MAC地址数量:为每个交换机接口下可以连接的MAC地址数量进行限制,如交换表中每个接口只能与一个MAC地址构成表项,从而防止交换表溢出。这种方法可以防止交换表溢出,但并没有解决广播通信方式可能带来的数据窃听问题。
假冒生成树攻击:
生成树协议 (Spanning Tree Protocol, STP)是交换机常用的协议,该协议可以修剪冗余链路,从而达到避免环路的目的。
1、攻击原理:多个交换机运行生成树协议后,会选举一个根交换机。如果攻击者向广播域发送一个生成树消息,让交换机重新选举,并选择攻击者的交换机为根交换机,则该攻击者就达到了伪装根交换机的目的,从而获得各种数据帧或致使网络运行混乱,并使网络瘫痪。
假冒生成树攻击预防:
1、根交换机如果发现了比自己优先级更高的交换机后,则端口会被置为root-inconsistent状态,这种状态类似于listen状态,忽略任何优先级更高的生成树报文,这样可以阻止连接在此端口的交换机成为根交换机。只要在3个周期(6秒内)没有再接收到优先级更高的生成树报文,可自动恢复,担当起根的责任。
IP协议的安全缺陷:
1、IP是一个无连接 、无可靠保证的网络协议。传输的数据包既无法保证送达也不能保证顺序。
2、只是依靠源地址和目的地址,不能保证发送方和接收方身份的合法性。
3、缺乏对传输数据的完整性和机密性保护的机制。
IP欺骗的成因:
IP地址欺骗是指攻击者冒充某个第三方主机的IP地址向被攻击主机发起攻击。其前提是:被冒充主机与被攻击主机有信任关系。
攻击原理:
攻击者首先选择一个被攻击主机信任的主机作为被冒充主机。
攻击者通过采用诸如拒绝服务一类的攻击行为使被冒充主机瘫痪。
攻击者向被攻击主机发送源IP地址为被冒充主机IP地址的连接请求报文。这是利用了路由器进行转发时不检查源地址是否合法的漏洞。
攻击者在估算的时间延迟后向攻击主机发送确认报文。因为被攻击主机在收到攻击主机的请求报文后会向被冒充主机发送同步确认报文。攻击成功,即可登陆被攻击主机。
IP欺骗的防范方法:
在边界路由器上设置检查所有来自外网数据包的源IP地址,一旦发现有内网的IP地址,则简单将其丢弃即可。这项功能是路由器的默认功能,只要将其打开即可。
IP路由欺骗的成因:
一般情况下,IP包是无连接传输方式,路由器根据IP包中的目的地址以及当前网络的状况自主的选择传输路径。在这种情况下,IP包的传输路径是事先不可知的。但是,有时为了某种目的(如希望避开某些不稳定路径等),发送方可以事先指定一个传输路径。这一功能可以在IP包首部的可选项中加以说明,并且相应的回包也会按照指定的路径反方向传输。IP路由欺骗就是利用了IP包可选项的这一功能(也可以称为漏洞),设法让被攻击主机将数据包传输到指定的节点。
攻击原理:
1、假设:主机A是攻击的目标主机,主机B是主机A的信任主机,主机X是攻击主机,并且攻击者可以控制离其最近的路由器G。
2、攻击者登陆路由器G,并在其中添加路由信息,使所有发往主机B的数据包都转发到攻击主机X所在的网络。
3、攻击者冒充主机B向主机A发送数据包,即在IP包首部的源IP地址中填上主机B的IP地址,并在可选项中填写好精心设计的传输路径,使往返数据包都会经过路由器G
4、路由器G在收到目的地址为主机B的数据包后,根据被更改过的路由信息,将数据包转发到攻击主机X所在的网络。
IP路由欺骗的防范方法:
1、在边界路由器上配置丢弃所有来自外网又声称自己是内部主机的数据包
2、关闭主机和路由器上的源路由选项
ARP攻击分类:
1、干扰(中断)通信
2、窃听秘密
干扰(中断)通信攻击:
攻击者向目标主机或目标网络发送包含某个IP地址主机的虚假MAC地址ARP应答报文,从而阻止目标主机或目标网络与该IP地址的主机进行通信。
有以下几种方式:
1、阻止某个主机正常通信,可向其发送ARP回应报文,其中源IP地址为网关(或另一个主机)的IP,源MAC地址为一不存在地址;
2、以广播方式发送ARP回应报文,冒充网关,阻止网络中的主机与真正的网关通信,即报文中的源IP地址为网关IP,源MAC地址为一不存在地址。
3、向网关不断发送伪造IP地址的ARP请求和回应报文,一方面大量消耗网关CPU资源,另一方面致使网关不断更新自己的ARP表,导致网关ARP表溢出,真实主机的IP-MAC项被移除,网关无法与网络内主机通信。
窃听秘密攻击:
攻击者向被窃听的通信双方发送包含攻击者自己MAC地址和通信对方主机IP地址的ARP应答报文,在被窃听通信双方之间充当中间人,截获并转发被窃听通信双方的通信报文。
中间人窃听方式如下:
1、如果主机A和主机B为正常通信的主机,攻击者向主机发送ARP回应报文,宣称自己是主机B,即ARP回应报文中的源IP地址为主机B,源MAC地址为攻击者。同样地,攻击者也向主机B发送类似的ARP报文,宣称自己是主机A,即ARP回应报文中的源IP地址为主机A,源MAC地址为攻击者。
2、主机A和主机B收到相应ARP回应报文后更新各自的ARP表。当主机A有报文向主机B发送时,实际上发送给了攻击者。同样地,主机B发送给主机A的报文也发送给了攻击者。因此,攻击者截获了主机A和主机B之间的通信信息。
3、为了不让主机A和主机B发现通信被窃听,攻击者在截获主机A和主机B的报文后,还会将报文转发,使主机A和主机B依然能够收到报文。
防范方法:
1、IP-MAC绑定法:在主机和网关上绑定“IP-MAC”。这是一种针对ARP欺骗原理进行的防范措施,最早被采用,实现简单,对付基本ARP攻击比较有效。在主机端,将ARP表中网关的IP-MAC绑定,防止被假冒网关欺骗。在网关端,收集局域网内所有主机的MAC,并将主机的IP和MAC一一绑定,防止出现主机欺骗。
2、ARP防火墙法:ARP防火墙是在主机上完成网关IP-MAC的绑定和维护,拦截本机发出的虚假ARP报文,并且向网关报告本机正确的IP和MAC。
3、交换机端口绑定法:在可网管的交换机中,都有一个端口-MAC对应表,登记了每个端口及连接在这个端口上主机的MAC地址,并且交换机具有自学习能力,可以根据连接主机的MAC地址自动的填写这个表。正常情况下,当有数据帧到达某端口时,交换机会根据到达数据帧的源MAC查看MAC表,若表中没有相应的端口-MAC项,则自动将这个端口-MAC关系填写到表中(学习能力)。同时,查看目的MAC是否在这个表中,若存在则将该数据帧转发到目的MAC对应的端口上;若不存在则向所有端口广播这个数据帧。交换机端口绑定是指在经过一段时间学习后关闭学习功能,从而防止假冒MAC占据MAC表。这种方法在一定程度上可以防止ARP的主机欺骗。
4、VLAN划分法:虚拟局域网(Virtual Local Area Network,VLAN)是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的数据交换技术。VLAN和真实的LAN有相同的属性,可以实现内部的广播和单播。利用VLAN的划分防范ARP欺骗的原理是将VLAN划分的足够小,使得ARP广播报文只在一个很小的范围传播。即使出现了ARP攻击也不会影响到VLAN之外。
5、PPPoE法:PPPoE(PPP over Ethernet)是一种将PPP帧进行二次封装并在以太网上进行传输的协议。其中,PPP(Point to Point Protocol)协议是点对点通信协议,通常用于拨号模式。采用PPP通信时,IP数据包被封装在PPP帧中,从一个节点传输到另一个节点。利用PPP传输IP包,可以绕开ARP协议,从这个意义上来说,任何形式的ARP攻击都无法对PPPoE形成影响。因此,PPPoE曾被认为是终结ARP攻击的最终解决方案。
ICMP DOS 成因:
ICMP DOS是指利用ICMP协议向目标主机发送大量报文,挤占目标系统带宽、消耗目标系统CPU和缓存资源,使其无法为正常请求提供服务。DOS攻击比拼的是资源能力。如果能让多个系统同时向目标系统发送报文,可以很容易的将目标系统攻击至瘫痪。
攻击原理:
1、ICMP DOS采用的是一种反弹式攻击,利用了ICMP的请求响应报文进行攻击,并能够很好的隐藏攻击者的行踪。
2、首先,攻击者选择一个有足够多主机的网络,并向这个网络的网关发送一个源地址是目标系统的ICMP请求响应广播报文。
3、其次,被选定的网关在收到广播报文后向其管辖范围内的所有主机系统发送该请求响应报文。
4、最后,所有接收到请求响应报文的主机向报文中的源地址发送响应应答报文。目标主机因为资源耗尽而瘫痪。
ICMP DOS 防范方法:
网关路由器不转发请求响应报文的广播包
在目标主机的网络边界路由器上设置策略,丢弃来自外部的响应应答报文。
ICMP路由欺骗成因:
在几乎所有操作系统中都保持一张路由器列表,路由表的第一个项目就是这个主机的缺省网关。一般地,缺省网关由人工配置或者自动获得。设置缺省网关的目的是为了帮助主机将访问未知路由站点的数据包转发出去。当主机访问某个站点时,如果主机路由表中有相应的路由信息,则会按照相应的路由进行转发,如果没有相应的路由信息,则将数据包转发给缺省网关,由缺省网关决定相应的路由。当收到来自主机的转发数据后,缺省网关一方面会继续转发数据包,另一方面会检测检测路由,如果发现这个路由并非最优路由时,缺省网关就会向主机发出一个ICMP路由重定向报文,告诉主机去往相应信宿的最优路由。这样主机经不断积累便能掌握越来越多的最优路由信息。ICMP重定向报文的优点是保证主机拥有一个动态的既小且优的寻径表。网络中所有主机都无条件的服从ICMP重定向。
攻击原理:
1、如果攻击者伪装成目标主机的默认路由器向网络中的目标主机发送一个ICMP重定向报文,目标主机收到报文后即更新自己的路由表,从而实现了对目标主机路由破坏。如果攻击者在ICMP重定向报文中将自己设置为路由的一跳,则攻击者即可对目标主机的窃听。
2、攻击者还可以通过在发出的ICMP报文中设置IP源路由选项,并在其中将一个目的地设置为防火墙,并将目标地址设置为目标主机。即使目标主机藏在防火墙后面不允许与外界直接通信,但是当报文到达防火墙时因为其中一个目的地址指向防火墙而不是目标主机,防火墙会允许其通过,并且会在将报文按照源路由选项发送到内部网上,报文就这样到达了不可到达的即可到达目标主机。
ICMP路由欺骗防范方法:
1、避免ICMP重定向欺骗的最简单方法是将主机配置成不处理ICMP重定向消息,在Linux下可以利用firewall明确指定屏蔽ICMP重定向包。
2、验证ICMP的重定向消息的来源是否合法则是一种更加有吸引力的方法。例如检查ICMP重定向消息是否来自当前正在使用的路由器。这要检查重定向消息发送者的IP地址与ARP高速缓存中保留的硬件地址是否匹配。
TCP SYN泛洪攻击成因:
TCP SYN泛洪(TCP SYN Flood)攻击是一种不遵守TCP协议规定的三次握手而出现的攻击行为,其目的是旨在造成攻击目标的瘫痪,无法响应正常的TCP连接请求,即所谓的拒绝服务攻击。
攻击原理:
1、在TCP连接时,首先进行的是三次握手操作。如果发起连接请求的主机(客户端)在发出第一个连接请求的SYN包后突然掉线或者宕机,则被请求端(服务器端)在发出响应这个请求的SYN/ACK包后会因为得不到确认包而处于等待状态,称为半连接握手。
2、在服务器端,通常有一个专门用于处理这种半连接的缓存(堆栈),所有未完成握手的连接会在缓存中排队,服务器端会不断重新尝试着发出SYN/ACK包,只有在等待一段时间后仍然得不到客户端的确认包,服务器才关闭这个连接。
3、如果在短时间内大量出现这样的半连接握手,服务器就会忙于应付而无法响应正常的SYN请求,当这种半连接足够多时,服务器会因为堆栈溢出而崩溃。
TCP SYN泛洪攻击防范:
1、缩短等待时间:当发现有大量半连接时,将等待时间缩短,减少保持半连接的时间。
2、设置SYN Cookie:当收到SYN请求时,服务器按照源IP地址、源端囗、目的IP地址和目的端囗以及其他一些安全数值等要素进行hash运算并加密,称之为cookie。服务器不再为每个请求开辟缓存空间保持半连接。当收到来自客户端的ACK回复时再次计算cookie值并和原来的cookie值进行比较,若一致则完成连接,若不一致则丢弃。这样可以极大地减少由于堆栈溢出而使服务器崩溃的可能性。
3、设置SYN防火墙:由防火墙回应SYN请求,只有得到客户端的ACK后,再转交服务器进行连接。
LAND攻击攻击成因:
LAND攻击也是一种利用TCP三次握手机制的不完善,通过简单的将目标IP地址、源IP地址设置为攻击对象主机的IP地址,源端口和目的端口设置为攻击对象主机开放的同一个端口,即可非常有效地使目标机器重新启动或者死机。
攻击原理:
1、TCP传输的可靠性依赖于三次握手所实现的事先连接和收发双方不断的相互确认。如果在规定时间内没有收到确认数据包,那么原先传输的数据包为被重新传输。
2、如果攻击者通过某种方法使得目标主机无法收到通信对方的确认数据包,那么目标主机会一直不断重新发出数据包,并一直等待,直到资源耗尽而崩溃。
攻击过程:
1、攻击者向目标主机发出一个目标地址和源地址都是目标主机的IP地址,并且源端口和目的端口都是目标主机某个开放的端口的TCP同步报文。
2、假设攻击者主机的TCP序列号为x。目标主机在收到攻击主机的同步报文后,会向自己发送一个确认号为x+1,序列号为自身按照某种规律产生(假设为y)的同步确认报文。
3、目标主机很快就收到自己发来的同步确认报文。然而,由于y不是目标主机希望的x+1,因此会发出一个确认报文,并建立和保持一个空连接,等待序列号为x+1的报文。
4、至此,目标主机陷入死循环。不同的操作系统在受到Land攻击时的反应有所不同。如果是Unix或类Unix,大部分会崩溃;如果是Windows系统则会变得极其缓慢。这是因为TCP是有着很高优先级的内核进程,大部分进程会因为系统要处理TCP进程而不得不中断并交出资源。当资源耗尽,系统就会崩溃。
LAND攻击攻击防范:
在防火墙上禁止那些来自于外网且源地址又是内网的数据包,特别是目标地址和源地址完全相同的数据包。
TCP序列号攻击成因:
TCP序列号欺骗是指攻击者在冒充第三方被信任主机时,需要获得目标主机与被信任主机之间建立TCP连接时采用的序列号,也称为TCP会话劫持。由于初始序列号产生的随机性和较高的变化频率,使得攻击者通过截获A和B之间的报文获得序列号非常困难。因此,攻击者采用参与连接建立过程,通过冒充主机A与主机B建立连接,这样初始序列号就由攻击者所掌握,从而可以随心所欲的获得来自主机B的数据。
攻击过程:
1、攻击主机X向主机B发起正常的TCP连接,并接收来自主机B的确认包,记录下确认包的序列号,假设为ISNb#。
2、攻击主机冒充主机A向主机B发起TCP连接。其中,序列号为ISNx,源IP地址为A。
3、主机B会向主机A发送确认包,这个确认包攻击主机是收不到的。其中包括了主机B的序列号ISNb 。 4 、攻击者计算 I S N b 。 4、攻击者计算ISNb 。4、攻击者计算ISNb,并将ISNb$作为确认号向主机B发送确认包,连接即成功建立。
5、ISN_b $=ISN_b#+RTT×Increment of ISN
TCP序列号攻击防范:
1、在边界路由器上配置丢弃所有来自外网又声称自己是内部主机的数据包
2、改进ISN生成算法,增加计算ISN的难度,比如通过(真)随机增量等方法。
Fraggle攻击成因:
Fraggle攻击是Smurf攻击的简单改进,原理完全一样,利用对广播数据的应答而实现攻击。因为采用的是UDP协议,故而可以攻击那些屏蔽ICMP应请求包的防火墙。
攻击原理
1、在很多操作系统中,为了方便测试而开放了7号端口(echo)和19号端口( chargen )。7号端口会将收到的字符一字不差的送回去,如果其中遇到回车符号,则会双倍返还。
2、攻击者首先构造一个目标端口号为7的UDP包,将其封装在一个源地址为目标主机、目标地址是目标主机所在网络的广播地址的IP包内并将其发出。目标网络路由器接收到这样的广播包后会向网络中的所有主机都转发这个数据包,因为目标端口是7号端口,因此所有收到广播报文的主机都会向目标主机发出回送报文,只要目标网络内主机数量足够多,就可以很快淹没目标主机,从而达到攻击的目的。
Fraggle攻击防范:
1、关闭7号和19号端口。
2、 防火墙上设置策略,禁止那些源地址为内网实质是从外网进入的数据包。