㈠ 通俗解釋一下「什麼叫伺服器被黑客攻擊」
「伺服器被黑客攻擊」就是說你的競爭對手通過黑客技術來攻擊你的伺服器而讓你的伺服器癱瘓,流量過大,伺服器里的數據被植入木馬病毒。被攻擊的伺服器有商業性的,也有牽涉到國家安全的,看情況來訂,而黑客有的是盈利的,有的是純粹來炫耀技術的。最終目的都是讓你的伺服器無法正常工作而讓你蒙受很大的經濟損失。
不知道夠不夠通俗
㈡ 伺服器給攻擊後會有哪幾種影響
DoS攻擊是網路攻擊最常見的一種。它故意攻擊網路協議的缺陷或直接通過某種手段耗盡被攻擊對象的資源,目的是讓目標計算機或網路無法捉供正常的服務或資源訪問,使目標系統服務停止響應甚至崩潰,而在此攻擊中並不入侵目標伺服器或目標網路設備。這些服務資源包括網路寬頻、系統堆棧、開放的進程。或者允許的連接。這種攻擊會導致資源耗盡,無論計算機的處理速度多快、內存容量多大、網路帶寬的速度多快都無法避免這種攻擊帶來的後果。任何資源都有一個極限,所以總能找到一個方法使請求的值大於該極限值,導致所提供的服務資源耗盡。
DoS攻擊有許多種類,主要有Land攻擊、死亡之ping、淚滴、Smurf攻擊及SYN洪水等。
據統計,在所有黑客攻擊事件中,syn洪水攻擊是最常見又最容易被利用的一種DoS攻擊手法。
1.攻擊原理
要理解SYN洪水攻擊,首先要理解TCP連接的三次握手過程(Three-wayhandshake)。在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。第一次握手:建立連接時,客戶端發送SYN包((SYN=i)到伺服器,並進入SYN SEND狀態,等待伺服器確認;
第二次握手:伺服器收到SYN包,必須確認客戶的SYN (ACK=i+1 ),同}Jj』自己也發送一個SYN包((SYN j)}即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
第三次握手:客戶端收到伺服器的SYN十ACK包,向伺服器發送確認包ACK(ACK=j+1),此包發送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手,客戶端與伺服器開始傳送數據。
在上述過程中,還有一些重要的概念:
半連接:收到SYN包而還未收到ACK包時的連接狀態稱為半連接,即尚未完全完成三次握手的TCP連接。
半連接隊列:在三次握手協議中,伺服器維護一個半連接隊列,該隊列為每個客戶端的SYN包(SYN=i )開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連接在伺服器處於SYN_ RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。
Backlog參數:表示半連接隊列的最大容納數目。
SYN-ACK重傳次數:伺服器發送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連接信息、從半連接隊列中刪除。注意,每次重傳等待的時間不一定相同。
半連接存活時間:是指半連接隊列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時也稱半連接存活時間為Timeout時間、SYN_RECV存活時間。
上面三個參數對系統的TCP連接狀況有很大影響。
SYN洪水攻擊屬於DoS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火牆等網路系統,事實上SYN攻擊並不管目標是什麼系統,只要這些系統打開TCP服務就可以實施。從圖4-3可看到,伺服器接收到連接請求(SYN=i )將此信息加入未連接隊列,並發送請求包給客戶( SYN=j,ACK=i+1 ),此時進入SYN_RECV狀態。當伺服器未收到客戶端的確認包時,重發請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP地址,向伺服器不斷地發送SYN包,伺服器回復確認包,並等待客戶的確認,由於源地址是不存在的,伺服器需要不斷的重發直至超時,這些偽造的SYN包將長時間佔用未連接隊列,正常的SYN 請求
被丟棄,目標系統運行緩慢,嚴重者引起網路堵塞甚至系統癱瘓。過程如下:
攻擊主機C(地址偽裝後為C')-----大量SYN包---->彼攻擊主機
C'<-------SYN/ACK包----被攻擊主機
由於C』地址不可達,被攻擊主機等待SYN包超時。攻擊主機通過發人量SYN包填滿未連接隊列,導致正常SYN包被拒絕服務。另外,SYN洪水攻擊還可以通過發大量ACK包進行DoS攻擊。
2.傳統演算法
抵禦SYN洪水攻擊較常用的方法為網關防火牆法、中繼防火牆法和SYNcookies。為便於敘述,將系統拓撲圖簡化為圖4-4。圖中,按網路在防火牆內側還是外側將其分為內網、外網(內網是受防火牆保護的)。其次,設置防火牆的SYN重傳計時器。超時值必須足夠小,避免backlog隊列被填滿;同時又要足夠大保證用戶的正常通訊。
(1) 網關防火牆法
網關防火牆抵禦攻擊的基本思想是:對於內網伺服器所發的SYN/ACK包,防火牆立即發送ACK包響應。當內網伺服器接到ACK包後,從backlog隊列中移出此半連接,連接轉為開連接,TCP連接建成。由於伺服器處理開連接的能力比處理半連接大得多,這種方法能有效減輕對內網伺服器的SYN攻擊,能有效地讓backlog隊列處於未滿狀態,同時在重傳一個未完成的連接之前可以等待更長時間。
以下為演算法完整描述:
第一步,防火牆截獲外網客戶端發向內網伺服器SYN數據包,允許其通過,抵達內網伺服器。同時在連接跟蹤表中記錄此事件.
第二步,防火牆截獲伺服器發向客戶端的SYN/ACK響應包,用連接跟蹤表中記錄的相應SYN包匹配它.
第三步,防火牆讓截獲的SYN/ACK繼續進行(發向客戶端)。同時,向內網伺服器發送ACK包。這樣,對伺服器來說,TCP連接三次握手已經完成。系統在backlog隊列中刪掉此半連接.
第四步,看此TCP連接是否有效,相應產生兩種解決方法。如果客戶端的連接嘗試是有效的,那麼防火牆將接到來自客戶端的ACK包,然後防火牆將它轉發到伺服器。伺服器會忽略這個冗餘的ACK包,這在TCP協議中是允許的.
如果客戶端的IP地址並不存在,那麼防火牆將收不到來自客戶端的ACK包,重轉計時器將超時。這時,防火牆重傳此連接.
(2) 中繼防火牆法
中繼防火牆抵禦攻擊的思想是:防火牆在向內網伺服器發SYN包之前,首先完成與外網的三次握手連接,從而消除SYN洪水攻擊的成立條件。
以下為演算法完整描述:
第一步,防火牆截獲外網客戶端發向內網伺服器SYN數據包.
第二步,防火牆並不直接向內網發SYN數據包,而是代替內網伺服器向外網發SYNIACK數據包.
第三步,只有接到外網的ACK包,防火牆向內網發SYN包.
第四步,伺服器應答SYN/ACK包.
第五步,防火牆應答ACK包.
(3) 分析
首先分析演算法的性能,可以看出:為了提高效率,上述演算法使用了狀態檢測等機制(可通過本系統的基本模塊層得以實現)
對於非SYN包(CSYN/ACK及ACK包),如果在連線跟蹤信息表未查找到相應項,則還要匹配規則庫,而匹配規則庫需比較諸多項(如IP地址、埠號等),花費較大,這會降低防火牆的流量。另外,在中繼防火牆演算法中,由於使用了SYN包代理,增加了防火牆的負荷,也會降低防火牆的流量。
其次,當攻擊主機發ACK包,而不是SYN包,演算法將出現安全漏洞。一般地,TCP連接從SYN包開始,一旦 SYN包匹配規則庫,此連接將被加到連接跟蹤表中,並且系統給其60s延時。之後,當接到ACK包時,此連接延時突然加大到3600s。如果,TCP連接從ACK包開始,同時此連接未在連接跟蹤表中注冊,ACK包會匹配規則庫。如匹配成功,此連接將被加到連接跟蹤表中,同時其延時被設置為3600s。即使系統無響應,此連接也不會終止。如果攻擊者發大量的ACK包,就會使半連接隊列填滿,導致無法建立其它TCP連接。此類攻擊來自於內網。因為,來自於外網的ACK包攻擊,伺服器會很快發RST包終止此連接(SOs>。而對於內網的外發包,其限制規則的嚴格性要小的多。一旦攻擊者在某時間段內從內網發大量ACK包,並且速度高於防火牆處理速度,很容易造成系統癱瘓。
(4) SYN cookies
Linux支持SYN cookies,它通過修改TCP協議的序列號生成方法來加強抵禦SYN洪水攻擊能力。在TCP協議中,當收到客戶端的SYN請求時,伺服器需要回復SYN-SACK包給客戶端,客戶端也要發送確認包給伺服器。通常,伺服器的初始序列號由伺服器按照一定的規律計算得到或採用隨機數,但在SYN cookies中,伺服器的初始序列號是通過對客戶端IP地址、客戶端埠、伺服器IP地址和伺服器埠以及其他一些安全數值等要素進行hash運算,加密得到的,稱之為cookie。當伺服器遭受SYN攻擊使得backlog隊列滿時,伺服器並不拒絕新的SYN請求,而是回復cookie(回復包的SYN序列號)給客戶端,如果收到客戶端的ACK包,伺服器將客戶端的ACK序列號減去1得到。cookie比較值,並將上述要素進行一次hash運算,看看是否等於此cookie。如果相等,直接完成三次握手(注意:此時並不用查看此連接是否屬於backlog隊列)。
㈢ 聽說我的世界伺服器被黑客攻擊,現在情況怎麼樣了
黑客集團LulzSec曾經在其推特網上公開發布聲明:我們的下一個目標就是讓《我的世界》下線,所以大家都去玩《我的世界》吧,准備好領受我們的彈葯襲擊!
在該聲明之後,《我的世界》果然遭到了黑客襲擊,該游戲的伺服器整個進入無法工作的狀態,但開發商Notch還是很快讓《我的世界》恢復正常了。
LulzSec發表了攻擊《我的世界》聲明之後,又宣布會把LOL作為下一個攻擊對象,目前LOL的登陸伺服器已進入罷工狀態,恢復時間尚不清楚,這個集團之前還攻擊過任天堂、Sony Pictures、Bethesda和其他網站。
㈣ 如果電腦被黑客攻擊,會有什麼反應和表現
那要看黑客打算用你的電腦干嗎了 如果是呀盜號 那基本上會出現例如QQ突然掉線 游戲突然掉線 但是網還沒掉的情況或者啥軟體也沒裝 突然電腦就很慢 過會又好了 或者網速突然很慢 一會又好了 或者是網速在每天的固定時間段內都要慢得很 斷開重連會好一下 沒多久又慢了這樣的情況都是電腦被植入病毒或者木馬了 還有更危險的情況是黑客只不過在你電腦里開了後門 這樣你啥也感覺不到 對黑客來說這個情況最多了 一般他是要用到你的電腦的時候才進來 不用的時候你電腦很安全還有一種情況 嘿嘿 當初俺去肉別人的時候常乾的 肉完之後給他打好補丁 封好埠 防止被其他人再肉這種情況的表現就是你電腦從沒開啟自動安裝補丁的功能 也沒手動裝補丁 但是電腦還是自動安裝了補丁 那就是黑客替你乾的
㈤ 伺服器被攻擊怎麼辦
1、切斷網路
對伺服器所有的攻擊都來源於網路,因此,當伺服器遭受攻擊的時候,首先就要切斷網路,一方面能夠迅速切斷攻擊源,另一方面也能保護伺服器所在網路的其他主機。
2、查找攻擊源
要根據自身經驗和綜合判斷能力,通過分析系統日誌或登錄日誌文件,找出可疑信息,分析可疑程序。
3、分析入侵原因和途徑
一定要查清楚遭受攻擊的具體原因和途徑,有可能是系統漏洞或程序漏洞等多種原因造成的,只有找到問題根源,才能夠及時修復系統。
4、備份好用戶數據
當伺服器遭受攻擊的時候,就要立刻備份好用戶數據,同時也要注意這些數據是否存在攻擊源。如果其中有攻擊源的話,就要徹底刪除它,再將用戶數據備份到一個安全的地方。
5、重裝系統
這是最簡單也是最安全的辦法,已經遭受到攻擊的系統中的攻擊源是不可能徹底清除的,只有重裝系統才能夠徹底清除攻擊源。
6、修復程序或系統漏洞
如果已經發現了系統漏洞或程序漏洞之後,就要及時修復系統漏洞或修改程序bug。
7、恢復數據和連接網路
將已經備份好的數據重新復制到重裝好的系統中,隨後將伺服器開啟網路連接,恢復對外服務。
㈥ 伺服器被攻擊後怎麼處理
1、發現伺服器被入侵,應立即關閉所有網站服務,暫停至少3小時。這時候很多站長朋友可能會想,不行呀,網站關閉幾個小時,那該損失多大啊,可是你想想,是一個可能被黑客修改的釣魚網站對客戶的損失大,還是一個關閉的網站呢?你可以先把網站暫時跳轉到一個單頁面,寫一些網站維護的的公告。
2、下載伺服器日誌,並且對伺服器進行全盤殺毒掃描。這將花費你將近1-2小時的時間,但是這是必須得做的事情,你必須確認黑客沒在伺服器上安裝後門木馬程序,同時分析系統日誌,看黑客是通過哪個網站,哪個漏洞入侵到伺服器來的。找到並確認攻擊源,並將黑客掛馬的網址和被篡改的黑頁面截圖保存下來,還有黑客可能留下的個人IP或者代理IP地址。
3、Windows系統打上最新的補丁,然後就是mysql或者sql資料庫補丁,還有php以及IIS,serv-u就更不用說了,經常出漏洞的東西,還有就是有些IDC們使用的虛擬主機管理軟體。
4、關閉刪除所有可疑的系統帳號,尤其是那些具有高許可權的系統賬戶!重新為所有網站目錄配置許可權,關閉可執行的目錄許可權,對圖片和非腳本目錄做無許可權處理。
5、完成以上步驟後,你需要把管理員賬戶密碼,以及資料庫管理密碼,特別是sql的sa密碼,還有mysql的root密碼,要知道,這些賬戶都是具有特殊許可權的,黑客可以通過他們得到系統許可權!
6、Web伺服器一般都是通過網站漏洞入侵的,你需要對網站程序進行檢查(配合上面的日誌分析),對所有網站可以進行上傳、寫入shell的地方進行嚴格的檢查和處理。如果不能完全確認攻擊者通過哪些攻擊方式進行攻擊,那就重裝系統,徹底清除掉攻擊源。
㈦ 伺服器出現這種情況是受到攻擊了嗎
伺服器受攻擊的方式主要有以下幾種:
1.數據包洪水攻擊
一種中斷伺服器或本地網路的方法是數據包洪水攻擊,它通常使用Internet控制報文協議(ICMP)包或是UDP包。在最簡單的形式下,這些攻擊都是使伺服器或網路的負載過重,這意味著黑客的網路速度必須比目標的網路速度要快。使用UDP包的優勢是不會有任何包返回到黑客的計算機。而使用ICMP包的優勢是黑客能讓攻擊更加富於變化,發送有缺陷的包會搞亂並鎖住受害者的網路。目前流行的趨勢是黑客欺騙目標伺服器,讓其相信正在受到來自自身的洪水攻擊。
2.磁碟攻擊
這是一種更殘忍的攻擊,它不僅僅影響目標計算機的通信,還破壞其硬體。偽造的用戶請求利用寫命令攻擊目標計算機的硬碟,讓其超過極限,並強制關閉。這不僅僅是破壞,受害者會遭遇不幸,因為信息會暫時不可達,甚至丟失。
3.路由不可達
通常,DoS攻擊集中在路由器上,攻擊者首先獲得控制權並操縱目標機器。當攻擊者能夠更改路由器的路由表條目的時候,會導致整個網路不可達。這種攻擊是非常陰險的,因為它開始出現的時候往往令人莫名其妙。畢竟,你的伺服器會很快失效,而且當整個網路不可達,還是有很多原因需要詳審的。
4.分布式拒絕服務攻擊
最有威脅的攻擊是分布式拒絕服務攻擊(DDoS)。當很多堡壘主機被感染,並一起向你的伺服器發起拒絕服務攻擊的時候,你將傷痕累累。繁殖性攻擊是最惡劣的,因為攻擊程序會不通過人工干涉蔓延。Apache伺服器特別容易受攻擊,無論是對分布式拒絕服務攻擊還是隱藏來源的攻擊。為什麼呢?因為Apache伺服器無處不在。在萬維網上分布著無數的Apache伺服器,因此為Apache定製的病毒(特別是SSL蠕蟲)潛伏在許多主機上;帶寬如今已經非常充裕,因此有很多的空間可供黑客操縱。蠕蟲攻擊利用伺服器代碼的漏洞,通過SSL握手將自己安裝在Apache伺服器上。黑客利用緩沖溢出將一個偽造的密鑰安裝在伺服器上(適用於運行低於0.9.6e版本的OpenSSL的伺服器)。攻擊者能夠在被感染的主機上執行惡意代碼,在許多這樣的病毒作用下,下一步就是對特定的目標發動一場浩大的分布式拒絕服務攻擊了。通過將這樣的蠕蟲散播到大量的主機上,大規模的點對點攻擊得以進行,對目標計算機或者網路帶來不可挽回的損失。
㈧ 伺服器被DoS攻擊後一般會發生什麼現象
通常所說的DOS有兩種不同的概念,即拒絕服務或一種磁碟操作系統,通常DoS(O小寫)指的是拒絕服務,DOS(O大寫)指的是一種磁碟操作系統
隨著計算機技術的發展,網路也在迅猛地普及和發展。人們在享受著網路帶來的各種便利的同時,也受到了很多黑客的攻擊。在眾多的攻擊種類中,有一種叫做 DoS(Denial of Service 拒絕服務)的攻擊,是一種常見而有效的網路攻擊技術,它通過利用協議或系統的缺陷,採取欺騙或偽裝的策略來進行網路攻擊,最終使得受害者的系統因為資源耗盡或無法作出正確響應而癱瘓,從而無法向合法用戶提供正常服務。它看上去平淡無奇,但是攻擊范圍廣,隱蔽性強、簡單有效而成為了網路中一種強大的攻擊技術,極大地影響了網路和業務主機系統的有效服務。其中,DDoS(Distubuted Denial of Service 分布式拒絕服務)更以其大規模性、隱蔽性和難防範性而著稱。
在對Linux 2. 4 內核防火牆netfilter 的原理深入研究後,分析了在netfilter 架構下防火牆的設計、實現和開發過程。以kylix3. 0為開發環境,作者基於netfilter 架構開發了一款包過濾和應用代理的混合型防火牆,並對其做了測試。該防火牆系統是由包過濾管理模塊、路由記錄模塊、應用代理模塊(syn proxy)、掃描防禦模塊和日誌記錄模塊構成。其中包過濾是基於netfilter 中的iptables 來實現的,網路地址轉換也在包過濾管理模塊中實現;路由記錄模塊通過修改Linux 內核中TCP/IP程序和重新編譯內核使內核支持路由記錄功能來實現的;在應用代理模塊中實現了HTTP代理和一個通用代理服務,HTTP代理程序基於SQUID 實現,而通用代理由一個代理進程來實現;掃描防禦模塊中主要是通過一個網路掃描防禦Demo 進程來監控是否有掃描發生;日誌記錄模塊主要是選擇記錄日誌的位置,有本機和郵件通知兩種選擇方式。針對常見的IP 地址欺騙、IP 源路由欺騙、ICMP 重定向欺騙、IP 劫持等常見網路攻擊給予了分析並在過濾管理模塊中加以解決實現,其中IP 劫持實現是用一個鉤子函數注入協議棧中來實現的。文中還分析了加固操作系統而關閉一些危險和不使用的服務,使防火牆架設在一個相對安全的基礎上,同時也將系統編譯升級為最新的穩定內核。
DoS攻擊是網路攻擊最常見的一種。它故意攻擊網路協議的缺陷或直接通過某種手段耗盡被攻擊對象的資源,目的是讓目標計算機或網路無法捉供正常的服務或資源訪問,使目標系統服務停止響應甚至崩潰,而在此攻擊中並不入侵目標伺服器或目標網路設備。這些服務資源包括網路寬頻、系統堆棧、開放的進程。或者允許的連接。這種攻擊會導致資源耗盡,無論計算機的處理速度多快、內存容量多大、網路帶寬的速度多快都無法避免這種攻擊帶來的後果。任何資源都有一個極限,所以總能找到一個方法使請求的值大於該極限值,導致所提供的服務資源耗盡。
DoS攻擊有許多種類,主要有Land攻擊、死亡之ping、淚滴、Smurf攻擊及SYN洪水等。
據統計,在所有黑客攻擊事件中,syn洪水攻擊是最常見又最容易被利用的一種DoS攻擊手法。
1.攻擊原理
要理解SYN洪水攻擊,首先要理解TCP連接的三次握手過程(Three-wayhandshake)。在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。第一次握手:建立連接時,客戶端發送SYN包((SYN=i)到伺服器,並進入SYN SEND狀態,等待伺服器確認;
第二次握手:伺服器收到SYN包,必須確認客戶的SYN (ACK=i+1 ),同}Jj』自己也發送一個SYN包((SYN j)}即SYN+ACK包,此時伺服器進入SYN_RECV狀態;
第三次握手:客戶端收到伺服器的SYN十ACK包,向伺服器發送確認包ACK(ACK=j+1),此包發送完畢,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手,客戶端與伺服器開始傳送數據。
在上述過程中,還有一些重要的概念:
半連接:收到SYN包而還未收到ACK包時的連接狀態稱為半連接,即尚未完全完成三次握手的TCP連接。
半連接隊列:在三次握手協議中,伺服器維護一個半連接隊列,該隊列為每個客戶端的SYN包(SYN=i )開設一個條目,該條目表明伺服器已收到SYN包,並向客戶發出確認,正在等待客戶的確認包。這些條目所標識的連接在伺服器處於SYN_ RECV狀態,當伺服器收到客戶的確認包時,刪除該條目,伺服器進入ESTABLISHED狀態。
Backlog參數:表示半連接隊列的最大容納數目。
SYN-ACK重傳次數:伺服器發送完SYN-ACK包,如果未收到客戶確認包,伺服器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數,系統將該連接信息、從半連接隊列中刪除。注意,每次重傳等待的時間不一定相同。
半連接存活時間:是指半連接隊列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。有時也稱半連接存活時間為Timeout時間、SYN_RECV存活時間。
上面三個參數對系統的TCP連接狀況有很大影響。
SYN洪水攻擊屬於DoS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火牆等網路系統,事實上SYN攻擊並不管目標是什麼系統,只要這些系統打開TCP服務就可以實施。從圖4-3可看到,伺服器接收到連接請求(SYN=i )將此信息加入未連接隊列,並發送請求包給客戶( SYN=j,ACK=i+1 ),此時進入SYN_RECV狀態。當伺服器未收到客戶端的確認包時,重發請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP地址,向伺服器不斷地發送SYN包,伺服器回復確認包,並等待客戶的確認,由於源地址是不存在的,伺服器需要不斷的重發直至超時,這些偽造的SYN包將長時間佔用未連接隊列,正常的SYN 請求
被丟棄,目標系統運行緩慢,嚴重者引起網路堵塞甚至系統癱瘓。過程如下:
攻擊主機C(地址偽裝後為C')-----大量SYN包---->彼攻擊主機
C'<-------SYN/ACK包----被攻擊主機
由於C』地址不可達,被攻擊主機等待SYN包超時。攻擊主機通過發人量SYN包填滿未連接隊列,導致正常SYN包被拒絕服務。另外,SYN洪水攻擊還可以通過發大量ACK包進行DoS攻擊。
2.傳統演算法
抵禦SYN洪水攻擊較常用的方法為網關防火牆法、中繼防火牆法和SYNcookies。為便於敘述,將系統拓撲圖簡化為圖4-4。圖中,按網路在防火牆內側還是外側將其分為內網、外網(內網是受防火牆保護的)。其次,設置防火牆的SYN重傳計時器。超時值必須足夠小,避免backlog隊列被填滿;同時又要足夠大保證用戶的正常通訊。
(1) 網關防火牆法
網關防火牆抵禦攻擊的基本思想是:對於內網伺服器所發的SYN/ACK包,防火牆立即發送ACK包響應。當內網伺服器接到ACK包後,從backlog隊列中移出此半連接,連接轉為開連接,TCP連接建成。由於伺服器處理開連接的能力比處理半連接大得多,這種方法能有效減輕對內網伺服器的SYN攻擊,能有效地讓backlog隊列處於未滿狀態,同時在重傳一個未完成的連接之前可以等待更長時間。
以下為演算法完整描述:
第一步,防火牆截獲外網客戶端發向內網伺服器SYN數據包,允許其通過,抵達內網伺服器。同時在連接跟蹤表中記錄此事件.
第二步,防火牆截獲伺服器發向客戶端的SYN/ACK響應包,用連接跟蹤表中記錄的相應SYN包匹配它.
第三步,防火牆讓截獲的SYN/ACK繼續進行(發向客戶端)。同時,向內網伺服器發送ACK包。這樣,對伺服器來說,TCP連接三次握手已經完成。系統在backlog隊列中刪掉此半連接.
第四步,看此TCP連接是否有效,相應產生兩種解決方法。如果客戶端的連接嘗試是有效的,那麼防火牆將接到來自客戶端的ACK包,然後防火牆將它轉發到伺服器。伺服器會忽略這個冗餘的ACK包,這在TCP協議中是允許的.
如果客戶端的IP地址並不存在,那麼防火牆將收不到來自客戶端的ACK包,重轉計時器將超時。這時,防火牆重傳此連接.
(2) 中繼防火牆法
中繼防火牆抵禦攻擊的思想是:防火牆在向內網伺服器發SYN包之前,首先完成與外網的三次握手連接,從而消除SYN洪水攻擊的成立條件。
以下為演算法完整描述:
第一步,防火牆截獲外網客戶端發向內網伺服器SYN數據包.
第二步,防火牆並不直接向內網發SYN數據包,而是代替內網伺服器向外網發SYNIACK數據包.
第三步,只有接到外網的ACK包,防火牆向內網發SYN包.
第四步,伺服器應答SYN/ACK包.
第五步,防火牆應答ACK包.
(3) 分析
首先分析演算法的性能,可以看出:為了提高效率,上述演算法使用了狀態檢測等機制(可通過本系統的基本模塊層得以實現)
對於非SYN包(CSYN/ACK及ACK包),如果在連線跟蹤信息表未查找到相應項,則還要匹配規則庫,而匹配規則庫需比較諸多項(如IP地址、埠號等),花費較大,這會降低防火牆的流量。另外,在中繼防火牆演算法中,由於使用了SYN包代理,增加了防火牆的負荷,也會降低防火牆的流量。
其次,當攻擊主機發ACK包,而不是SYN包,演算法將出現安全漏洞。一般地,TCP連接從SYN包開始,一旦 SYN包匹配規則庫,此連接將被加到連接跟蹤表中,並且系統給其60s延時。之後,當接到ACK包時,此連接延時突然加大到3600s。如果,TCP連接從ACK包開始,同時此連接未在連接跟蹤表中注冊,ACK包會匹配規則庫。如匹配成功,此連接將被加到連接跟蹤表中,同時其延時被設置為3600s。即使系統無響應,此連接也不會終止。如果攻擊者發大量的ACK包,就會使半連接隊列填滿,導致無法建立其它TCP連接。此類攻擊來自於內網。因為,來自於外網的ACK包攻擊,伺服器會很快發RST包終止此連接(SOs>。而對於內網的外發包,其限制規則的嚴格性要小的多。一旦攻擊者在某時間段內從內網發大量ACK包,並且速度高於防火牆處理速度,很容易造成系統癱瘓。
(4) SYN cookies
Linux支持SYN cookies,它通過修改TCP協議的序列號生成方法來加強抵禦SYN洪水攻擊能力。在TCP協議中,當收到客戶端的SYN請求時,伺服器需要回復SYN-SACK包給客戶端,客戶端也要發送確認包給伺服器。通常,伺服器的初始序列號由伺服器按照一定的規律計算得到或採用隨機數,但在SYN cookies中,伺服器的初始序列號是通過對客戶端IP地址、客戶端埠、伺服器IP地址和伺服器埠以及其他一些安全數值等要素進行hash運算,加密得到的,稱之為cookie。當伺服器遭受SYN攻擊使得backlog隊列滿時,伺服器並不拒絕新的SYN請求,而是回復cookie(回復包的SYN序列號)給客戶端,如果收到客戶端的ACK包,伺服器將客戶端的ACK序列號減去1得到。cookie比較值,並將上述要素進行一次hash運算,看看是否等於此cookie。如果相等,直接完成三次握手(注意:此時並不用查看此連接是否屬於backlog隊列)。
此演算法的優點是:半連接隊列滿時,SYN cookies仍可以處理新SYN請求。缺點是:某些TCP選項必須禁用,如大窗口等。計算cookies有花銷。
/*一個IP包,其分片都被放入到一個鏈表中,作為每一個分片的鏈表節點用ipfrag結構表示。IP分片的中心組裝在此鏈表進行。*/
內核抵禦攻擊的代碼結構如下:
// From
/*IP分片結構體*/
struct ipfrag
{
int offset; //ip包中此分片的偏移值
int end; //此分片最後一個株距在ip包中的位置
int len; //此分片長度
struct sk_buff *skb; //分片數據包
unsigned ........
if(end<= offset)&&(i>skb->len)
return NF_DRDP;
}
}
return NF_ACCEPT;
組成規則的三個結構體具體解釋如下:
(1)ipt......
unsigned int nfcache ; //用此位域表示數據報的哪些部分由這個規則檢查
.......
; //包含數據包及匹配此規則數據包的計算數值
以下僅列出ipt_entry_match結構體:
struce ipt_entry_match
{
union
{
struct{
u_int16_t target_size;
......
......
{
struct list_head list;//鏈表
struct
u int32 ipaddr; //地址
u_ int16 port; //埠
}src; //源端信息
struct
{
u_ int32 ipaddr;
u_ int 16 port;
} dst; //目的端信息
u_intl6 protonum; //協議號
`常用語法
dir+* 瀏覽
cls 清屏
cd 打開子目錄
cd.+* 退出子目錄
rd+* 刪除子目錄
del+* 刪除文件