Por Leo Soto on Martes, 01 Octubre 2013
Categoría: Octubre

Mod Security

Mod Security es un firewall para Apache utilizado por los proveedores de hosting para agregar ciertas reglas complejas y reaccionar en algunos casos. Mod Security podría salvarnos de un ataque como también convertir nuestro trabajo como desarrolladores en una pesadilla. A continuación explicaremos de que se trata, que funciones cumple y soluciones para algunos casos.

En algunas ocasiones nos encontramos con errores de este tipo:

Not Acceptable

An appropriate representation of the requested resource /administrator/index.php could not be found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Este tipo de errores son gatillados por el servidor cuando recibe información que no esta permitida de recibir por el firewall Mod Security. Es posible también encontrarnos con errores 403, 404 o 500.

¿Cómo funciona?

El modulo funciona como un filtro para ciertas lineas de codigo que podrían ser consideradas como sospechosas o que podrían ser mal utilizadas. Entre las funcionalidades especificas cuenta con:

Desde la version 2.0 cuenta con:

Ejemplo Práctico

Hay algunos componentes que traen por defecto algunas líneas o plugins que podrían ser considerados como riesgosos por mod security. Por ejemplo, el Ai Contact Safe, es un excelente sistema para generación de formularios pero en su configuración tiene los siguientes parámetros:

Los elementos que se encuentran subrayados, ( ! ) y %mark%, pueden ser identificados como peligrosos por mod security y de inmediato arrojará un error 500.

Soluciones

  1. Primero que todo una recomendación, siempre trabajar en forma local, aunque tengamos muchos gigas de espacio en una cuenta de hosting, es siempre recomendable trabajar en forma local de forma de poder configurar a nuestro gusto el servidor de desarrollo sin afectar la seguridad.
  2. Deshabilitar mod security. Este procedimiento podría tener sus pro y sus contras, ya que nos permitirá seguir trabajando, pero la seguridad del sitio podría verse afectada si no contamos con las medidas de seguridad necesarias, o contamos con algún tipo de componente de seguridad avanzada como por ejemplo RS Firewall. Para deshabilitar el mod security se puede hacer desde el archivo .htaccess agregando las siguientes lineas de código:
SecFilterEngine Off
SecFilterScanPOST Off

o con :

SecRuleEngine Off
SecFilterInheritance Off
SecFilterEngine Off
SecFilterScanPOST Off
SecRuleRemoveById 300015 3000016 3000017

Si estas soluciones no funcionan es posible que nuestro proveedor de hosting tenga deshabilitada la opción de realizar override a ciertos módulos de PHP o Apache. en este caso tendríamoss que solicitar a nuestro proveedor que lo realice por nosotros.

3.  Agregar exclusiones a mod security. También agregar nuevas reglas y excepciones a mod security, existen reglas específicas para Joomla, tanto comerciales como gratuitas, es recomendable consultar al proveedor de hosting si se presentan problemas frecuentes. Puedes revisar mas informacion sobre exclusiones aqui

4. Ingresar el código directo al archivo "config" Muchos componentes cuentan con un archivo de configuración en el cual se guardan los parametros que se seleccionan normalmente desde la administracion de Joomla, si Mod Security nos presenta problemas podemos modificar directamente los parametros desde dicho archivo.

Mas informacion (en inglés) 

Dejar comentarios