Google đã mở một hệ thống để tạo môi trường hộp cát cho C / C ++

Google

Vài ngày trước Google thông báo mở dự án Sandboxed APIĐó cho phép bạn tự động hóa quá trình tạo hộp cát để thực thi cô lập các thư viện tùy ý trong C và C ++.

Cách ly mã của bạn khỏi các thư viện cho phép bảo vệ khỏi các cuộc tấn công có thể xảy ra trên các tay cầm được cung cấp bởi các thư viện, tạo ra một rào cản bổ sung trong trường hợp có lỗ hổng trong mã của bạn có thể bị khai thác thông qua các thao tác với dữ liệu bên ngoài xâm nhập vào thư viện. Mã được mở theo giấy phép Apache 2.0.

Sự cô lậphoặc nó được thực hiện bằng cách sử dụng trong thời gian chạy Sandbox2, trong đó không gian tên, cgroups và seccomp-bpf được sử dụng.

Mã được phân phối tới hộp cát chạy trong một quy trình riêng biệt, để truy cập vào các cuộc gọi hệ thống và tài nguyên, cũng như các tệp và kết nối mạng, bị hạn chế.

Các quy trình chỉ có quyền truy cập vào các khả năng của hệ thống được yêu cầu trực tiếp để thực thi mã riêng biệt.

Sandbox2 xác định các thành phần để chạy quy trìnhhoặc, áp dụng các quy tắc cách ly và hỗ trợ việc thực thi tiếp theo.

Hộp cát2 nó có thể được sử dụng riêng biệt với API Sandbox để cô lập không chỉ các thư viện mà còn cả các quy trình tùy ý.

Ngoài việc tăng cường khả năng bảo vệ, một điểm tích cực trong việc loại bỏ mã trong các quy trình riêng biệt là khả năng có một quy định riêng về giới hạn tiêu thụ bộ nhớ của thư viện và CPU, cũng như bảo vệ chống lại các lỗi: lỗi trong thư viện không gây ra sự cố toàn bộ ứng dụng.

Giới thiệu về API hộp cát

Sandboxed API là một plugin cho Sandbox2 giúp đơn giản hóa việc vận chuyển các thư viện hiện có để chạy ở chế độ biệt lập.

API hộp cát cung cấp giao diện phần mềm trung gian cho phép bạn chạy mã thư viện trong môi trường hộp cátcũng như tổ chức cuộc gọi đến thư viện trong môi trường hộp cát và đảm bảo chuyển kết quả của thư viện tới chương trình chính.

Se truy cập thư viện biệt lập thông qua một RPC chuyên biệt dựa trên giao thức ProtoBuffs.

A các nhà phát triển thư viện được cung cấp một tập hợp các tùy chọn cho phép truy cập vào các biến, bộ mô tả tệp, bộ đệm và các chức năng thư viện được tách biệt khỏi ứng dụng cơ sở, bao gồm các công cụ để đồng bộ hóa bộ nhớ tự động và có kiểm soát để chia sẻ mảng và cấu trúc.

sapi-tổng quan

Khi một thư viện phần mềm phân tích dữ liệu như vậy đủ phức tạp, nó có thể trở thành nạn nhân của một số loại lỗ hổng bảo mật nhất định: lỗi hỏng bộ nhớ hoặc các loại vấn đề khác liên quan đến logic phân tích (ví dụ: vấn đề truyền tải đường dẫn). Những lỗ hổng này có thể có những tác động nghiêm trọng về bảo mật.

Bên cạnh đó, Một API được cung cấp để giám sát hoạt động của các quy trình bị cô lập và khởi động lại chúng trong trường hợp không thành công.

Đối với thư viện cô lập, mã chú thích của các chức năng cô lập được tạo tự động cho hệ thống lắp ráp Bazel và giao diện chương trình (SAPI) cho sự tương tác giữa các quy trình cơ bản và cô lập.

Nhà phát triển cũng phải tạo tệp tiêu đề với các quy tắc cách ly xác định tất cả các lệnh gọi và hoạt động hệ thống được phép (đọc, ghi, mở tệp, truy cập thời gian, khả năng cài đặt bộ xử lý tín hiệu, hỗ trợ cấp phát bộ nhớ qua malloc, v.v.).

Các tệp và thư mục mà thư viện nên có quyền truy cập được xác định riêng biệt.

Cài đặt

Hiện tại, dự án chỉ có sẵn cho Linux, nhưng trong tương lai, họ hứa hẹn sẽ bổ sung hỗ trợ cho các hệ thống macOS và BSD, và về lâu dài, và cho Windows. Đúng bạn muốn cài đặt api hộp cát, bạn có thể làm theo hướng dẫn đã cho trong liên kết này.

Trong số các kế hoạch, nó cũng được lưu ý khả năng cô lập các thư viện bằng các ngôn ngữ khác ngoài C và C ++, hỗ trợ thời gian chạy bổ sung để cách ly (ví dụ: dựa trên ảo hóa phần cứng) và khả năng sử dụng CMake và các hệ thống lắp ráp khác (hỗ trợ hiện chỉ giới hạn ở hệ thống xây dựng Bazel).

Fuente: https://security.googleblog.com


Để 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.