Recientemente he sido frecuentado por mensajes de error erróneos de mod_security. Sus conjuntos de filtros cubren exploits PHP obsoletos, y tengo que reescribir mis cosas porque Wordpress & Co tenía errores hace años.
¿Ocurre esto a alguien más?
Apache mod_security bloquea solicitudes HTTP posiblemente peligrosas antes de que lleguen a las aplicaciones (específicamente PHP). Utiliza varios conjuntos de filtros, principalmente basados en expresiones regulares.
Así que tengo un buen proveedor de alojamiento compartido, técnicamente apto y demás. Pero esto me molestó:
La semana pasada tuve que cambiar el nombre de un parámetro &src=
en una de mis aplicaciones porque mod_security bloquea CUALQUIER solicitud con eso. No busqué sus detalles, pero esta regla de filtro impedía la posibilidad de explotar otra aplicación que no uso y que probablemente nunca había escuchado. Aún así, tuve que volver a escribir mi código (cambiar el nombre del parámetro a menudo es suficiente para engañar a mod_security) que no tenía nada que ver ni tenía en común.
Y hoy, una tonta expresión regular bloquea los envíos de formularios, porque quería enviar un código de muestra php. Dado, este es el material simple contra el que mod_security está ahí para proteger. Pero no creo que mod_security pueda detectar código seriamente ofuscado, y simplemente se apaga en fragmentos de php obvios (y en este caso totalmente triviales).
Básicamente, mod_security me está penalizando porque otras personas lanzaron aplicaciones propensas a errores. (Sin decir que mis aplicaciones son ultra seguras, soy bastante cauteloso con respecto a la seguridad, pero no hago afirmaciones hiperbólicas).
Ya le he pedido a mi proveedor que lo desactive de todos modos, los beneficios son demasiado mínimos para mi IMO y para mis aplicaciones.
¿Qué piensas? ¿Mod_security tiene mucho sentido fuera del alojamiento WP? ¿O es realmente solo un montón de listas negras de errores de seguridad pasados? ¿Cuáles de sus reglas son realmente útiles? ¿Existe un nivel de aplicación equivalente?
<?php doBadStuff(); ?>
no ejecutará esa función. (A menos que utilices,eval
por supuesto, que es malo de todos modos.)Respuestas:
Personalmente veo mod_security como un parche. Lo uso en algunos de nuestros servidores donde no podemos controlar el código que se carga (servidores de alojamiento compartido, por ejemplo), pero nunca me pareció una buena solución. Basado en su enfoque de lista negra general y muy general, es más un parche para cubrir agujeros de seguridad que una buena política de seguridad.
También puede proporcionar una falsa sensación de seguridad. mod_security puede revelar algunos ataques comunes pero de ninguna manera puede prevenir ningún ataque. De nuevo, es una lista negra de ataques conocidos comunes. Si simplemente instala mod_security y cree que es mágicamente seguro, está terriblemente equivocado.
He encontrado una política mucho mejor para los servidores administrados en los que mi equipo revisa todo el código que se les asigna, combinado con muchos registros, análisis de archivos de registro, sistemas de informes y sistemas de detección de intrusos / prevención de intrusos (IPS). Cada vez que se instala de terceros o software de código abierto (estoy mirando a usted , WordPress!) Mantenemos un registro de donde estaba instalado, y cuando se lanzan nuevas versiones que se actualizan cada copia que se instaló.
Nuevamente, es más probable que encuentre mod_security en un servidor de alojamiento compartido, como lo está experimentando ahora. A medida que crezca, puede pasar a un proveedor de alojamiento basado en VPS o terrones donde obtenga su propio entorno administrado y pueda controlar más estrictamente el software disponible.
fuente
En mi opinión, si eres un novato en programación, mod_security es una buena idea, pero si te tomas el tiempo para escribir tus aplicaciones correctamente y evitas escribir código inseguro que usa eval o concatena cadenas GET directamente en SQL, deberías estar bien sin eso. mod_security nunca detendrá a los piratas informáticos serios, y si tienes una buena aplicación, los niños de script se darán por vencidos y pasarán a la siguiente aplicación realmente débil e insegura.
fuente