
Cookie如何計算?
cookie = MD5(srcip,dstip,sport,dport)
端口是否需要考慮哪?沒有端口的話,可以少一點計算。
Syn-cookie是無狀態(tài)的,在Gateway上,不會保存任何與connection相關(guān)的東西,所以不會占用gateway的資源,缺點就是需要計算cookie,CPU占用會高一點。
如果不考慮端口的話,cookie是不是可以cache哪,如果cache了,就有查找的開銷,并不一定比MD5的hash快多少。
在Syn-cookie之前,先要檢查一下srcip是不是spoofing的,這里需要做一個反向的路由查找,看看是不是從錯誤的接口進來的,也可以確認一下源地址是否可達。
是不是也應(yīng)該做一個源端口的檢查哪?如果是0~1024的端口,就默認是非法的,因為這些端口在操作系統(tǒng)里面,一般是保留的,不會分配給應(yīng)用程序。
Syn attack是否有signatue? 不同的syn flood工具,生成的工具包,應(yīng)該有一定的模式,如果能夠找到這個signature,就可以通過signature來直接drop這個syn,不用再做syn-cookie的檢查了。
Syn-cookie會strip掉client和server的tcp option,對client,可疑在cookie里面帶上tcp option,但是對server來說,就比較難辦一點。strip掉tcp option,對connection的性能有影響。
對syn-flood的防范,目前還是threshold based,因為不能區(qū)分正常包和攻擊包,但是如果能夠定義攻擊的signature,就可以做signature based的防范,這樣可以更有效一點。