2010-09-05 28 views
8

theo Using ptrace to write a program supervisor in userspace, tôi đang cố gắng tạo thành phần giám sát chương trình của một thẩm phán trực tuyến.Hệ thống nào gọi để chặn/cho phép/kiểm tra để tạo người giám sát chương trình

tôi sẽ cần những gì các cuộc gọi hệ thống để ngăn chặn hoàn toàn, luôn luôn cho phép hoặc kiểm tra các thuộc tính của để:

  • Ngăn chặn forking hoặc runing lệnh khác
  • Restrict để C và C++ libs 'an toàn' chuẩn
  • Ngăn truy cập mạng
  • Giới hạn quyền truy cập vào tất cả trừ 2 tệp 'in.txt' và 'out.txt'
  • Ngăn quyền truy cập vào bất kỳ chức năng hoặc chi tiết hệ thống nào.
  • Ngăn ứng dụng thoát khỏi người giám sát của mình
  • Ngăn chặn bất kỳ điều gì khó chịu.

Cảm ơn mọi trợ giúp/lời khuyên/liên kết được đánh giá cao.

Trả lời

3

Từ quan điểm bảo mật, cách tiếp cận tốt nhất là tìm ra những gì bạn cần cho phép thay vì những gì bạn cần từ chối. Tôi sẽ khuyên bạn nên bắt đầu với một giám sát viên mà chỉ cần đăng nhập tất cả mọi thứ mà một tập hợp được biết đến lành tính của các chương trình nào, và sau đó whitelist những syscalls và truy cập tập tin. Khi các chương trình mới chạy afoul của sandbox rất hạn chế này, sau đó bạn có thể đánh giá các hạn chế nới lỏng trên cơ sở từng trường hợp cho đến khi bạn tìm đúng hồ sơ.

Đây thực chất là như thế nào ứng dụng hồ sơ sandbox được phát triển trên Mac OS X.

0

Nếu bạn chỉ muốn hệ thống các cuộc gọi đến kiểm tra processus khác, bạn có thể sử dụng ptrace(), nhưng ou sẽ không có guaranties, như đã nói trong Using ptrace to write a program supervisor in userspace.

Bạn có thể sử dụng valgrind để kiểm tra và móc các cuộc gọi chức năng, thư viện, nhưng nó sẽ tẻ nhạt và có thể danh sách đen không phải là cách tốt để làm điều đó.

Bạn cũng có thể sử dụng systrace, (http://en.wikipedia.org/wiki/Systrace) để viết quy tắc để cho phép/chặn nhiều thứ, như chỉ mở một số tệp, v.v ... Thật đơn giản để sử dụng nó cho sandbox processus.

1

Có lẽ bạn có thể định cấu hình AppArmor để thực hiện những gì bạn muốn. Từ Câu hỏi thường gặp:

AppArmor là hệ thống bảo mật ứng dụng Linux hiệu quả và dễ sử dụng nhất hiện có trên thị trường hiện nay. AppArmor là một khung bảo mật chủ động bảo vệ hệ điều hành và các ứng dụng khỏi các mối đe dọa bên ngoài hoặc bên trong, thậm chí các cuộc tấn công zero-day, bằng cách thực thi hành vi chương trình tốt và ngăn chặn các lỗ hổng phần mềm không xác định được khai thác. Các cấu hình bảo mật AppArmor hoàn toàn xác định những tài nguyên hệ thống mà các chương trình riêng lẻ có thể truy cập, và với những đặc quyền nào. Một số chính sách mặc định được bao gồm trong AppArmor và sử dụng kết hợp các công cụ phân tích tĩnh và học tập nâng cao, chính sách AppArmor cho các ứng dụng thậm chí rất phức tạp có thể được triển khai thành công chỉ trong vài giờ.

Các vấn đề liên quan