Mod_securance có phải là một điều tốt?


9

Gần đây tôi thường xuyên bị các thông báo lỗi sai từ mod_security. Các bộ lọc của nó bao gồm các khai thác PHP lỗi thời và tôi phải viết lại nội dung của mình vì Wordpress & Co đã có lỗi từ nhiều năm trước.

Điều này có xảy ra với ai nữa không?

Apache mod_security chặn các yêu cầu HTTP nguy hiểm có thể trước khi chúng tiếp cận các ứng dụng (cụ thể là PHP). Nó sử dụng các bộ lọc khác nhau, chủ yếu dựa trên regex.

Vì vậy, tôi có một nhà cung cấp lưu trữ chia sẻ tốt đẹp, kỹ thuật apt và công cụ. Nhưng điều này đã làm tôi chán nản:

Mới tuần trước tôi đã phải thay đổi tên tham số &src=trong một trong các ứng dụng của mình vì mod_security chặn bất kỳ yêu cầu nào với điều đó. Tôi đã không tra cứu chi tiết của nó, nhưng quy tắc bộ lọc này đã ngăn chặn khả năng khai thác của một ứng dụng khác mà tôi không sử dụng và có lẽ chưa bao giờ nghe nói đến. Tuy nhiên, tôi đã phải viết lại mã của mình (đổi tên tham số thường đủ để lừa mod_security) không có gì để làm hoặc chung với điều đó!

Và hôm nay, một regex ngớ ngẩn chặn hình thức gửi, vì tôi muốn gửi mã mẫu php. Cho, đây là công cụ đơn giản mà mod_security có để bảo vệ chống lại. Nhưng tôi không tin mod_security có thể phát hiện mã bị xáo trộn nghiêm trọng và chỉ tắt ở đoạn trích php rõ ràng (và trong trường hợp này là hoàn toàn tầm thường).

Về cơ bản, tôi đang bị phạt bởi mod_security vì những người khác đã phát hành các ứng dụng dễ bị lỗi. (Không nói ứng dụng của tôi là cực kỳ an toàn -. Tôi bảo mật khá thận trọng, nhưng chắc không có tuyên bố hyperbol)
Tôi đã hỏi nhà cung cấp của tôi để vô hiệu hóa nó dù sao, những lợi ích quá minuscle IMO và cho ứng dụng của tôi.


Bạn nghĩ sao? Liệu mod_security có nhiều ý nghĩa bên ngoài lưu trữ WP? Hay nó thực sự chỉ là một loạt các danh sách đen của các lỗi bảo mật đã qua từ lâu? Những quy tắc của nó là thực sự hữu ích? Có một mức độ ứng dụng tương đương?


1
Việc gửi mã PHP đó là ngớ ngẩn vì ngay cả việc in một chuỗi <?php doBadStuff(); ?>không chạy chức năng đó. (Trừ khi bạn sử dụng evaltất nhiên là xấu.)
DisgruntledGoat

@DisgruntledGoat: Hoặc có thể tôi đã quá cằn nhằn một lần nữa chỉ vì hai báo động sai. Cuối cùng, mod_security giống như một trình quét vi-rút vẫn mang chữ ký vi-rút MS-DOS. Chủ yếu là không hữu ích, nhưng bắt máy quét khai thác ngẫu nhiên và thỉnh thoảng có tiềm năng ()? Hoặc như vậy:}
mario

Câu trả lời:


3

Cá nhân tôi thấy mod_security là một bản vá. Tôi sử dụng nó trên một số máy chủ của chúng tôi, nơi chúng tôi không thể kiểm soát mã được tải lên (ví dụ: máy chủ lưu trữ được chia sẻ), nhưng nó không bao giờ thực sự là một giải pháp tốt cho tôi. Dựa trên cách tiếp cận danh sách đen rộng rãi và rất chung chung, đây là một bản vá để che lấp các lỗ hổng bảo mật hơn là một chính sách bảo mật tốt.

Nó cũng có thể cung cấp một cảm giác an toàn sai lầm. mod_security có thể tiết lộ một số cuộc tấn công phổ biến nhưng không có nghĩa là có thể ngăn chặn bất kỳ cuộc tấn công nào. Một lần nữa, đó là một danh sách đen các cuộc tấn công phổ biến được biết đến. Nếu bạn chỉ đơn giản cài đặt mod_security và nghĩ rằng bạn an toàn một cách kỳ diệu, thì bạn đã nhầm.

Tôi đã tìm thấy một chính sách tốt hơn cho tôi các máy chủ được quản lý nơi nhóm của tôi xem xét tất cả mã được đặt trên chúng, kết hợp với nhiều nhật ký, phân tích logfile, hệ thống báo cáo và hệ thống ngăn chặn xâm nhập / phát hiện xâm nhập (IPS). Mỗi khi phần mềm nguồn mở hoặc bên thứ ba được cài đặt (Tôi đang nhìn vào bạn , WordPress!) Chúng tôi sẽ ghi lại nơi nó được cài đặt và khi các phiên bản mới được phát hành, chúng tôi sẽ cập nhật mọi bản sao đã được cài đặt.

Một lần nữa, bạn có nhiều khả năng tìm thấy mod_security trên một máy chủ lưu trữ được chia sẻ, như bạn đang trải nghiệm bây giờ. Khi bạn phát triển, bạn có thể chuyển sang một nhà cung cấp dịch vụ lưu trữ dựa trên VPS hoặc clod nơi bạn có được môi trường được quản lý của riêng mình và có thể kiểm soát chặt chẽ hơn phần mềm có sẵn.


Đó là những gì nó cảm thấy với tôi. Để bảo mật các tài khoản lưu trữ được chia sẻ với nhau, suexec + fastcgi thường có vẻ được áp dụng nhiều hơn. Trên VPS và với mã hoàn toàn tùy chỉnh, mod_security sẽ giúp ích rất ít (mặc dù nó có một vài kiểm tra tuân thủ HTTP). +1 nhật ký toàn diện.
mario

0

Theo tôi, nếu bạn là người mới lập trình, mod_security là một ý tưởng tốt, nhưng nếu bạn dành thời gian để viết ứng dụng của mình một cách chính xác và tránh viết mã không an toàn sử dụng chuỗi eval hoặc nối chuỗi trực tiếp vào SQL, bạn sẽ ổn thôi mà không cần nó mod_security sẽ không bao giờ ngăn chặn các tin tặc nghiêm trọng, và nếu bạn có một ứng dụng tốt, các kiddies script sẽ từ bỏ và chuyển sang ứng dụng thực sự yếu và không an toàn tiếp theo ngoài kia.


Cách để không giải thích phiếu bầu của bạn>. <
Brandon Wamboldt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.