LKRG 0.9.4 พร้อมรองรับ OpenRC, Linux 5.15.40+ และอื่นๆ

โครงการ Openwall เพิ่งประกาศเปิดตัวโมดูลเคอร์เนล LKRG 0.9.4 (Linux Kernel Runtime Guard) ออกแบบมาเพื่อตรวจจับและบล็อกการโจมตีและการละเมิดความสมบูรณ์ของโครงสร้างเคอร์เนล

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

การตรวจสอบความสมบูรณ์จะดำเนินการตามการเปรียบเทียบของแฮชที่คำนวณสำหรับพื้นที่หน่วยความจำที่สำคัญที่สุดและโครงสร้างข้อมูลเคอร์เนล (IDT (Interrupt Description Table), MSR, ตารางการเรียกระบบ, ขั้นตอนและฟังก์ชันทั้งหมด, ตัวจัดการขัดจังหวะ, รายการโมดูลที่โหลด, เนื้อหา ของส่วน .text ของโมดูล แอ็ตทริบิวต์กระบวนการ ฯลฯ)

ขั้นตอนการตรวจสอบเปิดใช้งานเป็นระยะโดยใช้ตัวจับเวลา และเมื่อมีเหตุการณ์เคอร์เนลต่างๆ เกิดขึ้น (เช่น เมื่อ setuid, setreuid, fork, exit, execve, do_init_module ฯลฯ เรียกใช้ระบบ)

เกี่ยวกับ Linux Kernel Runtime Guard

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

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

โมดูล เหมาะสำหรับทั้งการจัดการป้องกันการหาประโยชน์ที่ทราบอยู่แล้ว สำหรับเคอร์เนลลินุกซ์ เพื่อต่อต้านการหาประโยชน์จากช่องโหว่ที่ยังไม่เป็นที่รู้จัก หากพวกเขาไม่ใช้มาตรการพิเศษในการหลีกเลี่ยง LKRG

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

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

คุณสมบัติใหม่หลักของ LKRG 0.9.4

ในเวอร์ชันใหม่ของโมดูลที่นำเสนอนี้ เน้นว่า เพิ่มการรองรับระบบบูต OpenRCรวมทั้งเพิ่มคำแนะนำในการติดตั้งโดยใช้ ดีเคเอ็มเอส.

การเปลี่ยนแปลงอีกอย่างที่โดดเด่นในเวอร์ชันใหม่นี้คือ ให้ความเข้ากันได้กับเคอร์เนล LTS จาก Linux 5.15.40+

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

ในทางกลับกัน ยังมีการกล่าวอีกว่า เปลี่ยนชื่อโมดูลเคอร์เนลจาก p_lkrg เป็น lkrg และที่ LKRG 0.9.3 เวอร์ชันเก่ายังคงใช้งานได้ ในเคอร์เนลเวอร์ชันใหม่กว่า (5.19-rc* จนถึงตอนนี้) อย่างไรก็ตาม สำหรับความเข้ากันได้ในระยะยาวกับ Kernels 5.15.40+ จะไม่มีการเปลี่ยนแปลงบางอย่างในเวอร์ชัน 0.9.4

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

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

โดยเฉพาะอย่างยิ่ง โมดูลนี้ได้รับการทดสอบด้วยเคอร์เนล RHEL, OpenVZ/Virtuozzo และ Ubuntu ในอนาคตจะเป็นไปได้ที่จะจัดระเบียบกระบวนการสร้างด้วยความเข้ากันได้แบบไบนารีสำหรับการแจกแจงยอดนิยมที่แตกต่างกัน


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

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

*

*

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