美文网首页
DDoS -- syn flood

DDoS -- syn flood

作者: 捞小虾 | 来源:发表于2017-11-28 18:45 被阅读27次

    1. 概述

    SYN flood是Network layer的DDoS攻击之一。
    该攻击利用TCP握手缺陷消耗被攻击方的资源从而导致被攻击方拒绝服务。
    相关RFC请见tools.ietf.org/html/rfc4987

    2. TCP握手正常情况

    client ---------SYN (sequence: s_no, acknowledgment: 0)--------------> server
    
            <-------SYN + ACK  (sequence: a_no, acknowledgement: s_no + 1)--
    
            --------ACK (sequence: a_no +1, acknowledgement: s_no + 1)----->
    
    • Client发送SYN
    • Server回SYN+ACK后建立一个半打开状态(SYN-RECEIVED)的连接,并存储在backlog中;
    • Client收到SYN + ACL后发送ACK;
    • Server收到ACK后,从blacklog中取出相应的半打开的连接,并建立TCB(Transmission Control Block)。

    3. SYN flood攻击原理

    • Client发送大量SYN后不再有任何回应(可以使用IP欺骗);
    • Server回SYN+ACK后建立大量半打开状态的连接,并存储在backlog中等待ACK;
    • Backlog中累积大量的等待ACK的半打开状态的连接,导致资源耗尽,新来的SYN被丢弃, 从而导致无法建立正常连接,服务器拒绝服务。

    4. 防护

    方法1. Filter -- 路由过程中根据IP地址前缀进行过滤,该方法需要全球部署。

    方法2. Increasing Backlog

    方法3. Reducing SYN-RECEIVED Timer

    方法4. Recycling the Oldest Half-Open TCB

    方法5. SYN Cache -- 常用方法之一

    • Server收到client发的SYN
    • 计算 hash(ip, port, secret bits)并随机均匀分配到 hash table bucket, 如果hash table bucket满了,则除旧迎新;
    • Server收到ACK后, 查hash table,创建TCB

    方法6. SYN Cookies -- 常用方法之二, 该方法不使用存储资源

    • Server收到SYN后,将组成连接的最基本的数据ecode成ACK的sequence number(+ Timestamp option)-- a_no;
    • Server发送携带该sequence number(+ Timestamp option)的SYN + ACK,不再分配SYN-RECEIVED状态的connection;
    • Server收到ACK后,decode该sequence number(+ Timestamp option)-- a_no,创建TCB

    方法7. Hybrid Approaches

    • SYN cache + SYN cookie

    方法8. Firewalls and Proxies

    5. 其他

    可以尝试outbound SYN flood。

    相关文章

      网友评论

          本文标题:DDoS -- syn flood

          本文链接:https://www.haomeiwen.com/subject/zhbebxtx.html