隨著 Internet 時代的來臨,實體或虛擬的線路連接起全世界,在這之間互相產生的 Mail、訊息、資料傳送、瀏覽網站等行為,也被各式各樣的網際網路協議所規範;然而有了規範,就會有惡意人士利用漏洞來進行惡意攻擊,本文所介紹之 DDoS 即為網際網路時代常見的虛擬資訊攻擊。
DDoS 是什麼?
DDoS 全稱為 Distributed Denial of Service,中文名稱為分散式阻斷服務攻擊;為 DOS (Denial of Service) 的衍生攻擊手法。
其主要原理是以 OSI 模型中 Layer 3 (網路層)、Layer 4 (傳輸層) 與 Layer 7 (應用層) 的各種協議,通過偽造 IP(IP Spoofing)並控制殭屍電腦(Zombie Computer、BOT),將指定類型的封包或者 https/http 的 Request 封包傳輸至目標主機,導致目標主機的網路資源 (頻寬)、系統資源 (CPU、RAM) 耗盡,使目標主機無法提供服務給真正的連線者。
IP Spoofing (IP 欺騙)是什麼?
IP Spoofing 是透過修改網際網路協定(Internet Protocal)中封包的源 IP 位址,來偽裝攻擊者真正的 IP 位置,並且因轉發封包的路由器大多僅檢查目的地 IP,卻不檢查封包內的源 IP 標頭是否與來源相同;從而形成可用於攻擊之技術。
如何預防 DDoS?
IP Spoofing的防禦可通過設定防火牆或者網關,進行封包過濾(Packet Filtering),將可疑封包或者是封包內的源 IP 與實際 IP 地址不符者,則拒絕傳送。可分為外網至內網的入口過濾;與內網至外網的出口過濾。
注意此預防模式無法緩解來自真實IP(BOT)的攻擊。
- Ingress and Egress Filtering [RFC2267]
如何辨別DDoS攻擊?
1. 從單一 IP 或者某一 IP 網段而來的可疑連線請求。
2. 端點設備的紀錄上顯示大量的陌生請求。
3. 具備相同連線特徵的連線請求,例如單一地區、單一時間。
4. 機器上 CPU 與 RAM 的使用率激增。
5. 服務突然中斷、或者服務存取速度驟降。
6. 以上狀況皆有可能是遭到 DDoS 攻擊,必須排查設備端的紀錄,若有安裝 MRTG (Multi Router Traffic Grapher) 等監控軟體,或是聯繫您的 ISP 業者,取得 MRTG 圖來確認流量或 CPU 等使用狀況。
DDoS 攻擊的類別
依照 OSI 7 層的協定來進行分類,DDoS 的攻擊種類族繁不及備載,因此僅介紹最常見的攻擊手法。
- Layer 3 - IP Spoofing、IPSec、ICMP Attack、ARP Spoofing
IMCP [1] Flooding Attack
定義:最常見的是 DOS – Ping 洪水式攻擊,通過 BOT 來發送大量 Ping 的請求,若是由多台 BOT 來發送,則為 DDoS Ping 攻擊。
應對方法:目前各家公有雲幾乎都提供了 Anycast IP Load Balance 服務,可借由雲端供應商的全球大量節點先進一步處理分散 ICMP 請求;同時也可禁用伺服器的 ICMP 功能,達到防護的效果。
- Layer 4 - TCP
定義:
通過 TCP 握手協議 [2] 來進行攻擊,在一般正常的情況下:
第一步:A 伺服器會發出 SYN 封包來建立第一次的連線。
第二步:收到封包的 B 伺服器會回傳 SYN/ACK 封包來確認。
第三步:A 伺服器回傳 ACK 封包,確認建立連線。
三步驟後,連線即可建立。然而 SYN 洪水攻擊,則是使用多台 BOT,在第一步發送 SYN 後,讓目標伺服器回傳 SYN/ACK 封包後,卻不回傳 ACK 封包。
此舉是因為目標伺服器在收到 SYN 封包後,都會打開一個臨時端口來進行 Session 的維持,故可以耗盡目標伺服器的端口,達成癱瘓的目的。
應對方法:
1. 使用 Anti-DDoS 等雲端工具,將惡意流量導入清洗中心進行清洗或者導入黑洞過濾。
2. 建立 Proxy Server – 通常是防火牆,來代替原伺服器建立外部連線,確認建立連線後,才將流量導入原伺服器內。
3. 調整機器內的設定,當有新的 TCP 連線流入,則覆蓋最前面尚未建立連線的臨時埠。
定義:
三次交握後,建立了 TCP 聯接,而客戶端在主機端傳送數據結束時都會傳送 ACK 封包以確認是否有正常傳遞數據,或者順序是否正確;主機端在收到 ACK 封包時會耗費運算資源來檢查該封包的狀態與內容,若封包顯示資料未正常傳遞,會重新再傳送一次數據。
因此透過上述的機制,攻擊者可以在建立 TCP 連接後,用大量的 ACK 封包來癱瘓主機,使得正常的 ACK 封包無法得到響應。
應對方式:
透過 Anycast IP Proxy 來與客戶端進行連接,並且搭配雲端工具判斷 IP 來源是否可疑、同時進行攻擊偵測,若被攻擊,則自動將流量導入清洗中心進行近源清洗。
- Layer 4 - UDP
定義:
UDP 洪水攻擊是常見的UDP DDoS攻擊手法,由於UDP協議是一種非連線型的協議,因此攻擊者透過發送大量任意埠號且偽造IP的UDP封包給主機端,而主機收到此UDP封包,會消耗資源檢查該埠號是否有程式在接收封包;若無程序在接收該埠口的封包,則發送ICMP (Ping)給發送者。
透過這樣的機制,攻擊者使用大量殭屍機來發送UDP封包,進而造成頻寬負荷以及主機端疲於奔命。
應對方式:
在雲端平台上可透過Anycast IP來將流量導離主機端,且針對大量重複的UDP封包,各雲端節點將會進行第一層的防護措施,保障主機端的安全。
定義:
放大攻擊的原理是通過發送小型的請求,經過一些服務轉發後,響應的封包比起原先的請求封包內容還要大上許多倍,再透過 IP Spoofing 的方式,將所有響應封包轉發給受害者。
DNS 放大攻擊即為攻擊者偽裝正常的伺服器發起 DNS 查詢,再將封包內的 IP 改為受害者主機 IP,藉此讓受害者主機被塞入大量封包,導致主機服務中斷。
應對方式:
1. 增大頻寬
2. 使用 DDoS 防禦產品,清洗異常流量
3. 防火牆設定檢查封包源 IP,若異常,則不予接收。
定義:
放大攻擊的原理是通過發送小型的請求,經過一些服務轉發後,響應的封包比起原先的請求封包內容還要大上許多倍,再透過 IP Spoofing 的方式,將所有響應封包轉發給受害者。而NTP放大攻擊則是通過 NTP (Network Time Protocal) 的協定來做攻擊,由於 NTP 也是走 UDP 的協定,因此並不包含檢查機制。
NTP 攻擊的原理是透過一個叫做 MONLIST 的指令,主要用於查看 NTP 伺服器的連線狀況,並回傳與 NTP 伺服器進行過時間同步的最後 600 個主機端的 IP。因此藉由 IP Spoofing來偽造 IP,並發送Monlist指令,讓回傳的封包傳回給受害主機,就稱為 NTP 放大攻擊。
應對方法:
1. 更新 NTP Server 的版本至最新版本,避免遭惡意人士利用。
2. 防火牆 ACL 阻擋 (ACL = Access Control List)
3. DDoS 導流至清洗中心做流量清洗。
# POPULAR PLAN
我們的熱門方案
我們的 聯絡資訊
以下是我們的聯絡資訊,有任何雲端相關的專業問題歡迎隨時與我們聯繫,我們非常樂意跟你聊聊
地址
臺北市內湖區瑞光路 76 巷 67 號 3 樓
電子郵件
service@kingzone.com.tw
電話
(02) 2796-5770
也可以透過線上表單諮詢
任何雲端上的相關需求,請留下您的聯絡資訊,我們會儘速與您聯繫