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