Unix類操作系統(tǒng)的TCP/IP堆棧加固之ICMP協(xié)議部分
TCP/IP 堆棧負責處理傳入和傳出 IP 數(shù)據(jù)包,并將數(shù)據(jù)包的數(shù)據(jù)路由到要處理這些數(shù)據(jù)的應用程序。由于自身的缺陷、網(wǎng)絡(luò)的開放性以及黑客的攻擊是造成互聯(lián)網(wǎng)絡(luò)不安全的主要原因。TCP/IP作為Internet使用的標準協(xié)議集,是黑客實施網(wǎng)絡(luò)攻擊的重點目標。
ICMP是專門用作邏輯錯誤和診斷的信使。RFC792對它作了詳細的闡述。任何IP網(wǎng)絡(luò)設(shè)備都有發(fā)送、接收或運作ICMP消息的功能。雖然ICMP的設(shè)計者沒有考慮今天出現(xiàn)的安全性問題,但是他們已經(jīng)設(shè)計了一些能使ICMP更有效運作的基本準則。
為了確保ICMP消息不會淹沒IP網(wǎng)絡(luò),ICMP沒有任何特別的優(yōu)先級,它總是一種常規(guī)流量。
ICMP消息作為其他ICMP消息的響應而發(fā)送。這個設(shè)計機制是為了防止出現(xiàn)一個錯誤消息不斷地重復制造出另一個錯誤消息。否則,它就真的是個大問題了。
ICMP不能作為多播或廣播流量的響應而發(fā)送。
針對ICMP協(xié)議的攻擊包括:
目的地不可到達攻擊屬于拒絕服務攻擊 :ICMP 目的地不可到達消息向嘗試轉(zhuǎn)發(fā)消息的網(wǎng)關(guān)提供了一種工具,用來通知發(fā)送方:因為在數(shù)據(jù)報目的地地址中指定的主機不可到達,所以無法傳遞該消息。
Smurf 攻擊屬于拒絕服務攻擊 :Smurf 攻擊是拒絕服務攻擊的一種非常可怕的形式,因為它具有放大效應。Smurf 攻擊利用 ICMP 回應消息。
1.禁用ICMP回聲廣播活動
- AIX 5
- #no -o directed_broadcast=0
- FreeBSD 5-7
- #sysctl -w net.inet.icmp.bmcastecho=0
- HP-UX 10
- #ndd -set /dev/ip ip_respond_to_echo_broadcast 0
- #ndd -set /dev/ip ip_forward_directed_broadcasts 0
- Linux2.4-2.6 #sysctl -w net.ipv4.icmp_echo_ig#nore_broadcasts=1
- OpenBSD3-4 已經(jīng)是缺省設(shè)置
- Solaris 8-10
- #ndd -set /dev/ip ip_respond_to_echo_broadcast 0
- #ndd -set /dev/ip ip6_respond_to_echo_multicast 0
- #ndd -set /dev/ip ip_forward_directed_broadcasts 0
否則你的系統(tǒng)可能成為Smurf攻擊者的工具。Smurf攻擊是以最初發(fā)動這種攻擊的程序名“Smurf”來命名的。這種攻擊方法結(jié)合使用了IP欺騙和ICMP回復方法使大量網(wǎng)絡(luò)傳輸充斥目標系統(tǒng),引起目標系統(tǒng)拒絕為正常系統(tǒng)進行服務。
Smurf攻擊通過使用將回復地址設(shè)置成受害網(wǎng)絡(luò)的廣播地址的ICMP應答請求(ping)數(shù)據(jù)包,來淹沒受害主機,最終導致該網(wǎng)絡(luò)的所有主機都對此ICMP應答請求做出答復,導致網(wǎng)絡(luò)阻塞。更加復雜的Smurf將源地址改為第三方的受害者,最終導致第三方崩潰。
2.禁用ICMP路由重定向
- AIX5
- #no -o ipig#noreredirects=1
- #no -o ipsendredirects=0
- FreeBSD 5-7
- #sysctl -w net.inet.ip.redirect=0
- #sysctl -w net.inet.ip6.redirect=0
- HP-UX 10
- #ndd -set /dev/ip ip_send_redirects
- 0#ndd -set /dev/ip ip_forward_directed_broadcasts 0
- Linux2.4-2.6
- #sysctl -w net.ipv4.conf.all.accept_redirects=0
- #sysctl -w net.ipv6.conf.all.accept_redirects=0
- #sysctl -w net.ipv4.conf.all.send_redirects=0
- #sysctl -w net.ipv6.conf.all.send_redirects=0
- OpenBSD3-4
- #sysctl -w net.inet.icmp.rediraccept=0
- #sysctl -w net.inet6.icmp6.rediraccept=0 Solaris 8-10
- #ndd -set /dev/ip ip_ig#nore_redirect 1
- #ndd -set /dev/ip ip6_ig#nore_redirect 1
- #ndd -set /dev/ip ip_send_redirects 0
- #ndd -set /dev/ip ip6_send_redirects 0
否則您的系統(tǒng)可能被攻擊者使其路由表錯誤。
3.禁用ICMP廣播探測
- AIX5
- #no -o icmpaddressmask=0
- FreeBSD 5-7
- #sysctl -w net.inet.icmp.maskrepl=0
- HP-UX 10
- #ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0
- #ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0
- Linux2.4-2.6
- #sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
- OpenBSD3-4 已經(jīng)是缺省設(shè)置
- Solaris8-10
- #ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0
- #ndd -set /dev/ip ip_respond_to_timestamp_broadcast
ICMP協(xié)議的攻擊的內(nèi)容就向大家介紹完了,希望大家已經(jīng)掌握,我們還會在以后的文章中繼續(xù)向大家介紹相關(guān)內(nèi)容的。
【編輯推薦】