it-swarm-es.com

¿Mod_security es algo bueno?

Recientemente, he sido frecuentado por mensajes de error erróneos de mod_security. Sus conjuntos de filtros cubren exploits obsoletos PHP, 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 las 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 esas cosas. 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 explotación de otra aplicación que no uso y que probablemente nunca había escuchado. Aún así, tuve que reescribir 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 o en común con eso!

Y hoy, una expresión regular tonta bloquea los envíos de formularios, porque quería enviar un código de muestra php. Dado, esto es lo simple contra lo que mod_security está ahí para protegerse. Pero no creo que mod_security pueda detectar código seriamente ofuscado, y simplemente se dispara en fragmentos de php obvios (y en este caso totalmente triviales).

Básicamente, mod_security me penaliza porque otras personas lanzaron aplicaciones propensas a errores. (No digo que mis aplicaciones sean ultra seguras, soy bastante cauteloso con la seguridad, pero no hago afirmaciones hiperbólicas).
Ya le pedí a mi proveedor que lo desactive de todos modos, los beneficios son demasiado pequeños en mi opinión y para mis aplicaciones.


¿Qué piensas? ¿Mod_security tiene mucho sentido fuera del alojamiento de 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?)

9
mario

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 amplia y muy general, es más un parche para cubrir los 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. Nuevamente, 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 mis servidores administrados en la que mi equipo revisa todo el código que se coloca en ellos, combinado con muchos registros, análisis de archivos de registro, sistemas de informes y sistemas de detección de intrusiones/prevención de intrusiones (IPS). Cada vez que se instala software de terceros o de código abierto (estoy viendo sted, WordPress!) Mantenemos un registro de dónde se instaló, y cuando se lanzan nuevas versiones, actualizamos cada copia que fue instalado.

Nuevamente, es más probable que encuentre mod_security en un servidor de alojamiento compartido, como está experimentando ahora. A medida que crece, puede pasar a un VPS o proveedor de alojamiento basado en terrones donde obtiene su propio entorno administrado y puede controlar más estrictamente el software disponible.

3
Josh

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 concatenan 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 script kiddies se rendirán y pasarán a la siguiente aplicación realmente débil e insegura que existe.

0
Brandon Wamboldt