TuxTape ข้อเสนอใหม่สำหรับ LivePatch บน Linux

ทักซ์เทป

แนวคิดของ«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 Live

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

ส่วนประกอบและสถาปัตยกรรมของโครงการ

ชุด TuxTape ประกอบด้วยเครื่องมือบูรณาการหลายอย่าง ตั้งแต่การตรวจจับไปจนถึงการแพทช์สด:

  • ระบบติดตามความเสี่ยง: มีหน้าที่รับผิดชอบในการตรวจจับและบันทึกภัยคุกคามใหม่แบบเรียลไทม์
  • เครื่องสร้างฐานข้อมูล: มีหน้าที่รับผิดชอบในการจัดเตรียมข้อมูลเกี่ยวกับแพตช์และช่องโหว่ในฐานข้อมูลที่มีโครงสร้าง
  • เซิร์ฟเวอร์เมตาดาต้าพร้อม gRPC: จัดการการสื่อสารและการประสานงานบริการที่เกี่ยวข้องกับการสร้างแพทช์
  • ระบบการจัดส่งและการสร้างเคอร์เนล: อำนวยความสะดวกในการคอมไพล์เคอร์เนลบนการกำหนดค่าเฉพาะโดยการสร้างโปรไฟล์การคอมไพล์โดยละเอียด
  • เครื่องกำเนิดไฟฟ้าและไฟล์เก็บถาวรแพทช์: แปลงแพทช์ปกติเป็นโมดูลเคอร์เนลที่โหลดได้แบบไดนามิก
  • ไคลเอนต์สำหรับโฮสต์ปลายทาง: ช่วยให้สามารถรับและใช้งานแพทช์ในระบบการผลิตได้
  • อินเทอร์เฟซแบบโต้ตอบ (แดชบอร์ด):จัดให้มีคอนโซลการดูแลระบบให้ผู้ใช้สามารถตรวจสอบ จัดการ และสร้างแพตช์สดตามแหล่งที่มาที่ได้รับ

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

สำหรับผู้ที่สนใจทดสอบโครงการ ขณะนี้ขอแนะนำให้ทดสอบเฉพาะเครื่องมือเฉพาะเท่านั้น เช่น:

  • tuxtape-cve-parser: วิเคราะห์ข้อมูลช่องโหว่และสร้างฐานข้อมูลแพตช์
  • เซิร์ฟเวอร์ tuxtape: ใช้อินเทอร์เฟซ gRPC สำหรับการสร้างและแจกจ่ายแพทช์
  • โปรแกรมสร้างเคอร์เนล tuxtape: มีหน้าที่รับผิดชอบในการสร้างเคอร์เนลด้วยการกำหนดค่าที่กำหนด และสร้างโปรไฟล์การคอมไพล์ที่สอดคล้องกัน
  • ทักซ์เทป-แดชบอร์ด:ให้อินเทอร์เฟซคอนโซลสำหรับการตรวจสอบและสร้างแพตช์สดโดยอิงจากแพตช์แหล่งที่มาที่ได้รับ

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