ICMP คืออะไร

ICMP คืออะไร

ICMP คืออะไร?

ICMP (Internet Control Message Protocol) เป็นโปรโตคอลที่อุปกรณ์เครือข่าย (เช่นเราเตอร์) ใช้เพื่อสร้างข้อความแสดงข้อผิดพลาดเมื่อปัญหาเครือข่ายป้องกันไม่ให้แพ็คเก็ต IP ผ่าน.

โพรโทคอลข้อความการควบคุมอินเทอร์เน็ตเป็นหนึ่งในระบบพื้นฐานที่ทำให้อินเทอร์เน็ตทำงานได้ แม้ว่าคุณอาจไม่เคยได้ยินเรื่อง ICMP แต่คุณอาจเคยได้ยินหนึ่งในคุณสมบัติของมัน: Ping ในคู่มือนี้คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับโปรโตคอลที่จำเป็นนี้.

ประวัติความเป็นมาของ ICMP

ICMP เป็นส่วนหนึ่งของ โปรโตคอลสแต็ก TCP / IP. มันถูกส่งไปประจำการที่ เลเยอร์อินเทอร์เน็ต และเป็นมาตรฐานข้อความแสดงข้อผิดพลาดที่รองรับโปรโตคอลอินเทอร์เน็ตหลัก คำจำกัดความดั้งเดิมของ ICMP เขียนขึ้นโดย จอน Postel, หนึ่งในผู้ก่อตั้งอินเทอร์เน็ต มาตรฐานแรกถูกตีพิมพ์ในเดือนเมษายนปี 1981 ใน RFC 777 ซึ่งได้รับการปรับปรุงหลายครั้ง คำจำกัดความที่มั่นคงของโปรโตคอลมีอยู่ใน RFC 792 ซึ่งเขียนโดย Postel และเผยแพร่โดย หน่วยงานวิศวกรรมอินเทอร์เน็ต ในเดือนกันยายน 1981.

วัตถุประสงค์ของ ICMP

แม้ว่า Internet Layer ในระดับต่ำกว่านั้นไม่ควรกังวลเกี่ยวกับการรับประกันการเชื่อมต่อ, ICMP ให้ความเห็นเล็กน้อยเกี่ยวกับการสื่อสารเมื่อมีสิ่งผิดปกติ. ดังนั้นแม้ว่าคุณจะใช้ UDP ซึ่งมี connectionless รูปแบบการสื่อสารยังคงเป็นไปได้ที่จะค้นหาสาเหตุที่การส่งล้มเหลว อุปกรณ์ที่เชื่อมต่อเครือข่ายทั้งหมดสามารถประมวลผลข้อความ ICMP เพื่อให้มีเราเตอร์เช่นเดียวกับอุปกรณ์ปลายทาง. ICMP ได้รับการดัดแปลงเพื่อให้สามารถทำงานกับ IPv6 ได้ อย่างทั่วถึงเหมือนกับที่ใช้กับ IPv4.

เนื่องจากโปรโตคอลนี้ตั้งอยู่ที่ชั้นอินเทอร์เน็ต, ข้อความถูกดำเนินการโดยแพ็กเก็ต IP และอยู่ในระดับที่สูงกว่าโครงสร้างการทำงานของสวิตช์ แม้ว่า ICMP จะดำเนินการภายในแพ็คเก็ต IP แต่ก็ไม่ได้อยู่ในแพ็คเก็ตการดำเนินการข้อมูล แพ็คเก็ต ICMP ถูกสร้างขึ้นเฉพาะในการตอบสนองต่อแพ็คเก็ตข้อมูลที่เข้ามาเมื่อการส่งข้อความขาเข้านั้นล้มเหลว. เงื่อนไขข้อผิดพลาดที่ก่อให้เกิดแพ็คเก็ต ICMP มักเป็นผลมาจากข้อมูลที่มีอยู่ในส่วนหัว IP ของแพ็คเก็ตที่ล้มเหลว.

โครงสร้างแพ็กเก็ต ICMP

เมื่อเราเตอร์สะท้อนกลับแพ็คเก็ต ICMP เพื่อรายงานข้อผิดพลาดมันจะสร้างฟิลด์ทั้งหมดในส่วนหัว IP ดั้งเดิมของแพ็คเก็ตที่มีการรายงาน ดังนั้นโปรแกรมรวบรวมข้อผิดพลาดบนคอมพิวเตอร์ที่ส่งต้นฉบับสามารถวิเคราะห์ส่วนหัวและทำงานได้อย่างแม่นยำว่าแพ็กเก็ต IP ใดที่ส่งออกมาล้มเหลว.

หลังจากส่วนหัวของ IP มา ส่วนหัว ICMP สามฟิลด์. เหล่านี้มีรหัสที่จัดหมวดหมู่ข้อผิดพลาดฟิลด์รหัสย่อยซึ่งปรับแต่งคำอธิบายรหัสข้อผิดพลาดและจากนั้นการตรวจสอบ หลังจากฟิลด์ ICMP มาที่แปดไบต์แรกของเพย์โหลดซึ่งเป็นจริง ส่วนหัว Transport Layer (TCP หรือ UDP).

รหัสข้อความ ICMP

ฟิลด์รหัสแรกในบล็อก ICMP มีข้อมูลที่เป็นประโยชน์บางอย่าง รหัสเป็นตัวเลขและนี่คือบางส่วนของค่าที่น่าสนใจเพิ่มเติมที่สนามสามารถมี:

0: echo reply – ใช้สำหรับ ping

3: ไม่สามารถเข้าถึงปลายทางได้

4: ดับแหล่งที่มา – เราเตอร์มีการโอเวอร์โหลด

5: เปลี่ยนเส้นทาง – ใช้เราเตอร์อื่น

8: คำขอ echo – ใช้สำหรับ ping

9: การตอบโฆษณาของเราเตอร์

10: การชักชวนเราเตอร์

11: เกินเวลา – ใช้สำหรับ traceroute

ใช้เวลาอยู่

หนึ่งในฟิลด์ส่วนหัวของ IP ที่เป็นที่รู้จักกันดีที่สุดสำหรับการยั่วยุข้อผิดพลาดในการสร้าง ICMP คือ ใช้เวลาอยู่ สนาม (TTL) ฟิลด์นี้มีตัวเลขที่แสดงออก จำนวนสูงสุดของเราเตอร์ที่แพ็กเก็ตสามารถผ่านได้. หมายเลขนี้จะลดลงหนึ่งโดยแต่ละเราเตอร์ที่ประมวลผลแพ็คเก็ต. หากเราเตอร์ได้รับแพ็กเก็ตที่มีศูนย์ TTL มันจะส่งแพ็กเก็ตนั้นทิ้ง และส่งข้อความ ICMP กลับไปยังผู้เริ่มต้นของการส่งที่ล้มเหลว.

ในกรณีที่มีการอ่อนล้าของ TTL เหตุผลของแพ็กเก็ตที่ไม่สามารถไปถึงปลายทางนั้นไม่ได้เกี่ยวข้องกับปัญหาของเราเตอร์หรือข้อมูลที่ผิดรูปแบบในส่วนหัวของแพ็กเก็ต TTL เป็นโครงสร้างที่สร้างขึ้นเพื่อป้องกันไม่ให้แพ็คเก็ตปลอมขึ้นอินเทอร์เน็ต เมื่อข้อผิดพลาดตารางเราเตอร์ส่งผลให้เกิดเส้นทางแบบวงกลม. อย่างไรก็ตามผลพลอยได้จากสาขานี้เป็นเครื่องมือการบริหารเครือข่ายที่มีประโยชน์มาก: traceroute.

ดูสิ่งนี้ด้วย:  รีวิวเครื่องมือ SolarWinds Traceroute

Traceroute ด้วย ICMP

Traceroute เป็นเครื่องมือผู้ดูแลระบบเน็ตที่มีชื่อเสียงที่แสดงเส้นทางทั่วไปจากคอมพิวเตอร์ที่เปิดตัวไปยังที่อยู่ IP ปลายทางที่กำหนด ยูทิลิตี้ส่งชุดของแพ็คเก็ต IP ว่างเปล่าออกมา คุณสมบัติที่สำคัญของแต่ละการส่งสัญญาณคือค่า TTL ในส่วนหัวของ IP.

โปรแกรม Traceroute เริ่มส่งแพ็กเก็ตออกมาด้วย TTL ของ 0. สิ่งนี้จะถูกทิ้งโดยเราเตอร์แรกที่ได้รับซึ่งมักจะเป็นเกตเวย์เครือข่าย เราเตอร์นั้นส่งแพ็กเก็ต ICMP กลับมา ข้อมูลเพียงชิ้นเดียวที่ Traceroute ต้องการจากการตอบกลับคือ เวลาที่ใช้ในการกลับมาและที่อยู่แหล่งที่มาของแพ็กเก็ต. ที่บอก Traceroute ที่อยู่ของเราเตอร์ตัวแรกบนเส้นทางไปยังปลายทาง จากนั้นโปรแกรมจะส่งแพ็กเก็ตด้วย a TTL เป็น 1. สิ่งนี้จะผ่านเกตเวย์ซึ่งจะลด TTL ด้วย 1 เราเตอร์ที่ได้รับแพ็กเก็ตถัดไปจะเห็นว่า TTL เป็นศูนย์หยดแพ็กเก็ตและ ส่งกลับแพ็คเก็ต ICMP. ดังนั้นเราเตอร์ที่สองในเส้นทางจะถูกเปิดเผยและ Traceroute จะบันทึกเวลาที่ใช้ในการตอบกลับนั้น โดยการเพิ่ม TTL ทีละ 1 ด้วยการส่งแต่ละครั้ง, ในที่สุด Traceroute จะสร้างแผนที่ของลิงก์ทั้งหมดผ่านอินเทอร์เน็ตไปยังที่อยู่ที่ระบุ.

ปัญหา Traceroute

Traceroute เป็นเครื่องมือที่ง่ายมากที่ใช้ประโยชน์จากฟังก์ชั่นการจัดการที่มีอยู่แล้วและทำ ยูทิลิตี้ที่มีประสิทธิภาพและให้ข้อมูล ออกมาจากมัน มีจุดอ่อนสองสามข้อที่มี Traceroute.

ผู้ดูแลระบบเครือข่ายอาจจะใช้ยูทิลิตีเพื่อดูว่าทำไมการเชื่อมต่อล่าสุดจึงไม่ดี – ช้าหรือล้มเหลว อย่างไรก็ตาม, Traceroute ไม่สามารถบอกคุณได้ว่าเกิดอะไรขึ้นในอดีต. มันสามารถให้ข้อเสนอแนะกับคุณเกี่ยวกับความคืบหน้าของเส้นทางปัจจุบัน.

เราเตอร์แต่ละคนตัดสินใจด้วยตนเองว่าเพื่อนบ้านคนใดเสนอเส้นทางที่สั้นที่สุดไปยังที่อยู่ IP ปลายทางบนแพ็คเก็ต อย่างไรก็ตามการตัดสินใจนั้นอาจไม่เหมือนกันทุกครั้ง หากเราเตอร์แออัดหรือปิดเราเตอร์ที่อยู่ใกล้เคียงจะพบปัญหาและ ปรับตารางเส้นทางของพวกเขาเพื่อแก้ไขปัญหา. ข้อมูลการกำหนดเส้นทางที่เปลี่ยนแปลงนั้นจะถูกกระเพื่อมไปยังเราเตอร์ทั้งหมดบนอินเทอร์เน็ต แต่ ปัญหาอาจได้รับการแก้ไขก่อนที่เราเตอร์จะค้นหาข้อมูลทั้งหมด. จากนั้นเส้นทางที่ปรับเปลี่ยนใหม่จะแพร่กระจายไปทั่วโลก.

ตัวเลือกพร้อมคำสั่ง“-J” อนุญาตให้คุณระบุที่อยู่ของเราเตอร์ที่คุณต้องการให้ Traceroute ติดตามเป็นเส้นทาง อย่างไรก็ตามเพื่อที่จะใช้สถานที่นี้คุณจะต้อง ทราบเส้นทางที่ผิดปกติแล้ว และคุณสามารถรับข้อมูลนั้นได้ด้วยการใช้ Traceroute ของเส้นทางเดียวกันเท่านั้น.

ดังนั้นหากคุณพบการเชื่อมต่อที่ช้า, คำสั่ง Traceroute ที่คุณออกในภายหลังอาจไม่เปิดเผยสิ่งที่เกิดขึ้น เพราะตามเวลานั้น ปัญหาที่ทำให้เกิดความล่าช้าอาจได้รับการแก้ไขและเส้นทาง Traceroute ของคุณอาจไม่ใช่เส้นทางเดียวกับที่ใช้ในการเชื่อมต่อที่ช้า.

ปัญหาอีกอย่างของ Traceroute ก็คือมันให้การแสดงที่น่าสนใจบนเส้นทางที่การส่งสัญญาณของคุณอาจนำไปสู่จุดหมายปลายทางที่กำหนด อย่างไรก็ตาม, ไม่ให้เครื่องมือใด ๆ แก่คุณในการทำอะไรกับข้อมูลที่คุณได้รับ. ไม่สามารถระบุเส้นทางได้ดังนั้นหากคุณเห็นว่าหนึ่งในเราเตอร์บนอินเทอร์เน็ตให้เวลาตอบสนองช้าสิ่งที่คุณทำได้คือรู้ว่าเราเตอร์ตัวใดที่ทำให้การเชื่อมต่อของคุณช้าลง เนื่องจากเราเตอร์นั้นไม่ได้เป็น บริษัท ของคุณและคุณไม่สามารถเร่งความเร็วได้, คุณได้รับความรู้ผ่าน Traceroute แต่ไม่สามารถทำได้.

ดูสิ่งนี้ด้วย: เครื่องมือที่ดีที่สุดสำหรับ Traceroute

ICMP Ping

Ping ใช้สองรหัส ICMP: 8 (ขอ echo) และ 0 (ตอบกลับ) เมื่อคุณออกคำสั่ง Ping ที่พรอมต์โปรแกรม Ping จะส่งแพ็คเก็ต ICMP ที่มีรหัส 8 ใน ชนิด สนาม คำตอบจะมี ชนิด เป็น 0 โปรแกรมจะส่งช่องว่างระหว่างการส่งแพ็กเก็ตคำขอ echo และการตอบกลับ ดังนั้นคุณสามารถรับ“เวลาไปกลับ” ของแพ็กเก็ตไปยังปลายทางที่กำหนดและกลับมา.

แพ็กเก็ตคำร้องขอ echo นั้นผิดปกติเนื่องจากเป็นแพ็กเก็ต ICMP เท่านั้นที่ส่งออกโดยไม่ถูกกระตุ้นโดยข้อผิดพลาด ดังนั้น Ping ไม่จำเป็นต้องจำลองเงื่อนไขข้อผิดพลาดเพื่อให้ได้รับข้อความ ICMP กลับมา Ping มีสองตัวเลือกที่อนุญาตให้คุณระบุรายการที่อยู่สำหรับเส้นทางที่ควรใช้ในการรับส่งข้อมูล นี่คือ“-J“ ซึ่งแนะนำเส้นทางและ“-k“ ซึ่งกำหนดเส้นทาง.

ICMP Ping port

คุณอาจสงสัย ปิงพอร์ตใดใช้. คำตอบคือ: ไม่มี. หากยูทิลิตีอนุญาตให้คุณ“ ping” พอร์ตมันไม่ใช่คำสั่ง Ping อย่างแท้จริง ยูทิลิตี้นั้นใช้แพ็คเก็ต TCP หรือ UDP แทนเพื่อทดสอบพอร์ต ในความเป็นจริงฟังก์ชั่นประเภทนี้เรียกว่า “พอร์ตสแกนเนอร์” หรือ “ตัวตรวจสอบพอร์ต.”

Ping ไม่สามารถใช้พอร์ตได้เนื่องจากเป็นโปรโตคอลที่มีระดับต่ำกว่า เลเยอร์การขนส่ง, โดยที่พอร์ตเป็นคุณสมบัติที่สำคัญ.

วิธีที่ใกล้เคียงที่สุดกับรายงานพอร์ต ICMP Ping ที่มีให้คือ ส่งแพ็กเก็ต UDP ไปยังพอร์ตเฉพาะ. หากพอร์ตนั้นไม่ทำงานการส่งสัญญาณจะกระตุ้นข้อความ ICMP จากโฮสต์ประเภท 3 (ปลายทางเข้าถึงไม่ได้) ชนิดย่อย 3 (พอร์ตปลายทางไม่สามารถเข้าถึงได้) ดังนั้นแม้ว่าจะเป็นไปได้ที่จะยั่วยุข้อความ ICMP เกี่ยวกับพอร์ต แต่ก็เป็นไปไม่ได้ที่จะใช้กลไก Ping เพื่อส่งแพ็คเก็ต ICMP ไปยังพอร์ตนั้นในตอนแรกตามคำขอ echo หากคุณลากหมายเลขพอร์ตไปยังที่อยู่ IP ในคำสั่ง Ping (เช่น ping 🙂 คำสั่งจะไม่เริ่มทำงาน แต่จะส่งคืนข้อผิดพลาดทางไวยากรณ์แทน.

Pathping

Pathping เป็นยูทิลิตี้นั่นคือ สร้างขึ้นในระบบปฏิบัติการ Windows และมีให้บริการในทุกรุ่นตั้งแต่ Windows NT โปรแกรมนี้เป็นการรวมกันของ ปิง และ traceroute, ดังนั้นมันหาประโยชน์ ข้อความ ICMP สามประเภท. นี่คือคำขอ echo และประเภทข้อความตอบกลับ echo (8 และ 0) และเกินเวลาประเภทข้อความ (11).

เช่นเดียวกับ Traceroute และ Ping, เป็นไปได้ที่จะให้รายการที่อยู่สำหรับพา ธ ที่แนะนำเป็นพารามิเตอร์ให้กับคำสั่ง และยูทิลิตี้จะพยายามส่งแพ็คเก็ตไปยังปลายทางผ่านที่อยู่เหล่านั้น.

Pathping สร้างรายงานผลลัพธ์ที่จัดรูปแบบแล้วซึ่งแสดง เส้นทางและเวลาเดินทางไปกลับ ถึงเราเตอร์แต่ละตัว มันจะส่งคำร้องขอ ping ซ้ำไปยังเราเตอร์แต่ละตัวในเส้นทางไม่ใช่แค่ติดต่อปลายทางซ้ำ ๆ นั่นคือสิ่งที่ Ping ทำหรือเพียงแค่บันทึกเราเตอร์แต่ละตัวในเส้นทางหนึ่งครั้งซึ่งเป็นสิ่งที่ Traceroute ทำ.

Pathping ไม่ยืดหยุ่นเท่ากับ Ping หรือ Traceroute. แม้ว่าอุปกรณ์ทุกชิ้นบนอินเทอร์เน็ตจะสามารถส่งข้อความ ICMP ได้, ไม่ใช่ทุกอุปกรณ์ที่เปิดใช้งานฟังก์ชั่น ICMP. เจ้าของเราเตอร์และเซิร์ฟเวอร์บางคนตั้งใจปิดฟังก์ชั่น ICMP เพื่อป้องกันการโจมตีของแฮ็กเกอร์.

หากเราเตอร์ระดับกลางจะไม่ใช้ ICMP ปิงยังคงรับสัญญาณผ่านเราเตอร์นั้นเพื่อทดสอบปลายทาง หาก Traceroute พบเราเตอร์ที่จะไม่ส่งแพ็กเก็ต ICMP ออกไปมันจะดำเนินต่อไปยังเราเตอร์ถัดไปโดยแสดงบรรทัดของเครื่องหมายดอกจันสำหรับเราเตอร์ที่ไม่ได้ใช้ร่วม ในสถานการณ์เดียวกัน, Pathping สิ้นสุดการสอบถามที่เราเตอร์ที่ปิดใช้งาน ICMP.

โจมตี Smurf

เหตุผลหลักที่เจ้าของอุปกรณ์บางรายปิดการใช้งานความสามารถของ ICMP ของอุปกรณ์ของตนก็คือระบบแฮกเกอร์สามารถใช้เป็นสื่อกลางในการโจมตี การโจมตี Smurf เป็นกรณีเช่นนี้.

การโจมตี Smurf ใช้กลยุทธ์ตัวสะท้อนแสง. ไม่โจมตีเป้าหมายโดยตรง แต่จะเรียกใช้คอมพิวเตอร์และเราเตอร์อื่นเพื่อส่งข้อความถึงเหยื่อ ผู้โจมตีทำงานที่อยู่ออกอากาศที่ใช้ในเครือข่ายของเหยื่อแล้วส่งคำขอ ICMP echo (ปิง) อุปกรณ์แต่ละตัวในเครือข่ายจะส่ง echo ตอบกลับไปยังเราเตอร์ที่โฮสต์ที่ออกอากาศ IP.

การโจมตีนี้ใช้ได้กับเครือข่ายขนาดใหญ่เท่านั้น. มันมีประสิทธิภาพกระตุ้นการโจมตีแบบกระจายการปฏิเสธบริการ (DDoS) จากภายในเครือข่ายในขณะที่การโจมตีส่วนใหญ่จะเปิดตัวผ่านคอมพิวเตอร์ระยะไกลผ่านทางอินเทอร์เน็ต. ประเภทการโจมตีสามารถป้องกันได้โดยการปิดความสามารถของ ICMP บนเราเตอร์เกตเวย์ หรือโดยการกรองการตอบรับคำขอที่ดำเนินการที่อยู่ IP ของเครือข่ายในแพ็กเก็ตที่เข้ามาในเครือข่ายจากสถานที่ห่างไกล.

น้ำท่วมปิง

ปิงที่ท่วมท้นเป็นกลยุทธ์ DDoS ที่ครอบงำคอมพิวเตอร์เป้าหมายด้วย คำขอ ICMP echo. การใช้งานบางอย่างของปิงทำงานได้ดีกว่าอื่น ๆ ตัวอย่างเช่นการโจมตีจะมีประสิทธิภาพมากขึ้นหากคำสั่ง Ping ถูกเรียกใช้พร้อมกับ“น้ำท่วมตัวเลือก” อย่างไรก็ตามตัวเลือกนี้ไม่สามารถใช้ได้กับ Ping ทุกเวอร์ชั่น – มันไม่ใช่ตัวเลือกที่ถูกต้องในรุ่นที่ฝังลงใน Windows, ตัวอย่างเช่น. ความจริงที่ว่าตัวเลือกอุทกภัยไม่ใช่ปัญหาสากลแสดงถึงปัญหาสำหรับแฮกเกอร์ที่ต้องการควบคุมคอมพิวเตอร์ระยะไกลที่ติดไวรัส บ็อตเน็ต โปรแกรมควบคุมเพื่อส่งคำขอ Ping เนื่องจากตัวเลือกน้ำท่วมเป็นของหายากจึงเป็นไปได้ว่า อุปกรณ์ส่วนใหญ่ใน botnet จะไม่สามารถโจมตีได้.

กลยุทธ์การโจมตีนี้จะประสบความสำเร็จมากขึ้นหากแฮกเกอร์มั่นใจว่าคอมพิวเตอร์ที่ติดเชื้อทั้งหมดใช้ความพยายามในการเปิดการโจมตีหากมีตัวเลือกในการใช้งาน Ping วิธีหนึ่งในการตรวจสอบว่าเป็นการทดสอบคอมพิวเตอร์ก่อนการโจมตีและจัดหมวดหมู่ กลุ่มที่มีรูปแบบที่ถูกต้องของ Ping, หรือเพื่อติดตั้ง Ping ที่เปิดใช้งานในคอมพิวเตอร์ทุกเครื่องที่ติดไวรัส botnet.

การป้องกันที่ง่ายที่สุดต่อน้ำท่วมปิงคือการ ปิดความสามารถของ ICMP บนเราเตอร์ หากคุณใช้งานเว็บเซิร์ฟเวอร์ไฟร์วอลล์เว็บแอพพลิเคชั่นควรป้องกันคุณจากน้ำท่วม Ping.

ปิงแห่งความตาย

Ping of Death เกี่ยวข้องกับการส่งแพ็กเก็ต ping ที่ยาวเกินไป. คำขอจะมีจำนวนมากของฟิลเลอร์ในตอนท้ายของมันในน้ำหนักบรรทุก. เนื่องจากเดตาแกรมยาวเกินไปสำหรับการส่งสัญญาณตัวประมวลผล Internet Protocol จะแบ่งสตริงเป็นส่วนที่มีขนาดของ Maximum Transmission Unit (MTU) ของผู้ส่ง ผู้รับจะสังเกตเห็นว่านี่เป็นแพ็คเก็ตที่ยาวเป็นพิเศษซึ่งถูกทำลายและลอง เพื่อประกอบใหม่เป็นแพ็กเก็ตแบบยาว ก่อนที่จะส่งไปยังแอปพลิเคชันปลายทาง หากความยาวของแพ็คเก็ตมากกว่าไบต์ของขนาดของหน่วยความจำที่มีอยู่ในคอมพิวเตอร์ที่รับความพยายามในการประกอบใหม่แพ็คเก็ตจะติดขัดคอมพิวเตอร์.

Ping of Death เป็นประเภทการโจมตีที่รู้จักกันดี ดังนั้นไฟร์วอลล์และระบบตรวจจับการบุกรุกจึงสามารถตรวจจับและบล็อกได้ เช่นเดียวกับเคล็ดลับแฮ็กเกอร์ที่รู้จักกันประสิทธิผลของมันจะไม่คุกคามอีกต่อไป ดังนั้นแฮ็กเกอร์จึงทิ้งกลยุทธ์ปิงแห่งความตายลงไป น้ำท่วมปิง.

อุโมงค์ ICMP

เราเตอร์จะดูที่ส่วนหัวของแพ็กเก็ต ICMP เท่านั้นรวมถึงส่วนหัว TCP / UDP ที่อาจอยู่ด้านหลังข้อมูล ICMP ดังนั้น แพ็กเก็ตปกติที่มีข้อมูลจำนวนมากจะถูกส่งผ่านตราบใดที่มีส่วน ICMP อยู่. นี่อาจเป็น ประตูหลัง สำหรับผู้เยี่ยมชมเพื่อรับขั้นตอนการตรวจสอบและชาร์จเครือข่ายสาธารณะ. สิ่งนี้เรียกว่าอุโมงค์ ICMP หรืออุโมงค์ Ping.

ไม่สามารถเจาะผ่านเกตเวย์และไฟร์วอลล์ได้ด้วยยูทิลิตี้ Ping เครือข่ายมาตรฐานที่คนส่วนใหญ่ใช้ในคอมพิวเตอร์. จะต้องตั้งโปรแกรมอุโมงค์ ICMP. นี่เป็นเส้นทางที่เป็นไปได้ในเครือข่ายสำหรับแฮ็กเกอร์ น่าเสียดายสำหรับผู้ดูแลระบบเครือข่าย, มีแพ็คเกจอุโมงค์ ICMP ฟรีให้ดาวน์โหลดจากอินเทอร์เน็ต.

เช่นเดียวกับการโจมตี ICMP สองประเภทก่อนหน้า, ปิงอุโมงค์สามารถบล็อกได้โดยไฟร์วอลล์เว็บแอปพลิเคชันระบบตรวจจับการบุกรุกหรือเพียงแค่ปิดกั้นกิจกรรม ICMP ทั้งหมด ที่เกตเวย์เครือข่าย.

โจมตี Twinge

Twinge เป็นโปรแกรมโจมตีของแฮ็กเกอร์ มันเปิดตัว น้ำท่วม ICMP เพื่อครอบงำคอมพิวเตอร์เป้าหมาย แม้ว่า Ping ทั้งหมดจะร้องขอว่าเป้าหมายที่ได้รับนั้นมาจากแหล่งที่มาที่แตกต่างกัน แต่พวกมันทั้งหมดมาจากแหล่งเดียวกัน, แต่ละรายการมีที่อยู่ IP ปลอมในส่วนหัว. Twinge อาจเป็นเพียงยูทิลิตี้เปลี่ยนชื่อปิงที่มีตัวเลือก“ ท่วม” มันจะทำให้เป็นเครื่องมือที่มีประโยชน์มากสำหรับ บ็อตเน็ต เจ้าของจะโหลดขึ้นเครื่องคอมพิวเตอร์ซอมบี้เพื่อเปิดตัว ปิงโจมตีน้ำท่วม.

เป็นหลัก, Twinge Flood เหมือนกับน้ำท่วม Ping และวิธีแก้ปัญหาเพื่อปกป้องเครือข่ายจากมันก็เหมือนกับการโจมตี DDoS ประเภทหลักผ่าน ICMP: ปิด ICMP ติดตั้งไฟร์วอลล์เว็บแอปพลิเคชั่นหรือไฟร์วอลล์รัฐหรือติดตั้งระบบตรวจจับการบุกรุก.

การค้นพบพา ธ MTU

Maximum Transmission Unit (MTU) เป็นการตั้งค่าบนอุปกรณ์ที่รองรับเครือข่ายที่สั่งการ ความยาวที่ยาวที่สุดของแพ็กเก็ต IP ที่อุปกรณ์ควรประมวลผล. มันแสดงออกมา octets, ซึ่งเป็นแปดบิต คำแนะนำ MTU ดั้งเดิมสำหรับ Internet Protocol คือ 576 octets อย่างไรก็ตามแนะนำให้ใช้มาตรฐานอีเธอร์เน็ต 1,500 octets และนี่เป็นมาตรฐานสำหรับอุปกรณ์เครือข่ายและอินเทอร์เน็ตทั้งหมด.

เป็นไปได้ที่จะปรับการตั้งค่า MTU บนเราเตอร์ใด ๆ ดังนั้น, หากแพ็กเก็ตของคุณผ่านเราเตอร์ที่มี MTU ที่ต่ำกว่าแต่ละแพ็กเกจจะถูกแบ่งเป็นสองแพ็กเก็ต IP. วิธีนี้จะช่วยชะลอการส่งมอบการถ่ายโอนของคุณเนื่องจากแพ็กเก็ตดั้งเดิมจะต้องประกอบขึ้นใหม่โดยผู้รับก่อนจึงจะสามารถดำเนินการต่อได้ เพื่อการประมวลผล Transport Layer แล้วส่งต่อไปยังแอปพลิเคชันปลายทาง.

นอกจากนี้ยังเป็นไปได้ที่จะระบุในส่วนหัวของ IP ที่แยกซึ่งเรียกว่า“การกระจายตัวของ” ไม่ควรดำเนินการกับแพ็คเก็ต ในกรณีนี้เราเตอร์ที่มี MTU ที่มีขนาดเล็กกว่าความยาวของแพ็คเก็ตจะวางแพ็กเก็ตแล้วรายงานกลับด้วยการแจ้งเตือนข้อผิดพลาด ICMP ข้อความแสดงข้อผิดพลาดนี้จะเป็นประเภท ICMP 3 (ปลายทางเข้าถึงไม่ได้) ชนิดย่อย 4 (จำเป็นต้องมีการแตกแฟรกเมนต์ แต่ตั้งค่าสถานะเป็น “ไม่แยกส่วน”).

ความพยายามในการค้นหา Path MTU ทำให้เกิดปัญหากับแพ็กเก็ตที่แยกส่วนหรือหลุด หากคุณสามารถค้นหา MTU ที่ต่ำที่สุดบนเส้นทางที่การส่งของคุณใช้คุณเพียงแค่ตั้งค่า MTU ของคุณเองให้เป็นขนาดนั้น.

กลไกการค้นพบจะดำเนินการตามขั้นตอนความล้มเหลวที่ระบุไว้ข้างต้น แพ็กเก็ต IP ออกไปยังปลายทางพร้อมเพย์โหลดเพื่อให้ได้ขนาด MTU ของผู้ส่งและ“อย่าแยกส่วน” ชุดธง หากผ่านไปแล้วคุณไม่ควรมีปัญหาใด ๆ กับการเชื่อมต่อไปยังปลายทางที่คุณส่งแพ็คเก็ตทดสอบไป หากการส่งผ่านเกิดข้อผิดพลาดของ ICMP คุณจะต้องลองทดสอบซ้ำ ๆ, ลดความยาวของแพ็คเก็ตในแต่ละครั้ง. ด้วยสิ่งนี้ในที่สุดคุณจะส่งแพ็กเก็ตที่ผ่านและความยาวของแพ็คเก็ตนั้นจะบอก MTU ที่ต่ำที่สุดบนเส้นทางไปยังปลายทางของคุณ.

Ping มีตัวเลือกให้ตั้งค่า“อย่าแยกส่วน” ธง อย่างไรก็ตามสิ่งนี้จะมีผลก็ต่อเมื่อแพ็กเก็ต Ping นั้นยาวกว่า MTU ของเราเตอร์ในเส้นทางของมัน. Ping ไม่ได้ปรับขนาดตาม MTU ของคุณ, ดังนั้นจึงสงสัยว่าแพ็คเก็ต Ping สั้น ๆ จะหายไป.

Linux-based แพ็คเกจ IPutils มี tracepath ซึ่งจะทำการค้นหาเส้นทาง MTU ให้คุณ บน ของ windows คอมพิวเตอร์คุณสามารถตรวจสอบยูทิลิตี mturoute ฟรี.

โลก ICMP

ระบบ ICMP เป็นกลไกที่ง่ายมากสำหรับการรายงานความล้มเหลวในการส่ง อย่างไรก็ตามมันยังเป็น หนึ่งในชุดเครื่องมือที่ทรงพลังที่สุดสำหรับผู้ดูแลระบบเครือข่าย. ข่าวดีก็คือ ICMP ฟรี และสามารถใช้งานได้กับอุปกรณ์ที่เชื่อมต่อเครือข่ายโดยอัตโนมัติ ข่าวร้ายก็คือ แฮกเกอร์สามารถใช้ ICMP ได้ เพื่อสร้างการโจมตีหรือแม้กระทั่งการเชื่อมต่อผ่านไฟร์วอลล์.

ความจริงที่ว่า ICMP สามารถนำไปใช้โดยเจตนาร้ายได้กระตุ้นให้ผู้ดูแลระบบเครือข่ายที่ไม่ชอบความเสี่ยงจำนวนมากปิดระบบการส่งข้อความ นี่คือความอัปยศเพราะมันปิดการใช้งานสาธารณูปโภคที่มีประโยชน์มากที่อธิบายไว้ในคู่มือนี้.

หากคุณใช้เครือข่ายและโดยเฉพาะอย่างยิ่งถ้าคุณเป็นเจ้าของเราเตอร์ที่ผ่านการรับส่งข้อมูลทางอินเทอร์เน็ต, พิจารณาใช้ไฟร์วอลล์ stateful และระบบตรวจจับการบุกรุกเพื่อป้องกันการใช้ ICMP ในทางที่ผิด แทนที่จะปิดโปรโตคอลการส่งข้อความอย่างสมบูรณ์ ตรวจสอบการตั้งค่าและคุณสมบัติเฟิร์มแวร์ของเราเตอร์ของคุณเพื่อดูว่ามีขั้นตอนการแก้ปัญหาการละเมิด ICMP หรือไม่ที่จะช่วยให้คุณสามารถใช้งาน ICMP ต่อไปได้.

คุณใช้วิธี ICMP เพื่อตรวจสอบการเชื่อมต่อของคุณหรือไม่? คุณมียูทิลิตี้ GUI ที่ใช้ ICMP ที่คุณใช้เป็นประจำและสามารถแนะนำให้ผู้อื่นได้หรือไม่? คุณปิด ICMP บนเราเตอร์ของคุณเพื่อปกป้องเครือข่ายของคุณหรือไม่ ฝากข้อความไว้ใน ความคิดเห็น ส่วนด้านล่างและแบ่งปันประสบการณ์ของคุณ.

About the author