Descripción de la Implementación

Todos los que en algún momento hemos trabajado en temas de seguridad informática, sabemos lo importante de contar con un Firewall de Aplicaciones Web (WAF por sus siglas en inglés), sin embargo en muchas empresas o entidades públicas el presupuesto es limitado al momento de adquirir equipamiento de seguridad. Generalmente esto se lo hace cuando ya ha ocurrido un incidente, o el sitio web de la empresa o entidad está listada en http://www.zone-h.org sitio conocido por recopilar información de ataques exitosos a sitios web. En otros casos se piensa erróneamente que con un firewall de red, o uno de los denominados next generation firewall, es suficiente, lamento decir que no es así. Para estar con una mínima protección en nuestro sitio o aplicación web es necesario la implementación de un WAF. 

 

Un WAF realiza el análisis a las solicitudes que van hacia el servidor web, después de que ya pasó el firewall de red, este equipo previene ataques como inyección SQL, Cross Site Scripting XSS, entre muchos otros. Existen muchos comerciales con los que he trabajado como el módulo ASM de F5 Big IP, o el módulo de WAF de Citrix Netscaler, lamentablemente la inversión para adquirir y mantener la suscripción de un equipo de estos no es para todos los presupuestos. Es por esto que quiero compartir mi experiencia con la implementación de un WAF de costo 0 y con una efectividad alta. 

 

Para esta implementación se usarán los siguientes paquetes:

  • Mod_Security
  • ELK (Elasticsearch, logstash y kibana)
  • SetRule WAF Comodo  

Instalación del Módulo WAF de Apache

Como primer paso, es necesario la instalación del módulo mod_security de apache2.

#apt install libapache2-modsecurity

 

Renombrar el archivo de configuración recomendado a que sea el utilizado por mosecurity.
#mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

 

Abrir la configuración y cambiar de modo de operación. 
#nano /etc/modsecurity/modsecurity.conf


Cambiar el parámetro “SecRuleEngine DetectionOnly” a “SecRuleEngine On” para que el módulo bloqueé las peticiones que considere anómalas. En el caso de que se detecten muchos falsos positivos se podría cambiar el parametro a SecRuleEngine DetectionOnly, de tal manera que solo alerte en el log, esto permitirá crear excepciones a los falsos positivos, una vez que esté completamente depurado se puede volver a dejar el parámetro SecRuleEngine en On. 

Instalación de SetRule del WAF de Comodo

Para el correcto funcionamiento del WAF es necesario el uso de reglas, se usarán las provistas por la empresa Comodo. Esto es muy importantes ya que en base a estas, se ejecutará los bloqueos de patrones y peticiones anómalas y de un sin número de tipos de ataques a aplicaciones web. El tener una buena calidad de set rule evitará que tengamos un índice muy alto de falsos positivos y aumentará la efectividad de la detección.

 

Para realizar la descarga deberás registrarte en https://waf.comodo.com/ e iniciar sesión, elegir Apache, el release y la última versión, como se puede observar en la imagen, hay varias versiones, la primera vez que descargué este set rule estaba en la versión 1.157, al cabo de 8 meses la última versión es la 1.180, es decir que las actualizaciones son constantes y el mantenimiento del set rule es periódico, una vez elegido la versión descargamos se set rule completo. En muchos sitios recomiendan el uso del setrule de SpiderLabs,  https://github.com/SpiderLabs/owasp-modsecurity-crs.git sin embargo en lo personal he tenido mejores resultados con el setrule de Comodo.

Páginas: 1 2 3 4