ARP欺骗 |
简介 ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关mac地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线 |
运作机制 ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,例.NETcut软件 |
防制方法 网上内的每台计算机的ARP一律改用静态的方式,不过这在大型的网上是不可行的,因为需要经常更新每台计算机的ARP表 另外一种方法,例如DHCP snooping,网上设备可借由DHCP保留网络上各计算机的MAC地址,在伪造的ARP数据包发出时即可侦测到。此方式已在一些厂牌的网上设备产品所支持 有一些软件可监听网络上的ARP回应,若侦测出有不正常变动时可发送邮箱通知管理者。例如UNIX平台的Arpwatch以及windows上的XArp v2或一些网上设备的Dynamic ARP inspection功能 |
IP地址欺骗 |
简介 IP地址欺骗(IPaddress spoofing)是指行动产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身份。这是一种黑客的攻击形式,黑客使用一台计算机上网,而借用另外一台机器的IP地址,从而冒充另外一台机器与服务器打交道,防火墙可以识别这种ip欺骗 按照Internet Protocol(IP)网络互联协议,数据包头包含来源地和目的地信息。 而IP地址欺骗,就是通过伪造数据包包头,使显示的信息源不是实际的来源,就像这个数据包是从另一台计算机上发送的 |
易受攻击的服务
|
防御方法 IP欺骗的防范,一方面需要目标设备采取更强有力的认证措施,不仅仅根据源IP就信任来访者,更多的需要强口令等认证手段;另一方面采用健壮的交互协议以提高伪装源IP的门槛 有些高层协议拥有独特的防御方法,比如TCP(传输控制协议)通过回复序列号来保证数据包来自于已建立的连接。由于攻击者通常收不到回复信息,因此无从得知序列号。不过有些老机器和旧系统的TCP序列号可以被探得 |
Smurf攻击 |
简介 Smurf攻击是一种病毒攻击,以最初发动这种攻击的程序“Smurf”来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务 |
攻击过程 Smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包,来淹没受害主机,最终导致该网络的所有主机都对此ICMP应答请求做出答复,导致网络阻塞。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃 攻击的过程是这样的:Woodlly Attacker向一个具有大量主机和因特网连接的网络的广播地址发送一个欺骗性Ping分组(echo 请求),这个目标网络被称为反弹站点,而欺骗性Ping分组的源地址就是Woodlly希望攻击的系统 这种攻击的前提是,路由器接收到这个发送给IP广播地址(如206.121.73.255)的分组后,会认为这就是广播分组,并且把以太网广播地址FF:FF:FF:FF:FF:FF:映射过来。这样路由器因因特网上接收到该分组,会对本地网段中的所有主机进行广播 |
攻击检测
对网络进行监控和统计发现, 若出现Smurf 攻击, 则会出现大量的echo 报文。由于存在echo 应答风暴, 此时,echo 报文在所有报文中所占的比例大大增加。所以,如出现这种情况, 就可能遭到了Smurf 攻击
由于echo 风暴造成网络负载过重,会出现大量报文丢失和报文重传现象。所以,若有明显的报文丢失率和重传率上升现象,就有可能遭到了Smurf 攻击
在受到Smurf 攻击时, 由于网络重载,会使其它的网络连接出现意外的中断或重置的现象。如反复出现意外的中断或重置,也可能受到了Smurf 攻击 |
防御方法 挫败一个Smurf攻击的最简单的方法就是对边界路由器的回音应答(echo reply)信息包进行过滤,然后丢弃他们,使网络避免被湮没 |
SYN Flood攻击 |
简介 TCP SYN泛洪发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。这样更加会浪费服务器的资源。攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,就无法为正常用户提供服务了 |
攻击原理 如果大量的握手请求涌向TCP服务端,而它们只发出SYN报文而不以ACK响应结束握手,服务端就要为这每一个请求都维持约一分多钟的连接去等待ACK,也就形成所谓的“半连接”。维护这些半连接是需要消耗很多服务器的网络连接资源的。如果短时间内这些资源几乎都被半连接占满,那么正常的业务请求在这期间就得不到服务,处于等待状态 更进一步的,如果这些半连接的握手请求是恶意程序发出,并且持续不断,那么就会导致服务端较长时间内丧失服务功能——这就形成了DoS(Denial of Service拒绝服务)攻击。这种攻击方式就称为SYN泛洪(SYN flood)攻击 |
防范措施 对于SYN泛洪攻击的防范,优化主机系统设置是常用的手段。如降低SYN timeout时间,使得主机尽快释放半连接的占用;又比如采用SYN cookie设置,如果短时间内连续收到某个IP的重复SYN请求,则认为受到了该IP的攻击,丢弃来自该IP的后续请求报文。此外合理地采用防火墙等外部网络安全设施也可缓解SYN泛洪攻击 |
UDP Flood攻击 |
简介 UDPFlood是日渐猖厥的流量型DoS攻击,原理也很简单。常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。100k bps的UDPFlood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。由于UDP协议是一种无连接的服务,在UDPFLOOD攻击中,攻击者可发送大量伪造源IP地址的小UDP包。但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。 正常应用情况下,UDP包双向流量会基本相等,而且大小和内容都是随机的,变化很大。出现UDPFlood的情况下,针对同一目标IP的UDP包在一侧大量出现,并且内容和大小都比较固定 |
防范措施 UDP协议与TCP协议不同,是无连接状态的协议,并且UDP应用协议五花八门,差异极大,因此针对UDPFlood的防护非常困难。其防护要根据具体情况对待
|
缓冲区溢出攻击 |
简介 缓冲区溢出攻击有多种英文名称:buffer overflow,buffer overrun,smash the stack,trash the stack,scribble the stack, mangle the stack, memory leak,overrun screw;它们指的都是同一种攻击手段。第一个缓冲区溢出攻击--Morris蠕虫,发生在二十年前,它曾造成了全世界6000多台网络服务器瘫痪 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出 |
原理 通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数 |
Ping of Death |
简介 Ping of Death:死亡之Ping 在因特网上,ping of death是一种畸形报文攻击,方法是由攻击者故意发送大于65535字节的ip数据包给对方。 TCP/IP的特征之一是碎裂;它允许单一IP包被分为几个更小的数据包。在1996年,攻击者开始利用那一个功能,当他们发现一个进入使用碎片包可以将整个IP包的大小增加到ip协议允许的65536比特以上的时候。当许多操作系统收到一个特大号的ip包时候,它们不知道该做什么,因此,服务器会被冻结、宕机或重新启动 ICMP的回送请求和应答报文通常是用来检查网路连通性,对于大多数系统而言,发送ICMP echo request 报文的命令是ping ,由于ip数据包的最大长度为65535字节。而ICMP报头位于数据报头之后,并与ip数据包封装在一起,因此ICMP数据包最大尺寸不超过65535字节利用这一规定,可以向主机发动 ping of death 攻击。ping of death 攻击 是通过在最后分段中,改变其正确的偏移量和段长度的组合,使系统在接收到全部分段并重组报文时总的长度超过了65535字节,导致内存溢出,这时主机就会出现内存分配错误而导致TCP/IP堆栈崩溃,导致死机 |