前言:當前運用網路及系統中既有合法功能與服務的惡意攻擊不少,本文在此要深入探討的ICMP攻擊,即為運用合法「網際網路控制訊息通訊協定」(Internet Control MessageProtocol;ICMP)與“Ping”等常見的網路測試指令,進行癱瘓目標系統及主機之DoS攻擊的典型代表。本文主旨在於探討如何在防禦力較弱的企業端點電腦上,利用系統既有的防護機制或相關設定,達到有效阻擋ICMP DoS攻擊的安全要求
ICMP是TCP/IP協定群中的1個子協定,其主要功能是在網路上各IP主機與路由器之間,傳遞控制資訊之用,透過這些控制資訊,管理者可以清楚掌握網路通順、主機與路由連接等實際狀況。其中,網管人員最常用來測試主機與特定目標系統間的順暢狀況之“Ping”指令,即為ICMP協定最典型的實際應用之一。
如此方便易用的“Ping”指令與ICMP協定,自然也成為駭客展開惡意攻擊的現成利器,因此,ICMP攻擊遂成為與其他各種TCP DoS、UDP DoS、DDoS等阻斷式服務攻擊分庭抗禮的另1種DoS攻擊手法。
目前常見的ICMP攻擊手法大致有2大類,一為“Ping ofDeath”攻擊,另一則是Smurf攻擊,平常網管人員所下達的“Ping”指令,會向目標主機送出1個“EchoRequest”資訊要求,目標主機收到後,便會回應1個“Echo Reply”訊息給發送主機。其中,“Ping ofDeath”攻擊就是透過在“Echo Request”資訊內之“OptionDatat”中,塞入大量資料的手法,致使目標系統無法正常處理而造成當機的情形。
至於Smurf攻擊就更可怕了,因此它是透過容量小、但數量大的封包流,進行長期性網路頻寬消耗之攻擊。其主要攻擊手法是以假冒目標主機來源位址資訊要求之名義,向中介的路由器發送“EchoRequest”廣播封包,該路由器於是將該資訊要求發送給網段內的所有電腦,這些電腦收到要求訊息後,會同時對目標主機發送數量龐大的“EchoReply” 訊息包,目標主機在無法消化處理龐大資訊流的同時,只有走向當機癱瘓的命運。
檢視Windows防火牆的ICMP協定是否停用
過去對於企業內部的端點PC,尤其是端點筆記型電腦而言,在沒有良好的防火牆機制保護下,很容易遭到惡意攻擊者所發動的ICMP攻擊,但是自從Windows XP ProSP2直接內建更完善的Windows防火牆之後,使用者只要透過該防火牆的預設機制,即可有效杜絕各種可能的ICMP攻擊風險。
由於長久以來,駭客透過簡單的Ping指令進行網路探測,並進一步發動ICMP攻擊的情形實在太過泛濫,所以Windows防火牆特別將ICMP協定作為重點防禦的對象,在預設狀態下,該防火牆全面禁止任何ICMP資訊要求之傳入,並且禁止對任何傳入的ICMP資訊要求進行回應。
只要使用者確定已啟動Windows防火牆,該防火牆會預設將ICMP協定停用,如果使用者不放心,可以依照以下步驟,檢查電腦的ICMP是處於開啟或關閉的狀態(僅限Windows XP Pro SP2系統):
1.進入「開始功能表/控制台」,雙擊「Windows防火牆」元件。(進入「開始功能表/控制台/資訊安全中心」,點取其中的「Windows防火牆」,一樣可開啟該元件。)

圖說:執行「Windows防火牆」元件。
2.打開「Windows防火牆」視窗,先在「一般」標籤下,檢查Windows防火牆是處於開啟還是關閉狀態。如果是關閉的話,請先點取「開啟」,將防火牆打開。

圖說:勾選開啟防火牆。
3.接下來再切換到「進階」標籤之下,點選「ICMP」下的「設定值」鍵。

圖說:點選ICMP「設定值」鍵。
4.進入「ICMP設定值」視窗,檢查欄框中各ICMP資訊要求的回應類型設定選項,尤其是「允許傳入的回應要求」選項,是否處於勾選狀態。如果已勾選,則必須取消勾選,如此才能將ICMP完全關閉。

圖說:檢查ICMP設定是否有勾選。
兼顧Windows防火牆既有安全防護 同時確保內網仍可使用ping指令
上述「一筆勾消」式的選定方式,將使一些已開啟共用服務的企業端點電腦,將無法再透過Ping指令,檢查網路是否可通、主機是否可連上等網路狀況之相關檢視作業。事實上,最佳的方式,應該是使用者既可確保防範來自外部駭客之ICMP攻擊的同時,又可保證內網依然可用Ping指令來探測網路連接狀況。使用者可以下列2種方式的各項設定步驟,達到這樣的需求:
‧方法1
1.執行「控制台」中的「Windows防火牆」元件,在該視窗中切換到「進階」標籤下。
2.在「網路連線設定值」下的「區域連線」雙擊滑鼠左鍵。

圖說:雙擊「區域連線」。
3.進入「進階設定」視窗,並切換到「ICMP」標籤下,勾選「允許連入回應要求」選項,再按「確定」鍵,如此即可在內網正常開啟ICMP協定,並可正常透過Ping指令探測內網及主機。

圖說:勾選「允許連入回應要求」選項。
‧方法2
1.依照方法1的步驟1,開啟「Windows防火牆」視窗,確定「不允許例外」選項是處於非勾選狀態;若已勾選,請刪除勾選。

圖說:確定「不允許例外」沒有勾選。
2.切換到「例外」標籤,在「程式和服務」欄中,勾選「檔案及印表機共用」選項。

圖說:勾選「檔案及印表機共用」。
3.接著再雙擊「檔案及印表機共用」選項,抑或點取「編輯」鍵,打開「編輯服務」視窗,檢視每個開啟的TCP與UDP埠所適用之領域,是否為「子網路」。

圖說:確定領域是否為「子網路」。
4.如果所屬領域欄位中顯示的並非「子網路」,而是「任一」的話,則在特定服務名稱上(例如TCP445)雙擊滑鼠左鍵,進入「變更領域」視窗,並勾選「只有我的網路(子網路)」選項。如果使用者想要指定各項連接埠服務至特定電腦上,也可以勾選「自訂清單」,在其下的欄位中,輸入特定電腦的IP位址,然後按「確定」鍵即可。

圖說:勾選「子網路」選項。
無個人防火牆機制的電腦 阻擋ICMP攻擊的設定方法
對Windows XP ProSP2的作業環境而言,由於有內建Windows防火牆,因此可透過上述方式來防範可能的ICMP攻擊。但是為數不少的企業內部,恐怕仍充斥著許多採用舊作業系統的端點PC或筆記型電腦,因此,系統中很可能沒有任何個人防火牆之安全保護機制。但即使如此,這類電腦只要藉由適當的設定,仍然可以具備有效抵抗ICMP攻擊的能力。以下即為相關設定步驟:
1.點取「開始功能表/連線到/顯示所有連線」,隨即開啟「網路連線」視窗,將滑鼠游標移到其中的「區域連線」圖示上,按右鍵並點取下拉視窗中的「內容」。

圖說:點取「區域連線」之「內容」。
2.接著開啟「區域連線內容」視窗,在「Internet Protocol(TCP/IP)」項目上雙擊滑鼠左鍵(或點取其下的「內容」鍵)。

圖說:雙擊「Internet Protocol(TCP/IP)」項目。
3.出現「Internet Protocol(TCP/IP)內容」視窗,然後點選其中的「進階」鍵。

圖說:點選「進階」鍵。
4.在跳出的「進階TCP/IP設定值」視窗中,切換到「選項」標籤,接著在「TCP/IP篩選」設定項上雙擊滑鼠左鍵(抑或按其下「內容」鍵)。

圖說:雙擊「TCP/IP篩選」。
5.進入「TCP/IP篩選」視窗中,先確定「啟用TCP/IP篩選(所有的介面卡)」項目是否有勾選,如果沒有,請勾選;接著分別在「TCP連接埠」、「UDP連接埠」欄位中勾選「只允許」。

圖說:勾選「只允許」。
6.接著再分別於以上各連接埠與IP通訊協定欄中,新增限定的連接埠號與通訊協定,例如「TCP連接埠」中可新增HTTP上網必備的80埠、FTP的20/21埠、SMTP郵件的25埠、POP3郵件之110埠;至於「UDP連接埠」則可新增用於DNS之53埠、用於RIP之520埠等。新增完各埠號後按「確定」,再逐步於之前所開啟的各個視窗中按「確定」,最後系統會要求重開機。

圖說:新增只允許之埠號。
7.重開機後,進入並執行「控制台/系統管理工具/本機安全性原則」工具,接著出現「本機安全性設定值」視窗,將滑鼠游標移至左欄位最下筆之「在本機電腦上的IP安全性原則」上點取右鍵,選取下拉視窗中的「所有工作/管理IP篩選器清單和篩選器動作」。

圖說:選取「管理IP篩選器清單和篩選器動作」。
8.接著會跳出名為「管理IP篩選器清單和篩選器動作」視窗,此時,使用者必須新增1個全新的IP篩選清單,接著,在其中的「管理IP篩選器清單」標籤下,點取「新增」,然後在緊接著跳出的「IP篩選器清單」視窗之「名稱」欄,將該清單取名為「阻擋ICMP攻擊」。
9.取好名稱後,如果使用者不喜歡安裝精靈,可先取消勾選該視窗中的「使用新增精靈」,然後再點取「新增」。

圖說:命名並點取「新增」。
10.接著,畫面會跳出「篩選器內容」視窗,然後在「來源位址」下點選「任何IP位址」,在「目的地位址」下點選「我的IP位址」。

圖說:點選來源及目的位址。
11.切換到「通訊協定」標籤,在「請選取通訊協定的類型」下點選「ICMP」,然後再按「確定」鍵。

圖說:點選「ICMP」。
12.接下來再回到「管理IP篩選器清單和篩選器動作」視窗,切換到「管理篩選器動作」標籤,先取消勾選「使用新增精靈」,再點選「新增」。

圖說:新增管理篩選器。
13.接著出現「新增篩選器動作內容」視窗,點選其中的「阻擋」,如此一來,就完成了1個可針對所有ICMP資訊要求的篩選安全性原則與相對應的安全措施。

圖說:點選「阻擋」。
14.回到「本機安全性設定值」視窗,將滑鼠右鍵移到「在本機電腦上的IP安全性原則」上並按下右鍵,點選下拉視窗中的「建立IP安全性原則」。

圖說:點選「建立IP安全性原則」。
15.接著會出現「IP安全性原則精靈」,點選「下一步」,然後在接著出現的視窗中,將「名稱」取名為「ICMP資訊要篩選器」,再依畫面指示一直點選「下一步」,最後再點選「完成」。

圖說:取名「ICMP資訊要篩選器」。
16.接下來的主要設定工作,在於將設定好並命名為「ICMP資訊要篩選器」的IP安全性原則,與之前於步驟8當中建立好的「阻擋ICMP攻擊」清單,以及步驟13設定好的安全措施-「阻擋」,做一完美的連結後,即可大功告成。
其作法很簡單,在緊接著跳出的「ICMP資訊要篩選器內容」視窗中,取消勾選「使用新增精靈」,再點選「新增」,然後在「新增規則內容」視窗中,勾選「阻擋ICMP攻擊」。

圖說:勾選「阻擋ICMP攻擊」。
17.接著在同一視窗下切換至「篩選器動作」標籤,勾選之前設定好的「阻擋ICMP」,再按「確定」,所有設定工作於焉完成,如此一來,系統即可有效提升對各種可能之ICMP攻擊的防禦能力。