Nó đã được tiết lộ rằng một triển khai đã được đề xuất một cơ chế cách ly ứng dụng cho FreeBSD, gợi nhớ đến các lệnh gọi hệ thống gấp và mở được phát triển bởi dự án OpenBSD.
Việc cô lập trong plegde được thực hiện bằng cách cấm truy cập vào các lệnh gọi hệ thống không được ứng dụng sử dụng và tiết lộ bằng cách mở có chọn lọc quyền truy cập chỉ vào một số đường dẫn tệp nhất định mà ứng dụng có thể hoạt động. Đối với ứng dụng, một loại danh sách trắng các cuộc gọi hệ thống và đường dẫn tệp được hình thành, đồng thời tất cả các lệnh gọi và đường dẫn khác đều bị cấm.
Sự khác biệt giữa gấp và mở, được phát triển cho FreeBSD, nó sôi lên để cung cấp thêm một lớp cho phép bạn cô lập các ứng dụng mà không có hoặc thay đổi tối thiểu mã của chúng. Hãy nhớ rằng trong OpenBSD plegde và mở khóa nhằm mục đích tích hợp chặt chẽ với môi trường cơ sở và được thực hiện bằng cách thêm các chú thích đặc biệt vào mã của mỗi ứng dụng.
Để đơn giản hóa việc tổ chức bảo vệ, bộ lọc cho phép bạn tránh các chi tiết ở cấp độ các lệnh gọi hệ thống riêng lẻ và thao tác các lớp của lệnh gọi hệ thống (đầu vào / đầu ra, đọc tệp, ghi tệp, ổ cắm, ioctl, sysctl, bắt đầu quy trình, v.v.) . Các chức năng hạn chế truy cập có thể được gọi trong mã ứng dụng khi các hành động nhất định được thực hiện, ví dụ: quyền truy cập vào các ổ cắm và tệp có thể bị đóng sau khi mở tệp cần thiết và thiết lập kết nối mạng.
Tác giả của màn hình đầu tiên và cổng tiết lộ cho FreeBSD nhằm cung cấp khả năng cô lập các ứng dụng tùy ý, mà tiện ích rèm được đề xuất, cho phép áp dụng các quy tắc được xác định trong một tệp riêng cho các ứng dụng. Cấu hình được đề xuất bao gồm một tệp có cài đặt cơ bản xác định các lớp của lệnh gọi hệ thống và đường dẫn tệp điển hình dành riêng cho các ứng dụng nhất định (hoạt động với âm thanh, mạng, ghi nhật ký, v.v.), cũng như tệp có quy tắc truy cập cho các ứng dụng cụ thể.
Tiện ích rèm có thể được sử dụng để cô lập hầu hết các tiện ích, quy trình máy chủ, ứng dụng đồ họa và thậm chí toàn bộ phiên máy tính để bàn chưa được sửa đổi. Chia sẻ bức màn với các cơ chế cách ly được cung cấp bởi hệ thống con của Jail và Capsicum được hỗ trợ.
cũng có thể tổ chức cách ly lồng nhau, khi các ứng dụng được khởi chạy kế thừa các quy tắc do ứng dụng mẹ đặt ra, bổ sung chúng bằng những ràng buộc riêng biệt. Một số hoạt động của nhân (công cụ gỡ lỗi, POSIX / SysV IPC, PTY) được bảo vệ bổ sung bởi cơ chế rào cản ngăn truy cập vào các đối tượng nhân được tạo bởi các quy trình khác với quy trình hiện tại hoặc quy trình mẹ.
Một quy trình có thể định cấu hình sự cô lập của chính nó bằng cách gọi rèmctl hoặc bằng cách sử dụng các hàm plegde () và unil () được cung cấp bởi thư viện libcurtain, tương tự như của OpenBSD. Sysctl 'security.curtain.log_level' được cung cấp để theo dõi các ổ khóa trong khi ứng dụng đang chạy.
Quyền truy cập vào các giao thức X11 và Wayland được bật riêng bằng cách chỉ định các tùy chọn "-X" / "- Y" và "-W" khi khởi động màn hình, nhưng hỗ trợ cho các ứng dụng đồ họa vẫn chưa đủ ổn định và có một loạt vấn đề chưa được giải quyết ( các vấn đề xuất hiện chủ yếu khi sử dụng X11 và hỗ trợ của Wayland tốt hơn nhiều). Người dùng có thể thêm các hạn chế bổ sung bằng cách tạo tệp quy tắc cục bộ (~ / .curtain.conf). Ví dụ,
Việc triển khai bao gồm mô-đun hạt nhân mac_curtain cho kiểm soát truy cập bắt buộc (MAC), một tập hợp các bản vá cho hạt nhân FreeBSD với việc triển khai các trình điều khiển và bộ lọc cần thiết, thư viện libcurtain để sử dụng plegde và các chức năng được tiết lộ trong ứng dụng, bức màn tiện ích, hiển thị cấu hình tệp, bộ kiểm tra và bản vá cho một số chương trình không gian người dùng (ví dụ: sử dụng $ TMPDIR để thống nhất làm việc với các tệp tạm thời). Bất cứ khi nào có thể, tác giả cố gắng giảm thiểu số lượng các thay đổi yêu cầu vá hạt nhân và các ứng dụng.
Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.