【DDoS攻擊】ACK 洪水攻擊 是什麼?

ACK 洪水攻擊是一種常見於 TCP 層的 DDoS 攻擊手法,攻擊者會發送大量的 TCP ACK 封包,用大量無效封包癱瘓伺服器的運作,讓正常使用者無法使用網站或系統所提供的線上服務。
➤ACK 洪水攻擊是什麼?
➤ACK 洪水攻擊如何運作?
➤ACK 洪水攻擊情境
➤什麼是 ACK 封包?
➤如何防禦 ACK 洪水攻擊?
ACK 洪水攻擊是什麼?
ACK 洪水攻擊(ACK Flood Attack) 是 DDoS 攻擊方式的一種,攻擊者會利用發送大量的 TCP ACK 封包,使伺服器過載。ACK 洪水攻擊的主要目的和其他 DDoS 攻擊一樣,是透過垃圾資料來降低攻擊目標網站伺服器的資料處理速度,最終導致其崩潰或停擺,讓使用者無法使用網站或系統提供的線上服務。
ACK 洪水攻擊 的特色,則在於目標伺服器必須處理每一個收到的 ACK 封包,從而消耗大量計算資源,導致網站伺服器無法提供服務。
簡單來說...
攻擊原理:攻擊者偽造大量ACK(確認) 封包,並持續發送至目標伺服器。
攻擊目的:佔用伺服器資源,降低其處理正常請求的能力。
ACK 洪水攻擊如何運作?
ACK 洪水攻擊 是一種常見於 TCP 層(OSI模型 L4) 的 DDoS 攻擊手法,攻擊者透過大量的 ACK 封包 向目標伺服器發送請求,消耗其網路資源或系統效能,導致服務中斷或效能下降。ACK 洪水攻擊 的運作方式如下。
跳過正常連線程序,直接發送 ACK 封包
在正常的 TCP 通訊中,會經過三次握手(SYN → SYN,ACK → ACK) 建立連線,但在 ACK 洪水攻擊中,攻擊者會跳過建立連線的流程,直接跳到第三次握手並大量送出帶有 ACK 的封包給目標主機。這些封包未經合法三次握手,因此屬於異常連線請求,目的僅為干擾伺服器運作。迫使伺服器查詢不存在的連線資訊
當伺服器收到 ACK 封包時,會試圖在自己的連線追蹤表中尋找是否有對應的連線,但這些 ACK 封包根本不是從既有連線產生,伺服器會無法匹配連線資訊,卻仍會為此進行資源耗費,例如:查詢連線狀態表、嘗試回應錯誤訊息,和更新封包記錄或統計資料。耗盡伺服器資源,導致服務變慢或中斷
當 ACK 封包的數量過多時,伺服器會被迫消耗大量 CPU、記憶體或網路頻寬去處理這些無效封包,導致正常用戶連線變慢與超時、TCP 連線表溢出以及系統資源被耗盡,甚至當機。常搭配 IP 偽造與殭屍網路放大攻擊規模
攻擊者通常會偽造來源 IP,或透過殭屍網路(Botnet) 從全球數千台裝置發送 ACK 封包,使攻擊來源分散、難以追蹤與封鎖,也讓傳統防火牆難以辨識是否為合法流量。
ACK 洪水攻擊情境
ACK 洪水攻擊 會發送大量 ACK封包(確認訊息) 給伺服器,這些封包並非來自正常連線,也就是沒有完成 TCP 三次握手的情況,但伺服器還是會針對每個 ACK 封包去查詢資源或更新狀態,最終目的則是耗盡伺服器的資源,讓伺服器無法處理正常連線。
我們以白話情境來比喻,讀者可能會比較容易理解。
情境一:假客人湧入餐廳,不斷催餐卻沒下單
假設我們是一間餐廳,你是一位服務員,客人點餐前要先經過三個步驟:
客人說:「我要點餐」
服務員:「請問要點什麼?」
客人說:「我要一份蒜泥白肉」
開始準備 (這就像正常的 TCP 三次握手)
但是某天來了一大群人一直湧入餐廳,每個客人一進來就說「我已經點過了,蒜泥白肉做好了嗎?」,可是服務員完全沒有收到第一句「我要點餐」的開頭,但是他們卻一直不斷地問「我的蒜泥白肉作好了嗎?」(這就是 ACK 封包)
你作為服務員,就會被這些來亂的「假客人」弄得亂七八糟、焦頭爛額,根本沒辦法處理真正有點餐需求的客人,餐廳也因此卡住甚至停擺。
情境二:假客戶湧入來電,不斷催促卻沒問問題
假設我們是一間企業,你是一位客服人員,客戶詢問問題要經過三個步驟:
客戶:(來電)
客服:「請問有什麼問題?」
客戶:(說明需求)
等待回答 (像正常的 TCP 三次握手)
但是有一天突然有一堆來電,一接起來對方就說「我剛剛問的問題有回覆了嗎?你處理好了嗎?」客服完全沒有這些客戶的第一通來電,也沒有留下任何紀錄,只是不斷的詢問「剛剛問題有回覆了嗎?」(這就是 ACK 封包)
你作為客服人員,就會被這些來亂的「假客戶」干擾,每一通詢問電話你都得花資源查詢一下,導致系統和客服都忙翻了,真正有需求的客戶卻無法進入,企業客服系統就會因此卡住或停擺。
以上就是 ACK 洪水攻擊 在真實情境中的場景。
什麼是 ACK 封包?
透過網際網路傳送的所有數據資料,都會被分解成較小的區段,稱之為封包。每一個封包在傳輸過程中,會附帶一些控制資訊,幫助傳送與接收雙方確認資料是否正確傳達。
ACK 是 Acknowledgement (確認) 的縮寫,是一種用來回覆「我已經收到你傳來的資料」的訊息,在電腦網路、電信或通訊協定中,ACK 是非常關鍵的回應機制,確保資料不會遺失或重複。
在許多通訊協定中,例如網際網路的 傳輸控制協定(TCP) ,都會以 ACK 作為一個核心控制訊號,當發送端傳出一筆資料後,接收端會回覆一個 ACK 封包,表示這筆資料已成功接收,若未收到 ACK,發送端就會重新傳送資料,確保訊息不漏失。
從技術角度來說,ACK 封包 是一種 在 TCP 封包的標頭(Header) 中,ACK 位元被設為 1 的封包,代表「這是對之前某個封包的接收確認」。

▲ ACK 封包是 TCP 交握的一部分
如何防禦 ACK 洪水攻擊?
ACK 洪水攻擊雖然不像其他攻擊(如SYN Flood) 那樣直接耗盡連線,但 ACK 洪水攻擊 會一直消耗伺服器的資源,讓伺服器處理大量沒用的確認訊息(ACK 封包),導致網路效能下降甚至癱瘓。
建議導入 「Anti-DDoS 清洗服務或 CDN 防禦」,這類服務可以將攻擊流量引導到雲端清洗中心、自動辨識異常的 ACK 流量,並幫你把惡意流量擋在外面,只讓正常流量進入網站,如此可以大幅減輕主機負擔,讓網站在攻擊中也能保持穩定。如:騰雲運算 或 Cloudflare…等。
與防火牆或限速等屬於被動策略不同,Anti-DDoS 清洗服務是主動式防禦,能在攻擊發生當下即時辨識與隔離惡意流量,提供更高等級的防護。
另外,我們也可以採用有狀態防火牆或入侵防禦系統,或是設定流量限制與異常封包控制。
使用有狀態防火牆或入侵防禦系統(IPS)
有狀態防火牆可以識別是否為真正的 TCP 連線,若封包只是單純的 ACK 而沒有連線紀錄,防火牆可以直接丟棄。IPS 系統也能協助偵測異常流量。設定流量限制與異常封包控制
你也可以在伺服器或網路設備上設定限制,比如:單一 IP 封包數量上限和阻擋來路不明或偽造 IP 的封包。
雖然可以用防火牆、IPS、限速等方法協助防禦,但如果網站本身流量大,或遇到大規模 DDoS 攻擊,最可靠的方式還是使用 CDN 和 Anti-DDoS 清洗服務,這樣才能真正把攻擊隔離在邊緣,保護主站不被癱瘓。
因此,面對大規模 ACK 洪水攻擊,部署具備主動清洗與即時辨識能力的防禦服務,是保護網站穩定運作的最佳策略,這不僅能防止網站資源被濫用,也確保真正的使用者在攻擊期間仍能順利存取服務。
參考資料:
✔維基百科|確認訊息ACK 封包
✔Cloudflare|什麼是 ACK 洪水 DDoS 攻擊?| DDoS 攻擊類型
延伸閱讀:
✔TCP是什麼?TCP 工作原理與 TCP 常見的 DDoS攻擊
✔DDoS攻擊原理解析!如何防禦DDoS攻擊
✔CC攻擊是什麼?看似正常流量的攻擊也能癱瘓網站!CC攻擊特徵、影響與防禦
✔低速緩慢攻擊是什麼?DDoS攻擊手法介紹