Apakah mod_security adalah hal yang baik?


9

Saya baru-baru ini sering dikunjungi oleh pesan kesalahan yang salah dari mod_security. Set filternya mencakup eksploitasi PHP yang ketinggalan zaman, dan saya harus menulis ulang barang-barang saya karena Wordpress & Co memiliki bug bertahun-tahun yang lalu.

Apakah ini terjadi pada orang lain?

Apache mod_security memblokir permintaan HTTP yang mungkin berbahaya sebelum mencapai aplikasi (khusus PHP). Ini menggunakan berbagai set filter, sebagian besar berbasis regex.

Jadi saya punya penyedia hosting bersama yang bagus, secara teknis tepat dan banyak hal. Tapi ini menggangguku:

Baru minggu lalu saya harus mengubah nama parameter &src=di salah satu aplikasi saya karena mod_security memblokir permintaan APAPUN dengan itu. Saya tidak mencari detailnya, tetapi aturan filter ini mencegah eksploitasi aplikasi lain yang tidak saya gunakan dan mungkin belum pernah dengar. Masih saya harus menulis ulang kode saya (mengganti nama parameter sering mencukupi untuk menipu mod_security) yang tidak ada hubungannya atau kesamaan dengan itu!

Dan hari ini, sebuah regex konyol membentuk pengiriman, karena saya ingin mengirimkan kode sampel php. Mengingat, ini adalah hal-hal sederhana yang dilindungi mod_security. Tapi saya tidak percaya mod_security dapat mendeteksi kode yang benar-benar dikaburkan, dan langsung berbunyi snipet php yang jelas (dan benar-benar sepele).

Pada dasarnya saya mendapatkan sanksi dari mod_security karena orang lain merilis aplikasi rawan bug. (Tidak mengatakan aplikasi saya sangat aman - Saya cukup keamanan waspada, tetapi tidak membuat klaim hiperbolik.)
Saya sudah meminta penyedia saya untuk menonaktifkannya, manfaatnya IMO terlalu kecil dan untuk aplikasi saya.


Bagaimana menurut anda? Apakah mod_security masuk akal di luar WP hosting? Atau itu benar-benar hanya sekelompok daftar hitam bug keamanan lama berlalu? Manakah dari peraturannya yang benar-benar bermanfaat? Apakah ada level aplikasi yang setara?


1
Pengiriman kode PHP itu konyol karena bahkan mencetak string dengan <?php doBadStuff(); ?>tidak akan menjalankan fungsi itu. (Kecuali jika Anda menggunakan evaltentu saja yang jahat.)
DisgruntledGoat

@ DisgruntledGoat: Atau mungkin saya sudah terlalu kesal lagi hanya karena dua alarm palsu. Pada akhirnya mod_security seperti pemindai virus yang masih membawa tanda tangan virus MS-DOS. Sebagian besar tidak membantu, tetapi menangkap pemindai exploit acak dan sesekali potensibadstuff ()? Atau lebih:}
mario

Jawaban:


3

Saya pribadi melihat mod_security sebagai tambalan. Saya menggunakannya di beberapa server kami di mana kami tidak dapat mengontrol kode yang diunggah (server hosting bersama, misalnya), tetapi itu tidak pernah terasa seperti solusi yang baik bagi saya. Berdasarkan pendekatan blacklist yang luas dan sangat umum, ini lebih merupakan tambalan untuk menutupi lubang keamanan daripada kebijakan keamanan yang baik.

Itu juga bisa memberikan rasa aman yang salah. mod_security dapat mengungkapkan beberapa serangan umum tetapi tidak dapat mencegah serangan apa pun. Sekali lagi, ini adalah daftar hitam serangan yang dikenal umum. Jika Anda hanya menginstal mod_security dan berpikir bahwa Anda secara ajaib aman, Anda salah besar.

Saya telah menemukan kebijakan yang jauh lebih baik untuk saya mengelola server di mana tim saya meninjau semua kode yang ditempatkan pada mereka, dikombinasikan dengan banyak log, analisis logfile, sistem pelaporan, dan deteksi intrusi / sistem pencegahan intrusi (IPS). Setiap kali pihak ketiga atau perangkat lunak open-source diinstal (saya melihat Anda , WordPress!) Kami menyimpan log di mana itu diinstal, dan ketika versi baru dirilis kami memperbarui setiap salinan yang diinstal.

Sekali lagi, Anda cenderung menemukan mod_security di server hosting bersama, seperti yang Anda alami sekarang. Seiring pertumbuhan Anda, Anda dapat pindah ke penyedia hosting berbasis VPS atau clod di mana Anda mendapatkan lingkungan terkelola sendiri dan dapat lebih mengontrol perangkat lunak yang tersedia.


Seperti itulah rasanya bagiku. Untuk mengamankan akun hosting bersama satu sama lain, suexec + fastcgi umumnya lebih berlaku. Pada VPS dan dengan semua kode khusus, mod_security jarang membantu (ia melakukan beberapa pemeriksaan kepatuhan HTTP). +1 log komprehensif.
mario

0

Menurut pendapat saya, jika Anda seorang pemula dalam pemrograman, mod_security adalah ide yang baik, tetapi jika Anda meluangkan waktu untuk menulis aplikasi Anda dengan benar dan menghindari penulisan kode tidak aman yang menggunakan string GET eval atau concatenate langsung ke SQL, Anda harus baik-baik saja tanpa Itu. mod_security tidak akan pernah menghentikan peretas serius, dan jika Anda memiliki aplikasi yang bagus, skrip kiddies akan menyerah dan beralih ke aplikasi yang benar-benar lemah dan tidak aman berikutnya di luar sana.


Cara untuk tidak menjelaskan suara turun Anda>. <
Brandon Wamboldt
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.