互聯網控制消息協議 (ICMP)
何謂網際網路控制訊息協定 (ICMP)?
網際網路控制訊息協定 (ICMP) 是網路裝置用來溝通資料傳輸問題的通訊協定。在 ICMP 定義中,ICMP 的主要使用方式之一是判斷數據使否在正確時間達到目的地。這讓 ICMP 成為錯誤報告程序和測試網路傳輸資料狀況的重要環節。不過,它也可以用來執行分散式阻斷服務 (DDoS) 攻擊。
ICMP 在網路通訊中的運作方式,與木匠在建造房屋時和材料供應商店之間的通訊類似。店鋪發送鉚釘、底板、屋頂材料、隔熱等,認為每個組件都會按照正確的順序到達
例如,當木匠開始構築牆面時,他訂購了 28 片木板、10 磅的鐵釘和一扇門。他需要先收到鐵釘,再來是木板,最後才是門。材料供應商店會依序運送,但先抵達的卻是門。這樣是無法建起房屋的,因為需要先有牆壁,才能搭建門板。因此,木匠會要求商店重新寄送鐵釘和木板,而商店會重新寄送,要求司機按不同路線送貨。
ICMP 的運作方式就像木匠與商店之間的溝通。它會將來自收件者的訊息傳送給寄件者,告知應該送達資料的資訊。如果資料無法到達接收端,或以錯誤的順序抵達,ICMP 會讓發送端知道,以便重新發送資料。在此情況下,ICMP 便只是資料通訊資訊的通訊協定,但不會管理資料本身
此外,ICMP 在簡述網路傳輸架構的七層開放系統互連 (OSI) 模型並沒有專屬層級。瞭解 ICMP 可幫助您理解為何 ICMP 是如此寶貴的工具,同時明白其是怎樣被用於對企業造成威脅的 DDoS 攻擊,也是非常重要的。
ICMP 用途為何?
ICMP 的首要用途是回報錯誤。每當有兩台裝置透過網際網路連接時,如果某些資料未如期到達,就可以透過 ICMP 將錯誤訊號從接收裝置發回傳送裝置。舉例來說,極大型封包的資料對路由器而言可能太大而無法傳輸。此時,路由器會捨棄資料封包,並將 ICMP 訊息傳送給發送端,通知它此問題。
ICMP 的另一個常見用途是作為評估網路效能的診斷工具。路徑追蹤和 ping 都會使用 ICMP。路徑追蹤和 ping 是有關資料是否已成功傳輸的訊息。使用路徑追蹤時,資料封包到達目的地的裝置會顯示在報告中。這包括處理資料的實體路由器
此路徑追蹤也會告訴您,資料從一個裝置傳到另一個裝置需要多少時間。每次資料在路由器之間移動時,該旅程稱為跳站。路徑追蹤所顯示之資訊可用來找出導致延誤之路徑上的裝置。
ping 與路徑追蹤類似,但更簡單。它能回報資料在兩點之間移動所需的時間。ICMP 幫助 ping 在過程中使用 ICMP 回應請求和回應。
ICMP 也能用來損害網路效能。透過 ICMP 洪水攻擊、Smurf 攻擊和死亡之 ping 攻擊來完成,使網路上的裝置不堪負荷而無法發揮正常功能。
ICMP 如何發揮作用?
ICMP 與網際網路協定 (IP) 第 6 版 (IPv6) 不同之處,在於它與傳輸控制協定 (TCP) 或用戶資料元協定 (UDP) 無關。因此,傳送 ICMP 訊息之前,不需要將裝置與其他裝置連接
例如,在 TCP 中,正在通訊的兩個裝置需要先進行數個步驟的交握。交握完成後,資料即可從寄件者傳送至接收者。此資訊可使用 tcpdump 等工具進行觀察
ICMP 則不一樣。ICMP 不會構成連線。訊息會直接傳送。此外,與 TCP 和 UDP 規定傳送資訊的連接埠方式不同,ICMP 訊息中不會指示接收端裝置的特定連接埠。
ICMP 如何用於 DDoS 攻擊?
在 DDoS 攻擊中,ICMP 通常以幾種不同方式使用:透過 ICMP 洪水攻擊、死亡之 Ping 攻擊、或 Smurf 攻擊。
在 ICMP 洪水攻擊中,攻擊者嘗試傳送大量 ping,導致目標裝置無法處理所有 ICMP 回應請求封包。由於每個封包都需要處理和回應,因此會消耗裝置的資源,造成正當使用者無法獲得裝置的服務。
死亡之 Ping 攻擊是指攻擊者向裝置發送無法處理的極大 ping。接下來,機器可能會當機或凍結。資料封包在朝目標方向移動時會被分段,接著在重組階段重新組合。封包到達目標後,會灌滿緩衝區導致裝置故障。對網路中較舊的設備而言,死亡之 Ping 攻擊更危險。
在 Smurf 攻擊中,攻擊者會傳送一個 ICMP 封包,其中內含偽裝或假冒的 IP 位址。當網路中的設備回覆時,每個回覆都會傳送至為裝成的 IP 位址,而目標會被大量的 ICMP 封包塞爆。這種攻擊通常也只是舊型設備會發生的問題。
Fortinet 如何提供協助
Fortinet FortiDDoS 防護可以保護您的網路,防止 DDoS 攻擊中 ICMP 遭濫用情形。FortiDDoS 會檢查裝置行為,並標記不尋常的 ICMP 訊息活動,進而阻止攻擊。FortiDDoS 具備主控台、防護設定檔、全域設定和好用的圖形化使用者介面,讓使用更加便利
為了節省 IT 團隊的時間和精力,FortiDDoS 將偵測到的誤報數量降至最低。此外,它還可同時檢查數十萬個不同面向的資料,是能更全面地對抗 DDoS 攻擊的工具。此外,FortiDDoS 可以產生詳細報告和圖形概述網路活動。
常見問題解答
ICMP 用途為何?
網際網路控制訊息協定 (ICMP) 用於報告錯誤和執行網路診斷。在錯誤報告程序中,當資料未如預期傳送時,ICMP 會從接收端發送訊息給傳送端。在診斷程序中,會使用 ICMP 傳送 ping 和路徑追蹤所使用的訊息,以提供資料傳輸方式的相關資訊。
ICMP 是否與 ping 相同?
雖然 ICMP 和 ping 有關,但他們是兩個不同的東西。ICMP 是控制裝置之間訊息傳送方式的通訊協定。ICMP 通訊協定發送的回應請求和回覆通常稱為 ping。因此,雖然 ping 是使用 ICMP 產生,但它不是 ICMP。
ICMP ping 如何發揮作用?
ICMP ping 程序是測試網路上兩個裝置是否可以彼此連接的一種方式。也可以用來檢查網路封包遺失和延遲。ping 命令會將 ICMP 回應的請求傳送到網路裝置。接著該裝置會立即回覆 ICMP 回應。然後,軟體可以分析此資料,以確定是否延遲以及是否按預期方式傳輸資料。