โครงการ Openwall เพิ่งเปิดตัวเปิดตัว เวอร์ชันใหม่ของโมดูลเคอร์เนล "แอลเคอาร์จี 0.9.2" (Linux Kernel Runtime Guard) ซึ่งออกแบบมาเพื่อตรวจจับและบล็อกการโจมตีและการละเมิดความสมบูรณ์ของโครงสร้างเคอร์เนล
ปัจจุบัน LKRG รองรับ x86-64, x86 32-bit, AArch64 (ARM64) และ ARM 32-bit
สถาปัตยกรรมซีพียู
เกี่ยวกับ LKRG
ตามที่ระบุไว้โมดูล LKRG sและมีหน้าที่รับผิดชอบในการตรวจสอบความสมบูรณ์ในรันไทม์ของเคอร์เนลของลินุกซ์และตรวจหาช่องโหว่ด้านความปลอดภัย ระเบิดกับเคอร์เนล ตัวอย่างเช่น โมดูลสามารถป้องกันการเปลี่ยนแปลงที่ไม่ได้รับอนุญาตในเคอร์เนลที่ทำงานอยู่ และพยายามเปลี่ยนการอนุญาตของกระบวนการผู้ใช้ (โดยการพิจารณาการใช้ช่องโหว่)
โมดูลนี้เหมาะสำหรับทั้งการจัดระบบป้องกันช่องโหว่ที่ทราบอยู่แล้วในเคอร์เนล Linux (เช่น ในสถานการณ์ที่การอัปเดตเคอร์เนลบนระบบทำได้ยาก) และสำหรับการตอบโต้ช่องโหว่ที่ยังไม่ทราบช่องโหว่
ควรเข้าใจว่า LKRG เป็นโมดูลเคอร์เนล (ไม่ใช่เคอร์เนลแพตช์) จึงสามารถคอมไพล์และโหลดบนเคอร์เนลหลักและเคอร์เนลการแจกจ่ายที่หลากหลาย โดยไม่จำเป็นต้องแพตช์ใดๆ
ปัจจุบัน โมดูลได้รับการสนับสนุนสำหรับเคอร์เนลเวอร์ชันตั้งแต่ RHEL7 (และการโคลน / การแก้ไขจำนวนมาก) และ Ubuntu 16.04 ไปจนถึง mainline และ core distribution ล่าสุด
คุณสมบัติใหม่หลักของ LKRG 0.9.2
ในเวอร์ชันใหม่ที่นำเสนอนี้ นักพัฒนากล่าวว่า lรับประกันความเข้ากันได้กับเคอร์เนล Linux 5.14 ถึง 5.16-rc, เช่นเดียวกับเคอร์เนล LTS 5.4.118+, 4.19.191+ และ 4.14.233+
ในช่วงเวลาของรีลีสก่อนหน้า LKRG 0.9.1, Linux 5.12.x คือ แกนสุดท้าย เราโชคดีที่มันใช้งานได้เหมือนบน Linux 5.13.x และบน 5.10.x คอร์ซีรีส์ระยะยาวที่ใหม่กว่า อย่างไรก็ตาม ณ วันที่ 5.14 as เช่นเดียวกับชุดเคอร์เนลระยะยาวที่เก่ากว่า 3 ชุดที่แสดงในบันทึกการเปลี่ยนแปลง
ก่อนหน้านี้ เราต้องทำการเปลี่ยนแปลงเพื่อรองรับเคอร์เนลเวอร์ชันใหม่เหล่านั้น
ส่วนการเปลี่ยนแปลงที่โดดเด่นในเวอร์ชั่นใหม่นั้นเน้นว่า เพิ่มการรองรับการตั้งค่า CONFIG_SECCOMP ต่างๆ เช่นเดียวกับการรองรับพารามิเตอร์เคอร์เนล "nolkrg" เพื่อปิดใช้งาน LKRG เมื่อบูต
ในส่วนของการแก้ไขข้อผิดพลาดนั้นได้กล่าวไว้ว่า แก้ไขผลบวกลวงเนื่องจากสภาวะการแข่งขันระหว่างการประมวลผล SECOMP_FILTER_FLAG_TSYNC นอกจากนั้น การรองรับการกำหนดค่า CONFIG_HAVE_STATIC_CALL ในเคอร์เนล Linux 5.10+ ก็ได้รับการแก้ไขเช่นกัน (เงื่อนไขการแข่งขันคงที่เมื่อดาวน์โหลดโมดูลอื่น)
นอกจากนี้ยังรับประกันว่าชื่อของโมดูลที่ถูกบล็อกเมื่อใช้การตั้งค่า lkrg.block_modules = 1 จะถูกบันทึกไว้ในรีจิสทรี
จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นกว่ารุ่นใหม่นี้:
- ใช้งานการจัดวาง sysctl-settings ในไฟล์ /etc/sysctl.d/01-lkrg.conf
- เพิ่มไฟล์คอนฟิกูเรชัน dkms.conf สำหรับระบบ DKMS (Dynamic Kernel Module Support) ซึ่งใช้ในการสร้างโมดูลของบริษัทอื่นหลังจากการอัพเดตเคอร์เนล
- ปรับปรุงและอัปเดตการสนับสนุนสำหรับการสร้างการดีบักและระบบการรวมอย่างต่อเนื่อง
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม เกี่ยวกับโครงการ คุณควรรู้ว่ารหัสโครงการมีการแจกจ่ายภายใต้ใบอนุญาต GPLv2
สำหรับผู้ที่สนใจจะสามารถติดตั้งโมดูลนี้ได้ สิ่งสำคัญที่ต้องพูดถึงคือe ต้องการไดเร็กทอรีการสร้างเคอร์เนล สอดคล้องกับอิมเมจเคอร์เนล Linux ที่โมดูลจะทำงาน ตัวอย่างเช่น บน Debian และ Ubuntu คุณสามารถจัดการโครงสร้างพื้นฐานของบิลด์ที่ต้องการได้โดยการติดตั้งส่วนหัว linux:
sudo apt-get install linux-headers-$(uname -r )
ในกรณีของการแจกจ่าย เช่น RHEL, Fedora หรือการแจกจ่ายตามเหล่านี้ (และแม้แต่ CentOS) แพ็คเกจที่จะติดตั้งมีดังต่อไปนี้:
sudo yum install kernel-devel
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ รวมทั้งคำแนะนำในการรวบรวมสามารถปรึกษาข้อมูล ในลิงค์ต่อไปนี้.