กลุ่มวิจัย 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 ยังคงมีความเสี่ยงอยู่
- В TCP/IP พบช่องโหว่ 6 จุดในระบบ Nucleus NET ที่ Siemens ให้การสนับสนุน โดย 2 จุดอาจนำไปสู่การเรียกใช้โค้ดจากระยะไกล และ 4 จุดอาจทำให้เกิดการโจมตีแบบปฏิเสธการให้บริการ (Denial of Service) ปัญหาสำคัญจุดแรกเกี่ยวข้องกับข้อผิดพลาดในการคลายการบีบอัดข้อความ 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
