แพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์ CHERIoT 1.0 เพื่อปรับปรุงความปลอดภัยของโค้ด C

ได้มีการเผยแพร่ข้อกำหนดฮาร์ดแวร์และแพลตฟอร์มซอฟต์แวร์ CHERIoT 1.0 (Capability Hardware Extension to RISC-V for Internet of Things) เวอร์ชันสุดท้ายแล้ว โดยกำหนดส่วนขยายชุดคำสั่ง (ISA) สำหรับการสร้างอุปกรณ์ที่ปลอดภัย CHERIoT มอบความสามารถของฮาร์ดแวร์สำหรับการตรวจสอบการเข้าถึงหน่วยความจำ การตรวจสอบความถูกต้องของตัวชี้ และการแยกบล็อกโค้ด ได้มีการเผยแพร่แบบจำลองอ้างอิง CHERIoT ISA เวอร์ชันเสถียร ซึ่งกำหนดไว้ในภาษา Sail แล้ว ผลงานของโครงการนี้เผยแพร่ภายใต้ใบอนุญาต BSD

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

ส่วนประกอบฮาร์ดแวร์ของ CHERIoT ถูกนำมาใช้งานในรูปแบบไมโครคอนโทรลเลอร์ที่ใช้ RISC-V โดยใช้สถาปัตยกรรมโปรเซสเซอร์ CHERI (Capability Hardware Extension to RISC-V) ที่ปลอดภัย พร้อมด้วยรูปแบบการเข้าถึงหน่วยความจำที่ควบคุมตามความสามารถ (การอ่านและเขียนหน่วยความจำแต่ละครั้งได้รับอนุญาต) สถาปัตยกรรมชุดคำสั่ง (ISA) ของ CHERIoT ถูกนำมาใช้เพื่อสร้างแบบจำลองซอฟต์แวร์ที่รับประกันความปลอดภัยของหน่วยความจำในระดับอ็อบเจ็กต์ ป้องกันการเข้าถึงหน่วยความจำที่ปล่อยออกมาก่อนหน้านี้ และใช้ระบบแยกการเข้าถึงหน่วยความจำแบบน้ำหนักเบา

โมเดลการปกป้องซอฟต์แวร์นี้ถูกแมปเข้ากับโมเดลภาษา C/C++ โดยตรง ทำให้สามารถนำไปใช้กับแอปพลิเคชันที่มีอยู่ได้ ซึ่งการปกป้องนั้นต้องการเพียงการคอมไพล์ใหม่และการดำเนินการบนฮาร์ดแวร์ที่รองรับ CHERIoT ISA ยกตัวอย่างเช่น การใช้ CHERIoT ช่วยให้สามารถนำการตรวจสอบขอบเขตอัตโนมัติ การตรวจสอบอายุการใช้งานหน่วยความจำ และการตรวจสอบความสมบูรณ์ของตัวชี้ในส่วนประกอบที่จัดการข้อมูลที่ไม่น่าเชื่อถือมาใช้ได้โดยไม่ต้องเปลี่ยนแปลงโค้ดใดๆ

ปัญหาที่ถูก CHERIoT ปิดกั้นมีดังนี้:

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

นอกเหนือจากข้อกำหนดและแบบจำลองอย่างเป็นทางการแล้ว โครงการกำลังพัฒนาการใช้งานอ้างอิงของ CPU RISC-V Ibex 32 บิต พร้อมรองรับ CHERIoT ISA และชุดเครื่องมือ LLVM ที่ได้รับการปรับปรุง แผนผังต้นแบบ CPU และคำอธิบายบล็อกฮาร์ดแวร์ใน Verilog ได้รับการเผยแพร่ภายใต้ใบอนุญาต Apache 2.0 CPU ใช้แกนประมวลผล Ibex จากโครงการ lowRISC ชิป ICENI ที่ใช้แกนประมวลผล Ibex ของ CHERIoT กำลังอยู่ในระหว่างการเตรียมการผลิตจำนวนมาก โดยมีกำหนดวางจำหน่ายในปีหน้า นอกจากนี้ Microsoft ยังกำลังพัฒนาไมโครคอนโทรลเลอร์ Kudu พร้อมรองรับ CHERIoT ISA โดย Ibex และ Kudu รองรับข้อกำหนด CHERIoT 1.0 อย่างสมบูรณ์แล้ว ขณะนี้กำลังดำเนินการสร้างมาตรฐานส่วนขยาย CHERI สำหรับโปรเซสเซอร์ RISC-V ในงาน RISC-V International

นอกจากนี้ ยังมีการพัฒนาโปรแกรมจำลองแพลตฟอร์มบน FPGA และคอนเทนเนอร์ Docker สำหรับนักพัฒนาพร้อมเครื่องมือที่ติดตั้งไว้ล่วงหน้าและโปรแกรมจำลอง CPU Ibex ซึ่งใช้งานผ่าน Verilator นอกจากนี้ ยังมีการพัฒนาต้นแบบของระบบปฏิบัติการแบบเรียลไทม์ CHERIoT RTOS โดยอาศัย CHERIoT ซึ่งทำให้สามารถแยกส่วนการทำงานได้แม้ในระบบฝังตัวที่มี RAM 256 MB โค้ด CHERIoT RTOS เขียนด้วยภาษา C++ และเผยแพร่ภายใต้ใบอนุญาต MIT ส่วนประกอบหลักของระบบปฏิบัติการ เช่น บูตโหลดเดอร์ ตัวจัดตารางเวลา และระบบจัดสรรหน่วยความจำ จะถูกนำไปใช้งานเป็นส่วนการทำงาน

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

ที่มา: opennet.ru

ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster