Con el fin de poder detectar e impedir ataques contra aplicaciones web, el firewall para aplicaciones web (ModSecurity) examina todas las peticiones realizadas a su servidor web así como las respuestas del servidor de acuerdo con su conjunto de reglas. Si la comprobación es correcta, la petición HTTP se transfiere al sitio web para recuperar el contenido. De lo contrario, se llevan a cabo las acciones predefinidas.

ModSecurity se soporta tanto en Plesk para Linux como en Plesk para Windows. Este actúa como un módulo de servidor web (Apache o IIS).

Activación de ModSecurity

Para activar el firewall para aplicaciones web:

  1. Go to Tools & Settings > Web Application Firewall (ModSecurity) (under «Security»).

    Si no puede ver este enlace, instale el componente ModSecurity en Herramientas y configuración > Actualizaciones > Adición/eliminación de componentes > Hosting web.

    image 78702

  2. Establezca el modo del firewall para aplicaciones web a Activado o Sólo detección. Cada petición HTTP entrante y la respuesta relacionada será verificada mediante un conjunto de reglas. Si la comprobación es correcta, la petición HTTP se transferirá al sitio web para recuperar el contenido. De lo contrario, el evento será registrado. En el modo Sólo detección, no se realizará ninguna otra acción. En el modo Activado, se proporcionará la respuesta HTTP junto con un código de error.

    Nota: podrá establecer los modos del firewall para aplicaciones web tanto a nivel de servidor como de dominio. No obstante, el modo establecido a nivel de dominio no podrá ser superior al establecido para el servidor. Por ejemplo, si el firewall para aplicaciones web está en modo Sólo detección a nivel del servidor, no podrá pasarlo a modo Activado para los dominios. Únicamente se mostrarán los modos Desactivado y Sólo detección.

  3. Go to the «Settings» tab and then select the set of rules that will be checked by the web application firewall engine for each incoming HTTP request, or upload a custom rule set. You can select the following rule sets:

    • Atomic Standard (free, can be upgraded to Atomic Advanced). A free starter version of the Atomic ModSecurity rules, bundled with Plesk. It contains important security features and bug fixes released on a monthly basis. For rules included in this rule set, see Atomic ModSecurity Rule Sets.

    • OWASP (free). The OWASP ModSecurity Core Rule Set (CRS) provides generic protection from unknown vulnerabilities often found in web applications. This rule set is shipped for free. It is known as a very restrictive rule set; it requires additional tuning for production use. When this rule set is selected, WordPress partly does not work, webmail and file sharing do not work either. You can use Atomic or Comodo rule sets instead.

    • (Plesk for Linux) Comodo (free). A free, simple-to-use, customizable, rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. Unlike the «Comodo (free subscription)» rule set, you do not need a subscription on the Comodo website to select «Comodo (free)».

    • Atomic Advanced. The latest version of the rules, with all the performance enhancements, new security features and bug fixes released by Atomicorp GotRoot on a daily basis. This is a commercial rule set that is fully supported and recommended for production use. Plesk provides the Security Core Complete by Atomicorp extra feature that allows you to enable this rule set in Plesk. You can get this extra feature by the following ways:

      • Compre las reglas de ModSecurity avanzadas de Atomicorp en la tienda online de Plesk.
      • Si ya dispone de una licencia de Plesk, puede añadir esta prestación mediante el interfaz de usuario de Plesk Partner Central o a través de la API para partners. Si desea más información al respecto, consulte la Guía del usuario de Partner Central o la Referencia de la API 3.0 de Partner.
      • Si dispone de una licencia de Plesk pero no tiene acceso a Plesk Partner Central, póngase en contacto con su proveedor.

      Si ya dispone de una cuenta en el  sitio de Atomic, indique sus credenciales para así activar este conjunto de reglas.

      Nota: If you get this extra feature, the Plesk interface will display Atomic Advanced instead of Atomic Standard (free, can be upgraded to Atomic Advanced), and this actually means the complete Atomic Advanced ModSecurity rule set.

      Si desea conocer las reglas incluidas en este conjunto de reglas, consulte Conjuntos de reglas de Atomic ModSecurity.

      Prudencia: (Plesk for Linux) If you select the Atomic ruleset, perform the following procedure to ensure that ModSecurity works fine. Run the aum -u command on the server. The Plesk modsecurity package will be replaced by that from the Atomic repository. Then run the following commands:

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl --enable
      • service httpd restart
    • (Plesk for Linux) Comodo (free subscription). This is a simple-to-use, customizable rules-based traffic control system that protects your web-based applications and prevents newly emerging hacking techniques with the use of a frequently updated rules database. This rule set is shipped for free. To enable this rule set in Plesk, register on the Comodo site and provide your username and password from this site.

      Nota: By default, Plesk does not show the «Comodo (free subscription)» rule set. To make the rule set visible in the Plesk interface, add the following lines to the panel.ini file:

      [modSecurity]
      ruleSet.comodo = 1
      
    • Custom rule set. You can upload a custom web application firewall rule set, for example, a trial package from Atomic or a free package from Comodo. Supported formats: zip, tar.gz, tgz, tar.bz2, conf.

    image 78703

  4. Para actualizar automáticamente el conjunto de reglas seleccionado, seleccione la casilla Actualizar conjunto de reglas y seleccione el periodo de actualización.

  5. Seleccione un conjunto de parámetros predefinido o especifique sus directivas personalizadas para ModSecurity. Puede seleccionar los siguientes conjuntos de parámetros predefinidos:

    • Rápido, cuando el URI de la petición HTTP y las partes de los encabezados son analizados. Este modo es el que consume menos CPU.

    • Equilibrado, cuando el URI de la petición HTTP, los encabezados y los datos POST de la petición son analizados. Este modo ofrece un buen equilibrio entre calidad y rendimiento.

    • Exhaustivo, cuando se analizan todos los encabezados de la petición HTTP, los datos POST de esta y el contenido del cuerpo de la respuesta HTTP. Este modo es el que consume más recursos de CPU, si bien es el modo recomendado en el caso de sitios que requieran medidas de seguridad especiales. Un ejemplo de este tipo de sitios serían las tiendas online que aceptan pagos mediante tarjeta de crédito.

      Nota: Para disfrutar de un rendimiento óptimo, el firewall para aplicaciones web requiere un servidor DNS local con el almacenamiento de solicitudes en caché habilitado. De lo contrario, puede experimentar lentitud a la hora de cargar sus sitios web cuando el firewall para aplicaciones web esté activado.

      image 76906

Archivos de registro (Linux)

En Linux, ModSecurity utiliza dos ubicaciones para los registros:

  • El registro de auditoría de ModSecurity (ubicado en /var/log/modsec_audit.log) es muy detallado y lo utiliza el servidor Plesk íntegro. Cuando ModSecurity detecta que se ha producido un evento, genera una entrada en el archivo de registro de auditoría. Para examinarlo, vaya a  Herramientas y configuración > Firewall para aplicaciones web (ModSecurity) > haga clic en el enlace Archivo comprimido de registros en la sección Registro de auditoría de ModSecurity. Aquí podrá ver los archivos de registro de ModSecurity y las fechas en las que se modificaron; también podrá descargar archivos de registro.
  • El registro de errores de Apache para un dominio (presente en /var/www/vhosts/DOMAIN.TLD/logs/error_log) sólo contiene información resumida acerca de los errores del sitio web. Puede ver el registro de errores de un sitio web específico en el panel del cliente, accediendo a Sitios web y dominios > <nombre_del_dominio> > Registros> seleccione sólo Errores de Apache y Errores de nginx en lugar de Todos los registros, a la derecha.

Archivos de registro (Windows)

On Windows, ModSecurity audit logs are domain-specific and located in %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs (where %plesk_dir% is the default installation directory for Plesk).

Desactivación de reglas

Un sitio web puede dejar de funcionar tal y como era de esperar una vez cambiado el modo del firewall para aplicaciones web de Desactivado a Activado o Sólo detección. En el registro de errores del sitio web encontrará este tipo de códigos de error como 403, 404 o 500 y estos desaparecerán una vez haya vuelto a cambiar el modo del firewall para aplicaciones web a Sólo detección o Desactivado. En este caso, examine el registro de auditoría de ModSecurity para ver lo que está sucediendo. Puede desactivar reglas de seguridad que sean demasiado restrictivas o ajustar el sitio web.

Para descubrir el motivo por el que la petición HTTP no pudo completarse para un sitio web:

  1. Examine el archivo del registro de auditoría para el sitio web.

    En Plesk para Linux puede usar el IU de Plesk para ver el registro haciendo clic en  Herramientas y configuración > Firewall para aplicaciones web (ModSecurity) y haciendo clic en el enlace Archivo de registro de ModSecurity para descargar el registro de auditoría y abrirlo en una nueva ventana del navegador.

  2. Use la combinación de teclas de búsqueda (Ctrl+F en la mayoría de navegadores web) para encontrar los eventos del sitio web (el nombre de dominio) que han causado los problemas. Por ejemplo, your_domain.tld. El navegador destacará entradas como HOST: your_domain.tld. En las tres líneas anteriores a la entrada destacada, busque una cadena de texto como --eece5138-B--. Los ocho símbolos que aparecen entre guiones (en nuestro ejemplo, eece5138) constituyen la ID del evento desencadenado por la petición HTTP.

  3. Busque otras entradas con el mismo ID de evento. Busque cualquier entrada con la letra H detrás del ID del evento (en nuestro ejemplo, eece5138-H--). Esta entrada contiene el ID y la descripción de la regla de seguridad desencadenada durante la comprobación de la petición HTTP. El ID de la regla de seguridad es un número entero entrecomillado que empieza por 3 y que muestra el id de prefijo entre corchetes. Por ejemplo, [id "340003"].

  4. En el evento, busque la ID de la regla de seguridad usando la subcadena [id "3. Este ID puede usarse cuando desactive reglas.

Para desactivar una regla:

  1. Vaya a  Herramientas y configuración > Firewall para aplicaciones web (ModSecurity).
  2. En la sección Desactivar reglas de seguridad, seleccione la regla por su ID (como por ejemplo 340003), por una etiqueta (como por ejemplo CVE-2011-4898) o por una expresión regular (como por ejemplo XSS) y haga clic en ACEPTAR.

Notas para nginx y ModSecurity (Linux)

En Linux, ModSecurity es un módulo para Apache. Como consecuencia, este sólo verifica peticiones HTTP que lleguen a Apache. Apache puede complementarse con otro servidor web - nginx. Si activa la opción Procesar PHP mediante nginx del servidor web nginx para el contenido dinámico de su sitio web (en la configuración de Apache y nginx para un sitio web), el firewall para aplicaciones web no podrá verificar las peticiones HTTP, ya que estas nunca llegarán a Apache. En el caso del contenido estático, si se selecciona la opción Servir archivos estáticos directamente mediante nginx, las peticiones HTTP no llegarán a Apache, por lo que estas no serán verificadas por ModSecurity.