2013-05-23 27 views
10

Lợi ích của việc sử dụng mô-đun ITK thay vì Máy chủ Apache đang chạy máy chủ Apache là gì? Ý tưởng là giống nhau, đó là chạy tập lệnh có đặc quyền của chủ sở hữu thay vì không ai, www hoặc apache!Apache ITK vs Suexec

Tốt hơn là sử dụng ITK có lợi cho suexec? Nếu vậy, tại sao? Điều gì về an ninh và hiệu suất trong so sánh?

Trả lời

18

MPM-ITK cho phép bạn chạy Apache với thông tin đăng nhập của mỗi người dùng thay vì theo người dùng/nhóm Apache. Suexec chạy tập lệnh dưới dạng CGI theo một nhóm/người dùng cụ thể, nhưng các tệp tĩnh do Apache cung cấp vẫn cần thêm quyền mở để truy cập.

MPM-ITK cho phép tất cả các mô-đun Apache (mod_php, v.v.) chạy dưới một người dùng cụ thể: nhóm có các tệp tĩnh có cùng quyền như tập lệnh. Nhược điểm chính là quá trình kiểm soát của Apache phải chạy dưới dạng root (với các đặc quyền giảm) để nó có thể chuyển sang bất kỳ người dùng nào sau khi yêu cầu được phân tích cú pháp. Suexec không có rủi ro bảo mật này, nhưng nó chỉ là một giải pháp cho việc thực thi kịch bản (không phải là cách ly nội dung trang web).

Đây là a blog post with a good summary regarding MPM-ITK vs Suexec and other solutions. Tác giả chấp nhận các tác động an ninh của MPM-ITK với ý kiến ​​cho rằng nó cân nhắc những hạn chế của các giải pháp cạnh tranh. Tôi không đồng ý với tác giả rằng việc khai thác Apache ít có khả năng thành công chỉ vì bản vá MPM-ITK đang được sử dụng, vì vậy tôi khuyên bạn nên cập nhật các bản vá bảo mật của bạn (chúng ta nên làm gì?) Nếu bạn sẵn sàng chấp nhận rủi ro bảo mật để có được lợi ích cho mỗi người dùng.

Tóm lại, MPM-ITK và Suexec thực sự là một quyết định cho mỗi tình huống. Giải pháp duy nhất ngoài MPM-ITK là các cá thể Apache cho mỗi người dùng phía sau proxy ngược, nếu tài nguyên máy chủ không phải là mối quan tâm. Đọc thêm về điều đó tại đây: http://wiki.apache.org/httpd/ExtendingPrivilegeSeparation

+1

Cảm ơn rất nhiều nỗ lực của bạn! Tôi đã đọc bài báo đó và có vẻ như đó là bản tóm tắt liên quan đến ITK duy nhất hiện có! :) Tôi hiểu mọi thứ nhưng một điều, khi chúng ta nói rằng 'ITK chạy TẤT CẢ các tiến trình như root' và sau đó sinh ra chúng như là người dùng cụ thể - là mối đe dọa lý thuyết này trong trường hợp lỗ hổng không xác định Apache? Bạn không thể quay lại root sau khi bạn được sinh ra như một người dùng cụ thể, đúng không? –

+2

Chính xác. Quá trình kiểm soát chạy dưới dạng root, với các đặc quyền giảm, và các nhánh cho mỗi yêu cầu và chuyển sang nhóm người dùng chính xác: group. Các quy trình chia hai không thể thay đổi về gốc. [Theo tác giả MPM-ITK:] (http://mpm-itk.sesse.net/) "Vì mpm-itk có thể setuid(), nó chạy dưới dạng root (mặc dù bị hạn chế với khả năng POSIX và seccomp v2 nếu có thể) cho đến khi yêu cầu được phân tích cú pháp và xác định vhost. Điều này có nghĩa là bất kỳ lỗ thực thi mã nào trước khi yêu cầu được phân tích cú pháp sẽ là một lỗ hổng bảo mật gốc tiềm năng. (Vị trí có khả năng nhất có thể là mod_ssl.) " – jimp

+1

Tóm tắt, trong trường hợp tôi là chính xác: Giữ suexec cho an ninh nhất và sử dụng ITK cho tốc độ nhưng có khả năng tưởng tượng nhưng chưa được chứng minh tiềm năng của lỗ hổng bảo mật gốc? Điều gì khiến bạn nghĩ đó là mod_ssl? Bạn đã cố thỏa hiệp chưa? Bạn đã nghe nói rằng ai cũng có thể bao gồm nó? –