Bubblewrap, một công cụ để tạo ứng dụng trong môi trường biệt lập

Bubblewrap là một công cụ cái gì hoạt động để tổ chức công việc hộp cát trên Linux và chạy ở cấp ứng dụng người dùng không đặc quyền. Trong thực tế, Bubblewrap được dự án Flatpak sử dụng như một lớp trung gian để cô lập các ứng dụng được khởi chạy từ các gói phần mềm.

Để cách ly, Linux sử dụng công nghệ ảo hóa của các vùng chứa truyền thố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 cấu hình một vùng chứa, Bubblewrap được bắt đầu với các đặc quyền gốc (một tệp thực thi có cờ suid), tiếp theo là đặt lại đặc quyền sau khi vùng chứa được khởi tạo.

Không cần kích hoạt không gian tên người dùng trên hệ thống, cho phép bạn sử dụng tập hợp id của riêng mình trong các vùng chứa, vì theo mặc định, nó không hoạt động trên nhiều bản phân phối.

Giới thiệu về Bubblewrap

Bubblewrap được định vị là một triển khai suida hạn chế từ tập hợp con của các chức năng không gian tên người dùng để loại trừ tất cả id người dùng và id quy trình khỏi môi trường ngoại trừ id hiện tại, hãy sử dụng các chế độ CLONE_NEWUSER và CLONE_NEWPID.

Để được bảo vệ bổ sung, chương trình chạy trong Bubblewrap bắt đầu ở chế độ PR_SET_NO_NEW_PRIVS, cấm các đặc quyền mới, ví dụ, với cờ setuid.

Việc cô lập ở cấp hệ thống tệp được thực hiện bằng cách tạo, theo mặc định, không gian tên gắn kết mới, trong đó phân vùng gốc trống được tạo bằng tmpfs.

Nếu cần, các phần FS bên ngoài được đính kèm với phần này trong «gắn kết –bind»(Ví dụ: bắt đầu với tùy chọn«bwrap –ro-bind / usr / usr', Phần / usr được chuyển tiếp từ máy chủ lưu trữ ở chế độ chỉ đọc).

Khả năng mạng bị giới hạn để truy cập vào giao diện lặp lại đảo ngược với cách ly ngăn xếp mạng thông qua các chỉ báo CLONE_NEWNET và CLONE_NEWUTS.

Sự khác biệt chính với dự án Firejail tương tự, cũng sử dụng trình khởi chạy setuid, trong Bubblewrap, lớp vùng chứa chỉ bao gồm các tính năng cần thiết tối thiểu và tất cả các chức năng nâng cao cần thiết để khởi chạy các ứng dụng đồ họa, tương tác với máy tính để bàn và lọc các lệnh gọi đến Pulseaudio, đều được đưa về phía Flatpak và chạy 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 vào một tệp thực thi, làm phức tạp việc kiểm tra của bạn và giữ bảo mật ở mức thích hợp.

Bubblewrap về cơ bản hoạt động Bằng phương tiện của tạo không gian tên gắn kết trống trên hệ thống tệp tạm thời sẽ bị hủy sau khi quá trình xử lý hộp cát hoàn tất.

Bằng cách sử dụng công tắc, người dùng có thể xây dựng môi trường hệ thống tệp mong muốn trong không gian tên gắn kết bằng cách gắn vào liên kết của các thư mục mong muốn từ hệ thống máy chủ.

Bọc bong bóng 0.4.0

Hiện tại Bubblewrap đang ở phiên bản 0.4.0 được phát hành gần đây. Mã dự án được viết bằng C và được phân phối theo giấy phép LGPLv2 +.

Phiên bản mới đáng chú ý là việc triển khai hỗ trợ tham gia không gian tên và quy trình người dùng hiện tại (không gian tên pid).

Các cờ "–usern", "–usern2" và "–pidns" đã được thêm vào để kiểm soát kết nối của không gian tên.

Tính năng này không hoạt động trong chế độ setuid và yêu cầu một chế độ riêng biệt có thể hoạt động mà không cần quyền root, nhưng yêu cầu bật vùng tên người dùng trên hệ thống (bị tắt theo mặc định trên Debian và RHEL / CentOS) và không loại trừ khả năng khai thác tiềm năng các lỗ hổng còn lại đối với các hạn chế "không gian tên người dùng".

Trong số các tính năng mới của Bubblewrap 0.4, khả năng xây dựng bằng thư viện musl C thay vì glibc cũng được quan sát thấy, và hỗ trợ lưu thông tin không gian tên vào tệp thống kê ở định dạng JSON.

Bạn có thể tham khảo mã Bubblewrap cũng như tài liệu về nó trên Github, liên kết là đây.


Để 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: Miguel Ángel Gatón
  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.