譚小華
摘要:就目前互聯(lián)網(wǎng)上的各種攻擊來看,針對Web的DDos攻擊是最難以讓人防范的,因為它存在很難區(qū)分惡意攻擊者和正常用戶之間的問題,所以很多管理員不是將攻擊者和用戶一起屏蔽了,就是完全對這樣的攻擊毫無辦法。
關(guān)鍵詞:SYN攻擊技術(shù)、SYN Flood、SYN防火墻針對Web服務方面的攻防技術(shù),可大致分為2個部分,分別是針對Web端口的DDos攻防、針對Web腳本的DDos攻防。
SYN FLOOD是利用TCP協(xié)議本身的缺陷發(fā)起的攻擊,所以要從根源上防御這樣的攻擊,需要對協(xié)議進行修改或者拋棄這個協(xié)議,所以這些是基本上不可能出現(xiàn)的情況。如何從實用的角度來防范這樣的攻擊呢?
近幾年普遍使用的防SYN攻擊技術(shù)大概包含SYN cookie防御、SYN proxy防御、SYN包判斷防御、SYN首包丟棄防御、地址狀態(tài)監(jiān)控防御等。以下分別對幾種防御技術(shù)進行分析:
一、 SYN cookie防御思路
在正常情況下服務器接收的 TCP SYN 數(shù)據(jù)包,當您更改立即連接請求分配一個緩沖區(qū),并返回一個 SYN + ACK,這是形成一個半連接。SYN 洪水使用此 SYN 連接請求,發(fā)送大量的欺騙的來源地址,若要創(chuàng)建,而連接只需耗盡服務器上的資源。
對于標準 TCP 連接 SYN cookie 技術(shù)建立在資源配置中的缺陷的過程中,資源分配策略時后收到消息,服務器不會立即分配一個緩沖區(qū)中, 發(fā)生更改,但使用的連接信息來生成一個 cookie,cookie 作為消息要返回的 SYN + ACK 初始序列號。當客戶端,基于標頭信息的 cookie,并返回確認序列號返回 ACK 消息時 (的初始序列號 + 1) 比較第 24 位,如果是一樣的它是一個正常連接和分配資源,以建立連接。Cookie 的計算是實施這一技術(shù)的關(guān)鍵,cookie 的計算必須包含此連接的狀態(tài)信息,這樣,攻擊者不能偽造 cookie。
二、 SYN proxy防御思路
SYN 代理防御方法,一般來說,不使用服務器本身,但在服務器前端的防火墻中使用。后在防火墻上收到的 SYN 數(shù)據(jù)包,他們響應 SYN ACK 數(shù)據(jù)包回給發(fā)起人,在其自己的內(nèi)部連接,啟動器返回 ACK 數(shù)據(jù)包之后, 新結(jié)構(gòu) SYN 數(shù)據(jù)包到服務器,建立一個真正的 TCP 連接。
SYN ACK 發(fā)送到啟動器的向防火墻 SYN ACK 數(shù)據(jù)包,此進程防火墻 SYN 和 ACK 數(shù)據(jù)包由服務器啟動器序列編號序列編號 SYN ACK 數(shù)據(jù)包,因為相同的序列號或確認號碼,隨后包發(fā)送的數(shù)據(jù)包防火墻響應您應該知道的要調(diào)整修改提交到服務器的通信。
SYN proxy的方法可以保證到達服務器的連接都是合法的連接,有攻擊時服務器并不會受到?jīng)_擊,都是由防火墻來承受,但是本質(zhì)上也不能真正防御SYN Flood,因為一旦有超過防火墻負載能力的DDos攻擊出現(xiàn),首先被拒絕服務的就是防火墻本身。
三、 SYN包異常判斷防御技術(shù)思路
對于構(gòu)造出來的SYN攻擊,源地址、源端口等值都可能是隨機的,不能判斷是否真是攻擊包,但攻擊程序一般并不是真正完善,還是可以通過一定特點檢測出來:
1) 判斷SYN是否帶TCP選項:一般的TCP SYN包中都要帶選項,SYN 數(shù)據(jù)包的選項是法律理論中,是最有可能不具有偽假。
2)確定 TCP 窗口中的值 ;此值提供了當前機器接收數(shù)據(jù)作為發(fā)起連接的緩沖區(qū)大小是太小了,是不足夠的較小的值通常大多偽造。
3) 確定的 IP TTL 值: 固定的服務器角色,TTL 值,可以檢測到提前到另一個地址,如果它找到的 TTL 值和理論值的差異是太大,大多是偽造。
4)判斷IP ID:TCP window,TCP序列號等值在不同SYN包中相同的可能性很小,如果連續(xù)的SYN包這些值都相同,基本上都是偽造包。
首包丟棄法是一種利用用戶行為進行抵御SYN攻擊的方式。
真正的 TCP 連接,如果沒有響應到第一個包,用戶可以發(fā)送 SYN 數(shù)據(jù)包的嘗試再次連接,沒有重復攻擊的大多數(shù)程序,防火墻 SYN 數(shù)據(jù)包被丟棄,第一次就可,只是在后來接受。但如果要學習重復合同程序的攻擊,防御是無效的。
四、 地址狀態(tài)監(jiān)控防御技術(shù)思路
最后,地址狀態(tài)監(jiān)控是比較完善的解決SYN攻擊的方案。
地址監(jiān)控解決方案是使用工具監(jiān)測治療中的 TCP 連接的數(shù)據(jù)包和專員的監(jiān)測網(wǎng)絡數(shù)據(jù)包的聆訊,基于源地址的連接請求。
每個源狀態(tài),匹配,有狀態(tài)的 4 種類型: ① 早期狀態(tài): 任何源地址剛開始狀態(tài) ;② 新的條件: 第一次您接收或也可以不是反復出現(xiàn)的結(jié)論是有源地址的狀態(tài) ;③ 好狀態(tài): 得出結(jié)論存在的國務院 ; 源地址④ 貧窮國家: 源地址不存在或不是國務院在石上。具體的行動和根據(jù)狀態(tài)代碼值位 TCP 報頭中的過渡效果。
五、 使用SYN防火墻防御
上面的分析都是從技術(shù)層面上發(fā)起的,太理論化,而實際的工作過程中,有很多的防火墻可以幫助管理者防御SYN FLOOD。常見的硬件防火墻類產(chǎn)品大致包含3種類型。
SYN SYN 數(shù)據(jù)包網(wǎng)關(guān)防火墻: 防火墻客戶端將直接轉(zhuǎn)到服務器 SYN/SYN ACK ACK,一方面,數(shù)據(jù)包轉(zhuǎn)發(fā)和防火墻服務器客戶端軟件包,另一方面,回發(fā)到服務器以完成未收到三向握手,TCP ACK 數(shù)據(jù)包,客戶端將連接到的服務器端的連接狀態(tài)。當客戶端真正 ACK 數(shù)據(jù)包到達,數(shù)據(jù)傳遞到服務器,否則該數(shù)據(jù)包將被丟棄。因為服務器連接狀態(tài)可以有效地一半 2 周可以承受比許多可以降低服務器攻擊多得多。
被動防火墻設置防火墻 SYN SYN 超時請求網(wǎng)關(guān),使它比服務器超時要小得多。防火墻客戶端發(fā)送到服務器 SYN 數(shù)據(jù)包轉(zhuǎn)發(fā),SYN/ACK 包服務器發(fā)送到客戶端,與客戶端發(fā)送到服務器的 SYN 數(shù)據(jù)包。這種方式,在防火墻中計時器過期如果客戶端不發(fā)送 ACK 數(shù)據(jù)包,一半的防火墻服務器連接從隊列中刪除,并向服務器發(fā)送一個 RST 數(shù)據(jù)包。防火墻超時參數(shù)小于服務器的超時期限,,因為有效防護 SYN 攻擊。
SYN 中繼防火墻: 防火墻,接收客戶端的不傳輸 SYN 數(shù)據(jù)包狀態(tài)信息但板服務器和客戶端然后回顯 SYN/ACK 數(shù)據(jù)包之后,您向客戶表明這是正常訪問獲取確認包、 向服務器發(fā)送 SYN 數(shù)據(jù)包從防火墻和完成 3 次握手。防火墻行為作為代理服務器、 客戶端和服務器端的連接可以實現(xiàn)完全過濾掉未連接到服務器。(作者單位:重慶工貿(mào)職業(yè)技術(shù)學院)
參考文獻:
[1]《黑客Web腳本攻擊與防御技術(shù)核心剖析》郝永清編著科學出版社
[2]網(wǎng)絡的攻擊與防范牛少彰江為強編著北京郵電大學出版社