關閉

隨著Internet時代的來臨,實體或虛擬的線路連接起全世界,在這之間互相產生的Mail、訊息、資料傳送、瀏覽網站等行為,也被各式各樣的網際網路協議所規範;然而有了規範,就會有惡意人士利用漏洞來進行惡意攻擊,本文所介紹之DDoS即為網際網路時代常見的虛擬資訊攻擊。
 

DDoS是什麼?

DDoS全稱為 Distributed Denial of Service,中文名稱為分散式阻斷服務攻擊;為DOS (Denial of Service)的衍生攻擊手法。

原理:

其主要原理是以OSI模型中Layer3(網路層)、Layer4(傳輸層)與Layer7(應用層)的各種協議,通過偽造IP(IP Spoofing)並控制殭屍電腦(Zombie Computer、BOT),將指定類型的封包或者https/http的Request封包傳輸至目標主機,導致目標主機的網路資源(頻寬)、系統資源(CPU、RAM)耗盡,使目標主機無法提供服務給真正的連線者。

詳見下圖:
DDoS防禦

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的攻擊種類族繁不及備載,因此僅介紹最常見的攻擊手法。

Layer3 - 包括IP Spoofing、IPSec、ICMP Attack、ARP Spoofing
a.ICMP[1] Flooding Attack:

定義:最常見的是DOS - Ping洪水式攻擊,通過BOT來發送大量Ping的請求,若是由多台BOT來發送,則為DDoS之Ping攻擊。
應對方法:目前各家公有雲幾乎都提供了Anycast IP的Load Balance服務,可借由雲端供應商的全球大量節點先進一步處理分散ICMP請求;同時也可禁用伺服器的ICMP功能,達到防護的效果。

Layer4 - TCP
a.SYN洪水攻擊

定義:

通過TCP握手協議[2]來進行攻擊,在一般正常的情況下:

第一步:A伺服器會發出SYN封包來建立第一次的連線。

第二步:收到封包的B伺服器會回傳SYN/ACK封包來確認。

第三步:A伺服器回傳ACK封包,確認建立連線。

三步驟後,連線即可建立。然而SYN洪水攻擊,則是使用多台BOT,在第一步發送SYN後,讓目標伺服器回傳SYN/ACK封包後,卻不回傳ACK封包。

此舉是因為目標伺服器在收到SYN封包後,都會打開一個臨時端口來進行Session的維持,故可以耗盡目標伺服器的端口,達成癱瘓的目的。

請見下圖:

DDoS防禦

應對方法:

1. 使用Anti-DDoS等雲端工具,將惡意流量導入清洗中心進行清洗或者導入黑洞過濾。
2. 建立Proxy Server - 通常是防火牆,來代替原伺服器建立外部連線,確認建立連線後,才將流量導入原伺服器內。
3. 調整機器內的設定,當有新的TCP連線流入,則覆蓋最前面尚未建立連線的臨時埠。

 
b.ACK洪水攻擊

定義:

三次交握後,建立了TCP聯接,而客戶端在主機端傳送數據結束時都會傳送ACK封包以確認是否有正常傳遞數據,或者順序是否正確;主機端在收到ACK封包時會耗費運算資源來檢查該封包的狀態與內容,若封包顯示資料未正常傳遞,會重新再傳送一次數據。

因此透過上述的機制,攻擊者可以在建立TCP連接後,用大量的ACK封包來癱瘓主機,使得正常的ACK封包無法得到響應。

應對方式:

透過Anycast IP Proxy來與客戶端進行連接,並且搭配雲端工具判斷IP來源是否可疑、同時進行攻擊偵測,若被攻擊,則自動將流量導入清洗中心進行近源清洗。

Layer4 - UDP
a.UDP Flood

定義:

UDP 洪水攻擊是常見的UDP DDoS攻擊手法,由於UDP協議是一種非連線型的協議,因此攻擊者透過發送大量任意埠號且偽造IP的UDP封包給主機端,而主機收到此UDP封包,會消耗資源檢查該埠號是否有程式在接收封包;若無程序在接收該埠口的封包,則發送ICMP (Ping)給發送者。

透過這樣的機制,攻擊者使用大量殭屍機來發送UDP封包,進而造成頻寬負荷以及主機端疲於奔命。

應對方式:

在雲端平台上可透過Anycast IP來將流量導離主機端,且針對大量重複的UDP封包,各雲端節點將會進行第一層的防護措施,保障主機端的安全。

b.DNS放大攻擊

定義:

放大攻擊的原理是通過發送小型的請求,經過一些服務轉發後,響應的封包比起原先的請求封包內容還要大上許多倍,再透過IP Spoofing的方式,將所有響應封包轉發給受害者。

DNS放大攻擊即為攻擊者偽裝正常的伺服器發起DNS查詢,再將封包內的IP改為受害者主機IP,藉此讓受害者主機被塞入大量封包,導致主機服務中斷。

應對方式:

1. 增大頻寬
2. 使用DDoS防禦產品,清洗異常流量
3. 防火牆設定檢查封包源IP,若異常,則不予接收。

c.NTP放大攻擊

定義:

放大攻擊的原理是通過發送小型的請求,經過一些服務轉發後,響應的封包比起原先的請求封包內容還要大上許多倍,再透過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導流至清洗中心做流量清洗。

 

結語

以上僅為DDoS的基本介紹,攻擊種類與手法也僅為冰山一角。

在現今的網路時代,DDoS攻擊非常容易遇到,在面對攻擊時,我們要如何做到不讓服務中斷,避免業務上的損失,是我們應該要注意的方向。

Higher Cloud

海爾雲端提供了多雲的服務,且同時專精網路、基礎架構,因此針對不同的DDoS攻擊有著不同架構規劃,並且成功協助諸多客戶抵擋了DDoS攻擊。

歡迎聯繫海爾雲端,會由專人協助,透過了解貴司基礎架構,提供相對應的雲端防禦方案。

註[1] 網際網路協議中的ICMP協定,主要是傳送請求,請目標伺服器提供網路問題的反饋;利用這些資訊來協助IT人員可以針對所發生的問題作出判斷,並實施相對應的措施解決。