使用CDN會增加被網路攻擊的隱患?別說,還真會

為了提升訪問質量,許多網站會使用CDN服務。在多達數人的印象中,CDN不僅能夠降低網路擁塞、提高使用者訪問響應速度和命中率,而且因為很多使用者的訪問網站內容時,不再經過源站,因而CDN還具有隱藏源站IP的作用。

使用CDN會增加被網路攻擊的隱患?別說,還真會

既然能隱藏源站IP,駭客要想發動網路攻擊,首先必須找到源站IP,攻擊難度上升不少,是不是意味著使用CDN可以提升網站安全性呢?

答案是肯定的,但隨著CDN的發展,使用CDN的的確確也會帶來一些隱患。

CDN科普

鑑於一些同學可能不瞭解什麼是CDN,我們簡單的回顧一下。

CDN也叫內容分發網路。CDN服務提供商會在全世界各大城市搭建CDN快取伺服器,當網站使用CDN服務時,網站的文字、圖片等內容就會快取到這些伺服器上,訪客訪問網站時,離訪客最近的CDN伺服器負責響應使用者的請求,從而達到降低網路擁塞、提高使用者訪問相應速度和命中率的作用。

舉一個簡單的例子,A公司經營腳踏車銷售業務,總部位於北京,在各大城市都開設了分店,使用者可以選擇線下購買,也可以選擇線上下單。

使用CDN會增加被網路攻擊的隱患?別說,還真會

位於廣州的腳踏車愛好者從線上渠道購買某型號山地車,A公司並不會從北京發貨,因為這樣物流時間太長,運輸途中還可能發生各種意外。最好的選擇,是通知位於廣州的實體店,直接從廣州發貨,送到客戶的手裡。

這個例子中,A公司總部是源站,廣州分公司是CDN快取伺服器。客戶向網站發出訪問請求,源站不負責響應該請求,而是由CDN快取伺服器響應用後的請求。CDN工作過程大抵如此。

使用CDN會增加被網路攻擊的隱患?別說,還真會

CDN可以分為自建和他建。上面的例子屬於自建,如果是他建的CDN,相當於代理商模式,顧客從代理商手中買山地車,A公司的廣州分公司負責發貨。這時候,A公司相當於CDN服務商,代理商相當於網站。

我們這裡討論的是第三方CDN,因為自建CDN成本實在太高,絕大部分企業使用的都是第三方的CDN,比如蔚可雲的CDN就是第三方CDN。

使用CDN存在的安全隱患

說完CDN,進入正題。使用CDN,的確會存在安全隱患,而且這個隱患還可能無法避免。

CND服務主要承載著兩個方面的任務:效能提速和網路防護。

效能提速方面,第三方CDN會快取網站資料,並在訪客訪問時直接而返回快取,以減輕源站伺服器的壓力。

在這個過程中,CDN只能快取明文資料,不能快取密文資料。因為如果能快取密文資料,就相當於發動一次重放攻擊。

使用CDN會增加被網路攻擊的隱患?別說,還真會

什麼是重放攻擊?

舉一個簡單的例子:A想向B轉賬100萬,一般來說如果駭客C篡改轉賬資料,將100萬改成轉到自己的名下,銀行系統很容易發現,以為A可以看到轉賬確認單,銀行系統也會進行確認。

但如果C事先收集了其他人給B轉賬100萬留下的密文資料,再用這份密文資料,替換掉A轉給B應該收到的資料,A就會看到假的確認單,欺騙系統。

如果CDN快取密文資料,就會出現類似的效果。

以TLS/SSL現行的加密機制,是不會允許重放攻擊發生的,第三方CDN根本無法繞開這一加密機制。

使用CDN會增加被網路攻擊的隱患?別說,還真會

如果你想要CDN快取密文資料,就必須承受CDN發動中間人攻擊的風險。

網路防護方面,CDN可能還具有檢測惡意流量的功能,以現有的技術來說,一部分駭客攻擊可以在不解密流量的情況下進行檢測,比如SYN Flood。不過也有一部分需要解密後才能檢測,比如與部分應用層的DoS攻擊。

使用CDN會增加被網路攻擊的隱患?別說,還真會

如果要求CDN防禦這類攻擊,必然會將一定量的資訊暴露給CDN,因為暴露的資訊越多,檢測也會越徹底。但與此同時,CDN發生攻擊的風險也越大。

不過我們換一個視角看,這種隱患不太可能發生。

CDN服務商本質上就是中介,獲取使用者和網站兩者的信任,是它存在的基石。就好像銀行不會主動暴露客戶資料一樣。如果CDN服務商發動這類攻擊,無疑等於自殺。