เหตุใด ARP จึงถูกแทนที่ด้วย NDP ใน IPv6


49

ARP ถูกแทนที่ด้วย NDP (Neighbor Discovery Protocol) แต่ฉันไม่รู้เหตุผลที่แน่นอนสำหรับสิ่งนี้

  • มีปัญหาด้านความปลอดภัยใน ARP หรือไม่?
  • เหตุใด ARP จึงถูกแทนที่ด้วย NDP
  • ARP มีข้อดีอย่างไรบ้าง?

ใครสามารถอธิบายสิ่งนี้ในแง่ง่าย ๆ ?

คำตอบ:


67

มีปัญหาด้านความปลอดภัยใน ARP หรือไม่?

ใช่. นี่คือบางส่วน:

  • การปลอมแปลง ARP

    ข้อความ ARP ที่เป็นเท็จจะถูกส่งผ่าน LAN ทำให้เกิดการเชื่อมโยงที่อยู่ MAC ของผู้โจมตีด้วยที่อยู่ IP ของคอมพิวเตอร์หรือเซิร์ฟเวอร์ที่ถูกกฎหมายบนเครือข่าย

    ดูด้านล่างสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ARP Spoofing / Poisoning

  • MAC น้ำท่วม

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

  • การทำสำเนา MAC

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

ความปลอดภัยของแหล่งที่มาของ TCP / IP Address Resolution Protocol (ARP)


เหตุใด ARP จึงถูกแทนที่ด้วย NDP

มันมีการปรับปรุงและคุณสมบัติเพิ่มเติมสำหรับ IPv6

ดูด้านล่างเพื่อเปรียบเทียบ NDP และโปรโตคอล Address Resolution Protocol [ARP], การค้นหาเราเตอร์ ICMP [RDISC] และการเปลี่ยนเส้นทาง ICMP [ICMPv4]


NDP ป้องกัน ARP Spoofing / Poisoning อย่างไร

ใช้โปรโตคอล Secure Neighbor Discovery (SEND) ที่อยู่ที่สร้างโดยการเข้ารหัสลับทำให้มั่นใจได้ว่าแหล่งที่มาที่อ้างสิทธิ์ของข้อความ NDP เป็นเจ้าของที่อยู่ที่อ้างสิทธิ์

หนึ่งในฟังก์ชั่นของ IPv6 Neighbor Discovery Protocol (NDP) คือการแก้ไขที่อยู่เลเยอร์เครือข่าย (IP) ไปยังลิงค์เลเยอร์เลเยอร์ (ตัวอย่างเช่นอีเทอร์เน็ต) ที่อยู่ฟังก์ชันที่ดำเนินการใน IPv4 โดย Address Resolution Protocol (ARP) โปรโตคอล Secure Neighbor Discovery (SEND) ป้องกันผู้โจมตีที่สามารถเข้าถึงส่วนออกอากาศจากการใช้ NDP หรือ ARP เพื่อใช้หลอกโฮสต์ในการส่งทราฟฟิกของผู้โจมตีที่กำหนดไว้สำหรับบุคคลอื่นซึ่งเป็นเทคนิคที่รู้จักกันในชื่อ ARP พิษ

เพื่อป้องกันการวางยาพิษ ARP และการโจมตีอื่น ๆ จากฟังก์ชั่น NDP คุณควรปรับใช้ SEND เพื่อป้องกันการเข้าถึงส่วนการออกอากาศ

SEND ใช้คู่คีย์ RSA เพื่อสร้างที่อยู่ที่สร้างด้วยการเข้ารหัสตามที่กำหนดไว้ใน RFC 3972, ที่อยู่ที่สร้างโดยการเข้ารหัส (CGA) สิ่งนี้ทำให้มั่นใจได้ว่าแหล่งที่มาที่อ้างสิทธิ์ของข้อความ NDP เป็นเจ้าของที่อยู่ที่อ้างสิทธิ์

ซอร์สการกำหนดค่า Secure IPv6 Neighbor Discovery


ARP Spoofing ทำงานอย่างไร

การปลอมแปลง ARP ยังเรียกอีกอย่างหนึ่งว่าการเป็นพิษทาง ARP (APR) หรือการเป็นพิษต่อ ARP Cache

การปลอมแปลง ARP เป็นประเภทของการโจมตีที่นักแสดงประสงค์ร้ายส่งข้อความ ARP (Address Resolution Protocol) ที่ปลอมแปลงผ่านเครือข่ายท้องถิ่น ซึ่งส่งผลในการเชื่อมโยงที่อยู่ MAC ของผู้โจมตีด้วยที่อยู่ IP ของคอมพิวเตอร์หรือเซิร์ฟเวอร์ที่ถูกกฎหมายบนเครือข่าย

เมื่อที่อยู่ MAC ของผู้โจมตีเชื่อมต่อกับที่อยู่ IP ของแท้แล้วผู้โจมตีจะเริ่มรับข้อมูลใด ๆ ที่มีไว้สำหรับที่อยู่ IP นั้น

การปลอมแปลง ARP สามารถเปิดใช้งานฝ่ายที่ประสงค์ร้ายเพื่อสกัดกั้นแก้ไขหรือแม้แต่หยุดข้อมูลในระหว่างการขนส่ง การโจมตีการปลอมแปลง ARP สามารถเกิดขึ้นได้เฉพาะในเครือข่ายท้องถิ่นที่ใช้โปรโตคอลการแก้ไขที่อยู่

การปลอมแปลง Veracode ARPต้นทาง


ARP Spoofing Attack ทำงานอย่างไร

ขั้นตอนในการโจมตีการปลอมแปลง ARP มักจะรวมถึง:

  1. ผู้โจมตีเปิดเครื่องมือการปลอมแปลง ARP และตั้งค่าที่อยู่ IP ของเครื่องมือให้ตรงกับเครือข่ายย่อย IP ของเป้าหมาย ตัวอย่างของซอฟต์แวร์การปลอมแปลง ARP ยอดนิยม ได้แก่ Arpspoof, Cain & Abel, Arpoison และ Ettercap

  2. ผู้โจมตีใช้เครื่องมือการปลอมแปลง ARP เพื่อสแกนหา IP และที่อยู่ MAC ของโฮสต์ในซับเน็ตของเป้าหมาย

  3. ผู้โจมตีเลือกเป้าหมายและเริ่มส่งแพ็คเก็ต ARP ผ่าน LAN ที่มีที่อยู่ MAC ของผู้โจมตีและที่อยู่ IP ของเป้าหมาย

  4. ในฐานะที่เป็นโฮสต์อื่น ๆ ใน LAN cache แพ็กเก็ต ARP ที่ปลอมแปลงข้อมูลที่โฮสต์เหล่านั้นส่งไปยังเหยื่อจะไปที่ผู้โจมตีแทน จากที่นี่ผู้โจมตีสามารถขโมยข้อมูลหรือเริ่มการติดตามการโจมตีที่ซับซ้อนยิ่งขึ้น

การปลอมแปลง Veracode ARPต้นทาง

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

แหล่งที่มา Wikipedia การปลอมแปลง ARP


การเปรียบเทียบ [ของ NDP] กับ IPv4

โปรโตคอล IPv6 Neighbor Discovery สอดคล้องกับการรวมกันของโปรโตคอล IPv4 Address Resolution Protocol [ARP], การค้นหาเราเตอร์ ICMP [RDISC] และการเปลี่ยนเส้นทาง ICMP [ICMPv4]

ใน IPv4 ไม่มีการตกลงกันโดยทั่วไปเกี่ยวกับโปรโตคอลหรือกลไกสำหรับ Neighbor Unreachability Detection แม้ว่าเอกสารข้อกำหนดของโฮสต์ [HR-CL] จะระบุอัลกอริทึมที่เป็นไปได้สำหรับการตรวจหา Dead Gateway (ส่วนย่อยของปัญหาการแก้ไข Neighbor Unreachability

โพรโทคอลการค้นพบเพื่อนบ้านให้การปรับปรุงมากมายผ่านชุดโปรโตคอล IPv4:

  • Router Discovery เป็นส่วนหนึ่งของชุดโปรโตคอลพื้นฐาน ไม่มีความจำเป็นสำหรับโฮสต์ที่จะ "สอดแนม" โปรโตคอลการกำหนดเส้นทาง

  • เราเตอร์โฆษณามีที่อยู่ลิงค์เลเยอร์ ไม่จำเป็นต้องแลกเปลี่ยนแพ็กเก็ตเพิ่มเติมเพื่อแก้ไขที่อยู่ลิงก์ของเลเยอร์เราเตอร์

  • โฆษณาของเราเตอร์มีส่วนนำหน้าสำหรับลิงก์ ไม่จำเป็นต้องมีกลไกแยกต่างหากเพื่อกำหนดค่า "netmask"

  • เราเตอร์โฆษณาเปิดใช้งานการกำหนดแอดเดรสอัตโนมัติ

  • เราเตอร์สามารถโฆษณา MTU สำหรับโฮสต์เพื่อใช้ในลิงค์เพื่อให้แน่ใจว่าโหนดทั้งหมดใช้ค่า MTU เดียวกันบนลิงก์ที่ไม่มี MTU ที่กำหนดไว้อย่างดี

  • มัลติคาสการแก้ปัญหาที่อยู่คือ "การแพร่กระจาย" ที่อยู่มัลติคาสต์มากกว่า 16 ล้าน (2 ^ 24) ที่อยู่ลดการขัดจังหวะที่เกี่ยวข้องกับการแก้ไขที่อยู่ที่เกี่ยวข้องกับโหนดอื่น ๆ นอกเหนือจากเป้าหมาย ยิ่งกว่านั้นเครื่องที่ไม่ใช่ IPv6 ไม่ควรถูกขัดจังหวะเลย

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

  • คำนำหน้าหลายสามารถเชื่อมโยงกับลิงค์เดียวกัน โฮสต์จะเรียนรู้คำนำหน้าออนลิงค์ทั้งหมดจากเราเตอร์โฆษณา อย่างไรก็ตามเราเตอร์อาจได้รับการกำหนดค่าให้ละเว้นคำนำหน้าบางส่วนหรือทั้งหมดจากเราเตอร์โฆษณา ในกรณีดังกล่าวโฮสต์สันนิษฐานว่าปลายทางนั้นเป็นลิงก์และส่งทราฟฟิกไปยังเราเตอร์ เราเตอร์สามารถออกการเปลี่ยนเส้นทางได้ตามความเหมาะสม

  • ซึ่งแตกต่างจาก IPv4 ผู้รับการเปลี่ยนเส้นทาง IPv6 ถือว่าการเชื่อมต่อครั้งต่อไปใหม่นั้นเป็นแบบออนไลน์ ใน IPv4 โฮสต์จะเพิกเฉยต่อการเปลี่ยนเส้นทางโดยระบุการกระโดดต่อไปที่ไม่ได้อยู่บนลิงก์ตามรูปแบบเครือข่ายของลิงก์ กลไกการเปลี่ยนเส้นทาง IPv6 นั้นคล้ายคลึงกับเครื่องมืออำนวยความสะดวก XRedirect ที่ระบุใน [SH-MEDIA] คาดว่าจะเป็นประโยชน์ในการเชื่อมโยงสื่อที่ไม่ออกอากาศและใช้ร่วมกันซึ่งเป็นที่ไม่พึงประสงค์หรือเป็นไปไม่ได้สำหรับโหนดที่จะรู้ว่าคำนำหน้าทั้งหมดสำหรับปลายทางบนลิงค์

  • Neighbor Unreachability Detection เป็นส่วนหนึ่งของฐานซึ่งช่วยปรับปรุงความแข็งแกร่งของการส่งแพ็กเก็ตอย่างมีนัยสำคัญในการปรากฏตัวของความล้มเหลวของเราเตอร์, ความล้มเหลวบางส่วนหรือลิงค์แบ่งพาร์ติชันหรือโหนดที่เปลี่ยนที่อยู่ชั้นลิงค์ ตัวอย่างเช่นโหนดมือถือสามารถย้ายออกจากลิงก์ได้โดยไม่สูญเสียการเชื่อมต่อใด ๆ เนื่องจากแคช ARP ค้าง

  • ซึ่งแตกต่างจาก ARP, Neighbor Discovery ตรวจพบความล้มเหลวครึ่งลิงค์ (โดยใช้ Neighbor Unreachability Detection) และหลีกเลี่ยงการส่งทราฟฟิกไปยังประเทศเพื่อนบ้านที่ขาดการเชื่อมต่อแบบสองทาง

  • ไม่เหมือนกับในการค้นหาเราเตอร์ IPv4 ข้อความโฆษณาของเราเตอร์ไม่มีฟิลด์กำหนดลักษณะ ฟิลด์การตั้งค่าไม่จำเป็นต้องใช้เพื่อจัดการเราเตอร์ที่มี "ความมั่นคง" ที่แตกต่างกัน Neighbor Unreachability Detection จะตรวจจับเราเตอร์ที่ตายแล้วและเปลี่ยนไปใช้งานได้

  • การใช้ที่อยู่ link-local เพื่อระบุเราเตอร์ที่ไม่ซ้ำกัน (สำหรับการโฆษณาเราเตอร์และข้อความการเปลี่ยนเส้นทาง) ทำให้โฮสต์สามารถรักษาความสัมพันธ์ของเราเตอร์ในกรณีที่มีการกำหนดหมายเลขเว็บไซต์ใหม่เพื่อใช้ส่วนนำหน้าใหม่ทั้งหมด

  • ด้วยการตั้งค่า Hop Limit เป็น 255 ทำให้การค้นพบของ Neighbor นั้นมีภูมิคุ้มกันต่อผู้ส่งออฟไลน์ที่ส่งข้อความ ND โดยไม่ตั้งใจหรือโดยเจตนา ใน IPv4 ผู้ส่งออฟไลน์สามารถส่งทั้งการเปลี่ยนเส้นทาง ICMP และข้อความโฆษณาเร้าเตอร์

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

แหล่งRFC 4861 Neighbor Discovery ใน IPv6


อ่านเพิ่มเติม


NDP ป้องกันพิษ agaist อย่างไร
grawity

@grawity เป็นคำถามที่ดี! ใช้โปรโตคอล Secure Neighbor Discovery (SEND) อัปเดตคำตอบแล้ว
DavidPostill

2
อืมว่ามีระบบปฏิบัติการกี่ระบบที่ใช้ส่งจริง
grawity

2
@DavidPostill ไม่IPsecทำงานในเลเยอร์ที่แตกต่างจาก ARP / NDP มันต้องการช่องทางการสื่อสารที่ใช้งานได้สำหรับการสร้างคุณสมบัติความปลอดภัย
scai

4
@DavidPostill โพสต์ยอดเยี่ยม อย่างไรก็ตามโพสต์ของคุณทำให้เข้าใจผิดว่าแนะนำว่า SeND คือ (a) ส่วนสำคัญของ NDP และ (b) โซลูชันทั่วไป นี่ไม่ใช่กรณี - SeND เป็นส่วนเสริมและไม่มีการใช้งาน SeND นอกเหนือจากตัวทดลอง นอกจากนี้ SeND มีข้อบกพร่องของตัวเองและเปิดโอกาสให้ปฏิเสธการโจมตีบริการ ในที่สุดก็มีเหตุผลที่จะสันนิษฐานว่า SeND จะไม่ยกออก (อย่างน้อยก็ไม่ใช่ในรูปแบบปัจจุบัน) ดังนั้นจึงไม่ควรเสนอให้ดังเกินไป
ตอบโต้

9

NDPมีคุณสมบัติมากกว่าARPรวมไปถึง:

  • ผ่าน NDP อุปกรณ์ในเครือข่ายสามารถระบุที่อยู่ MAC / link-layer (ฟังก์ชั่นเดียวกับ ARP)

  • การใช้ NDP อุปกรณ์ในเครือข่ายสามารถค้นหาพา ธ เพื่อเข้าถึงอุปกรณ์อื่นในเครือข่ายภายนอกโดยค้นหาเราเตอร์ที่ดีที่สุดไปยังอุปกรณ์ปลายทาง

  • NDP เปิดใช้งานการกำหนดค่าอัตโนมัติของที่อยู่ IPv6

เปรียบเทียบกับ ARP กลไกต่างกัน:

ARP ใช้ข้อความบรอดคาสต์ในขณะที่ NDP ใช้ข้อความแบบหลายผู้รับ ICMPv6

อุปกรณ์ที่จะส่งข้อความแบบหลายผู้รับที่เรียกว่า "เพื่อนบ้านชักชวน ICMP ข้อความ" หรือNS ตอบสนองอุปกรณ์ปลายทางด้วย "เพื่อนบ้านโฆษณา ICMP ข้อความ" หรือNA

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


5

การแนะนำของ NDP แทน ARP นั้นส่วนใหญ่เป็นเพราะความต้องการที่จะรวมโปรโตคอลการควบคุมรอบ IP IPv4 สนุกกับโปรโตคอลควบคุมหลายอย่างเช่น ICMP, IGMP และ ARP / RARP ด้วย IPv6 NDP (ตัวตายตัวแทนของ ARP) เช่นเดียวกับ MLD (ตัวตายตัวแทนของ IGMP) ได้รับการออกแบบเป็นโปรโตคอลย่อยของ ICMPv6 เพื่อให้มีเพียงหนึ่งโปรโตคอลการควบคุม ไม่มีเหตุผลด้านความปลอดภัยสำหรับสิ่งนี้ ND มีความไวต่อการปลอมแปลงเหมือนกับ ARP และ ND ไม่ได้ออกแบบมาเพื่อความปลอดภัย

ในวันแรกของการพัฒนา IPv6 IPsec ถูกมองว่าเป็นมาตรการรักษาความปลอดภัยทั่วไปจึงเป็นสิ่งจำเป็น อย่างไรก็ตามข้อกำหนดนี้ได้ถูกลดระดับเป็นข้อเสนอแนะ (RFC 6434 ฉันเชื่อว่าส่วนใหญ่มาจากอุปกรณ์ฝังตัวและ IoT ซึ่งไม่สามารถคำนวณกุญแจสาธารณะได้และพวกเขาต้องการแก้ไขปัญหา PKI ทุกประเภท อย่างไรก็ตามและใช้งานไม่ได้ (พูดอย่างสุภาพ) เพื่อรักษาความปลอดภัย ND SeND ได้รับการแนะนำให้รู้จักกับการรักษาความปลอดภัยบน ND แต่สำหรับความพยายามในการออกแบบซอฟต์แวร์ย้อนยุคความปลอดภัยย้อนหลังแทบทุกครั้งผลลัพธ์ก็คือพูดน้อยกว่าความเหมาะสม เนื่องจากยังไม่มีการใช้งานของ SeND บันทึกบางส่วนทดลองสำหรับวัตถุประสงค์ในทางปฏิบัติทั้งหมด SeND ไม่มีอยู่จริง นอกจากนี้ยังมีเหตุผลที่เชื่อได้ว่าอย่างน้อยที่สุดในรูปแบบปัจจุบันของ SeND จะไม่มีวันเลิก

ในทางตรงกันข้าม SAVI ดูมีแนวโน้มมากขึ้น แต่ต้องการการเปลี่ยนแปลงโครงสร้างสวิตชิ่งและอุปกรณ์ที่มีความสามารถ SAVI นั้นไม่ได้มีราคาค่อนข้างต่ำดังนั้นจึงไม่แพร่หลายอย่างรวดเร็ว SAVI ทำงานบนพื้นฐานที่ว่าภายในไซต์ควรเป็น "รู้จัก" ซึ่งการแมประหว่างที่อยู่ HW (เช่นที่อยู่ MAC) และที่อยู่ IP นั้นถูกต้องตามกฎหมายดังนั้นจึงควรเป็นไปได้ที่จะระบุและลบข้อความ NDP ปลอม

สูตรที่ดีที่สุดคือสูตรที่ง่ายที่สุด แต่มักถูกมองข้าม: แบ่ง LAN ขนาดใหญ่เป็นขนาดเล็กลงสำหรับ ARP- และ ND-spoofing ใช้ได้กับเป้าหมายใน LAN เดียวกันเท่านั้น ดังนั้นเพียงแค่วางอุปกรณ์ที่ไม่น่าเชื่อถือไว้ในส่วน LAN ของตัวเอง (ไม่จำเป็นต้องใช้ไฟร์วอลล์ / กฎการกรอง) จะลดพื้นผิวการโจมตีได้อย่างมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.