Tôi muốn chạy các chương trình nhỏ không đáng tin cậy, nhưng hạn chế chúng truy cập bất kỳ tệp nào bên ngoài thư mục, quyền truy cập mạng và mọi thứ khác mà chúng không thực sự cần. Cách đơn giản nhất để đạt được điều này là gì?
Tôi muốn chạy các chương trình nhỏ không đáng tin cậy, nhưng hạn chế chúng truy cập bất kỳ tệp nào bên ngoài thư mục, quyền truy cập mạng và mọi thứ khác mà chúng không thực sự cần. Cách đơn giản nhất để đạt được điều này là gì?
Câu trả lời:
Nếu chúng thực sự không đáng tin cậy và bạn muốn chắc chắn, bạn sẽ thiết lập một hộp riêng. Hoặc thực sự, hoặc hầu như.
Hơn nữa, bạn không muốn chiếc hộp đó nằm trong cùng một mạng với những thứ quan trọng của bạn, nếu bạn đủ hoang tưởng. Trong tất cả các giải pháp, bạn sẽ thiết lập một người dùng riêng biệt không có quyền, do đó, không mở quá nhiều công cụ cho người thỏa hiệp.
Nếu bạn bị ràng buộc khi chạy nó trên cùng một hộp, ví dụ, bạn có tùy chọn này
chroot
. Đây là một tùy chọn mặc định để thực hiện việc này cho nhiều người và đối với các mối đe dọa không cụ thể, nó thậm chí có thể hoạt động. Nhưng nó KHÔNG phải là một lựa chọn bảo mật và có thể dễ dàng thoát ra. Tôi đề nghị sử dụng nó như dự định, tức là không bảo mật.Cuối cùng, bạn có thể cần phải thiết lập một mô hình hộp cát cụ thể mà không gặp rắc rối về ảo hóa hoặc các hộp riêng biệt hoặc tình huống vẫn có nguy cơ chroot
. Tôi nghi ngờ đây là những gì bạn muốn nói, nhưng hãy nhìn vào liên kết này để biết thêm thông tin chi tiết.
Firejail là khá mới và phát triển liên tục. Dễ sử dụng.
Bạn có thể chỉ cần:
sudo apt-get install firejail
firejail app
Docker sẽ giúp bạn thiết lập các thùng chứa mà bạn có thể chạy khỏi kernel hiện tại của mình, nhưng vẫn tránh xa phần còn lại của hệ thống. Nó có vẻ khá tiên tiến nhưng có một Ubuntu tập trung một tài liệu tốt.
Một giải pháp khả thi là phần mềm ảo hóa như VirtualBox mà bạn có thể tìm thấy trong trung tâm phần mềm.
Bây giờ bạn có thể cài đặt phần mềm mà bạn không tin tưởng để xem những gì nó làm. Nó không thể làm đảo lộn thế giới bên ngoài hoặc bạn lưu trữ HĐH vì nó không có quyền truy cập.
Tuy nhiên, nó có thể làm hỏng máy ảo của bạn, nhưng nếu có, bạn chỉ có thể khôi phục từ ảnh chụp nhanh của mình.
Có thể có các phương pháp khác để hạn chế sức mạnh hủy diệt của phần mềm không tin cậy nhưng đây là phương pháp mạnh mẽ nhất mà tôi có thể nghĩ ra.
Một lựa chọn khác có thể là LXC thêm thông tin ở đây
LXC là gói điều khiển không gian người dùng dành cho Linux Container, một cơ chế hệ thống ảo nhẹ đôi khi được mô tả là chroot trên steroids.
LXC xây dựng từ chroot để thực hiện các hệ thống ảo hoàn chỉnh, thêm các cơ chế quản lý tài nguyên và cách ly vào cơ sở hạ tầng quản lý quy trình hiện có của Linux.
Nó có sẵn trong trung tâm phần mềm. Tôi không có kinh nghiệm với tuy nhiên.
Mbox là một cơ chế hộp cát nhẹ mà bất kỳ người dùng nào cũng có thể sử dụng mà không có đặc quyền đặc biệt trong các hệ điều hành hàng hóa.
Tôi đã sử dụng nó cho một vài thứ đáng tin cậy.
Bạn có thể sử dụng subuser để sandbox các ứng dụng của bạn với Docker. Điều này cho phép bạn thực hiện những việc như ứng dụng GUI hộp cát, điều này không dễ thực hiện với Docker trực tiếp.
sudo apt install subuser
Tôi nghĩ, một giải pháp khả thi là tạo một người dùng riêng cho mục đích thử nghiệm và giới hạn các đặc quyền của anh ta. Bằng cách này, bạn sẽ không bị mất hiệu năng, điều chắc chắn sẽ xảy ra trong máy ảo, nhưng tôi nghĩ rằng điều này kém an toàn, nếu không được thiết lập đúng cách, tôi không thể tư vấn cách làm.
Trong trường hợp bạn chỉ muốn sandbox hoạt động của người dùng, bạn có thể sử dụng "DoSH"
DoSH (viết tắt của Docker SHell) là một sự phát triển để tạo các container Docker khi người dùng đăng nhập vào hệ thống Linux và chạy shell vào chúng, thay vì tạo ra shell.