แนวคิดของ«Livepatch ไม่ใช่เรื่องใหม่ และยังไม่ได้มีการนำไปใช้งานใน Linux เลยเป็นเวลาสองสามปีแล้ว เนื่องจาก Red Hat, Oracle, Canonical และ SUSE เป็นบางส่วนที่ได้นำเทคโนโลยีนี้ไปใช้งานในระบบปฏิบัติการของตน
และแม้ว่าพวกเขาจะพิสูจน์ตัวเองว่าเป็นวิธีแก้ปัญหาที่ดีเยี่ยม แต่สิ่งนี้ โดยปกติจะขึ้นอยู่กับกระบวนการแบบปิด ในการสร้างแพทช์ การจำกัดความโปร่งใสและความสามารถในการปรับตัว โครงการโอเพ่นซอร์สก่อนหน้านี้ เช่น elivepatch ของ Gentoo และ linux-livepatching ของ Debian มักถูกทำเครื่องหมายด้วยช่วงเวลาอันยาวนานของความไม่มีกิจกรรมหรือความซ้ำซากในช่วงต้นแบบของพวกมัน
เมื่อเผชิญกับปัญหาต่างๆ เหล่านี้ ซึ่งยังคงเผชิญกับกระบวนการสร้าง รวบรวม ปรับใช้ และติดตั้งแพทช์เคอร์เนล Linux ที่ใช้งานอยู่ TuxTape นำเสนอตัวเองเป็นโซลูชั่น อิสระ ออกแบบมาให้ปรับใช้ได้กับเคอร์เนล Linux ทุกเวอร์ชัน โดยไม่ถูกจำกัดเฉพาะแพ็คเกจที่เฉพาะกับการแจกจ่ายแต่ละแบบ
TuxTape โซลูชันสำหรับการแพตช์สดใน Linux
TuxTape เป็นโซลูชั่นใหม่ นี้ อนุญาตให้ผู้ดูแลระบบ ของระบบ นำโครงสร้างพื้นฐานของคุณเองมาใช้ เพื่อสร้าง ประกอบ และปรับใช้แพทช์สดไปยังเคอร์เนล Linux
วัตถุประสงค์หลัก TuxTape คือการเสนอ ระบบที่ครอบคลุมซึ่งทำให้การสร้างและส่งมอบแพตช์สดเป็นแบบอัตโนมัติ- สถาปัตยกรรมนี้ช่วยให้สามารถสร้างแพตช์ที่เข้ากันได้กับเครื่องมือที่มีอยู่ เช่น kpatch ของ Red Hat, kGraft ของ SUSE, Ksplice ของ Oracle และโซลูชันสากลอื่นๆ
แพทช์ พวกมันถูกนำมาใช้เป็นโมดูลเคอร์เนลที่เข้ามาแทนที่ฟังก์ชั่นที่มีอยู่ โดยใช้ระบบย่อย ftrace ซึ่งเปลี่ยนเส้นทางการดำเนินการไปยังฟังก์ชันใหม่ที่รวมอยู่ในโมดูล นอกจากนี้ TuxTape ยังสามารถติดตามการอัปเดตช่องโหว่ที่โพสต์บนรายชื่อส่งเมล linux-cve-announce และในที่เก็บ Git ได้อีกด้วย

ระบบจะใช้ข้อมูลนี้เพื่อจำแนกช่องโหว่ตามระดับความรุนแรง ประเมินความสามารถในการนำไปใช้ได้ของแพตช์แต่ละรายการผ่านการวิเคราะห์โปรไฟล์การสร้างเคอร์เนลอย่างละเอียด และยกเลิกการแก้ไขที่ไม่ส่งผลต่อสภาพแวดล้อมเป้าหมาย แนวทางการเลือกสรรนี้ช่วยให้แน่ใจว่ามีการนำการเปลี่ยนแปลงที่เกี่ยวข้องมาใช้เท่านั้น ซึ่งจะช่วยลดความเสี่ยงและเพิ่มประสิทธิภาพการทำงานให้เหมาะสมที่สุด
ส่วนประกอบและสถาปัตยกรรมของโครงการ
ชุด TuxTape ประกอบด้วยเครื่องมือบูรณาการหลายอย่าง ตั้งแต่การตรวจจับไปจนถึงการแพทช์สด:
- ระบบติดตามความเสี่ยง: มีหน้าที่รับผิดชอบในการตรวจจับและบันทึกภัยคุกคามใหม่แบบเรียลไทม์
- เครื่องสร้างฐานข้อมูล: มีหน้าที่รับผิดชอบในการจัดเตรียมข้อมูลเกี่ยวกับแพตช์และช่องโหว่ในฐานข้อมูลที่มีโครงสร้าง
- เซิร์ฟเวอร์เมตาดาต้าพร้อม gRPC: จัดการการสื่อสารและการประสานงานบริการที่เกี่ยวข้องกับการสร้างแพทช์
- ระบบการจัดส่งและการสร้างเคอร์เนล: อำนวยความสะดวกในการคอมไพล์เคอร์เนลบนการกำหนดค่าเฉพาะโดยการสร้างโปรไฟล์การคอมไพล์โดยละเอียด
- เครื่องกำเนิดไฟฟ้าและไฟล์เก็บถาวรแพทช์: แปลงแพทช์ปกติเป็นโมดูลเคอร์เนลที่โหลดได้แบบไดนามิก
- ไคลเอนต์สำหรับโฮสต์ปลายทาง: ช่วยให้สามารถรับและใช้งานแพทช์ในระบบการผลิตได้
- อินเทอร์เฟซแบบโต้ตอบ (แดชบอร์ด):จัดให้มีคอนโซลการดูแลระบบให้ผู้ใช้สามารถตรวจสอบ จัดการ และสร้างแพตช์สดตามแหล่งที่มาที่ได้รับ
ควรกล่าวถึงว่าปัจจุบันโครงการและการพัฒนา TuxTape อยู่ในระยะสร้างต้นแบบเชิงทดลอง ดังนั้น ในขณะนี้ขอแนะนำให้ใช้สำหรับการทดสอบเบื้องต้นกับส่วนประกอบต่างๆ เท่านั้น
สำหรับผู้ที่สนใจทดสอบโครงการ ขณะนี้ขอแนะนำให้ทดสอบเฉพาะเครื่องมือเฉพาะเท่านั้น เช่น:
- tuxtape-cve-parser: วิเคราะห์ข้อมูลช่องโหว่และสร้างฐานข้อมูลแพตช์
- เซิร์ฟเวอร์ tuxtape: ใช้อินเทอร์เฟซ gRPC สำหรับการสร้างและแจกจ่ายแพทช์
- โปรแกรมสร้างเคอร์เนล tuxtape: มีหน้าที่รับผิดชอบในการสร้างเคอร์เนลด้วยการกำหนดค่าที่กำหนด และสร้างโปรไฟล์การคอมไพล์ที่สอดคล้องกัน
- ทักซ์เทป-แดชบอร์ด:ให้อินเทอร์เฟซคอนโซลสำหรับการตรวจสอบและสร้างแพตช์สดโดยอิงจากแพตช์แหล่งที่มาที่ได้รับ
ท้ายที่สุด สิ่งสำคัญคือต้องกล่าวถึงว่าโครงการนี้กำลังได้รับการพัฒนาใน Rust และเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 คุณสามารถดูข้อมูลเพิ่มเติมหรือซอร์สโค้ดได้จาก ลิงค์ต่อไปนี้