ICMP是什麼?ICMP功能、用途與資安風險完整解析

ICMP 是協助 IP 協定進行錯誤回報、診斷與控制訊息交換的重要網路層協定,雖不負責實際資料傳輸,卻在網路穩定運作中扮演關鍵角色。當封包在網路中遭遇問題,例如目的地無法到達、TTL 時間耗盡或路由異常時,ICMP 會負責發送控制訊息通知來源端,協助排除錯誤或調整傳輸行為。
➤什麼是ICMP
➤ICMP使用案例
➤ICMP運作原理
➤ICMP的風險與攻擊手法
什麼是ICMP
什麼是 ICMP 網際網路控制訊息通訊協定 (Internet Control Message Protocol, ICMP) 是 OSI 模型層中位於第三層 (Layer 3 網路層) 的通訊規則,是 IP 協定的重要輔助元件。
網路裝置會使用這些規則來診斷並傳達網路中的資料傳輸錯誤,像是傳送者和接收者的訊息交換中發生的非預期錯誤,比如訊息過長或封包順序錯亂導致接收端無法重組資料,此時接收者就會使用 ICMP 通知傳送者訊息錯誤並要求重新傳送訊息。
ICMP 的主要工作不是傳輸資料,而是回報錯誤、診斷網路狀況與協助控制資料流動,同時 ICMP 也會確定數據是否在正確的時間抵達目的,這讓 ICMP 成為錯誤報告和網路傳輸資料測試的重要環節。
舉例來說,當我們在終端機使用 ping 測試設備是否可連線,實際上背後就是透過 ICMP 的 echo-request 和 echo-reply 封包來進行回應。
ICMP的用途包括:
回報封包傳輸錯誤 (如目的地無法到達)
提供網路診斷功能 (如 ping)
協助路由器與主機進行網路路徑最佳化建議 (如 redirect 訊息)
ICMP使用案例
ICMP 是電腦網路中不可或缺的網路層協定,它提供了一套標準方式,讓網路設備可以回報連線狀況、錯誤訊息或其他網路相關的狀態資訊,無論是路由器還是一般終端裝置,只要連上網路,都能處理 ICMP 訊息,且 ICMP 目前已支援 IPv4 和 IPv6,能夠適用於各種現代網路環境,在 IPv6 網路中,ICMPv6 甚至擔負了更多功能,包括路由器通告、位址解析等。
以下幾個是常見的 ICMP 實務應用案例。
錯誤報告
ICMP 可以報告網路中的錯誤,比如無法順利抵達目的、逾時或封包分段問題,這個訊息對於無連線通訊模型的使用者資料包協定(User Datagram Protocol, UDP)尤為重要。
※傳送 UDP 封包時,可能會遺失封包或傳遞封包檢查碼等錯誤,若發生此狀況,接收者就會發送 ICMP 錯誤訊息回傳給傳送者通知問題。
診斷
我們可以用 ICMP 進行網路診斷,ICMP 最常用於 Ping 和路徑追蹤命令。
Ping 用來測試目標裝置是否可連線,會發送 ICMP echo-request 請求並等待 echo-reply 回應,以確認設備可用性與延遲情況。路徑追蹤則利用逐步遞減的 TTL 值 (存活時間Time To Live),讓每個途中經過的路由器回傳 ICMP 訊息,藉此顯示封包從來源到目的地的完整路徑,有助於分析網路效能與問題位置。
網路安全
ICMP 可用來偵測非法網路流量,並確保只允許合法封包通過,防火牆可根據 ICMP 類型來判斷是否允許或封鎖該流量,網管人員也常用 ICMP 工具來監控裝置狀態、連線情況,甚至發現未知或可疑設備。
此外,異常的 ICMP 流量模式也可能是未經授權活動的警訊,有助於早期偵測資安威脅。
流量控管與路由優化
除了錯誤回報和診斷用途,ICMP 也能用來協助路由器進行流量調整與路由優化,例如 ICMP Redirect 訊息可告知主機改用更佳的下一跳路由器,幫助網路節點動態調整傳輸路徑,以提升整體傳輸效率。
※注意:ICMP Redirect 若未妥善控管,亦可能被攻擊者濫用來誘導流量到惡意節點。
存活監測
ICMP 也可作為設備存活監測的工具。
許多企業或資料中心的監控系統會定期對伺服器或網路設備發送 ICMP echo 請求(Ping),若在一定時間內未收到回應,即視為設備異常或離線,可自動觸發告警或啟用備援機制。
防火牆與網管政策調整依據
透過分析 ICMP 回應類型與頻率,網路管理員可以針對特定異常來調整防火牆規則、重新配置網路結構,或排除 MTU(最大傳輸單元) 設定錯誤、路由環境環節等問題。
滲透測試與弱點掃描工具常用
許多滲透測試工具會用 ICMP Ping 或 Ping Sweep 掃描整個網段,以探測哪些主機在線。
資安團隊可利用這些工具進行合法內網盤點、弱點評估,反之攻擊者也可能用此技術預先繪製攻擊地圖,因此在防禦策略中需妥善管理 ICMP 回應行為。
ICMP運作原理
ICMP 不是用來傳輸資料的協定,而是協助 IP 協定在資料傳輸時進行的錯誤回報、診斷與控制資訊的交換,當網路中的裝置 (如路由器或主機)遇到資料傳遞問題時,就會透過 ICMP 傳送「控制訊息」給來源端,以便調整後續行為或偵錯。
ICMP的運作方式會像這樣:
A 主機想要 ping B 主機
→ A 會發出一個 ICMP echo-request 封包。如果 B 成功收到封包,就會回應一個 echo-reply。
若 B 不存在,或途中封包超過 TTL(存活時間Time To Live) 時間,則會有其他裝置 (如路由器)發送對應的 ICMP 訊息回給 A 主機。
這整個過程就像是郵差投遞信件時,若找不到地址或投遞過久,就會有一封「退信通知」送回給寄件人,讓對方知道問題發生在哪裡。
ICMP 的這種設計讓網路系統可以自動通報錯誤與協調調整,對於維持資料傳輸的效率和穩定性是非常重要的存在,不過這種特性也可能會被攻擊者惡意利用進行 DDoS 攻擊。
ICMP的風險與攻擊手法
雖然 ICMP 是網路診斷與錯誤回報的重要工具,但也因為 ICMP 不須建立連線且回應機制單純的特性,成為許多駭客與攻擊者利用的漏洞之一!因此若缺乏適當的防護措施,ICMP 封包可能會被用來進行 DDoS攻擊。
ICMP Flood 攻擊/ ICMP 洪水攻擊
攻擊者會大量發送 ICMP echo-request 封包,導致目標主機需要不斷的處理和回應封包,占用 CPU、記憶體與頻寬資源,最終導致服務中斷,成為網路層常見的 DDoS 攻擊手法之一。
風險:
被攻擊主機處理 ICMP 回應導致資源耗盡
正常使用者無法順利連線
無狀態協議使得來源難以驗證

延伸閱讀:【DDoS攻擊】ICMP 洪水攻擊是什麼?原理、情境比喻與防禦方法
Smurf 攻擊
Smurf 攻擊是一種放大式攻擊,攻擊者會將 ICMP echo-request 封包來源 IP 偽造成目標主機,並發送給網路區段內的 IP 廣播地址,造成大量設備同時對目標主機回應,形成 Smurf 反射式洪水攻擊。
※ 現代作業系統與路由器大多已預設禁用對廣播地址的回應,因此防範 Smurf 攻擊的效果已大幅提升,但仍應加以驗證。
風險:
攻擊封包經過放大後更具威脅性
被反射設備無從得知自己已被利用
攻擊難以追蹤來源
延伸閱讀:【DDoS攻擊】Smurf 攻擊是什麼?原理、情境比喻與防禦方法
Ping of Death (死亡之 Ping)
這種攻擊方式是將 ICMP 封包故意構造為超過正常大小,藉此觸發目標系統的緩衝區溢位漏洞,使其當機或重新啟動。
風險:
老舊系統可能無法處理過大封包
容易造成服務崩潰或系統宕機
ICMP 用於網路偵測與探測
攻擊者經常使用 ICMP 掃描、探測目標主機是否存在、是否開啟回應服務,這個方式有助於後續進行攻擊規劃。
風險:
洩漏內部網路架構
揭露設備存活狀態與可用資源
增加社交工程或入侵成功率
企業是否應重視 ICMP 防護?
ICMP 攻擊雖然看起來很簡單,但在大規模和自動化工具加上網路殭屍的配合,仍可能造成相當的傷害,許多企業和政府單位也會針對 ICMP 封包進行限制,例如以下。
停用 ICMP echo 回應 (無法被 ping)
使用防火牆或 IDS/IPS 監控 ICMP 封包異常
限制 ICMP 封包頻率與大小
封鎖廣播 ICMP 封包以防 Smurf 攻擊
總結:ICMP 的優缺點
ICMP 在電腦網路中的角色有優點也有缺點,一方面 ICMP 是網路診斷與錯誤回報基礎的工具另一方面 ICMP 卻也可能成為攻擊者有機可乘的缺口之一。ICMP 本身不是威脅,但不當配置卻可能成為威脅的入口。
ICMP 為網路設備提供了即時、標準化的溝通機制,大幅提升網路管理效率與透明度,對網路管理員來說,ICMP是不可或缺的協助工具,而對系統監控來說,ICMP 提供了判斷設備連線狀態的關鍵依據。
不過同時,也因為 ICMP 協定的回應機制簡單、驗證機制薄弱的缺點,導致攻擊者會利用這些特性來發動 DDoS 攻擊,如 ICMP 洪水攻擊 或 Smurf 等攻擊手法,若沒有妥善控管,這將會讓網路暴露在潛在的 DDoS 或掃描偵測風險中。
因此,ICMP 的使用應在診斷效能與資安風險之間取得平衡,企業與管理者應視實際需求,制定合適的 ICMP 防護政策,例如限制特定類型的 ICMP 封包、配置 WAF 或 IDS 進行流量監控、避免開放廣播地址回應等,確保既能有效管理網路,又不讓 ICMP 成為攻擊破口。
參考資料:
✔AWS|什麼是 ICMP?
✔Cloudflare|什麼是網際網路控制訊息通訊協定 (ICMP)?
延伸閱讀:
✔TCP是什麼?TCP 工作原理與 TCP 常見的 DDoS攻擊
✔UDP 是什麼?UDP 工作原理與 UDP常見的 DDoS攻擊
✔DDoS攻擊原理解析!如何防禦DDoS攻擊
✔哪些網站或系統容易被DDoS攻擊?容易被DDoS攻擊的網站類型風險與防禦