CDN很有用,但它不是萬能的!面對駭客攻擊不能只仰賴CDN!

先來說明什麼是CDN:Content Delivery Network

簡單的說,在以前沒有雲端服務時,想要服務全球各地不同地方的網路用戶,為了減少因為頻寬和連線節點造成的速度遲緩,因此就有了CDN這個服務。

透過CDN業者在全球各地機房的主機來暫存圖片、影片和各種css、js檔案(這些主機被稱為cache或proxy servers),然後各地的用戶在連線時便會自動去抓取離其最近的主機來下載這些靜態檔案,這樣就能增加用戶存取的速度。

用現實生活來比喻的話,就像一家便利商店裡面有各種商品,但同時間能夠進入店裡購買的人很有限,因為服務人力和場地大小的限制會造成結帳很緩慢…

而CDN的出現就像便利商店開了很多分店門巿一樣,同樣的商品在不同門巿都能買得到,那消費者便能到離自己最近的門巿去購買,不必繞遠路去原本的門巿買,也不必因為人多而必須等待很久才能買到…

這個比喻雖然不夠完美,但比較能夠讓人理解CDN主要的服務功能,實際的運作細節和限制就不在這裡探討。

CDN常被用來緩解龐大連線和流量的需求,並被誤解為萬能解法

從前面的例子中可以發現CDN由於它的服務特性,所以變成是和消費者(網路用戶)的第一線接觸者,可是很多人不了解CDN的能與不能,因此會誤認為所有問題都丟給CDN業者就可以解決…

例如很多企業就會以為使用了CDN和雲端服務之後,就可以不必擔心DDoS(分散式阻絕服務攻擊)的駭客攻擊、能夠避免購物網站在大量連線時會出現塞車或無法成交的問題…

事實上CDN和雲端服務確實能夠緩解「部份」DDoS的問題,但無法阻擋全部的DDoS攻擊,因為DDoS的攻擊方法有很多種,並且會區分不同協定的攻擊,而主要目的都是在癱瘓被攻擊的目標!

DDoS攻擊主要以癱瘓下列三種資源為主:

  • 塞爆頻寬(若是採用CDN和雲端服務就比較不必擔心這個問題)
  • 耗盡主機資源被(CPU、記憶體),造成主機當機、服務停擺
  • 用盡主機連線埠數量(Sockets,每台最多65536個),造成無法連線

例如使用AWS雲端服務時就能享有AWS免費提供的基本防護,但不表示就能完全阻擋DDoS攻擊,因為必須依照DDoS攻擊的手法來採取適當的防護措施,像是AWS的VPC可以擋掉UDP reflection(Layer 3)的DDoS攻擊,但無法阻擋Layer 7的DDoS攻擊。

現在CDN業者提供的服務越來越多元化,甚至連主機託管、WAF服務也都有(當然都需要另外付費),也已經算是雲端服務廠商的一種,但在資安防護也和雲端服務一樣:無法完全自動防護駭客所有攻擊!

駭客攻擊的手法不是只有DDoS而已,那只是最後的手段

現在駭客不再單純只是表現自己很厲害,會發動攻擊的主要目的有:

  • 為了癱瘓「被攻擊目標」的服務,然後用來勒索錢財,例如遊戲、電子商務網站等等。
  • 為了入侵「被攻擊目標」的主機,以用來盜取主機中的機密資訊,例如電子商務網站。
  • 入侵「被攻擊目標」的主機是為了將該主機做為傀儡機,例如物聯網設備、IP攝影機。
  • 入侵「被攻擊目標」的主機是為了將該主機的資料加密打包以進行勒索,例如NAS。
  • 入侵「被攻擊目標」的主機是為了用該主機來進行挖礦,在加密貨幣熱門時期常發生。
  • 入侵「被攻擊目標」的主機是為了用該主機來進行擴散,例如在網頁中植入惡意程式碼。

而DDoS就是用來癱瘓被攻擊目標的主要攻擊手法,台灣的金融、遊戲、電商等相關業者都很經常受到這種類型的攻擊!

而實際上駭客在進行入侵時是不會使用DDoS的攻擊,而是會採用更多、更超乎想像的攻擊手法,從收集資訊、被動掃描、主動掃描到發動攻擊、成功入侵、建立後門等等一連串的運作都有各種不同的滲透工具可使用。

例如駭客想偷取電商主機的會員和交易資料,很常用的就是使用SQL注入攻擊直接取得後台資料庫的所有資料,或是針對網站管理帳號進行暴力攻擊來取得登入的權限等等…

當使用這種攻擊手法時,滲透工具會偽裝成正常連線的用戶端(User Agent),因此CDN服務會認為這是合法的連線需求,然後就會讓它通過,把需求轉給真正提供服務的伺服器主機,此時伺服器主機就是等同被攻擊了!

不管有沒有使用CDN或雲端服務,企業的伺服器都應該要做好資安防護!

前面概略解釋了CDN、雲端服務和DDoS的一點專業知識,目的是希望可以讓更多企業明白CDN和雲端服務對於駭客攻擊的防護不是萬能、而是有限的!

CDN雖然可以隱藏背後伺服器主機的真正IP位置,來避免駭客直接跳過CDN而去攻擊背後的伺服器主機,但不論如何隱藏,真正的伺服器主機仍然會有對外的真正IP位置,這也代表駭客們一定可以直接對它發動攻擊。

有些雲端服務會提供伺服器主機和CDN的服務一起提供(例如三大公有雲業者:AWS、Azure、GCP),但是除非用的是Serverless的架構,否則企業還是一樣必須要有專人在維護伺服器主機,才能有效做好伺服器本身的資安防護!

我知道上述很多名詞會讓大家感到一陣暈,但事實上資安、雲端服務、伺服器主機等等相關的專業就是很難懂,否則就不會那麼多資安事件發生了,對吧?!

自己不懂沒關係,那就找真正懂的人來幫你!