Internet Control Message Protocol POD攻擊 IPv6 ICMP 網路

理解ICMPv6新協定 鞏固網管查修與資安防線

2017-04-13
本文將講解ICMP協定的運作方式,並介紹Ping、Trace及Traceroute等常見的ICMP工具,也會示範Ping工具的網路攻擊行為以及防禦的方式,以及說明最新版的ICMPv6。

若要在Windows作業系統下執行tracert指令,類似的範例如下所示:


如同剛才所提到的,這個工具利用TTL來完成檢測。每次經過一個路由器,就把TTL的值減1,直到為0,此時會傳送ICMP TTL給原本發送的網路設備。

Pathping指令使用介紹

接著介紹pathping指令的用法,這個指令是Windows作業系統下原本就有的網路檢測工具。這個指令會在一段時間之內一直傳送Echo Request封包,然後根據中間所經過的路由器傳回的封包來獲知訊息。

這個工具能夠查詢中間每個網路設備所丟失的網路封包比例,讓網路管理人員得知哪些網路設備有問題。底下是這個指令在Windows作業系統下的執行範例:


其實,每個工具都大同小異,端看個人習慣以及所要查找的訊息為何。

Trace指令使用說明

除了以上所介紹的,也可以在路由器上查看中途路由資訊的事情,這裡採用trace指令。trace指令用來顯示兩個設備之間封包真正所採用的路由路徑資訊。取得整個路徑資訊的作法如下,假設想取得由設備A到設備B之間的路由資訊,會在設備A中,發送一系列的UDP(User Datagram Protocol)封包,送往設備B的無效埠。

第一次會發送三個UDP封包到設備B,而且封包的TTL(Time to live)值都是1。因為TTL值是1,所以一旦這三個封包遇到第一個路由器,就會逾時,而這個第一個路由器會回報ICMP(Internet Control Message Protocol)的TEM(Time Exceeded Message)訊息送回給設備A,讓設備A知道說這三個封包在哪個設備中逾時了。

此時,設備A繼續發送另外三個UDP封包,這一次這三個封包的TTL值就設為2,因此這三個新的UDP封包就可以用來取得由設備A往設備B的路途中的第二台路由器的資訊,以此類推,直到送達設備B為止,而因為送達設備B時,也只是送到無效的埠,所以設備B也會回傳一個ICMP Unreachable Port Message給設備A,如此一來,設備A可以藉由這些訊息得知整條路徑的資訊。表3是trace指令的輸出結果說明。

表3 trace指令輸出結果說明

如果IP Domain Name Lookup功能被開啟的話,則因為路由器會把IP位址轉為名稱,所以trace指令可能需要更多的執行時間。

查看路由器設備的ICMP設定

路由器設備是轉發網路封包的重點設備,從路由器的設定可以獲知ICMP封包是否可以被轉發或是被處理,底下說明如何從路由器設備上查看這個設定值。假設現在要查看e0介面的設定值,就執行以下的指令:


執行指令後,所顯示的結果如下所示:


這裡將ICMP協定相關的設定值以粗體的方式表現出來,就能夠看出無論是Redirect或是Unreachable都會被傳送,但是Mark Reply則是會不會被處理。

結語

這篇文章介紹了ICMP與ICMPv6的運作原理,以及Ping、Trace、Tracert、Pathping、Traceroute等等很多不同的相關工具介紹,還有介紹Ping所帶來的網路攻擊和解決方案。雖然IPv6已經盛行已久,但是實際使用IPv6的企業網路環境還是相當少,一般來說,IPv4的數量已經足夠讓Intranet使用者使用了。即便如此,身為專業的網路管理人員,最好還是稍微了解一下比較好。

<胡凱智,目前在Solera Holdings Inc.擔任亞太區首席技術長,曾於美商Mozilla擔任全球技術專案總監,並在趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者交流建議:https://www.facebook.com/khu.page>


追蹤我們Featrue us

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

我知道了!