在上個文章有講到針對同時間大量請求的服務網站可以透過負載平衡來分擔網站的承載量,但是遇到惡意的請求流量時該怎麼辦,我們知道要讓網頁服務出現異常除了網站本身的漏洞導致的異常還有就是讓該網站突然收到大量請求讓網站無法反映處理,這時效能不夠的設備就會停擺無回應,這樣就能達到攻擊者的目的了,當然這種攻擊方式也是最極為普遍的DOS服務阻斷的攻擊方式這類型針對單一設備來源發起的攻擊方式現在許多設備都有不錯的抵禦方式,另一種攻擊方式是更為兇猛的DDOS服務阻斷這種攻擊方式是多設備來源發起的攻擊方式,其設備發起攻擊源大量並可能包含世界各地的設備都有可能成為攻擊源針對同一個網站發起攻擊,這種攻擊會產生及大量的流量去單一網站上,這時候需要更強大的設備去承載這樣的流量撐不住的話網站就會掛掉,這種情況要能應付這種設備需要很大的財力,所以這時候企業需要雲端的資源來應付這種龐大的流量。
本次的LAB會採用FortiGate和CloudFlare來針對DOS服務阻斷的測試.
準備事項:
- kali 滲透作業系統
- FortiGate
- TEST Web服務
- CloudFlare 雲端服務
這次主要的環境和上次的負載平衡差不多基於上次測試環境改良

伺服器的負載平衡狀態(正常情形)瀏覽器訪問該網站

接著利用kali 裡面的 hping3 來製造洪水攻擊對網站發動DOS

洪水衝擊中

這時候我們看FortiGate 的負載平衡視窗,我們發現第一台機器一直在乘載服務請求

奇怪為何第二台沒有是負擔呢? 因為目前這樣的情況下該網站還能正常響應,所以不會觸發負載平衡的機制,我們稍微調整一下負載平衡的規則,將第一台連線數上限調整超過會切換到第二台。

我們可以發現流量在第二台開始有了計數

前面所講的是基於負載平衡的應對方式,接著我要來講到FortiGate 的 DOS防禦,這個功能要去進階功能開關啟用喔

建立一個DOS政策 只要從WAN 進來的都會套用該策略,我們將閥值調成5000,當單一來源請求連線數超過5000時自動封鎖該IP,有人會想問當正常人去訪問時會不會也被封鎖,其實基本上正常用戶在訪問的會話連線數大約落在幾百左右,出現這麼大的連線數極有可能是惡意行為。

我們可以發現發動洪水攻擊這台沒有動作了?這是為何?

原來是觸發了DOS政策,把攻擊來源進行封鎖了,這時候網站就沒有流量進來了,FortiGate已經把洪水攻擊的流量給封鎖了,這樣就保護了網站免受惡意的請求。


以上是使用FortiGate DOS功能來防禦威脅的功能,下面我們來講到利用雲端服務CloudFlare 來保護網站
首先一定要有買CloudFlare的服務,然後在上面建立一條DNS A NAME 指向到你的開服務的對外IP,這邊我用blueteam來指向我的伺服器,記得Proxy一定要打開,這樣流量才會透過CloudFlare 處理喔!

接者在 CloudFlare的 DDOS 功能給啟用

準備就緒回到kali開始進行Dos攻擊

基本上流量透過CloudFlare 我們可以發現部分請求流量 rtt 顯示 0ms 目前推測經過CDN後直接回應 可能這部分的請求並沒有被真正送到後端或許在CloudFlare那邊已經梳理掉了

看起來實際回應的請求並沒有很多可能跟CDN快取有關

結論,原本預計會觸發CloudFlare的DDOS保護不過看起來大部分的流量都被處理了,因此一直沒觸發DDOS保護,實際觸發成功得話會出現要你是不是機器人的驗證,不過這邊火力不足所以觸發不了。
經過這次的測試我們可以發現經過雲端CloudFlare可以有效的保護網站不被弄掛,其他的方案雖然都能達到目的但是我前面有說到如果攻擊方火力強大,並不是幾個設備能擋得了的,我是阿俊 謝謝觀看