收稿日期:2014-01-08
基金項目:國家“242”信息安全計劃基金資助項目(2012D100)。
作者簡介:丁彭父樂(1990-),女,湖南常德人,碩士研究生,主要研究方向: 網絡與信息安全;
張宏莉(1973-),女,吉林榆樹人,博士,教授,博士生導師,主要研究方向: 網絡安全與社會計算、并行計算、網絡計算等。
摘要:隨著互聯網技術的迅速發展,越來越多網絡安全問題日益突顯出來。研究表明DoS/DDoS攻擊是目前最為嚴重的網絡安全問題之一,SYN Flood攻擊又是DoS/DDoS攻擊中最為常見的攻擊。首先簡要介紹了SYN Flood攻擊的原理,然后通過研究近年來國內外學術界對SYN Flood攻擊的研究成果,總結了針對SYN Flood攻擊的三類防御策略:基于退讓和負反饋的防御策略,基于TCP協議棧缺陷的防御策略和基于數據流的防御策略,并分別分析了各類型防御策略的主要防御方法。
關鍵詞:SYN Flood攻擊; 退讓和負反饋; 協議棧缺陷; 數據流統計; 網關偵聽
中圖分類號:TP39308文獻標識碼:A文章編號:2095-2163(2014)03-0028-04
A Brief Review of SYN Flood Attacks Defense Strategy
DING Pengfule,ZHANG Hongli
(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)
Abstract:With the rapid development of Internet technology, more and more network security issues are exposed increasingly. Studies have shown that DoS/DDoS attack is one of the most serious network security problems, and the most common one of DoS/DDoS attacks is SYN Flood attack. This paper first briefly introduces the principle of SYN Flood attack at first. And then after studying researches about SYN Flood at home and abroad in recent years, the paper finds that the common defense strategies are mainly about: defense strategy based on concession and negative feedback, defect of TCP protocol stack and the data traffic. Finally, the paper analyzes the main defense method of all types of defense strategies.
Key words:SYN Flood Attack; Concession and Negative Feedback; Defect of TCP Protocol Stack; Statistic of Data Traffic; Gateway Interception
0引言
網絡技術發展給人們帶來了各種便利,但與此同時也應看到,各類新的安全問題也在不斷產生。目前的網絡攻擊種類日益繁多,而其中的拒絕服務(Denial-of-Service, DoS)攻擊在網絡攻擊中占有的比例即已約為40%[1],也就是已經接近網絡攻擊總量的一半;而且從攻擊造成的破壞嚴重程度來看,DoS也是一種雖然簡單,但卻非常有效的攻擊方式。
DoS攻擊主要是通過點對點的方式在短時間內向服務器端發送大量的攻擊數據包,造成服務器端的資源將為大量攻擊數據包所占用而不再有額外的資源來響應正常用戶的請求,從而達到拒絕服務攻擊的效果。隨著網絡帶寬的增大,DoS攻擊也得到了相應“升級”,黑客們發明了分布式的DoS,簡稱為DDoS攻擊(Distribution Denial-of-Service Attract)。自1999年美國尼蘇達大學遭到DDoS攻擊以來,DDoS攻擊多次出現在全球各大知名網絡安全事件中,并且正以50%的速度在逐年增加[2]。所以,為了加強當今網絡的安全性,就需要高度重視對DDoS攻擊的檢測防御研究[3]。然而,Kang等人[4]指出,DDoS攻擊中94%以上的攻擊都是基于TCP的,而SYN Flood攻擊又約占基于TCP攻擊的90%。因此,SYN Flood攻擊是研究DDoS攻擊時的主要研究對象,也是在加強網絡安全時,需要重點檢測和防御的攻擊之一。
本文簡要介紹了SYN Flood攻擊的基本原理,通過分析2000年以來國內外學術界對SYN Flood攻擊的研究情況,提出三類防御SYN Flood攻擊的策略,并分析了各類型防御策略的主要防御方法。
1SYN Flood攻擊原理
SYN Flood攻擊利用了TCP協議三次握手機制的缺陷[5]。TCP協議是一個面向連接的傳輸協議[6],其在傳輸數據之前必須進行三次握手來相互確認信息,以此建立一條連接,從而確保通信過程中數據的完整性和一致性。TCP三次握手的過程如圖1所示。
由圖1可見,首先,客戶向服務器發送建立連接請求,即發送標志位SYN段為1的TCP報文;服務器在收到連接請求后回復一個ACK+SYN。其中,ACK是對客戶端發送的SYN包的確認,SYN則是請求與客戶端建立連接,即服務器回復報文的ACK段和SYN段均置1;最后,客戶收到服務器回復的ACK+SYN報文后,再給服務器回復一個ACK確認報文后,即進入ESTABLISHED狀態,而當服務器收到最后的ACK后也將進入ESTABLISHED狀態。至此,三次握手完成。
但是,如果在服務器回復ACK+SYN后,客戶由于某種原因而不做第三次握手,即服務器一直沒有接收到客戶的ACK確認報文,那么TCP協議的超時和重傳機制就會使得服務器保持一段時間的半連接狀態(一般為75s[7]),由此將導致服務器的內存資源的浪費。
圖1TCP三次握手過程示意圖
Fig.1TCP three-way handshake process第3期丁彭父樂,等:SYN Flood攻擊防御策略綜述智能計算機與應用第4卷
SYN Flood攻擊就是攻擊者向攻擊目標發送大量偽造的TCP連接請求報文,即SYN包;而當攻擊目標收到連接請求時,就會在目標的TCP協議棧分配資源,并記錄其信息到半連接隊列中,同時回應ACK+SYN;此時,攻擊者卻不再發送ACK確認報文以完成第三次握手,而是將繼續發送大量的SYN連接請求包。這樣不僅會導致被攻擊者在短時間內需要為大量半連接分配內存資源,還會使得系統對后續到來的SYN包在自身的半連接隊列中查找是否有此包的握手信息,從而消耗大量CPU資源,最終造成被攻擊者無法向正常用戶提供所需服務。SYN Flood攻擊的原理如圖2所示。
圖2SYN Flood攻擊原理圖
Fig.2Schematic of SYN Flood attack
2SYN Flood攻擊的防御策略
自2000年以來,DDoS攻擊一直是國內外學術界在網絡安全領域的研究重點,而且也涌現了關于SYN Flood攻擊檢測和防御方法的大量文章和研究成果。雖然每種檢測方法都對應著一種最佳防御方法,但是檢測和防御是兩個不同的領域,可以分別對其展開研究。通過研究可知防御策略大致可以分為:基于退讓和負反饋的策略[8],基于TCP協議棧缺陷的策略和基于數據流的策略。
2.1基于退讓和負反饋的防御策略
退讓策略就是對現有的攻擊進行盡可能大的容忍,被攻擊者可通過提高自身的抗壓能力(如更好的硬件資源、更大的網絡帶寬),或者犧牲一部分服務器的資源以及修改服務器配置等來對SYN Flood攻擊進行防御。
退讓策略的常用方法主要有:
(1)縮短半連接隊列的保持時間。對于半連接狀態下超時重傳的參數(超時時間,重傳次數)進行縮減,以達到提早斷開沒有響應的連接,并盡快回收服務器資源的效果;
(2)增大半連接隊列的大小。適當增加半連接隊列的大小,在系統資源一定的情況下,盡可能提高服務器處理連接的數量;
(3)負載均衡策略。通過負載均衡技術將高速SYN Flood攻擊流引到服務器集群的某一臺服務器上,通過犧牲某一臺服務器而實現對其它服務器的保護;
(4)退讓策略[9]。被攻擊者通過升級硬件配置或者加大網絡帶寬來抵御攻擊。只是這種方法非但沒有從根本上解決問題,而且還是一種性價比極低的策略,并且一旦攻擊力度有所加大,全部的升級將完全失效。
由上述分析可知,基于退讓和負反饋的防御策略在防御攻擊流量較小的SYN Flood攻擊時效果非常明顯,一旦攻擊者增大攻擊流量,其防御效果就會明顯降低甚至完全失效。雖然如此,該方法卻因其實現簡單已經實際用于現有系統或防火墻中,以期實現系統本身的基礎防御功能。
2.2基于TCP協議棧缺陷的防御策略
SYN Flood攻擊是利用TCP協議棧的缺陷而發起的,所以最初關于防御DDoS攻擊的研究都是基于TCP協議棧缺陷的。現今,防御SYN Flood攻擊較為成熟而且已經用于實際的方法主要的就是基于TCP協議棧缺陷的技術,也就是:SYN Cookie[10]、SYN Cache[11]、SYN Proxy[12]以及SYNDefender[13]。
2.2.1SYN Cookie技術
2000年,國外學者Bernstein提出了SYN Cookie方法,并且在FreeBSD系統下實現了該機制。Cookie機制是服務器收到客戶端的連接請求后,并不會為其分配資源,而是根據這個SYN包的相關信息計算生成某一Cookie值,并將其作為ACK+SYN包的序列號返回給客戶端。當服務器收到客戶端的ACK包后,就會比較該包的Cookie值和上個SYN包的Cookie值,由此而判斷該包是否為第三次握手。經判斷如果本次請求是完整的,服務器才會給本次會話分配內存。也就是說,SYN Cookie技術通過減少半連接時系統的資源消耗來抵御SYN Flood攻擊。但是,為了得到Cookie值,服務器將會進行頗多額外的計算,所以當攻擊者發起針對SYN Cookie的ACK Flood攻擊時,Cookie值的計算也會占用系統的大量內存和CPU資源。
雖然SYN Cookie技術在很大程度上能夠有效抵御SYN Flood攻擊,但同時卻也可能導致另外一種DoS攻擊,即ACK Flood攻擊。而這種攻擊則是由于系統在Cookie驗證前無法區分ACK報文是否為經過第一次握手后發過來的所形成,對此文獻[14]提出了一種改進方法,就是:在第一次握手后系統可簡單記錄該連接信息,形式即如源IP、源端口、時間戳的三元組。而在接到ACK報文時,就可以第一時間驗證報文的三元組信息,如果信息滿足條件則進行Cookie驗證,否則直接丟棄。
2.2.2SYN Cache技術
2002年,Lemon提出了SYN Cache的方法。與SYN Cookie不同的是,SYN Cache方法會保存SYN包里的所有字段。該方法通過一個專用的HASH表(Cache)來保存半連接信息,直至收到ACK信息才為連接分配系統資源(TCB)。在Lemon的FreeBSD中,對于一個存儲半連接信息的Cache條目只需要160個字節,遠小于TCB的736個字節。雖然SYN Cache方法能夠提高SYN Flood攻擊的難度,但是由于受到系統總資源的限制,該方法對SYN Flood攻擊也僅能起到一定的緩解作用。
2.2.3SYN Proxy技術
由于SYN Cookie和SYN Cache技術都是基于主機的保護方法,需要系統本身的協議棧支持,而并非所有的系統都支持。所以很多防火墻都提供了一種SYN代理功能。該技術的主要思想是,只有在SYN代理確認連接的有效性后,才向內部服務器發起連接請求。所以當攻擊發生時,攻擊造成的危害就將轉移到至該代理上,借此以保護服務器端。而這個代理確認連接有效性的方法可以是基于SYN Cookie和SYN Cache的,這也是對SYN Cookie的另一種改進。只是需要注意,一旦代理被攻擊破壞,其保護的服務器也都將無法向外界提供服務,這也成為SYN Proxy方法的瓶頸所在。
2.3基于數據流的防御策略
該策略主要是利用統計學的方法,對收到的數據流進行統計,通過特征分析、數學建模,或者僅僅是IP地址的備案,規劃給出相應的防御方法。
2.3.1網關偵聽
本策略中,對數據流的IP地址進行備案,并查詢IP的合法性來判定是否丟棄該數據包的防御方法又可稱作基于網關偵聽的防御方法。最為常見的主要有[8]:網絡追查、Push-back(回壓法)、SYN Kill和Ingress Filter。
該策略主要針對偽造IP地址的攻擊進行防御,但是隨著系統運行時間的增長,用于查詢取證的IP地址庫會變得豐富和龐大,而這將會影響檢索和系統運行效率。
2.3.2數據流統計
這種基于統計學的防御策略大多是與檢測方法相結合的。其中,變點檢測法和CUSUM算法(或非參數CUSUM算法)則廣泛應用于各種基于統計的檢測算法[15-19]。
2004年Chao等人[20]提出了運用貝葉斯等統計學理論來“清洗”DDoS數據流,并在2006年提出了Packetscore算法[21]。此后,李凱[22]將該算法運用于對SYN Flood攻擊的防御。
2004年,何慧等人[23]針對大規模流量網絡提出了基于網絡流量分布相似度的DDoS攻擊檢測方法,2007年蔣凌云等人[24]又給出了基于相似度的針對SYN Flood攻擊的防御方法。但是卻由于引進了自相似模型,導致該方法的工程實現難度加大,因此還需要大量的簡化和改進才能在實際中真正得到運用。
此外,Siris等人[19]首次提出了一種基于自適應閾值狀態的模型來檢測SYN Flood攻擊,該方法根據當前流量的特征動態改變異常判定閾值,從而達到流量異常檢測和防御攻擊的目的。2009年,劉群華等人[25]則根據該檢測方法給出了一種基于自適應閾值狀態的SYN Flood攻擊防御模型。實驗表明該方法非常適合于大流量網絡環境下SYN Flood攻擊的檢測和防御,而對于低強度的攻擊則會出現較高的誤報率。
3結束語
對SYN Flood攻擊,盡管已經提出很多的辦法和理論,但是一些研究成果或產品由于沒有得到廣泛應用而難以判斷其真實效果,現在工業界的大部分產品都只是盡量緩解攻擊,而并未使問題獲得根本解決。而且隨著IPv6網絡的出現,SYN Flood攻擊又將帶來許多新的問題,因此,關于DDoS攻擊的研究仍然是網絡安全領域當前、以至未來的研究重點。
參考文獻:
[1]李明柱,時憶杰. 黑客攻擊與安全防范[M]. 北京:北京航空航天大學出版社,2002-07.
[2]CERT Advisory CA-20000-01. Denial-of-service developments[EB/OL]. http:// www.cert.org/ advisory/ CA-2000-01.html.2000.
[3]GARBER L. Denial-of-service attacks rip the Internet[J]. IEEE Computer, 2000, 33(4): 12-17.
[4]KANG J, ZHANG Z, JU J. Protect e-commerce against DDoS attacks with improved D-WARD detection system[C]//e-Technology, e-Commerce and e-Service, 2005. EEE'05. Proceedings. The 2005 IEEE International Conference on. IEEE, 2005: 100-105.
[5]QIU Xiaofeng, HAO Jihong, CHEN Ming .A mechanism to defend SYN flooding attack based on network measurement system[C]//ITRE 2004 - 2nd International Conference on Information Technology: Research and Education,2004.
[6]Andrew S, Tanenbaum . 計算機網絡(第4版)[M]. 北京: 清華大學出版社, 2006.
[7]W. Richard Steven. TCP/IP詳解, 卷1: 協議[M]. 北京:機械工業出版社, 2000.
[8]唐銳. 抵御SYN Flood 的防護系統的研究與設計[M]. 長沙:中南大學, 2012: 2-4.
[9]孫長華,劉斌. 分布式拒絕服務攻擊研究新進展綜述[J].電子學報.2009,37(7):1562-1570.
[10]D J Bernstein. SYN Cookies [EB/OL]. (2000) [2013-06-06]. http://cr.yp.to/syncookies.html.
[11]LEMON J. Resisting SYN Flooding DoS Attacks with a SYN Cache[C]//Proceedings of USENIX BSDCon’2002, February, 2002.
[12]Netscreen 100 Firewall Appliance, http://www.netscreen.com/.
[13]Check point software technologies ltd. syndefender: http://www.checkpoint.com/products/firewall-1.
[14]徐賽. 雙棧網絡防火墻中SYN Flood攻擊的檢測與防御[D]. 哈爾濱:哈爾濱工業大學, 2013.
[15]WANG H, ZHANG D,SHIN K G. Detecting SYN flooding attacks[C]//Proceedings of Annual Joint Conference of the IEEE Computer and Communications Societies(INFOCOM), 2002,3:1530-1539.
[16]Takada H H, Hofmann U. Application and analysis of cumulative Sum to detect highly distributed denial of service attacks using different attack traffic patterns [EB/OL]. (2004-04-10) [2013-06-06]. http://www.istintermon.org.
[17]BLAZEK R B, KIM H, ROZOVSKII B, et al. A novel approach to detection of denial-of-service attacks via adaptive sequential and batch-sequential change-point detection methods[C]//Proceedings of IEEE Systems, Man and Cybernetics Information Assurance workshop, 2001: 220-226.
[18]CHEN W, YEUNG D Y. Defending against TCP SYN flooding attacks under different types of IP spoofing[C]//Networking, International Conference on Systems and International Conference on Mobile Communications and Learning Technologies, 2006. ICN/ICONS/MCL 2006. International Conference on. IEEE, 2006: 38-38.
[19]SIRIS V A, PPAPAGALOU F. Application of anomaly detection algorithms for detecting SYN flooding attacks[C]//Global Telecommunications Conference, 2004. GLOBECOM'04. IEEE. IEEE, 2004, 4: 2050-2054.
[20]CHUAH M C, LAN W C, CHAO G. Transient performance of packetscore for blocking DDoS attack[J].IEEE Communications Soeiety,2004,4:1892-1896.
[21]KIM Y, LAN W C, CHAO G. Packetseore: statistics-based vverioad control against distribute denial-of-Service attacks[J]. IEEE INFOCOM,2004,4:2594-2604.
[22]李凱. 基于統計特征的SYN Flood攻擊防御方法研究[D]. 成都:西南交通大學, 2009.
[23]何慧,張宏莉,張偉哲,等.一種基于相似度的DDoS攻擊檢測方法[J].通信學報,2004,25(7): 176-184.
[24]蔣凌云,王汝傳.基于流量自相似模型的SYN-Food DDoS攻擊防范[J].南京郵電大學學報,2002,7:90-94.
[25]劉群華, 馬進, 夏正敏. 一種防御SYN Flood的自適應閥值狀態模型[J]. 信息安全與通信保密,2010, 11(4): 84-86.