Blog de Amazon Web Services (AWS)

Protegiendo su página web con AWS WAF y Amazon CloudFront

Bruno Silveira, Senior Solutions Architect, Brazil Public Sector

 

En los últimos años, estamos viendo una creciente ola de ciberataques no sólo contra empresas, sino también contra instituciones gubernamentales, educativas y sin fines de lucro. Además, estas mismas instituciones se han esforzado por actualizar sus aplicaciones Web no sólo para innovar, sino también para que su software sea más seguro y menos vulnerable.

En esta entrada de blog mostraremos 2 servicios que pueden ser integrados en su sitio web para ayudar a reducir este gap de seguridad, optimizando su tiempo para que pueda centrarse en la reducción de sus vulnerabilidades de software.

 

Visión general técnica

Una de las arquitecturas de sitio más comunes es la arquitectura de 3 niveles que se compone comúnmente de los niveles web, de aplicación y de datos. Una característica común de estas aplicaciones es el uso del Balance de Carga Elástica. Elastic Load Balance (ELB) distribuye automáticamente el tráfico entrante de las aplicaciones a varios destinos, como instancias, contenedores y direcciones IP (de Amazon EC2 y locales) y varias zonas de disponibilidad, minimizando el riesgo de sobrecarga de un solo recurso. Para más información, acceda a los detalles de las zonas de disponibilidad.

A continuación, se muestra un ejemplo de arquitectura de tres niveles dentro de AWS:

 

 

Desde el punto de vista de la seguridad, esta arquitectura utiliza buenas prácticas en cuanto al aislamiento de la red: uso de VPC, segmentación de redes públicas y privadas y uso de NAT Gateway para acceder a Internet desde recursos privados. Otra buena práctica, desde el punto de vista del perímetro de seguridad, es el uso de la ELB que ofrece un único punto de entrada y gestión y puede servir como línea de defensa entre Internet y sus instancias EC2 privadas que están respondiendo a su aplicación.

La ELB sólo admite solicitudes TCP válidas, por lo que los ataques de Denegación de Servicio (DDoS) como el UDP y el SYN flood serán tratados, absorbidos y bloqueados aún en la capa ELB, sin afectar a las instancias del EC2 que están respondiendo a esta aplicación. Esta característica está disponible sin costo adicional.

 

Detección y Filtro de Peticiones Maliciosas en la Capa WEB

AWS WAF es un cortafuego a nivel de aplicación que ayuda a proteger su sitio contra exploits comunes que pueden afectar a la disponibilidad de la aplicación, comprometer la seguridad o consumir recursos excesivos. Mediante AWS WAF, puede configurar listas de control de acceso (ACL) para filtrar y bloquear solicitudes basadas en tipos de solicitud como XSS (Cross-site Scripting), SQL Injection y otros. Para obtener más información, véase la lista de instrucciones de las normas de AWS WAF.

Cada lista de control de acceso a la web (web ACL) dará un control granular sobre las peticiones web a las que responde la ELB. Puede permitir o bloquear las solicitudes de uno o más atributos de solicitud (o campos HTTP) como URI, cadena de consulta, método HTTP o clave de cabecera. También puede configurar su ACL con reglas gestionadas que han sido creadas por socios tecnológicos de AWS como F5, Fortinet, Imperva, etc.

Además, utilizando las reglas basadas en rate de AWS WAF, puede bloquear automáticamente las direcciones IP de usuario no válidas cuando las solicitudes de una regla superen el límite que usted haya establecido. Las solicitudes de direcciones IP de clientes ofensivas recibirán el error 403 y permanecerán bloqueadas hasta que las tasas de solicitud caigan por debajo del límite. Esto es útil para mitigar los ataques de inundación HTTP disfrazados de tráfico web regular.

El modelo de precios de AWS WAF se basa en el número de ACLs que se crean, el número de reglas que se añaden en cada ACL y el número de solicitudes web que se reciben.  Por ejemplo, supongamos que tiene una aplicación con un tráfico de 10 millones de peticiones al mes.

Cargos de ACL en la Web = 5USD x 1 = 5 USD

Gastos de la regla = 1 USD x 8 = 8 USD

Gastos de solicitud = 0.60 USD/millones x 10 = 6 USD

Total de cobros combinados = USD 19

 

A continuación se muestra un ejemplo de cómo funciona la AWS WAF:

 

Aumentando su perímetro de seguridad

Amazon CloudFront puede ayudar a aumentar el rendimiento de sus aplicaciones web y reducir significativamente la latencia de la entrega de contenido a sus clientes. Para entregar contenido a los usuarios finales con menor latencia, Amazon CloudFront utiliza una red global de 210 puntos de presencia (199 ubicaciones de borde y 11 cachés de borde regionales) en 78 ciudades de 37 países. Explore nuestra infraestructura con este mapa interactivo.

Amazon CloudFront es un servicio que puede ser utilizado para entregar todo el sitio incluyendo contenido estático, dinámico, streaming e interactivo. Las conexiones TCP persistentes y la configuración de tiempo de vida (TTL) se pueden utilizar para descargar el tráfico de su fuente, incluso si no está mostrando contenido almacenado en caché. Estas características significan que el uso de Amazon CloudFront reduce el número de solicitudes y conexiones TCP de vuelta a su fuente, lo que ayuda a proteger su aplicación web de la inundación de HTTP. Amazon CloudFront sólo acepta conexiones bien formadas, lo que ayuda a evitar que muchos ataques DDoS comunes como la inundación SYN y los ataques de reflexión UDP lleguen a su fuente. Los ataques DDoS también están aislados geográficamente cerca de la fuente, lo que evita que el tráfico afecte a otros sitios. Estas características pueden mejorar enormemente su capacidad de seguir sirviendo el tráfico a los usuarios durante los principales ataques DDoS.

El modelo de precios de CloudFront, usted sólo paga por lo que utiliza y se basa en el número de solicitudes web, solicitudes de cancelación de la caché, la transferencia de datos hacia fuera (Internet u origen) y la solicitud de cifrado de campo. Existe un nivel gratuito que AWS ofrece en el primer año de uso, donde los clientes pueden utilizar hasta 2 millones de solicitudes web al mes y hasta 50 GB de transferencia de datos al mes.

En conjunto con AWS WAF, CloudFront también puede ayudarle a proteger sus aplicaciones web aumentando su perímetro de seguridad.

A través de esta integración, pueden establecer políticas para bloquear el acceso y cerrar los intentos de conexión de direcciones IP que sugieran que se está iniciando un ataque DDoS, como lo hizo 9Splay.

 

¿Cómo crear su primer ACL y comenzar a proteger su sitio?

Para que puedas usar el Cloudfront con WAF en tu aplicación necesitas seguir estos pasos:

  1. Crear un ACL en AWS WAF.
  2. Crear una distribución Cloudfront con el origen en el Balance de Carga Elástica de la aplicación (Añadir el ACL creado en su distribución Cloudfront).
  3. Configure un grupo de seguridad para que el equilibrio de carga elástica (ELB) sólo reciba conexiones de la distribución creada.

Después de unos 15 minutos la distribución de Cloudfront estará habilitada y su sitio será más seguro.

 

Conclusión y próximos pasos

En esta entrada del blog le mostramos cómo la adición de dos servicios de AWS puede ayudar a aumentar la seguridad de su sitio.

Para centralizar la visualización de las alertas de seguridad de AWS WAF, es una buena práctica añadir soluciones para el manejo de los registros de AWS WAF y la creación de cuadros de mando y visualizaciones para el análisis y la toma de decisiones en sus entornos.

 


 

Sobre el Autor

Arquitecto de soluciones AWS en el equipo del sector público enfocado al gobierno. Con una carrera anterior en instituciones como la Caixa, Itaipú Binacional, el Parque Tecnológico Itaipú, el Ministerio de Minas y Energía y el Ministerio de Cultura, Bruno es un entusiasta del Software Libre y de las prácticas ágiles como el Lean y el Scrum y le encanta un buen rock’n roll con una buena cerveza.