Elaine's Blog 朝著 senior 前進的工程師

DDoS 分散式阻斷服務攻擊

2019-07-03

攻擊者一般藉攻擊令目標的伺服器及目標因請求過多,伺服器不勝負荷而導致癱瘓。

DoS (Denial of Service Attack) 阻斷服務攻擊

  • 白話
    • 便利商店有一個大媽霸佔櫃檯一直問東問西,讓後面的顧客都無法結帳
  • 原理
    • 傳統式的 DoS 攻擊原理為駭客使用較強大的單一電腦去攻擊使用者的 IP,屬於一對一的攻擊狀態,其目的是使網路服務提供者的服務完全癱瘓

DDoS (Distributed Denial of Service Attack) 分散式阻斷服務攻擊

  • 白話
    • 找一千個人擠進便利商店買東西,讓其他顧客都無法結帳
  • 原理
    • 當駭客使用網路上多個被攻陷的電腦作為「殭屍」向特定的目標發動「阻斷服務」式攻擊時,稱為分散式阻斷服務攻擊
      • 殭屍來源可能是中了木馬程式的電腦
  • 影響
    • 經濟損失
    • 形象損失
    • 用戶不滿
    • 資料被竊
  • 攻擊現象
    • 網路異常緩慢 (打開文件或訪問網站)
    • 特定網站無法訪問
    • 無法訪問任何網站
    • 垃圾郵件的數量急遽增加
    • 無線或有線網路連接異常斷開
    • 長時間嘗試訪問網站或任何網路服務時被拒絕
    • 伺服器容易斷線、卡頓
  • 攻擊方式
    1. 頻寬消耗型攻擊
      • ICMP (Internet Control Message Protocol) floods、Ping flood (Ping of death)
        • 透過發送 Ping 指令或 ICMP 廣播等大量的封包進而造成系統或服務的癱瘓
      • UDP (User Datagram Protocol) floods
        • 因為 UDP 協定的封包不需要經過三次交握,利用此特點進行大量 UDP 封包發送
      • Teardrop 攻擊
        • 每個資料要傳送之前,該封包都會經過切割,每個小切割都會紀錄位移的資訊,以便重組,但此攻擊模式則利用捏造位移資訊,造成重組時發生問題,造成錯誤
    2. 資源消耗型攻擊
      • SYN flood
        • 利用網路 TCP 三次交握特點持續進行 SYN 請求封包發送,並且不帶 ACK 確認封包,讓伺服器無止盡暫存 SYN 封包,進而達到阻斷服務的目的
      • Application-level floods
        • 主要是針對軟體應用層,以大量消耗系統資源為目的,透過向網路應用程式伺服器提出無節制的資源申請,阻斷正常的網路服務
      • 弱點攻擊
        • 針對受害單位提供服務的弱點進行攻擊。此類攻擊的特性是攻擊者使用小量特製的封包或操作就可以癱瘓整個服務,在所利用之弱點尚未被公開前相當難以預防,但是在安裝修補程式後就可以完全免疫
  • 防護手法
    • Firewall 防火牆
      • 防火牆可以設定簡單規則來允許或阻擋特定通訊協定、埠號、IP 地址
      • 複雜的且混合式的攻擊將無法透過簡單的防火牆規則來作防禦,過程中可能阻擋正常合法的封包流量進而影響服務的可用性
    • Switch 交換器
      • 大多數的交換器有一定的速率限制與 ACL 能力
      • 有些交換器提供了偵測和修復 DDoS 攻擊
    • Router 路由器
      • 路由器具備速率限制與 ACL 能力
      • 大多數的路由器很容易於 DDoS 攻擊下不堪負荷
      • 可利用路由器或防火牆上啟動入口過濾,防止路由器傳送來源地址跟收到介面不符的封包,但無法阻止在相同網路上的機器發起欺騙攻擊,可防止機器對外部網路發起欺騙攻擊
    • Application front end hardware 應用程式前端硬體
      • 一種智能型硬體設備,它置放於流量達到應用程式伺服器之前,且可與網路上的路由器與交換器結合,藉此來分析所有進入應用程式伺服器之前的封包流量
      • 此防禦手法對於特定型態攻擊模式相當有效,如小規模的 SYN flood、或針對特定系統弱點攻擊
      • 另可提供監控警示作用
    • IPS base prevention 入侵防禦系統
      • 對於特徵明顯攻擊是可以有效防禦的
      • 但攻擊趨勢已轉向以合法流量掩飾非法行為的攻擊方式,對於此類的攻擊 ISP 的防禦顯得不足
    • DDS based denfense 阻斷服務防禦系統
      • 具備阻擋以連線方式形成的 DDoS 攻擊
      • 能夠便是來自通訊協定式 (例如 Teardrop 與 Ping of death) 與頻率式 (Rate-based) 的攻擊
    • Blackholing and Sinkholing 黑洞與水坑
      • Blackholing
        • 所有送往被攻擊的 DNS 或 IP 流量導進到黑洞(null 或不存在的伺服器)
        • 可能會降低服務可用性
      • Sinkholing
        • 將流量導進有效 IP 地址來進行分析
        • 面對滿頻的攻擊,則效率降低
    • Clean pipes 清洗管線
      • 將所有流量導進「clean center (清洗中心)」或「scrubbing center(洗滌中心)」
      • 並透過 Proxies、Tunnels 等方式將非法與正常合法流量區分出來

結論

目前要完全杜絕 DDoS 是不可能的,必須根據不同的攻擊手法來做適當的調整,但還是可以採取以下措施來做防範

  • 採用高性能的網路設備
  • 盡量避免 NAT 的使用
  • 充足的網路頻寬保證
  • 升級主機硬體設備
  • 安裝專業抗 DDoS 防火牆

參考資料


Content