REVISTA .SEGURIDAD | 1 251 478, 1 251 477 | REVISTA BIMESTRAL

Firewall de Aplicación Web - Parte I

 

 

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.

WAF

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.firewall,aplicación,seguridad,informació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.

Si quieres saber más, visita:

 

Referencias:

 [1] http://www.modsecurity.org/documentation/ModSecurity2_Rule_Language.pdf

[2]http://revista.seguridad.unam.mx/numero-10/evoluci%C3%B3n-de-los-sistemas-de-detecci%C3%B3n-prevenci%C3%B3n-y-an%C3%A1lisis-de-incidentes

[3] https://www.owasp.org/index.php/Virtual_Patching_Best_Practices

 

 

UNAM

[ CONTACTO ]

Se prohíbe la reproducción total o parcial
de los artículos sin la autorización por escrito de los autores

 

Hecho en México, Universidad Nacional Autónoma de México (UNAM) © Todos los derechos reservados 2017.