CPDoS攻擊是如何實施的?

CPDoS攻擊是如何實施的?

Posted by DDos on 2019-11-22 11:30:00

CPDoS攻擊針對現代Web的兩個組成部分:(1)Web服務器和(2)內容分發網絡。

 

Web服務器存儲原始網站及其內容,而CDN存儲網站的緩存副本,該副本僅按特定的時間間隔來刷新。

 

儘管CDN扮演的角色很簡單,卻是現代互聯網的重要組成部分,因為它們可以減輕Web服務器的負擔。CDN可以為一些入站用戶提供網站副本,直到CDN以新版本更新自己為止,而不是Web服務器一再計算相同的用戶請求。

 

CDN被廣泛使用。針對CDN系統的任何攻擊都可能對網站的可用性造成嚴重破壞,因而對盈利能力造成嚴重破壞。

 

在這種情況下,CPDoS的工作方式具有如下特點:

 

  • 攻擊者連接到網站,直到他的請求是生成新CDN條目的請求。

  • 攻擊者的請求含有惡意、尺寸超大的HTTP頭。

  • CDN允許該頭傳遞到合法網站,以便可以對其進行處理,並為CDN生成要緩存的網頁。

  • 尺寸超大的HTTP頭導致Web服務器崩潰。

  • 服務器生成錯誤頁面(“400 Bad Request”錯誤)。

  • 錯誤頁面緩存在CDN上

  • 訪問該網站的其他用戶將獲得錯誤頁面,而不是實際網站。

  • 緩存的錯誤會傳播到CDN網絡的其他節點,從而在合法網站造成虛假故障。

 

圖片來源:Nguyen等人

 

據研究團隊聲稱,CPDoS攻擊有三種變體,這取決於攻擊者決定使用的HTTP頭類型:

 

  • HTTP Header Oversize(HHO)

  • HTTP元字符(HMC)

  • HTTP方法重載(HMO)

 

我們不會討論每種攻擊的技術差異,因為這不在本文的討論範圍之內。想了解更多詳細信息和演示,請訪問該網站(https://cpdos.org/),或閱讀研究人員的CPDoS白皮書(https://cpdos.org/paper/Your_Cache_Has_Fallen__Cache_Poisoned_Denial_of_Service_Attack__Preprint_.pdf)。

 

 

CPDOS攻擊被認為切實可行

 

TH Koln團隊在研究CPDoS攻擊的實際可行性期間表示,他們設法對託管在多家CDN提供商的網絡上的一個測試網站進行了廣泛的緩存中毒攻擊。

 

比如說,下圖顯示了攻擊者(危險符號)對合法網站的CDN服務器(藍色標記)發動攻擊,然後將緩存的錯誤頁面傳播到其他CDN服務器(紅色標記),毒害CDN提供商網絡的大部分。

 

 

諸如上述攻擊之類的攻擊會導致合法網站的停機時間延長,給網站所有者造成經濟損失。

 

好消息是,並非所有的Web服務器(HTTP協議實現)和CDN網絡都易受攻擊。

 

據研究人員的測試顯示,下表顯示了哪些服務器+ CDN組合易受攻擊。

 

 

有緩解措施

 

幸好,目前有對付CPDoS攻擊的緩解措施。最簡單的解決辦法是,網站所有者配置其CDN服務,以便默認情況下不緩存HTTP錯誤頁面。

 

許多CDN服務提供商在儀表板中含有此類設置,因此採取這個措施並不難。

 

如果網站所有者在CDN Web儀表板中沒有控件來禁用錯誤頁面的緩存,可以通過為每種錯誤頁麵類型添加“Cache-Control: no-store”HTTP頭,從服務器的配置文件內部禁用該功能。

 

對付CPDoS攻擊的更複雜解決方案在於CDN提供商本身,提供商可能需要改動產品的工作方式。

 

據研究團隊聲稱,一些CDN提供商之所以容易受到CPDoS攻擊,是由於它們並沒有遵循互聯網緩存協議。

 

研究團隊說:“Web緩存標準僅允許[CDN]緩存錯誤代碼404 Not Found、405 Method Not Allowed、410 Gone和501 Not Implemented。”他指出CDN不應該緩存CPDoS攻擊生成的“400 Bad Request”錯誤頁面。

 

他們說:“因此,按照HTTP標準的策略來緩存錯誤頁面是避免CPDoS攻擊的第一步。”

 

採用這種方法較為複雜,需要在許多CDN提供商的後端做一些工作。在此之前,第一個對策比較容易實施。

 

由於CPDoS攻擊實際上確有可能,稍微花點力量,大多數網站所有者應該能夠保護其服務器免受任何可能的濫用現象。

 

研究人員警告網站管理員切莫忽視這個問題。據他們的測試顯示,30%的Alexa Top 500網站、10%的美國國防部域名以及從谷歌Big Query存檔獲得的3.65億個URL樣本中16%的URL可能容易受到CPDoS攻擊。