CHERIoT, một dự án của Microsoft nhằm cải thiện bảo mật trong C

CHERIOT

CHERIoT, một tùy chọn MS để bảo mật cho các hệ thống nhúng

Tin tức gần đây đã phá vỡ rằng Microsoft úp mở những phát triển liên quan đến dự án CHERIoT (Mở rộng phần cứng khả năng cho RISC-V cho Internet vạn vật), nhằm chặn các vấn đề bảo mật trong mã C và C++ hiện có. CHERIoT cung cấp một giải pháp để bảo vệ các cơ sở mã C/C++ hiện có mà không cần phải cấu trúc lại chúng.

Việc bảo vệ được thực hiện bằng cách sử dụng trình biên dịch đã sửa đổi sử dụng một bộ hướng dẫn bộ xử lý (ISA) mở rộng đặc biệt do bộ xử lý cung cấp và giám sát truy cập bộ nhớ ở cấp độ phần cứng, xác minh tính chính xác của công việc bằng con trỏ và cung cấp cách ly khối mã.

GIỚI THIỆU

Dự án đã được tạo ra với sự hiểu biết rằng bản chất cấp thấp của ngôn ngữ C trở thành một nguồn lỗi bộ nhớ, dẫn đến các vấn đề như tràn bộ đệm, truy cập vào bộ nhớ đã được giải phóng, hủy tham chiếu con trỏ hoặc giải phóng gấp đôi.

Thực tiễn cho thấy rằng ngay cả các tập đoàn lớn như Google và Microsoft, có chính sách đánh giá thay đổi nghiêm ngặt và sử dụng các phương pháp phát triển hiện đại và công cụ phân tích tĩnh, cũng không thể đảm bảo hoạt động không có lỗi với bộ nhớ (ví dụ: khoảng 70% lỗ hổng trong Microsoft và Google là do quản lý bộ nhớ không an toàn).

Vấn đề Nó có thể được giải quyết bằng cách sử dụng các ngôn ngữ lập trình đảm bảo công việc an toàn.hoặc với bộ nhớ hoặc liên kết với các điều khiển bổ sung, ví dụ: bằng cách sử dụng MiraclePtr (raw_ptr) thay vì các con trỏ thông thường, thực hiện các điều khiển bổ sung để truy cập các vùng bộ nhớ được giải phóng.

Nhưng các phương pháp như vậy phù hợp hơn với mã mới y khá rắc rối khi làm lại các dự án C/C++ hiện có, đặc biệt nếu chúng dự định chạy trong môi trường hạn chế về tài nguyên, chẳng hạn như hệ thống nhúng và thiết bị IoT.

Các Các thành phần phần cứng của CHERIoT được thiết kế như một bộ vi điều khiển dựa trên kiến ​​trúc RISC-V, triển khai kiến ​​trúc bộ xử lý an toàn CHERI (Phần mở rộng phần cứng dung lượng cho RISC-V), cung cấp mô hình truy cập bộ nhớ có kiểm soát.

Dựa trên kiến trúc tập lệnh (LÀ MỘT) Được cung cấp trong CHERIoT, một mô hình lập trình được xây dựng để đảm bảo tính bảo mật khi làm việc với bộ nhớ ở cấp độ của các đối tượng riêng lẻ, cung cấp khả năng bảo vệ chống truy cập vào bộ nhớ đã được giải phóng và triển khai một hệ thống cách ly nhẹ để truy cập bộ nhớ.

Mô hình bảo vệ theo chương trình này phản chiếu trực tiếp mô hình ngôn ngữ C/C++, cho phép nó được sử dụng để bảo vệ các ứng dụng hiện có (chỉ yêu cầu biên dịch lại và chạy trên phần cứng tuân thủ ISA CHERIoT) .

Giải pháp đề xuất cho phép chặn các lỗi gây ra ngoài giới hạn của một đối tượng trong bộ nhớ, không cho phép thay thế con trỏ (tất cả các con trỏ phải được tạo từ các con trỏ hiện có), theo dõi truy cập bộ nhớ sau khi giải phóng (bất kỳ truy cập bộ nhớ nào bởi một con trỏ xấu hoặc một con trỏ tham chiếu đến một đối tượng được giải phóng sẽ tạo ra một ngoại lệ).

Ví dụ: việc sử dụng CHERIoT cho phép thực hiện kiểm tra giới hạn tự động, theo dõi thời gian tồn tại của vùng bộ nhớ và đảm bảo tính toàn vẹn của con trỏ trong các thành phần xử lý dữ liệu không đáng tin cậy mà không cần thực hiện bất kỳ thay đổi nào đối với mã.

Dự án bao gồm một thông số kỹ thuật cho kiến ​​trúc tập lệnh CHERIoT tiện ích mở rộng, triển khai tham chiếu của CPU RISC-V 32 bit tuân thủ ISA CHERIoT và bộ công cụ LLVM đã sửa đổi.

Cuối cùng Nếu bạn muốn biết thêm về nó, bạn nên biết rằng sơ đồ nguyên mẫu Mô tả khối CPU và phần cứng trong Verilog được phân phối theo giấy phép Apache 2.0. Lõi Ibex của dự án lowRISC được sử dụng làm cơ sở cho CPU và mô hình mã ISA CHERIoT được xác định bằng ngôn ngữ Sail và được phân phối theo giấy phép BSD.

Ngoài ra, một hệ điều hành thời gian thực CHERIoT RTOS nguyên mẫu được đề xuất, cung cấp khả năng cách ly các ngăn (ngăn) ngay cả trên các hệ thống nhúng có RAM 256 MB.

Mật mã CHERIOT RTOS Nó được viết bằng C++ và được phân phối theo giấy phép MIT. Ở dạng ngăn, các thành phần cơ bản của hệ điều hành, chẳng hạn như bộ tải khởi động, bộ lập lịch và hệ thống cấp phát bộ nhớ, được thiết kế.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.