WAF Firewall de Aplicación Web

Publicado en Artículos, Seguridad,


Tweet about this on TwitterShare on Google+2Share on Facebook0Share on LinkedIn0

Al desarrollar una aplicación o sitio web, siempre lo hacemos con el fin de que se pueda acceder desde cualquier lugar y que toda persona que desee llegar a ella pueda hacerlo. Es ahí cuando entramos en problemas, ya que no siempre existirá gente que consulte nuestra aplicación web haciendo buen uso, sino que también existirán personas que quieran dañarla o afectar sus servicios. Por esta razón, debemos estar conscientes de que es muy importante no dejar de lado los aspectos de seguridad.

Existen mecanismos de protección a considerar que son importantes al publicar una aplicación web, es recomendable que no los dejes para después, mejor actúa antes de que los problemas vengan a tu aplicación.

Un Firewall de Aplicación Web (WAF), al igual que un firewall convencional, se encarga de proteger tu red. Pero un WAF irá más allá y te ayudará a proteger tus aplicaciones web de ataques que, normalmente, son un dolor de cabeza para los administradores de las aplicaciones o para los dueños de las mismas.

Entender las características de esta tecnología, relativamente nueva, nos ayudará a tomar las medidas que más se adapten a nuestra organización. Empezaremos por mencionar algunas de las características principales de los WAF, es muy importante tomarlas en cuenta antes de llegar al siguiente paso, la implementación de un WAF por ti mismo.

Para poder entender el funcionamiento y la implementación de un WAF, debemos tener claro qué es un firewall. Es un dispositivo o software que es instalado y configurado en alguna red para filtrar toda la entrada y salida de paquetes. Los firewalls viven en la capa de red y se basan en los permisos o privilegios que se tengan asignados, para poder acceder a lo que los firewall de red estén protegiendo.

A grandes rasgos, un WAF podría definirse como un dispositivo, plugin del servidor o un conjunto de reglas que filtran y analizan el tráfico web (entre tu servidor web y tu red externa), es decir, los datos que recibimos por parte del usuario y la respuesta que nuestro servidor web arrojará al usuario. Prácticamente se encuentra de intermediario entre tu aplicación y el servidor web que la tiene alojada.

Sin embargo, no ofrecen ninguna clase de protección contra los ataques especializados en explotar vulnerabilidades web. Son muy utilizados en las organizaciones para limitar el acceso de red a sus empleados o para proteger los equipos de ser atacados por virus o software malicioso, entre otros. Así garantizamos que toda la comunicación existente viaja segura entre la red local y la red externa (Internet) conforme a las normas de seguridad que han sido definidas en la instalación.

Los WAF aplican un conjunto de reglas al tráfico HTTP para detectar y bloquear peticiones de tipo CrossSite Scripting (XSS), SQL Injection (SQLi), Remote y Local File Inclusion (LFI), etc.

Muchos de los WAF trabajan comprobando firmas de ataques web conocidos, pero su misión principal es el funcionamiento de ataques como manipulación de parámetros, cabeceras de las peticiones, cookies, XML, Javascript, etc., es decir, se adentran más a los paquetes, teniendo en cuenta el comportamiento del usuario y manteniendo las sesiones de los mismos. Son tan potentes que se encargan de proteger todo tipo de aplicaciones web alojadas en cualquier servidor, no importando tampoco, el lenguaje de programación en el que hayan sido desarrolladas, además actúan antes de que las intrusiones lleguen a la aplicación.

Hemos hablado de que los WAF funcionan con reglas, pero ¿qué son las reglas y cómo funcionan? Las reglas son patrones normalmente escritos como expresiones regulares que se encargan de hacer el filtrado de la información que pasará o no pasará a través de nuestra red.

Una vez que se tienen activadas las reglas, toda la información que pasa a través de nuestro servidor es parseada por estas reglas para que pueda tener acceso. Si en algún momento, la información que está siendo analizada por nuestras reglas encuentra alguna anomalía, se bloquea la petición.

Las 5 fases de procesamiento de las reglas:

  1. Cabecera de la solicitud
  2. Cuerpo de la solicitud
  3. Encabezados de la respuesta
  4. Cuerpo de la respuesta
  5. Inicio de sesión

Precisamente, estas fases son los puntos clave de partida de la petición que se va a procesar mediante las reglas.

Sintaxis de las reglas:

SecRegla VARIABLES OPERADOR [ACCIONES]

Esta regla hará lo siguiente:

  1. Desplegar la colección de variables de la sección VARIABLES.
  2. Aplicar el operador como se especifica en la sección OPERADOR a las variables desplegadas.
  3. Una regla se dispara una vez que se iguala con todas las variables.
  4. Al empatar, se ejecutan las acciones por regla o bien se realizan las acciones por defecto.

Básicamente, esa es la estructura que manejan las reglas dentro de un WAF, las cuales son un punto culminante para que el WAF haga el trabajo de bloquear o dejar pasar las peticiones entrantes a tu aplicación web.

Existen otros mecanismos de defensa, tales como los sistemas de detección de intrusos o los sistemas de prevención de intrusos, los cuales no pueden ser excluidos del reforzamiento de seguridad en las aplicaciones, más bien, deberían manejarse como herramientas complementarias.

Los sistemas de prevención de intrusos son mecanismos físicos o lógicos para la detección de tráfico malicioso con base en firmas o anomalías. La principal diferencia con los sistemas de detección de intrusos es que los sistemas de prevención son dispositivos activos que tienen la característica de actuar bajo demanda, según las alertas detectadas. A esto se le conoce como inline y significa que, a partir de que un evento es detectado, el sistema puede aplicar automáticamente una medida de mitigación.

Los sistemas de prevención de intrusos tienen capacidades de firewall. Por estas características, a este tipo de dispositivos también se les conoce como sistemas de detección y prevención de intrusos.

A diferencia de un WAF, los sistemas de prevención y detección de intrusos (anteriormente mencionados) están basados en firmas conocidas, sin entender el funcionamiento de la aplicación y, por lo tanto, no son capaces de reconocer tendencias, como un número determinado de eventos concretos, altas tasas de falsos positivos (se da cuando un evento se detecta por error como malware o ataque y dicho evento resulta ser legítimo e inofensivo) o simplemente, analizar cómo va navegando el usuario para conectarse a la página web en cuestión.

Otro aspecto interesante a considerar sobre los WAF es que no necesitamos modificar nuestra aplicación web en lo más mínimo, puesto que las configuraciones se hacen directamente en el servidor web que aloja a la aplicación.

Dentro de los WAF existen los llamados parches virtuales, que trabajan en la capa de aplicación y se encargan de analizar las operaciones e interceptar el tráfico de red. Tienen un impacto muy importante ya que, cuando llegan a existir problemas o fallos dentro de una aplicación desarrollada por terceros (el código fuente real de la aplicación de la que estamos haciendo uso aún NO ha sido modificado para arreglar ciertos fallos que presenta) entran en acción los parches virtuales, haciendo que explotar la vulnerabilidad descubierta no se realice con éxito.

Por ejemplo, considera que tienes montado un sitio web en algún gestor de contenidos (dígase un WordPress, Drupal, Joomla o cualquier otro) y se descubre un “ataque Día Cero”. Ese tipo de ataques se realizan contra una aplicación web o un sistema con el objetivo de realizar intrusiones o ejecutar código malicioso debido a que se dan a conocer las vulnerabilidades existentes en un sistema, en un producto, servicio o alguna aplicación. Por lo general, en ese momento dichas vulnerabilidades son desconocidas por los proveedores de servicio, pero puedes estar tranquilo, el WAF se encargará de actualizar automáticamente los parches necesarios sin que el administrador se encargue de este punto.

La gran mayoría de los WAF existentes son capaces de implementar estas actualizaciones de forma automática, ofreciendo protección en un tiempo aceptable, hasta que el proveedor de servicios ponga a disposición de los usuarios un parche disponible.

Ahora que ya conoces qué son los WAF de manera general, queremos mostrarte cómo es que lleva a cabo su funcionamiento y llevarte paso a paso a la implementación de un WAF por tu propia cuenta. En la segunda entrega de esta publicación podrás indagar más sobre estas especificaciones. También preparamos para ti un anexo en donde encontrarás las guías de Instalación y Configuración de un WAF paso por paso, sencillas y fáciles de seguir, para que logres implementar un WAF con éxito.

Es bien sabido que hoy en día es primordial no perder de vista la seguridad sobre nuestras aplicaciones web, si podemos echar mano de implementaciones como estas, mucho mejor.

Funcionamiento de un WAF

Un WAF trabaja como intermediario entre usuarios externos (ej. usuarios de Internet) y las aplicaciones web. Esto quiere decir que las peticiones y respuestas HTTP son analizadas por el WAF antes de que éstas lleguen a las aplicaciones web o a los usuarios de las aplicaciones.

Para la revisión del tráfico HTTP, el WAF aplica un conjunto de reglas (definidas con anterioridad) para llevar a cabo la detección de peticiones HTTP malformadas, ataques web como Cross Site Scripting, SQL Injection, ataques de DoS y DDoS, e incluso la detección de fuga de información proveniente de la aplicación web. Cuando el WAF detecta un ataque, intento de intrusión o fuga de información, entonces bloquea el tráfico web descartando la petición o respuesta HTTP evitando que los ataques afecten a la aplicación web o que información sensible sea enviada como respuesta a potenciales usuarios maliciosos.

De no detectarse peticiones web maliciosas o alguna anomalía, entonces las peticiones y respuestas HTTP fluyen con normalidad. Todo el proceso de análisis y protección ocurre de forma transparente para los usuarios, evitando así, interferir con las operaciones normales de las aplicaciones web.

Modos de implementación

Puedes implementar un WAF de diferentes modos. El modo de implementación depende de la topología de red con la que cuentes y de las necesidades de seguridad que requieras para tus aplicaciones web. A continuación se listan los modos de implementación más usados para un WAF.

WAF en modo Puente Transparente (Bridge):

Funge como un equipo que interconecta dos segmentos de red de forma transparente (sus interfaces de red no tienen dirección IP), de modo que no se requiere alterar la configuración de direcciones IP de los servidores web, ya que son estos mismos los que responden las peticiones web. No requiere de la reconfiguración de los registros DNS y permite proteger múltiples servidores de aplicaciones web, siempre y cuando estos se accedan mediante el canal que protege el WAF.

WAF en modo Proxy Inverso:

Funge como un equipo que interconecta dos o más segmentos de red, pero éste si cuenta con dirección IP propia. Concentra, gestiona y analiza las peticiones y respuestas HTTP que circulan entre los usuarios y aplicaciones web. En pocas palabras, el WAF en modo de proxy inverso responde las peticiones web como si éste fuera el servidor web mismo, por lo tanto es de utilidad para ocultar a los servidores de aplicaciones web de la red exterior. Permite proteger múltiples servidores de aplicaciones web. Su implementación requiere modificar los registros DNS que ahora deben dirigirse a la dirección IP del WAF en modo proxy inverso en vez de a los servidores web.

WAF en modo embebido o plugin:

El WAF se instala como un software de complemento o plugin en el servidor web a proteger. Para su operación hace uso de los recursos de hardware (procesador, RAM, disco duro) y software del servidor donde se ha instalado. Su instalación depende totalmente del tipo de servidor web y del sistema operativo subyacente. Afortunadamente existen WAFs para los entornos Windows, GNU/Linux y Unix, así como para los distintos servidores web más populares. Este modo de operación es el más sencillo pues no requiere configuraciones adicionales en la red.

Algunos WAF soportan características como:

  • Normalización del tráfico web: Usualmente los usuarios maliciosos usan técnicas para ocultar sus ataques web mediante codificación o cifrado. El WAF debe ser capaz de decodificar o descifrar el tráfico web para poder aplicar sus reglas de seguridad.
  • Aceleración SSL: Algunos WAF comerciales cuentan con hardware especializado para poder atender las peticiones web seguras (HTTPS) de forma rápida, pues el uso de cifrado en las transacciones web implica el uso adicional de procesador y memoria RAM de los servidores web. Emplear aceleradores SSL permite quitar carga de procesamiento a los servidores.

Variedad de soluciones WAF

En el mercado existen varias opciones de WAF a elegir que nos pueden ayudar a aumentar la seguridad sobre nuestros servidores de aplicaciones web de forma considerable. Entre las dos opciones open source más populares, encontramos las siguientes:

ModSecurity

Desarrollado por: Trustwave

ModSecurity funciona como un complemento que se instala en el servidor web. Actualmente soporta los servidores web Apache HTTPD, Microsoft IIS y NGinx. Provee protección contra las principales amenazas del Top 10 de OWASP mediante su conjunto de reglas especializadas en detección y bloqueo de ataques. Es un proyecto con madurez de desarrollo y cuenta con una creciente comunidad de usuarios que lo han implementado.

IronBee

Desarrollado por: Qualys

IronBee es un WAF desarrollado y mantenido por el equipo que diseñó y desarrolló a ModSecurity en sus inicios. Este proyecto apunta a producir un WAF que sea aún más seguro, de alto rendimiento, portable y libremente disponible, incluso para el uso comercial. El enfoque de este WAF va dirigido a perfilar el comportamiento de la aplicación web y sus usuarios, de esta forma se pueden establecer controles de seguridad basados en la forma de uso de las aplicaciones web, así como los convencionales contra ataques web comunes.

¿WAFs en el código de las aplicaciones web?

Dentro de la amplia gama de herramientas de seguridad para aplicaciones web, existen otro tipo de opciones que están muy ligadas con las acciones que realiza un WAF. Estas herramientas también pueden ser de utilidad cuando se quiere proporcionar seguridad adicional a las aplicaciones web a nivel de código.

Este conjunto de herramientas se implementan directamente en el código de la aplicación, para hacer uso de ellas, tendrás que tener acceso directo al código fuente de tu aplicación web, lo que implica conocer el lenguaje de programación en que se desarrolló y, con base en ello, puedas comenzar con la modificación del código y acoplarlo según tus necesidades.

En muchos casos no se tiene acceso al código fuente de la aplicación web debido a que la aplicación misma podría ser solo un archivo ejecutable. Es ahí cuando el uso de este tipo de herramientas se tiene que descartar. Si este no es el caso, podrás hacer uso de herramientas como las siguientes:

ESAPI WAF (Enterprise Security API Web Application Firewall):

Son bibliotecas que se incluyen directamente en el código y, una vez que se implementan en tu aplicación web, proporcionarán seguridad de una forma más directa mediante la validación de los datos de entrada, permitiendo así filtrar ataques web. El equipo de desarrollo debe implementar las bibliotecas de esta API sobre el código de las aplicaciones web que se deseen asegurar.

PHPIDS Web Application Security 2.0 (PHP-Intrusion Detection System)

Es un software utilizado para reforzar la seguridad en la capa de aplicación a nivel web (directamente en tu aplicación). Al igual que los WAF convencionales, se basa en el análisis de transacciones HTTP mediante un conjunto de reglas que se encargan de filtrar anomalías y ataques web. Su modo de operación se lleva a cabo mediante puntajes, donde a un ataque o anomalía se le asigna un puntaje numérico mediante el cual se decide qué tipo de acción defensiva debe seguirse.

Existen varias alternativas que ayudan a complementar la seguridad de tu aplicación web, haz uso de ellas. Indaga sobre las que más te interesen, ya que solo de esta manera podrás descartar algunas o bien, acoplarlas según tus necesidades.

Recuerda que la seguridad de un sistema es tan fuerte como lo sea su eslabón más débil. No olvides que hoy en día la seguridad web es un punto crítico que no puede echarse en saco roto, pues las afectaciones por ataques exitosos, intrusiones y fugas de información sensitiva, pueden traer repercusiones sociales (pérdida de reputación), monetarias e incluso legales. A veces, una simple entrada de datos no asegurada puede acarrearnos grandes problemas.

Los WAF son herramientas que han evolucionado y han demostrado su efectividad a tal grado que dentro de poco tiempo serán considerados como una capa de seguridad obligatoria en cualquier entorno de aplicaciones web seguro.

Implementación de tu propio WAF

Las guías de instalación contemplan la implementación del WAF ModSecurity en un servidor web apache en modo embebido. Ten en cuenta que la instalación de un WAF puede resultar sencilla, pero el proceso de aprendizaje para su administración y afinación de políticas requiere de entendimiento en su forma de operación y en las configuraciones específicas.

Nota: Una regla importante para todos los WAF en general, es que siempre se deben de implementar en modo de solo monitoreo por un periodo de tiempo. Esto con la finalidad de que observes las alertas que muestran al analizar el tráfico web dirigido a tu aplicación web y así puedas determinar si hay reglas del WAF que puedan interferir con el funcionamiento de la misma. Recuerda que como otras tecnologías de monitoreo es susceptible a falsos positivos.


Fuente: Revista Seguridad UNAM

El PDF de la revista 16 puede descargarse completo aquí

WAF Firewall de Aplicación Web
5 (100%) 1 voto

Etiquetas: ,


Comentarios (1)

  • luis

    |

    muy buena informacion gracias por hacer de este documento de forma entendible

    Responder

Deja un comentario

Cuanto es 21 + 15 ?
Please leave these two fields as-is:
IMPORTANTE! Necesitas resolver la operación matemática para poder continuar.

Newsletter

Redes sociales

Centro de soporte

Centro de recursos