¿Mod_security es algo bueno?

9

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?

mario
fuente
1
Ese envío de código PHP es una tontería porque incluso imprimir una cadena con <?php doBadStuff(); ?>no ejecutará esa función. (A menos que utilices, evalpor supuesto, que es malo de todos modos.)
DisgruntledGoat
@DisgruntledGoat: O tal vez he estado demasiado malhumorado solo por dos falsas alarmas. Al final, mod_security es como un escáner de virus que todavía lleva firmas de virus MS-DOS. En su mayoría no es útil, ¿pero detecta el exploit exploit aleatorio y el potencial material ocasional ()? O eso:}
mario

Respuestas:

3

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.

Josh
fuente
Eso es lo que se siente para mí. Para asegurar las cuentas de alojamiento compartido entre sí, suexec + fastcgi parecen generalmente más aplicables. En un VPS y con un código totalmente personalizado, mod_security rara vez ayuda (aunque hace algunas comprobaciones de cumplimiento HTTP). +1 registros completos.
mario
0

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.

Brandon Wamboldt
fuente
Manera de no explicar su voto
negativo