Tôi đã suy nghĩ về một kịch bản cho phép người dùng (có thể là bất kỳ ai, có thể có ý định xấu) gửi mã chạy trên máy tính Linux (hãy gọi nó là nút điểm chuẩn). Mục tiêu là tạo ra một loại môi trường điểm chuẩn tự động cho các thường trình đơn luồng. Giả sử trang web đăng một số mã lên proxy. Proxy này trao mã này cho nút điểm chuẩn và nút điểm chuẩn chỉ có kết nối ethernet với proxy, chứ không phải chính internet.Chương trình C/asm nào có thể gây hại cho Linux khi được người dùng không có đặc quyền điều hành?
Nếu người dùng cho phép bất kỳ người dùng nào đăng mã C/asm để chạy trên nút điểm chuẩn, bạn sẽ phải đối mặt với những thách thức bảo mật nào? Các giả định sau đây được thực hiện:
- Chương trình được chạy như một người dùng không có đặc quyền
- Proxy sẽ có cơ hội để giết chết quá trình vào nút benchmark (lấy kịch bản của một vòng lặp vô hạn chẳng hạn)
- Proxy có thể khởi động lại nút điểm chuẩn (nếu nó trả lời ...)
Vì vậy, trong thực tế có thể chương trình không gian người dùng này có thể làm hỏng hệ điều hành hoặc làm cho máy không khả dụng với proxy ? Với việc lắp ráp, người lập trình có thể làm bất cứ điều gì về cơ bản những gì anh ta muốn (ví dụ như sử dụng con trỏ ngăn xếp), và tôi tự hỏi mức độ hạn chế/mạnh mẽ của Linux trong khía cạnh này. Tôi cũng biết về khả năng các quy trình yêu cầu các vùng bộ nhớ chia sẻ với các quy trình khác (shm), mà cũng có thể đóng một vai trò ở đây?
Bất kỳ tài liệu hoặc bài viết nào về chủ đề này đều được hoan nghênh.
Giải pháp hộp cát cũng có thể thú vị, nhưng điều quan trọng là CPU phải thực hiện 100% những gì nó có khả năng trong quá trình chuẩn (ít nhất là trên lõi chuẩn được chạy).
liên quan: http://stackoverflow.com/questions/792764/secure-way-to-run-other-people-code-sandbox-on-my-server –