ข้ามข้อจำกัดของ SELinux ที่เกี่ยวข้องกับการโหลดโมดูลเคอร์เนล

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

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

ที่มา: opennet.ru

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