• Web安全测试学习笔记


    DoS是利用网络协议缺陷,或者暴力攻击的方式,耗尽服务器资源,让目标计算机或网络无法提供正常的服务或资源访问(服务资源包括网络带宽,文件系统空间容量,开放的进程或者允许的连接等)。

    实现DoS有很多种方式,下面列举个人目前能理解的几种 ...>_<...

    1. SYN Flood(SYN 泛洪)

      1.1 攻击原理:

        

      1.2 防御方法(从网上搜集而来,没有做过实验):

    • 防火墙:采用TCP代理和源探测两种方式。
    • 增加TCP backlog队列:修改应用的listen()函数调用,或者操作系统内核参数SOMAXCONN。
    • SYN缓存:用一个HASH表空间存放将被分配给TCB的数据的一个子集,当握手完成的ACK接收到之后,这些数据将被复制到一个完整的TCB中,超出存活时间的HASH值将会回收。
    • SYN Cookies:在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值,在收到TCP ACK包时,TCP服务器再根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接(Linux可通过配置内核参数来实现)。

    2. UDP Flood(UDP 泛洪)

      2.1 攻击原理:

           短时间内向特定目标不断发送 UDP 报文,致使目标系统负担过重而无法处理正常的报文请求或响应。

      2.2 防御方法(从网上搜集而来,没有做过实验):

           防火墙防御UDP Flood攻击主要有两种方式:限流和指纹学习 

    3. ICMP Flood(ICMP 泛洪)

      3.1 攻击原理:

           ICMP协议是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。如果攻击者向目标主机发送大量的ICMP ECHO报文,将产生ICMP泛洪。目标主机会将大量的时间和资源用于处理ICMP ECHO报文,而无法处理正常的请求或响应。

      3.2 攻击种类:

    •  死亡之ping:

      在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机(现在基本不会出现)。

    •  Smurf攻击:回复地址设置成受害网络的广播地址并发送ICMP应答请求(ping)数据包,一旦广播出去,就会被广播域内的所有主机回应,导致网络阻塞。也可将源地址改为被攻击主机,把这些包都回应给被攻击主机,导致被攻击主机崩溃(前提:攻击主机处理能力和带宽要大于被攻击主机)。

      3.3 防御方法(从网上搜集而来,没有做过实验):    

    •  关闭路由器广播功能
    •  禁止网络上所有计算机对目标地址为广播地址的ICMP包响应
    • 为路由器或防火墙配置包过滤规则

    4. Slow HTTP DoS

      4.1 攻击原理:

           HTTP协议默认在接收到全部信息之后才会开始处理,Slow HTTP DoS利用这个特点使服务器开启大量连接并一直处于等待状态,当建立的连接占满连接池之后,服务器资源耗尽,DoS攻击达到目的(这种比较好重现,有专门的工具,下篇详细写下)。

      4.2 防御方法(从网上搜集而来,没有做过实验):

    •  对Web服务器做相应配置,设置合适的header和body的发送时间及频率(apache,ngnix,IIS都有相应设置)
    •  设置单个IP的最大连接数

    如需转载,请注明出处,这是对他人劳动成果的尊重~

  • 相关阅读:
    使用rails Devise
    (转)两年服务器开发的一句话经验集
    新版本,新起点。
    学习《锋利的jQuery》1
    Watir 使用
    一些Web Front的收集
    PHP日期时间函数的高级应用技巧
    如何防止动态加载JavaScript引起的内存泄漏问题
    JavaScript常用函数库详解
    JavaScript加密解密
  • 原文地址:https://www.cnblogs.com/sallyzhang/p/12187247.html
Copyright © 2020-2023  润新知