懂得網(wǎng)絡(luò)的人都知道我們常用Ping命令來檢查網(wǎng)絡(luò)是否暢通的一個簡單的手段,,可是這個Ping也能給Windows系統(tǒng)帶來不可預(yù)測的災(zāi)難,那就是Ping入侵即是ICMP入侵,,后果是相當(dāng)嚴重的,。所以這里我們要詳細討論一下ICMP攻擊方法及防范措施。
ICMP攻擊及欺騙技術(shù)
所謂:“知己知彼,,百戰(zhàn)不怠”,,要學(xué)會防范就必須知道攻擊是怎樣的。使用ICMP攻擊的原理實際上就是通過Ping大量的數(shù)據(jù)包使得計算機的CPU使用率居高不下而崩潰,,一般情況下黑客通常在一個時段內(nèi)連續(xù)向計算機發(fā)出大量請求而導(dǎo)致CPU占用率太高而死機,。基于ICMP的攻擊可以分為兩大類,,一是ICMP攻擊導(dǎo)致拒絕服務(wù)(DoS);另外一個是基于重定向(redirect)的路由欺騙技術(shù),。
服務(wù)拒絕攻擊是最容易實施的攻擊行為,目前,,基于ICMP的攻擊絕大部分都可以歸類為拒絕服務(wù)攻擊,,其又可以分成3個小類:
針對帶寬的DoS攻擊
針對帶寬的DoS攻擊,主要是利用無用的數(shù)據(jù)來耗盡網(wǎng)絡(luò)帶寬,。Pingflood,、pong、echok,、flushot,、fraggle 和 bloop是常用的ICMP攻擊工具。通過高速發(fā)送大量的ICMP Echo Reply數(shù)據(jù)包,,目標(biāo)網(wǎng)絡(luò)的帶寬瞬間就會被耗盡,,阻止合法的數(shù)據(jù)通過網(wǎng)絡(luò)。ICMP Echo Reply數(shù)據(jù)包具有較高的優(yōu)先級,,在一般情況下,,網(wǎng)絡(luò)總是允許內(nèi)部主機使用PING命令,。
這種攻擊僅限于攻擊網(wǎng)絡(luò)帶寬,單個攻擊者就能發(fā)起這種攻擊,。更厲害的攻擊形式,,如smurf和papa-smurf,可以使整個子網(wǎng)內(nèi)的主機對目標(biāo)主機進行攻擊,,從而擴大ICMP流量,。使用適當(dāng)?shù)穆酚蛇^濾規(guī)則可以部分防止此類攻擊,如果完全防止這種攻擊,,就需要使用基于狀態(tài)檢測的防火墻,。
針對連接的DoS攻擊
針對連接的DoS攻擊,可以終止現(xiàn)有的網(wǎng)絡(luò)連接,。針對網(wǎng)絡(luò)連接的DoS攻擊會影響所有的IP設(shè)備,,因為它使用了合法的ICMP消息。Nuke通過發(fā)送一個偽造的ICMP Destination Unreachable或Redirect消息來終止合法的網(wǎng)絡(luò)連接,。更具惡意的攻擊,,如puke和smack,會給某一個范圍內(nèi)的端口發(fā)送大量的數(shù)據(jù)包,,毀掉大量的網(wǎng)絡(luò)連接,,同時還會消耗受害主機CPU的時鐘周期。
還有一些攻擊使用ICMP Source Quench消息,,導(dǎo)致網(wǎng)絡(luò)流量變慢,,甚至停止。Redirect和Router Announcement消息被利用來強制受害主機使用一個并不存在的路由器,,或者把數(shù)據(jù)包路由到攻擊者的機器,,進行攻擊。針對連接的DoS攻擊不能通過打補丁的方式加以解決,,通過過濾適當(dāng)?shù)腎CMP消息類型,,一般防火墻可以阻止此類攻擊。
基于重定向(redirect)的路由欺騙技術(shù)
首先我們應(yīng)該知道,,微軟的Windows98和NT系統(tǒng)都保持著一張已知的路由器列表,,列表中位于第一項的路由器是默認路由器,如果默認路由器關(guān)閉,,則位于列表第二項的路由器成為缺省路由器,。缺省路由向發(fā)送者報告另一條到特定主機的更短路由,,就是ICMP重定向,。
攻擊者可利用ICMP重定向報文破壞路由,并以此增強其竊聽能力,。除了路由器,,主機必須服從ICMP重定向,。如果一臺機器想網(wǎng)絡(luò)中的另一臺機器發(fā)送了一個ICMP重定向消息,這就可能引起其他機器具有一張無效的路由表,。如果一臺機器偽裝成路由器截獲所有到某些目標(biāo)網(wǎng)絡(luò)或全部目標(biāo)網(wǎng)絡(luò)的IP數(shù)據(jù)包,,這樣就形成了竊聽。通過ICMP技術(shù)還可以抵達防火墻后的機器進行攻擊和竊聽,。
據(jù)筆者觀察,,目前所有基于ICMP路由欺騙的技術(shù)都是停留在理論上的論述, 沒有找到相關(guān)的具體攻擊實例和原程序
配置防火墻以預(yù)防攻擊
一旦選擇了合適的防火墻,,用戶應(yīng)該配置一個合理的安全策略,。一般除了出站的ICMP Echo Request、出站的ICMP Source Quench,、進站的TTL Exceeded和進站的ICMP Destination Unreachable之外,,所有的ICMP消息類型都應(yīng)該被阻止。
現(xiàn)在許多防火墻在默認情況下都啟用了ICMP過濾的功能,。如果沒有啟用,,只要選中“防御ICMP攻擊”、“防止別人用ping命令探測”就可以了,。
配置系統(tǒng)自帶的默認防火墻以預(yù)防攻擊
雖然很多防火墻可以對PING進行過濾,,但對于沒有安裝防火墻時我們?nèi)绾斡行У姆婪禝CMP攻擊呢?先面我們介紹一下配置一下系統(tǒng)自帶的默認防火墻的預(yù)防攻擊的方法。方法如下:
第一步:打開在電腦的桌面,,右鍵點擊“網(wǎng)上鄰居→屬性→本地連接→屬性→Internet協(xié)議(TCP/IP)→屬性→高級→選項-TCP/IP篩選-屬性”,。
第二步:“TCP/IP篩選”窗口中,點擊選中“啟用TCP/IP篩選(所有適配器)”,。然后分別在“TCP端口,、UDP端口和IP協(xié)議”的添加框上,點擊“只允許”,,后按添加按鈕,,然后在跳出的對話框輸入端口,通常我們用來上網(wǎng)的端口是:80,、8080,,而郵件服務(wù)器的端口是:25、110,,F(xiàn)TP的端口是20,、21,同樣將UDP端口和IP協(xié)議相關(guān)進行添加,。
第三步:打開“控制面板→管理工具→本地安全策略”,,然后右擊“IP安全策略,在本地機器”選“管理IP篩選器和IP篩選器操作”,,在管理IP篩選器和IP篩選器操作列表中添加一個新的過濾規(guī)則,,名稱輸入“防止ICMP攻擊”,,然后按添加,在源地址選任何IP地址,,目標(biāo)地址選我的IP地址,,協(xié)議類型為ICMP,設(shè)置完畢,。
第四步:在“管理篩選器操作”,,取消選中“使用添加向?qū)А保砑?,在常?guī)中輸入名字“Deny的操作”,,安全措施為“阻止”。這樣我們就有了一個關(guān)注所有進入ICMP報文的過濾策略和丟棄所有報文的過濾操作了,。
第五步:點擊“IP安全策略,,在本地機器”,選擇“創(chuàng)建IP安全策略-下一步-輸入名稱為ICMP過濾器”,,通過增加過濾規(guī)則向?qū)?,把剛剛定義的“防止ICMP攻擊”過濾策略指定給ICMP過濾器,然后選擇剛剛定義“Deny的操作”,,然后右擊“防止ICMP攻擊”并啟用,。
通過對注冊表的修改以預(yù)防攻擊
通過對注冊表的修改我們可以使ICMP更安全。修改注冊表主要有兩種方式:
(A)禁止ICMP重定向報文
ICMP的重定向報文控制著Windows是否會改變路由表從而響應(yīng)網(wǎng)絡(luò)設(shè)備發(fā)送給它的ICMP重定向消息,,這樣雖然方便了用戶,,但是有時也會被他人利用來進行網(wǎng)絡(luò)攻擊,這對于一個計算機網(wǎng)絡(luò)管理員來說是一件非常麻煩的事情,。通過修改注冊表可禁止響應(yīng)ICMP的重定向報文,,從而使網(wǎng)絡(luò)更為安全。
修改的方法是:打開注冊表編輯器,,找到或新建“HKEY_LOCAL_MachineSystemCurrentControlSetServicesTCPIPParamters”分支,,在右側(cè)窗口中將子鍵“EnableICMPRedirects”(REG_DWORD型)的值修改為0(0為禁止ICMP的重定向報文)即可。
(B)禁止響應(yīng)ICMP路由通告報文
“ICMP路由公告”功能可以使他人的計算機的網(wǎng)絡(luò)連接異常,、數(shù)據(jù)被竊聽,、計算機被用于流量攻擊等,因此建議關(guān)閉響應(yīng)ICMP路由通告報文,。
修改的方法是:打開注冊表編輯器,,找到或新建“HKEY_LOCAL_MachineSystemCurrentControlSetServicesTCPIPParamtersInterfaces”分支,在右側(cè)窗口中將子鍵“PerformRouterDiscovery”?REG_DWORD型的值修改為0(0為禁止響應(yīng)ICMP路由通告報文,,2為允許響應(yīng)ICMP路由通告報文),。修改完成后退出注冊表編輯器,重新啟動計算機即可。
ICMP常見的攻防戰(zhàn)略大概就是如此,,至于選擇何種操作方式就因人而異了,大家視具體情況而定吧!