網路攻擊解釋:DoS和DdoS

網路攻擊解釋:DoS和DdoS

在這篇文章中,我們開始了一系列新的網路攻擊,削弱了組織內的IT安全基礎設施。隨著網際網路技術和應用的迅速普及,那些試圖闖入系統的人也越來越多——通常是為了獲取名譽、金錢或損害目標的聲譽。本系列中要討論的第一個問題是拒絕服務攻擊(DoS)和分散式版本(DDoS)。我們將從技術上了解這些攻擊是如何工作的,並討論如何在網路入口點阻止它們。

DoS攻擊背後的根本技術是使目標系統繁忙。 在計算機伺服器中,當接收到網路資料包時,所有元件(正好從網路介面卡或NIC到在OS下執行的應用程式)正在參與,以確保成功傳送該資料包。 網絡卡必須監視專用的乙太網幀,對齊資料並將其傳遞給網絡卡驅動程式,網絡卡驅動程式會新增自己的智慧,並將其傳遞給作業系統,然後將其傳送給應用程式。

所涉及的每個元件都可能表現出某種形式的脆弱性,並且DoS攻擊被設計成利用其中的一個或多個來滲透到系統中。

現在我們來了解TCP / IP協議的基礎知識,它使用傳送者和接收者之間的握手。 圖1顯示了一個健康的TCP握手如何發生,以及一個SYN氾濫攻擊如何與它進行比較。

網路攻擊解釋:DoS和DdoS

圖1:一個健康的TCP握手

當傳送方想要通訊時,它會發送一個SYN包,其中有自己的IP地址作為源,而接收者的IP地址作為目的地。接收者用一個合成ack報文。傳送方透過傳送一個ACK包來確認這一點。現在,傳送方和接收方有一個保證,他們可以彼此通訊。

然後傳送者開始以小塊傳送實際的資料,並且對於接收的每個資料分組,接收器發回一個ACK。 當傳送者傳送最後的資料塊時,它傳送一個FIN訊號,由接收者透過發回一個FIN-ACK迴應。

如果一個特定的埠不應該響應這個請求,接收方就會迴應一個RST包,這意味著它拒絕了這個請求。

正如您在這裡看到的,TCP/IP堆疊軟體必須處理複雜的通訊,這需要一些CPU和記憶體資源。此外,許多人們在不同的源地址和目的地址的伺服器和各種TCP埠發生。所有基於IP的協議,如ICMP ping、telnet、FTP等,實際上都是依靠這個框架來完成它們的工作,每個都在不同的專用套接字或埠上工作。

在應用程式層,作業系統和應用程式接收或傳送資料分配內部緩衝區和軟體過程,以跟蹤正在傳送或接收的內容。 作業系統本身部分完成這項工作,剩下的部分則留給網路驅動程式和協議棧。 每個程序消耗一些CPU時間和記憶體資源。

DoS攻擊利用這種情況,透過調整TCP資料包使伺服器響應惡意的偽造的網路請求。 TCP資料包可以偽造或修改,以破壞基本的握手過程,以建立意想不到的網路響應。 這最終導致耗盡所有伺服器資源,當它們不堪重負時,停止響應。

有多種方法可以做到這一點,每種方法都採用不同的技術方法。 請參閱下表 - 它顯示了各種DoS技術如何對映到網路層的OSI模型。

網路攻擊解釋:DoS和DdoS

現在我們將更詳細地討論這些技術。

網路層DoS攻擊

MAC洪水

這是一種罕見的第1層攻擊,攻擊者傳送多個虛擬乙太網幀,每個幀都有一個不同的MAC地址。 網路交換機分別處理MAC地址,因此為每個請求保留一些資源。 當交換機中的所有記憶體都用完時,會關閉或無響應。

在少數型別的路由器中,MAC洪水攻擊可能導致這些路由器丟棄整個路由表破壞整個網路的路由域。

SYN洪水

攻擊者傳送多個SYN資料包; 一旦從目標接收到SYN-ACK,它就不傳送ACK,而是傳送更多的SYN資料包。 這使目標上的TCP / IP堆疊有可能導致網路擁塞或斷開連線,並等待特定的時間。 因此,在預期ACK響應的情況下,多個部分開啟的連線由堆疊維持一段時間。

在另一個SYN泛洪型別中,SYN被偽造的源地址傳送,成為目標的SYN-ACK資料包的目的地址。 但是,由於欺騙IP的系統從來沒有傳送過這個SYN,所以它永遠不會發送一個ACK給這個包,並且會簡單地丟棄它。 目標系統沒有意識到這一點,並在預期ACK的情況下對其進行跟蹤。

在這兩個示例中,目標網路元件上的連線表和記憶體資源都填入了虛假條目。 整個表格填滿後,裝置停止響應。

死亡之ping

在這種情況下,向目標傳送了格式錯誤的ping包洪水。由於TCP堆疊只對特定型別的ping資料包進行響應,所以它不能響應這一點,耗盡系統資源。

TCP建立了連線攻擊

這是對SYN洪水的擴充套件,不同之處在於它使用了完整的3次TCP握手。 它不會欺騙地址,也不會剝奪ACK響應,而只是建立一個TCP連線,而不會發送任何資料。 由於這個原因,連線一直保持到超時; 大量的這樣的連線導致目標裝置上的DoS。

由於握手已經完成,這種攻擊很難追蹤,需要先進的技術來檢測和停止。

 Smurf攻擊

這是一個著名的、廣泛的應用層的攻擊中,攻擊者傳送ping流量IP廣播地址。然而,源地址是偽造的,是受害者的機器。因此,路由器會向受害者提供回覆,並以ping響應發回。在一個更大的、填充的子網中,這會產生破壞性的效果,並且實際上會使路由裝置不響應。

與此類似的是Fraggle攻擊,其中一個UDP回波包被髮送而不是TCP

 CP RST攻擊

在這種新的DoS攻擊中,源IP與受害者的IP地址互相欺騙,而這個錯誤的包被髮送到防火牆。這迫使防火牆在一段時間內記住這一聯絡。

這種攻擊很少使用;它的唯一目的是在更便宜的防火牆上欺騙入侵檢測邏輯。與主機桌面不同,帶有UTM特性的防火牆在混雜模式下工作,並記錄每個資料包。然而,如果異常檢測邏輯不夠智慧,它只會導致連線的堆積,最終導致自身的無用。

應用層DoS攻擊

除了這些網路層攻擊之外,還有一些直接處理應用層。 這種攻擊比較容易檢測和修復,但是如果被忽略,會導致嚴重的停機。

應用程式層攻擊利用作業系統和訪客應用程式中的漏洞。 下面列出的是一些這樣的攻擊。

緩衝區溢位

這種眾所周知的攻擊推動作業系統消耗資源,以至於開始洩漏記憶體,變得緩慢或者停止響應。 只有在Windows作業系統中才能觀察到緩衝區溢位是個神話 - 事實上,Linux發行版也是如此。 發現數據庫,電子郵件和Web伺服器等應用程式存在緩衝區溢位漏洞。

Web和DNS DoS攻擊

在TCP埠80上執行的Web伺服器是DoS攻擊的共同目標。 攻擊者通常會發送多個HTTP請求(根本沒有格式錯誤),以便從後端資料庫伺服器檢索大量資料。

這種請求氾濫使資料庫伺服器繁忙,使Web伺服器等待資料。 這會在兩臺伺服器上產生堆積,而這些伺服器對進一步的請求沒有反應。 這也可能是無意中發生的,尤其是當突發新聞釋出時,每個人都試圖同時訪問它。 在DNS伺服器的情況下,攻擊方式與Web伺服器類似,但後果嚴重。 如果DNS伺服器變得無法響應,可能會導致公司的整個網路中斷。

 分散式拒絕服務攻擊

簡單地說,分散式DoS攻擊(DDoS)利用上述各種技術組合了多個攻擊者,並可能導致災難性的失敗。請參考圖2瞭解如何在網站上規劃典型的DDoS攻擊。

網路攻擊解釋:DoS和DdoS

圖2:典型的DDoS攻擊

偽造的SYN氾濫和舊式的死亡攻擊的致命組合通常被用來破壞對網際網路開放的IT網路。

在現代形式的DDoS中,攻擊者將惡意程式碼注入病毒,並將其傳播到數以百萬計的計算機上,使其成為殭屍機器。 在特定的時間和日期,所有受感染的機器開始執行該程式碼,通常寫入該程式碼以訪問網站或對目標系統進行網路級攻擊。 由於很難確定是誰將程式碼注入到病毒中,所以很難追蹤真實的攻擊者。

在另一個非危險的形式,DDoS攻擊被修改訪問攻擊者的網站,並點選廣告,這反過來幫助攻擊者賺取廣告點選賺錢。

保護FOSS系統

雖然DoS是最古老和最常見的攻擊之一,但不幸的是,沒有什麼可以阻止它的傻瓜式的解決方案,因為實際上很難確定哪個網路連線是合法的,哪個是正在發起攻擊的。

雖然針對特定型別的DoS攻擊有特定的工具,但歸結為網路安全設計和監控,以加強網路。

Linux伺服器上的DoS攻擊的典型症狀是系統緩慢或網站速度緩慢,處理器和記憶體利用率突然和持續增長,沒有任何業務活動的磁碟顛簸,檔案傳輸速度較慢等。

在網路監控系統中,可能會出現大量TCP丟包、異常TCP重置、接收的TCP SYN包被破壞、或傳送重複的ACK資料包。通常,受衝擊的第一級元件是路由器,其次是防火牆和其他元件,如交換機。防火牆不能保護路由器的韌體,但是現代的路由器(如Cisco 7600或x443)包含補丁,以防止DoS攻擊。雖然現代防火牆有許多功能來對付DoS攻擊,但它們並不總是有用的。

防火牆當然可以防止基於網路層的攻擊,但通常無法保護系統免受來自埠80(HTTP)等應用層攻擊的攻擊。這裡需要一個應用級防火牆來過濾每個請求並確保其合法性。

對於Ubuntu和RHEL,APF(高階策略防火牆)是幫助減輕DoS攻擊的強大工具。 Linux FOSS系統擁有出色的網路驅動程式,以及許多內建功能,如資料包過濾防火牆,資料包監控,網路監控工具,核心強化工具等。

對於較小的Linux網路,可以將一個很好的指令碼寫入SYN Trap開啟的連線,並阻止偽造的TCP RST連線,作為第一道防線。

對於任務關鍵型公司Linux網路,部署入侵防禦系統裝置(IPS)是最佳選擇。 IPS裝置以混雜模式位於網路上,並使用內建的異常檢測演算法來攔截和解碼每個資料包。 由於其智慧範圍從第2層到第7層,它可以衡量哪個資料包是合法的,哪個不是。 它有一個很好的警報機制主動通知和阻止DoS和DDoS攻擊。

IPS裝置,UTM防火牆和應用層安全的完美結合可以幫助阻止這些可怕的攻擊。

更多閱讀

你的網路變慢了嗎?

促銷驚喜多!快來課課家商城淘一淘

課課家PHP軟體開發高階影片教程