網路安全管理-期末報告 ICMP攻擊 指導教授:梁明章 教授 學生:A0933328陳柏任
ICMP ICMP簡單來說就像是網路上的警察 ICMP 的全稱是 Internet Control Message Protocol 。從技術角度來說,ICMP 就是一個 "錯誤偵測與回報機制",其目的就是讓我們能夠檢測網路的連線狀況﹐也能確保連線的準確性
ICMP的功能 偵測遠端主機是否存在。 建立及維護路由資料。 重導資料傳送路徑。 資料流量控制。
ICMP簡單示意圖 由A主動傳送回應要求至B B收到回應要求後,B被動發出回應答覆封包
常見的ICMP攻擊 1.PingOfDeath 2.Smurf Attack 3.ICMP木馬
PingOfDeath 原理 工作原理是利用發出ICMP type 8的Echo Request給對方主機,當對方收到這個request封包後,IP層會發出一個中斷(interrupt)訊號給作業系統,請系統回送一個type 0的Echo Reply。當原系統接收了這個回應之後,同樣的IP層會中斷作業系統,並由作業系統將此回應訊息傳達給每一個曾經在系統中發出ICMP Echo Request的行程
PingOfDeath 由於Option Data的大小並非固定,因此形成了有心人士用來破壞系統的安全漏洞。在TCP/IP的定義中,雖然沒有明定封包的大小,但是小於65535 bytes的封包才算合法。只要刻意地將Echo Request的Option Data塞入大量資料,便可以造出超過65535 bytes的TCP/IP封包。當它送入被攻擊端的電腦時,由於作業系統本身無法處理這種變形封包,因此會造成當機的狀況
Smurf Attack 原理 利用(ICMP)的ECHO REQUEST,偽造自己的來源IP(變成下手目標的主機IP),同時ping多部主機,那些主機會根據偽造的 IP 位址傳回 ECHO REPLY 封包給該 IP 位址的主機,讓受害主機同時收到非常高量的ICMP封包而使系統癱瘓
Smurf Attack 作法 首先,攻擊者會先假冒目標主機(受害者)之名向中介者(router)發出broadcast的ICMP Echo Request封包(利用IP spoofed)。因為是目的地是廣播位址,中介者在收到之後會對該區域網段內的所有電腦發出此ICMP封包,而所有的電腦在接收到此訊息之後,依照前述”Ping”的動作,會對來源主機送出ICMP Echo Reply回應。,所有的ICMP封包在極短的時間內湧入目標主機內,不但造成網路壅塞,更會使目標主機因為無法反應如此多的系統interrupt而導致當機、暫停服務。
ICMP木馬 事件:揭開木馬的神秘面紗 因為ICMP通訊協定本身並沒有埠號(port或稱端口)的設計,所以Windows無法像TCP或UDP協定一樣,用bind的方式把ICMP_EchoReply訊息遞送到當初個別的程式,也就是說Windows系統無法由遠端機器回應的ICMP_EchoReply,來知道這應該是屬於哪個ping程式的。因此它的做法很簡單,把收到的ICMP_EchoReply訊息,丟給每一個ping程式讓它們自己來判斷,如下圖所示
ICMP木馬
ICMP木馬 也就是說ping程式會收到所有「外界」回傳的ICMP_EchoReply。當Windows系統發現它收到ICMP_EchoReply訊息時,它會檢查系統所有執行中的process行程,看看是否有人剛剛送出ICMP_EchoRequest要求,如有的話就將所有收到的ICMP_EchoReply訊息丟給你。
ICMP木馬 這裡因此發生了一個安全上的大問題,如果駭客將它隱藏的訊息放在ICMP_EchoReply資料報裡面,所有剛剛送出ICMP_EchoRequest要求的行程都會收到,也就是說,假設木馬程式剛剛也送出ICMP_EchoRequest要求的話,它也會收到駭客隱藏的ICMP_EchoReply訊息在裡面,這下可好,新的木馬由此產生,ICMP又在網路安全內被記一過
ICMP攻擊的防治 針對上述攻擊方式:現在有在做的防禦措施: 1.關閉broadcast功能 2.實行封包過濾 3.關閉ICMP Echo Reply功能
~END~