Unix類操作系統的TCP/IP堆棧加固之ICMP協議部分
TCP/IP 堆棧負責處理傳入和傳出 IP 數據包,并將數據包的數據路由到要處理這些數據的應用程序。由于自身的缺陷、網絡的開放性以及黑客的攻擊是造成互聯網絡不安全的主要原因。TCP/IP作為Internet使用的標準協議集,是黑客實施網絡攻擊的重點目標。
ICMP是專門用作邏輯錯誤和診斷的信使。RFC792對它作了詳細的闡述。任何IP網絡設備都有發送、接收或運作ICMP消息的功能。雖然ICMP的設計者沒有考慮今天出現的安全性問題,但是他們已經設計了一些能使ICMP更有效運作的基本準則。
為了確保ICMP消息不會淹沒IP網絡,ICMP沒有任何特別的優先級,它總是一種常規流量。
ICMP消息作為其他ICMP消息的響應而發送。這個設計機制是為了防止出現一個錯誤消息不斷地重復制造出另一個錯誤消息。否則,它就真的是個大問題了。
ICMP不能作為多播或廣播流量的響應而發送。
針對ICMP協議的攻擊包括:
目的地不可到達攻擊屬于拒絕服務攻擊 :ICMP 目的地不可到達消息向嘗試轉發消息的網關提供了一種工具,用來通知發送方:因為在數據報目的地地址中指定的主機不可到達,所以無法傳遞該消息。
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 已經是缺省設置
- 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
否則你的系統可能成為Smurf攻擊者的工具。Smurf攻擊是以最初發動這種攻擊的程序名“Smurf”來命名的。這種攻擊方法結合使用了IP欺騙和ICMP回復方法使大量網絡傳輸充斥目標系統,引起目標系統拒絕為正常系統進行服務。
Smurf攻擊通過使用將回復地址設置成受害網絡的廣播地址的ICMP應答請求(ping)數據包,來淹沒受害主機,最終導致該網絡的所有主機都對此ICMP應答請求做出答復,導致網絡阻塞。更加復雜的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
否則您的系統可能被攻擊者使其路由表錯誤。
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 已經是缺省設置
- Solaris8-10
- #ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0
- #ndd -set /dev/ip ip_respond_to_timestamp_broadcast
ICMP協議的攻擊的內容就向大家介紹完了,希望大家已經掌握,我們還會在以后的文章中繼續向大家介紹相關內容的。
【編輯推薦】


















