DDoS 分散式阻斷服務攻擊 殭屍網路 惡意軟體 資安 Hping3

瞬間巨流量乃至利用協定弱點 Kali Linux又一強力工具

實作學習DDoS攻防原理 運用Hping3模擬阻斷攻擊

本文將針對常見的DDoS攻擊進行介紹,講述現代DDoS的攻擊手法、類型與對應的防禦方式,並以近來所發生的駭客組織攻擊事件為樣本標的,透過駭客的角度,運用Kali Linux的Hping3工具進行DDoS攻擊實作,從實作過程中更加了解此種攻擊的過程與細節。

網站由伺服器管理,連上網站的過程實際上是在向伺服器發送請求索取資料,再由伺服器端回傳資料內容至使用者端。為了服務使用者,伺服器會以一定的頻寬發放給使用者建立連線。而這個連線過程並非無中生有,而是需要以一定成本去建立的設備。

當這個設施的使用容量到達極限時,將會造成網路癱瘓,若非特定優惠促進使用者連上購物網站消費,抑或是開放購票系統而有了搶票的風潮,一般來說,伺服器可以負荷日常的需求。然而,有人因此利用此機制,對伺服器發起攻擊,就像流入大量人潮一樣,將伺服器的頻寬占滿,癱瘓一般使用者的連線服務,即所謂的阻斷服務攻擊(Denial-of-Service,DoS)與分散式阻斷服務攻擊(Distributed Denial-of-Service,DDoS)。

認識分散式阻斷服務攻擊(DDoS)

分散式阻斷服務攻擊(DDoS)的原理是利用大量流量侵占網路頻寬,癱瘓網路,造成網路終止,讓使用者無法順利上網或存取服務。DDoS攻擊就像惡意造成道路上的塞車,以防止正常車輛抵達所需的目的地。同時利用多個大量的節點,針對某一目標進行攻擊,稱為DDoS攻擊。反之,只用一個節點做出攻擊,則稱為阻斷服務攻擊(Denial-of-Service Attack,DoS)。

如圖1所示,DDoS即是指利用多個節點發動DoS攻擊,「分散式」阻斷服務攻擊使用多個節點來實施惡意攻擊,因為可以設定與調整的項目更多,因此DDoS攻擊相較於DoS攻擊更難防禦,也是更普遍的攻擊形式。DDoS作為一種傳統的攻擊手法,對此已上演多次的資安攻防戰,攻擊手法也隨時代的推進而更加地日新月異且詭譎多變,因此近年來還是會有諸多企業組織遭受到DDoS攻擊而導致資安災害的案例,例如2024年,駭客組織NoName057對多國發動的網路攻擊事件,而台灣也不例外,在短短4天發動45起DDoS攻擊,影響對象包括地方稅務機構、區域民航站、主計總處、財金相關機關及部分電信業者等等,為此數發部與資安署啟動資安聯防體系以因應此次資安攻擊事件。

圖1  DDoS與DoS對照圖。

若上述案例未能即時啟動防護機制,勢必蒙受巨大損失且危害到國家的網路與資訊安全,可見DDoS攻擊在當今仍不容小覷,更須加強嚴防。

DDoS常見類型

一般來說,DDoS攻擊是以侵占網路資源,利用數量優勢癱瘓目標電腦或伺服器的攻擊方式。而其從歷史上發跡至今日以有20餘年,從最初僅有一台電腦發動DoS攻擊,逐步衍生出如表1中的各種攻擊樣態的DDoS攻擊。這些攻擊模式可以被分為以下三種類型:

巨流量攻擊(Hyper-volumetric Attacks)

巨流量攻擊(Hyper-volumetric Attacks)是最為常見、容易發動的攻擊形式,攻擊者往往先利用惡意軟體感染大量電腦,組成殭屍網路(Botnet),並單向操控受感染的電腦個別發動DoS攻擊,耗盡目標和網際網路之間的可用頻寬,嘗試造成壅塞,是利用一般網路不可負擔的流量占滿頻寬的一種DDoS攻擊方式。而透過使用放大形式的攻擊,則能更有效地將大量資料傳送至目標。

以DNS放大攻擊(DNS Amplification Attack)為例,如圖3所示,DNS放大攻擊其原理是將電腦向DNS伺服器詢問網址時回傳的資料導向目標伺服器,用以達成占滿頻寬的目的。

圖3  DNS放大攻擊示意圖。

就好比A攻擊者用B受害者的手機號碼打電話,向店家索取商品資訊,請求店家確認好資訊後回電,而當店家確認好資訊回電時,他會回電B受害者,並回復大量資訊。透過一則簡單的請求來生成大量資料發送給受害者,進而造成受害者的網路或服務中斷。

如圖4所示,攻擊者向已受控制的殭屍電腦下達開始攻擊指令;如圖5左側所示,向DNS伺服器發出偽造的DNS請求封包,偽造成受害者的IP位置作為發送封包的來源位置進行資料查詢;如圖5右側所示,DNS伺服器向遭偽造IP位址的目標伺服器回傳Domain查詢資料。

圖4  攻擊者向已受控制的殭屍電腦下達開始攻擊指令。
圖5  偽造受害者IP位置行使DNS放大攻擊。

攻擊者透過不斷重複上述步驟,就能夠向目標伺服器發送大量資料,藉此阻斷其正常服務,也由於DNS主機回傳到目標主機之封包大小,因為包含更多資訊,將會大於殭屍電腦所發送的封包大小,攻擊過程中流量具有放大的效果,故稱其為DNS放大攻擊。

應用層攻擊(Application Layer Attack)

如圖6所示,係指針對OSI模型中第7層應用層的DDoS攻擊,常見網路的請求(例如HTTP GET和HTTP POST等)就發生在這一層。透過針對目標伺服器產生大量的請求,使其消耗大量資源以致系統癱瘓,在使用者端執行單一HTTP請求僅消耗少量計算資源,但目標伺服器上,為了做出回應需要消耗較多運算資源才能生成一個網頁,兩者之間是不成比例的。

圖6  應用層攻擊示意圖。

應用層攻擊特別容易奏效,因為攻擊流量與正常流量難以區分,就算殭屍網路大量的HTTP請求,也會被認為是合法的流量。而且除了難以阻擋外,應用層攻擊不僅會占滿頻寬,還會消耗伺服器的運算資源。

以HTTP洪水攻擊(HTTP Flood Attack)為例,此攻擊方式最簡單的攻擊演練,就是拿一塊5元硬幣,卡住鍵盤上的〔F5〕鍵,即重新整理快捷鍵,使其不斷地發送請求給伺服器端。此時,若是多台電腦同時執行這個動作,就是HTTP洪水攻擊。透過重新整理向伺服器端發送大量HTTP請求,並以此淹沒伺服器,造成阻斷服務。所以,常見的案例就是當一群人進行網路選課或是網路搶票時,就會造成伺服器當機。如圖6所示,駭客仿效此模式,利用已被惡意軟體控制的電腦,向目標伺服器發送特製的GET或POST請求,使得伺服器不堪負荷,因而導致崩潰。

通訊協定攻擊(Protocol Attack)

通訊協定攻擊(Protocol Attack)又稱作狀態耗盡攻擊(State-exhaustion Attack),是利用OSI模型第3層和第4層的弱點,占用網路或應用程式伺服器資源,造成一般使用者服務被阻斷。

以SYN洪水攻擊(SYN Flood Attack)為例,主要目標在消耗所有可用的伺服器資源,使合法流量無法與伺服器建立連線。其工作原理是利用TCP三項交握的特性:如圖7①所示,首先傳送初始的SYN封包,此時伺服器為了與封包來源的電腦建立連結,如圖7②所示,會回傳一個SYN-ACK封包,並等待再次收到ACK封包。如圖7③所示,正常的TCP三項交握會在電腦第二次回傳ACK封包後成功連線,而SYN洪水攻擊看中此特性,故意不回復SYN-ACK封包的建立連線請求,如圖8所示,讓伺服器的可用連接埠處於半開的狀態,進而造成伺服器資源被占用。

圖7  TCP三項交握演示圖。
圖8  SYN洪水攻擊演示圖。

DDoS偵測

從上述內容中所提及的DDoS攻擊種類,得以知曉DDoS攻擊可選擇針對的攻擊層面有多種選擇,攻擊者可以僅鎖定一台私人電腦,也可鎖定一座公司架設的網路基礎建設。其惡意發動的時機有可能是某間知名品牌的新品發布時,抑或是政治發表敏感話題引起輿論時,而像是遊戲業、電信業者也常是DDoS攻擊的目標對象。當DDoS攻擊時,其常見的徵兆有下述幾項:

1. 網路流量異常增加,但全都來自相同的IP位址或範圍。

2. 網路變慢或容易連線中斷,載入網站的時間較長。

3. 網路無法連線

DDoS攻擊的大量封包會伴隨著異常指標及特徵,此時可以利用深度封包檢測(Deep Packet Inspection,DPI)鎖定異常流量,將具有特定設備類型、地理位置、Web 瀏覽器版本、IP位置、異常流量頻率的封包進行篩選,區分出正常與不正常流量。

DDoS攻擊防禦

在上述內容中,已經介紹了DDoS攻擊的種類及偵測方式,接著說明如何防禦此類型的攻擊手法。DDoS攻擊是以發送請求為開端的攻擊模式,因此可以從網路防火牆配置及網路基礎設施著手進行防禦措施,以下從三種面向分述防禦方式:

提升網路承載能力

能夠抵擋DDoS攻擊的最基本方式,就是使網路頻寬能夠不被DDoS攻擊的請求封包占滿,因此可以從兩個方向著手進行防禦。

1. 提高網路頻寬:將頻寬提高到足以抵擋急遽升高的流量。這是能夠提高犯罪門檻最直觀的一種方式,但購買頻寬會耗費巨額費用,因此僅為最為基本的防護措施。

2. 控制∕減緩網路流量:引入內容傳遞網路(Content Delivery Network,CDN),利用內含的負載平衡機制,將網路流量均攤到不同伺服器,以減緩單一伺服器遭受請求的數量。並且快取技術讓使用者以更低的流量存取網路,進而降低大量封包侵占頻寬的效率。

軟硬體設施配置

在軟硬體設施配置上,可以採取以下的措施:

1.黑洞路由(DDoS Blackhole Routing):使用一條無法到達任何主機的公路由,將攻擊封包丟棄、忽略。

2. 速率限制:限制每個IP位址的單位時間內能夠發送請求的數量。

3. 反向伺服器(Reverse Proxy):利用反向代理伺服器隱藏伺服器的真實IP位址,避免連線直接接觸到內部主機。

4. 網路流量清洗(Flow Cleaning):將流量倒入清洗系統,剔除、過濾異常的流量。

制定長期防護策略

建議制定以下幾項長期防護策略:

1. 下架閒置網頁:閒置或無用的網頁,特別是那些並未經常更新或被使用的網站,可能成為DDoS攻擊的潛在目標。這些網頁因為缺乏監管和維護,容易被攻擊者利用。如果下架這些閒置的資源,除了可以減少暴露面,讓攻擊者無法輕易找到攻擊目標外,還能降低伺服器的資源消耗,讓主要服務保持穩定運行。

2. 定期防護演練:定期進行DDoS防護演練有助於確保企業或組織能在實際攻擊發生時快速做出反應。透過模擬真實情況,網路管理者可以測試防護系統的效能,檢視應變流程的適用性,並找到潛在的漏洞。這樣的演練能夠確保團隊成員熟悉應對流程,從而在攻擊來臨時減少反應時間,最大程度降低損失。

情境模擬演練

阿暐和阿明是同班同學,某次他們想要玩一款多人線上遊戲,並在遊戲中相互比拚技巧,然而阿明的電腦因為不明原因而無法連上多人對局,做為電腦小白的阿明決定上網搜尋解決方法,並照著網路教學的方法將自身電腦的防火牆設定做變更。

得知消息的阿暐雖然有警告阿明不要為了一款遊戲而隨意修改預設的防火牆設置,避免被入侵的風險,然而阿明依然把玩遊戲作為第一優先,並將許多預設的安全防護措施關閉,於是阿暐決定給阿明一個深刻的教訓,運用異常流量的攻擊,讓阿明得知亂動防火牆設定的後果。

環境準備

為了執行計畫做準備,阿暐在他的電腦建置相關的軟體環境與系統,以下是他所安裝的軟體與系統:

‧Virtual Box(https://www.virtualbox.org/)

‧Kali Linux(https://www.kali.org/get-kali/)

‧Windows 10(https://www.microsoft.com/zh-tw/software-download/windows10)

建置好作業環境後,阿暐先偽裝自己電腦的MAC位址,以免被阿明發現,阿暐利用macchanger指令來實行偽裝措施。阿暐在開啟Kali Linux以後,如圖9所示,選擇Root Terminal Emulator,以便後續使用指令時的操作。如圖10所示,輸入Kali Linux的預設密碼「kali」,成功登入後,輸入指令將不再額外詢問使用權限。

圖9  在Kali Linux選擇終端機的最高權限。
圖10  使用Kali Linux最高權限須輸入主機密碼「kali」。

接著,阿暐在終端機輸入「ifconfig」,查詢自己的網路卡名稱及MAC位址,得知為eth0及08:00:27:21:b1:d0。為了macchanger變換MAC位址順利使用,阿暐在終端機輸入「ifconfig eth0 down」,將網路卡關閉。然後,在終端機輸入「macchanger -s eth0」,再度確認MAC位址,確定為08:00:27:21:b1:d0。

緊接著,在終端機輸入「macchanger -r eth0」,將自己的MAC位址設置為隨機生成的MAC位址de:4e:5a:b6:64:a6,如圖11所示。

圖11  將自己的MAC位址設置隨機生成的MAC位址。

最後,阿暐在終端機輸入「ifconfig eth0 up」,將自己的網路卡重新打開,恢復上網狀態。

如圖12所示,再次在終端機中輸入「macchanger -s eth0」,確認自己的網路卡MAC位址已改成de:4e:5a:b6:64:a6。

圖12  可見MAC位址已改成de:4e:5a:b6:64:a6。

進行完偽裝程序後,阿暐著手啟動Kali Linux作業系統中內建的阻斷服務攻擊工具「Hping3」,並將目標端口對準阿明安裝Windows 10作業系統的電腦進行攻擊。在進行阻斷服務攻擊之前,阿暐先熟悉使用方法與操作模式,Hping3的說明如下所述。

Hping3介紹

Hping3屬於一種命令列的破解工具,需要透過指令來達成干擾網路流量的目的,在表2當中列出了在執行阻斷服務攻擊的常用指定參數。

阿暐在閱讀完相關的使用說明以後,首先鎖定阿明的Windows主機系統的IP位址,已知阿明的主機位址是172.20.10.13(情境中使用Windows 10虛擬機模擬阿明的電腦系統),接著阿暐使用Hping3來攻擊阿明的主機。

照著先前做過的步驟,阿暐在開啟Kali Linux以後,首先選擇Root Terminal Emulator,以便後續使用指令時的操作。輸入Kali Linux的預設密碼,成功登入後,之後輸入的指令將不再額外詢問使用權限。

在前置作業準備完成後,阿暐開始使用Hping3對阿明的電腦實施SYN洪水攻擊。可以使用以下的參考指令進行攻擊,若有其他需要,也可參考表2的參數表,客製化攻擊模式:

hping3 -S --rand-source [目標主機 IP] -p [目標埠] --flood

阿暐接著在Kali Linux的終端機輸入指令,如圖13所示,指定發送「SYN封包」,並隨機偽造封包來源IP位址,其目標主機IP位址為「172.20.10.13」,目標埠為「port:135」,以密集的方式大量發送請求:

圖13  Hping3的操作畫面與發送封包的結果。

hping3 -S --rand-source 172.20.10.13 -p 135 --flood

為了更加確認自己的攻擊有發送成功,阿暐使用WireShark側錄自己發動攻擊的結果,從圖14中可以得知,Hping3成功發動了大量封包的請求到阿明的主機(IP位址為172.20.10.13)。

圖14  利用WireShark側錄封包的結果。

之後阿明操作電腦時,發現自己的網路異常延遲,並且總是無法順利登入遊戲網站,他將此事告訴阿暐後,他才坦白自己就是造成此現象的原因,並藉此告誡阿明要將自身的防火牆設定好,才不會因此遭到網路異常流量的攻擊。至此之後,阿明謹慎地設置好自身的防火牆設定,不再私自亂動這些設定,並且將Windows Defender防火牆的設定復原。

結語

在本文的情境模擬及實作演練中,利用macchanger工具偽造自身的MAC位址,以免被發現攻擊者的身分,接著使用Hping3這項Kali Linux內建的攻擊工具,讓大家從實作DoS攻擊的過程中了解攻擊者可以在短時間內造成高流量的網路攻擊,讓目標主機的電腦無法順利上網,藉此更加明白DDoS攻擊的原理來加以預防,並了解DDoS攻擊可能帶來的嚴重後果。

<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)中央警察大學資訊密碼暨建構實驗室 & 情資安全與鑑識科學實驗室(ICCL and SECFORENSICS)1998年成立,目前由王旭正教授領軍,並致力於資訊安全、情資安全與鑑識科學, 資料隱藏與資料快速搜尋之研究,以為人們於網際網路(Internet)世界探索的安全保障(https://hera.secforensics.org/)。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!