ช่องโหว่ 25 รายการใน RTOS Zephyr รวมถึงช่องโหว่ที่ถูกหาประโยชน์ผ่านแพ็กเก็ต ICMP

นักวิจัยจากกลุ่ม ป.ป.ช การตีพิมพ์ ผลการตรวจสอบโครงการฟรี ลมอ่อน ๆ, การพัฒนา ระบบปฏิบัติการแบบเรียลไทม์ (RTOS) มุ่งเป้าไปที่การเตรียมอุปกรณ์ที่สอดคล้องกับแนวคิด Internet of Things (IoT, Internet of Things) ในระหว่างการตรวจสอบก็มีการเปิดเผย 25 ช่องโหว่ ใน Zephyr และ 1 ช่องโหว่ใน MCUboot Zephyr กำลังได้รับการพัฒนาโดยการมีส่วนร่วมของบริษัท Intel

โดยรวมแล้ว มีการระบุช่องโหว่ 6 รายการในสแต็กเครือข่าย, 4 รายการในเคอร์เนล, 2 รายการในเชลล์คำสั่ง, 5 รายการในตัวจัดการการเรียกระบบ, 5 รายการในระบบย่อย USB และ 3 รายการในกลไกการอัพเดตเฟิร์มแวร์ มี 9 ​​ประเด็นที่ได้รับการจัดอันดับว่าเป็นประเด็นวิกฤต 9 ประเด็นอยู่ในระดับสูง 4 ประเด็นอยู่ในระดับปานกลาง 4 ประเด็นอยู่ในระดับต่ำ และ 15 ประเด็นอยู่ระหว่างการพิจารณา ปัญหาร้ายแรงส่งผลกระทบต่อสแต็ก IPvXNUMX และตัวแยกวิเคราะห์ MQTT ปัญหาที่เป็นอันตรายส่งผลกระทบต่ออุปกรณ์จัดเก็บข้อมูล USB และไดรเวอร์ USB DFU ในขณะที่เปิดเผยข้อมูล มีการเตรียมการแก้ไขสำหรับช่องโหว่ที่อันตรายที่สุด XNUMX รายการเท่านั้น ปัญหาที่นำไปสู่การปฏิเสธการให้บริการหรือเกี่ยวข้องกับข้อบกพร่องในกลไกการป้องกันเคอร์เนลเพิ่มเติมยังคงไม่ได้รับการแก้ไข

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

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

ปัญหามากมายส่งผลต่อสแต็ก USB และไดรเวอร์แต่ละตัว ตัวอย่างเช่น ปัญหาในที่จัดเก็บข้อมูล USB ขนาดใหญ่อาจทำให้เกิดบัฟเฟอร์ล้นและรันโค้ดที่ระดับเคอร์เนลเมื่ออุปกรณ์เชื่อมต่อกับโฮสต์ USB ที่ควบคุมโดยผู้โจมตี ช่องโหว่ใน USB DFU ซึ่งเป็นไดรเวอร์สำหรับโหลดเฟิร์มแวร์ใหม่ผ่าน USB ช่วยให้คุณสามารถโหลดอิมเมจเฟิร์มแวร์ที่แก้ไขลงในแฟลชภายในของไมโครคอนโทรลเลอร์โดยไม่ต้องใช้การเข้ารหัสและข้ามโหมดการบูตที่ปลอดภัยด้วยการตรวจสอบส่วนประกอบโดยใช้ลายเซ็นดิจิทัล นอกจากนี้ ยังได้ศึกษาโค้ด Open Bootloader อีกด้วย MCUbootซึ่งพบช่องโหว่ที่ไม่เป็นอันตรายหนึ่งรายการ
ซึ่งอาจนำไปสู่การบัฟเฟอร์ล้นเมื่อใช้โปรโตคอล SMP (Simple Management Protocol) บน UART

โปรดจำไว้ว่าใน Zephyr มีเพียงพื้นที่ที่อยู่เสมือนที่ใช้ร่วมกันทั่วโลกเพียงแห่งเดียวเท่านั้น (SASOS, ระบบปฏิบัติการพื้นที่ที่อยู่เดี่ยว) สำหรับกระบวนการทั้งหมด รหัสเฉพาะแอปพลิเคชันจะรวมกับเคอร์เนลเฉพาะแอปพลิเคชันเพื่อสร้างไฟล์ปฏิบัติการแบบเสาหินที่สามารถโหลดและรันบนฮาร์ดแวร์เฉพาะได้ ทรัพยากรระบบทั้งหมดถูกกำหนด ณ เวลาคอมไพล์ ช่วยลดขนาดโค้ดและเพิ่มประสิทธิภาพ อิมเมจระบบสามารถรวมเฉพาะคุณลักษณะเคอร์เนลที่จำเป็นในการรันแอปพลิเคชันเท่านั้น

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

ที่มา: opennet.ru

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