讲一讲 SYN 超时,洪泛攻击,以及解决策略

什么 SYN 是洪泛攻击?

在 TCP 的三次握手机制的第一步中,客户端会向服务器发送 SYN 报文段。服务器接收到 SYN 报文段后会为该 TCP 分配缓存和变量, 如果攻击分子大量地往服务器发送 SYN 报文段,服务器的连接资源终将被耗尽,导致内存溢出无法继续服务。

解决策略

当服务器接受到 SYN 报文段时,不直接为该 TCP 分配资源,而只 是打开一个半开的套接字。接着会使用 SYN 报文段的源 id,目的 id,端口号以及只有服务器自己知道的一个秘密函数生成一个 cookie,并把 cookie 作为 序列号响应给客户端。

如果客户端是正常建立连接,将会返回一个确认字段为 cookie + 1 的报文段。 接下来服务器会根据确认报文的源 id,目的 id,端口号以及秘密函数计算出一个结果,如果结果的值 + 1等于确认字段的值,则证明是刚刚请求连接的客户 端,这时候才为该 TCP 分配资源.

这样一来就不会为恶意攻击的 SYN 报文段分配资源空间,避免了攻击。

回复

共1条回复 我来回复
  • 迷失技术de小猪
    迷失技术de小猪
    稍等伙伴们,思考简介中~
    评论

    什么 SYN 是洪泛攻击?

    在 TCP 的三次握手机制的第一步中,客户端会向服务器发送 SYN 报文段。服务器接收到 SYN 报文段后会为该 TCP 分配缓存和变量, 如果攻击分子大量地往服务器发送 SYN 报文段,服务器的连接资源终将被耗尽,导致内存溢出无法继续服务。

    解决策略

    当服务器接受到 SYN 报文段时,不直接为该 TCP 分配资源,而只 是打开一个半开的套接字。接着会使用 SYN 报文段的源 id,目的 id,端口号以及只有服务器自己知道的一个秘密函数生成一个 cookie,并把 cookie 作为 序列号响应给客户端。

    如果客户端是正常建立连接,将会返回一个确认字段为 cookie + 1 的报文段。 接下来服务器会根据确认报文的源 id,目的 id,端口号以及秘密函数计算出一个结果,如果结果的值 + 1等于确认字段的值,则证明是刚刚请求连接的客户 端,这时候才为该 TCP 分配资源.

    这样一来就不会为恶意攻击的 SYN 报文段分配资源空间,避免了攻击。

    1个月前 0条评论
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载