ช่องโหว่ใน FreeBSD, IPnet และ Nucleus NET ที่เกี่ยวข้องกับข้อผิดพลาดในการใช้งานการบีบอัด DNS

กลุ่มวิจัย Forescout Research Labs และ JSOF Research ได้เผยแพร่ผลการศึกษาร่วมกันด้านความปลอดภัยของการใช้งานต่างๆ ของรูปแบบการบีบอัดที่ใช้ในการแพ็คชื่อที่ซ้ำกันในข้อความ DNS, mDNS, DHCP และ IPv6 RA (การบรรจุส่วนโดเมนที่ซ้ำกันในข้อความ ซึ่งมีหลายชื่อ) ในระหว่างการทำงาน พบช่องโหว่ 9 รายการ ซึ่งสรุปภายใต้ชื่อรหัส NAME:WRECK

ปัญหาได้รับการระบุใน FreeBSD เช่นเดียวกับในระบบย่อยเครือข่าย IPnet, Nucleus NET และ NetX ซึ่งแพร่หลายในระบบปฏิบัติการเรียลไทม์ VxWorks, Nucleus และ ThreadX ที่ใช้ในอุปกรณ์อัตโนมัติ อุปกรณ์จัดเก็บข้อมูล อุปกรณ์ทางการแพทย์ ระบบอิเล็กทรอนิกส์ด้านการบิน เครื่องพิมพ์ และอุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภค คาดว่ามีอุปกรณ์อย่างน้อย 100 ล้านเครื่องที่ได้รับผลกระทบจากช่องโหว่นี้

  • ช่องโหว่ใน FreeBSD (CVE-2020-7461) ทำให้สามารถจัดระเบียบการเรียกใช้โค้ดได้โดยการส่งแพ็กเก็ต DHCP ที่ออกแบบมาเป็นพิเศษไปยังผู้โจมตีที่อยู่ในเครือข่ายท้องถิ่นเดียวกันกับเหยื่อ ซึ่งการประมวลผลโดยไคลเอนต์ DHCP ที่มีช่องโหว่เป็นผู้นำ ไปจนถึงบัฟเฟอร์ล้น ปัญหาได้รับการบรรเทาลงด้วยข้อเท็จจริงที่ว่ากระบวนการ dhclient ซึ่งมีช่องโหว่นั้นกำลังทำงานอยู่โดยมีสิทธิ์การรีเซ็ตในสภาพแวดล้อม Capsicum ที่แยกออกมา ซึ่งจำเป็นต้องระบุช่องโหว่อื่นเพื่อออก

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

  • ช่องโหว่ในสแต็กเครือข่าย IPnet แบบฝังที่ใช้ใน RTOS VxWorks ช่วยให้สามารถเรียกใช้โค้ดที่อาจเกิดขึ้นบนฝั่งไคลเอ็นต์ DNS เนื่องจากการจัดการการบีบอัดข้อความ DNS ที่ไม่เหมาะสม ปรากฎว่าช่องโหว่นี้ถูกระบุครั้งแรกโดย Exodus ในปี 2016 แต่ก็ไม่ได้รับการแก้ไข คำขอใหม่ไปยัง Wind River ก็ไม่ได้รับคำตอบ และอุปกรณ์ IPnet ยังคงมีความเสี่ยงอยู่
  • มีการระบุช่องโหว่หกรายการในสแต็ก Nucleus NET TCP/IP ซึ่งได้รับการสนับสนุนโดย Siemens โดยช่องโหว่ทั้งสองรายการอาจนำไปสู่การเรียกใช้โค้ดจากระยะไกล และสี่รายการอาจนำไปสู่การปฏิเสธการให้บริการ ปัญหาอันตรายประการแรกเกี่ยวข้องกับข้อผิดพลาดเมื่อขยายขนาดข้อความ DNS ที่บีบอัด และปัญหาที่สองเกี่ยวข้องกับการแยกวิเคราะห์ป้ายกำกับชื่อโดเมนที่ไม่ถูกต้อง ปัญหาทั้งสองส่งผลให้เกิดบัฟเฟอร์ล้นเมื่อประมวลผลการตอบสนอง DNS ที่มีรูปแบบพิเศษ

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

  • ช่องโหว่ในสแต็กเครือข่าย NetX (Azure RTOS NetX) ซึ่งพัฒนาขึ้นสำหรับ ThreadX RTOS และเปิดในปี 2019 หลังจากที่ Microsoft เข้ายึดครอง ถูกจำกัดอยู่เพียงการปฏิเสธการให้บริการ ปัญหาเกิดจากข้อผิดพลาดในการแยกวิเคราะห์ข้อความ DNS ที่บีบอัดในการใช้งานตัวแก้ไข

จากสแต็กเครือข่ายที่ได้รับการทดสอบซึ่งไม่พบช่องโหว่ที่เกี่ยวข้องกับการบีบอัดข้อมูลซ้ำในข้อความ DNS โครงการต่อไปนี้ได้รับการตั้งชื่อ: lwIP, Nut/Net, Zephyr, uC/TCP-IP, uC/TCP-IP, FreeRTOS+TCP , OpenThread และ FNET นอกจากนี้ สองรายการแรก (Nut/Net และ lwIP) ไม่รองรับการบีบอัดข้อความ DNS เลย ในขณะที่รายการอื่นๆ ดำเนินการนี้โดยไม่มีข้อผิดพลาด นอกจากนี้ มีข้อสังเกตว่าก่อนหน้านี้ นักวิจัยคนเดียวกันได้ระบุช่องโหว่ที่คล้ายกันในสแต็ก Treck, uIP และ PicoTCP แล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น