Phát hành Bubblewrap 0.6, một lớp để tạo môi trường biệt lập

Đã có bản phát hành các công cụ để tổ chức công việc trong môi trường biệt lập Bubblewrap 0.6, thường được sử dụng để hạn chế các ứng dụng riêng lẻ của người dùng không có đặc quyền. Trong thực tế, Bubblewrap được dự án Flatpak sử dụng như một lớp để cách ly các ứng dụng được khởi chạy khỏi các gói. Mã dự án được viết bằng C và được phân phối theo giấy phép LGPLv2+.

Để cách ly, các công nghệ ảo hóa vùng chứa Linux truyền thống được sử dụng, dựa trên việc sử dụng các nhóm, không gian tên, Seccomp và SELinux. Để thực hiện các hoạt động đặc quyền nhằm định cấu hình vùng chứa, Bubblewrap được khởi chạy với quyền root (tệp thực thi có cờ suid) và sau đó đặt lại các đặc quyền sau khi vùng chứa được khởi tạo.

Việc kích hoạt không gian tên người dùng trong hệ thống không gian tên, cho phép bạn sử dụng bộ mã định danh riêng của mình trong vùng chứa, là không cần thiết để vận hành vì nó không hoạt động theo mặc định trong nhiều bản phân phối (Bubblewrap được định vị là triển khai suid giới hạn của một tập hợp con các khả năng của không gian tên người dùng - để loại trừ tất cả số nhận dạng người dùng và quy trình khỏi môi trường, ngoại trừ số nhận dạng hiện tại, các chế độ CLONE_NEWUSER và CLONE_NEWPID được sử dụng). Để bảo vệ bổ sung, các chương trình được thực thi trong Bubblewrap được khởi chạy ở chế độ PR_SET_NO_NEW_PRIVS, chế độ này cấm việc giành được các đặc quyền mới, chẳng hạn như nếu có cờ setuid.

Việc cách ly ở cấp hệ thống tệp được thực hiện bằng cách tạo một vùng tên gắn kết mới theo mặc định, trong đó một phân vùng gốc trống được tạo bằng cách sử dụng tmpfs. Nếu cần, các phân vùng FS bên ngoài sẽ được gắn vào phân vùng này ở chế độ “mount —bind” (ví dụ: khi khởi chạy với tùy chọn “bwrap —ro-bind /usr /usr”, phân vùng /usr sẽ được chuyển tiếp từ hệ thống chính ở chế độ chỉ đọc). Khả năng của mạng bị giới hạn trong việc truy cập vào giao diện loopback với cách ly ngăn xếp mạng thông qua cờ CLONE_NEWNET và CLONE_NEWUTS.

Điểm khác biệt chính so với dự án Firejail tương tự, cũng sử dụng mô hình khởi chạy setuid, là trong Bubblewrap, lớp tạo vùng chứa chỉ bao gồm các khả năng tối thiểu cần thiết và tất cả các chức năng nâng cao cần thiết để chạy các ứng dụng đồ họa, tương tác với màn hình nền và lọc các yêu cầu sang Pulseaudio, được chuyển sang phía Flatpak và được thực thi sau khi các đặc quyền được đặt lại. Mặt khác, Firejail kết hợp tất cả các chức năng liên quan trong một tệp thực thi, điều này gây khó khăn cho việc kiểm tra và duy trì bảo mật ở mức thích hợp.

Trong bản phát hành mới:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Nguồn: opennet.ru

Thêm một lời nhận xét