พวกเขาค้นพบรูปแบบใหม่ของ SAD DNS เพื่อแทนที่ข้อมูลจำลองในแคช DNS

กลุ่มนักวิจัยจาก University of California at Riverside เปิดตัว เมื่อหลายวันก่อน รูปแบบใหม่ของการโจมตี SAD DNS ซึ่งใช้งานได้แม้จะเพิ่มการป้องกันเมื่อปีที่แล้วเพื่อบล็อก ช่องโหว่ CVE-2020-25705

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

วิธีการที่เสนอใช้งานได้เฉพาะบนเครือข่าย Linux stack เนื่องจากการเชื่อมต่อกับลักษณะเฉพาะของกลไกการประมวลผลแพ็กเก็ต ICMP ใน Linux จึงทำหน้าที่เป็นแหล่งที่มาของข้อมูลรั่วไหล ซึ่งทำให้การกำหนดหมายเลขพอร์ต UDP ที่เซิร์ฟเวอร์ใช้เพื่อส่งคำขอภายนอกง่ายขึ้น

ตามที่นักวิจัยระบุปัญหา ช่องโหว่ดังกล่าวส่งผลกระทบประมาณ 38% ของ Open Solver บนเครือข่าย รวมถึงบริการ DNS ยอดนิยม เช่น OpenDNS และ Quad9 (9.9.9.9) สำหรับซอฟต์แวร์เซิร์ฟเวอร์ การโจมตีสามารถทำได้โดยใช้แพ็คเกจ เช่น BIND, Unbound และ dnsmasq บนเซิร์ฟเวอร์ Linux เซิร์ฟเวอร์ DNS ที่ทำงานบนระบบ Windows และ BSD ไม่แสดงปัญหา ต้องใช้การปลอมแปลง IP เพื่อให้การโจมตีสำเร็จ จำเป็นต้องตรวจสอบให้แน่ใจว่า ISP ของผู้โจมตีไม่ได้บล็อกแพ็กเก็ตด้วยที่อยู่ IP ต้นทางที่ปลอมแปลง

เพื่อเป็นการเตือนความจำ การโจมตี SAD DNS อนุญาตให้ข้ามการป้องกันเพิ่มเติมไปยังเซิร์ฟเวอร์ DNS เพื่อบล็อกวิธีการวางยาพิษแคช DNS แบบคลาสสิก เสนอในปี 2008 โดย Dan Kaminsky

วิธีการของ Kaminsky จัดการกับขนาดเล็กน้อยของฟิลด์ ID การสืบค้น DNS ซึ่งมีเพียง 16 บิตเท่านั้น หากต้องการค้นหาตัวระบุธุรกรรม DNS ที่ถูกต้องซึ่งจำเป็นในการปลอมชื่อโฮสต์ เพียงแค่ส่งคำขอประมาณ 7.000 รายการและจำลองการตอบกลับปลอมประมาณ 140.000 รายการ การโจมตีทำให้ต้องส่งแพ็กเก็ต IP-bound ปลอมจำนวนมากไปยังระบบ การแก้ไข DNS พร้อมตัวระบุธุรกรรม DNS ที่แตกต่างกัน

เพื่อป้องกันการโจมตีประเภทนี้ ผู้ผลิตเซิร์ฟเวอร์ DNS ดำเนินการสุ่มแจกหมายเลขพอร์ตเครือข่าย แหล่งที่มาซึ่งส่งคำขอแก้ไข ซึ่งชดเชยขนาดแฮนเดิลที่มีขนาดใหญ่ไม่เพียงพอ หลังจากใช้การป้องกันสำหรับการส่งการตอบสนองที่สมมติขึ้นนอกเหนือจากการเลือกตัวระบุ 16 บิตก็จำเป็นต้องเลือกพอร์ตใดพอร์ตหนึ่งจาก 64 ซึ่งเพิ่มจำนวนตัวเลือกสำหรับการเลือกเป็น 2 ^ 32.

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

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

การเปลี่ยนแปลงที่บล็อกการรั่วไหลของข้อมูลได้รับการยอมรับในเคอร์เนล Linux เมื่อปลายเดือนสิงหาคม (การแก้ไขรวมอยู่ในเคอร์เนล 5.15 และการอัปเดตเดือนกันยายนของสาขา LTS ของเคอร์เนล) วิธีแก้ไขคือเปลี่ยนไปใช้อัลกอริทึมแฮช SipHash ในแคชเครือข่ายแทน Jenkins Hash

สุดท้ายนี้ หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ คุณสามารถปรึกษา รายละเอียดตามลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา