阻斷服務(denial of service)
機密性與完整性講的是守住秘密、偵測竄改——但還有第三個安全目標,可用性,以及一整個專門瞄準它的攻擊家族。想像有人不停地打一家商店唯一的電話線、把它塞爆,讓真正的顧客永遠打不進來。商店的資料安全且沒被讀過,但服務實際上已經死了。阻斷服務(DoS)攻擊對一台電腦或網路做的正是這件事:它讓服務對合法使用者變得無法使用,不是靠闖進去,而是靠壓垮或堵塞它。
DoS 攻擊的運作方式是耗盡目標運作所需的某種有限資源。那可能是網路頻寬(用大量垃圾流量灌爆連結,使真正的封包過不去)、連線狀態(開出數千條半完成的連線塞滿伺服器的連線表——也就是 SYN 洪泛)、CPU 或記憶體(送出做起來便宜、回答起來昂貴的請求),或某種應用程式特有的上限。共通的想法是不對稱:攻擊者花一點點力氣,去消耗受害者大量的容量,把系統推進過載,使它再也無法服務任何人。
為什麼重要:可用性是一個真實的安全性質,而 DoS 直接攻擊這個性質——它不偷也不改資料,它阻斷對資料的存取,這可能同樣具破壞性(一家連不上的銀行、醫院或緊急專線)。防禦手段包括超額配置容量、過濾或限速濫用流量,以及及早偵測攻擊。困難之處,以及誠實的難點是:單一一個攻擊來源相對容易識別並封鎖,所以攻擊者升級到同時使用數千個來源——也就是分散式阻斷服務(DDoS)——這防禦起來困難得多,因為那場洪泛看起來像來自四面八方。
攻擊者從一台強力機器,以遠超過一個小網站所能處理的速率送出請求。伺服器的 CPU 與連線插槽飽和,真正的訪客逾時,網站實際上離線了——即使沒有任何資料被偷或被改。這就是 DoS:可用性被阻斷。
壓垮某種有限資源,直到沒有人能被服務。
DoS 攻擊的是可用性,不是機密性或完整性——沒有東西被讀或被改,只是存取被阻斷。而單一來源比分散式版本(DDoS)容易封鎖得多,這就是攻擊者走向分散式的原因。