Blog de Amazon Web Services (AWS)
Protección del tráfico de salida con Amazon Route 53 Resolver DNS Firewall, AWS Network firewall y Amazon GuardDuty
Por Alberto Conchas Jimenez – Arquitecto de soluciones en AWS México
Intro
Controlar el tráfico de entrada es crítico en la protección de las cargas de trabajo y su práctica es altamente adoptada ya que tiene el objetivo de evitar el acceso no autorizado e intrusión. En la actualidad, bloquear solo el tráfico de entrada se ha vuelto insuficiente ya que los ataques se han vuelto cada vez más sofisticados y existen variadas formas de vulnerar la defensa de entrada mediante ataques como phishing, sabotaje interno, credenciales de acceso comprometidas o infiltración mediante memorias USB. Por lo tanto, el control del tráfico de salida se ha vuelto igualmente esencial y la única vía para identificar pérdida y filtración de información, además de brindar de forma significativa protección a largo plazo y mitigación de ataques emergentes. Si no se tiene esta protección y un atacante logra vulnerar la protección de entrada, una vez dentro, el atacante podría tener vía libre para realizar una gran serie de ataques como, ransomware, vulnerabilidades de día cero como el suceso de Log4j, la filtración de información y el uso de cómputo para la minería de criptomonedas, propagación de malware o spam.
En este blog descubrirás ejemplos de vulnerabilidades conocidas que se benefician de una falta de protección del tráfico de salida y como prevenirlos mediante los servicios de Amazon Route 53 Resolver DNS Firewall, AWS Network Firewall y Amazon GuardDuty.
¿Qué es Amazon Route 53 Resolver DNS Firewall?
Amazon Route 53 es un servicio que brinda de un sistema de nombres de dominio (DNS por sus siglas en inglés) altamente escalable que conecta las solicitudes de los usuarios con aplicaciones de internet que se ejecutan en AWS o en sitios on-premise. Route 53 posee varias funcionalidades, entre ellas Route 53 Resolver y Route 53 resolver DNS firewall. Route 53 Resolver brinda la capacidad de responder consultas DNS desde recursos de AWS hacia registros públicos, por defecto Route 53 Resolver está disponible en todas las VPCs (Virtual Private Cloud). Por otro lado, Route 53 resolver DNS firewall es una herramienta que ayuda a delimitar que dominios puede o no resolver Route 53 Resolver mediante listas de dominios y reglas de bloqueo, acceso o alertamiento.
Route 53 resolver DNS firewall brinda la capacidad de filtrar el tráfico DNS de salida de las VPCs. Para hacerlo, es posible crear listas de reglas reutilizables de filtrado, asociar las reglas a la VPC y monitorear la actividad mediante logs y métricas. Además, es posible utilizar listas de dominios administradas por AWS en los cuales se encuentran DNS que ya han sido asociados con actividades maliciosas.
Para habilitar Route 53 DNS firewall siga los pasos en “Getting started with Route 53 Resolver DNS Firewall” [1]
¿Qué es AWS Network Firewall?
AWS Network Firewall es un servicio administrado de firewall de red y detección de intrusión y prevención para las VPCs creadas en AWS. Con Network Firewall, se puede filtrar el tráfico dentro del perímetro de la VPC. Esto incluye filtrar el tráfico de entrada y salida de un internet Gateway, NAT Gateway o sobre VPNs o AWS Direct Connect.
AWS Network Firewall hace uso de un sistema de prevención de intrusión (IPS) open source llamado Suricata. Suricata hace uso de reglas en un lenguaje propio que permite detectar y prevenir diferentes vectores de ataque. Las condiciones para controlar el tráfico a través de AWS Network Firewall se hacen a través de grupos de reglas las cuales pueden ser sin estado o con estado.
Para habilitar AWS Network Firewall en una VPC siga los pasos en “Getting started with AWS Network Firewall” [2].
¿Qué es Amazon GuardDuty?
Amazon GuardDuty es un servicio de detección de amenazas inteligente que monitorea de forma continua la cuenta de AWS y las cargas de trabajo en búsqueda de actividades maliciosas y entrega visibilidad de sus hallazgos y acerca de su remediación. Utiliza fuentes de información como, listas de IPs maliciosas, logs de varios servicios de AWS y machine learning para detectar actividad inesperada y potencialmente no autorizada.
GuardDuty informa el estado de tu ambiente de AWS produciendo hallazgos de seguridad que pueden visualizarse directamente en la consola de GuardDuty o a través de Amazon EvenBridge, el cual ayuda a integrar GuardDuty con herramientas de remediación automática.
Vulnerabilidades sobre el tráfico de salida comunes y cómo bloquearlos
1.- Protección sobre DNS conocidos como maliciosos
Los intentos de generar daño a las cargas de trabajo son variados y originados de múltiples destinos, muchos destinos que se han usado constantemente para cometer estos actos suelen estar identificados y listados para tener un primer punto de protección ante ellos.
Route 53 Resolver DNS Firewall tiene una serie de listas de dominios administradas por AWS los cuales ya contienen una serie de DNS clasificados de la siguiente manera:
- AWSManagedDomainsMalwareDomainList contiene una lista de dominios conocidos por distribuir, enviar o hostear malware.
- AWSManagedDomainsBotnetCommandandControl contiene una lista de dominios conocidos por redes de computadoras infectadas con malware de spam.
- AWSManagedDomainsAgregateThreatList contiene una lista asociada con dominios conocidos por aprovechar las vulnerabilidades relacionadas con DNS como son malware, ransomware, spyware y DNS tunneling. Esta lista también integra AWSManagedDomainsAmazonGuardDutyThreatList dentro de sí.
- AWSManagedDomainsAmazonGuardDutyThreatList es una lista que contiene los dominios detectados por el servicio de Amazon GuardDuty [4]. Todos los dominios de esta lista tienen como fuente el sistema inteligente de detección de amenazas.
Crear un grupo de reglas para el bloqueo o alertamiento sobre las listas administradas de AWS proveerá de protección de diferentes ataques que requieren resolver dominios conocidos como inseguros.
2.- Peticiones a un DNS malicioso en proceso
En algunos casos puede que recursos dentro de tu carga de trabajo llamen a DNS desconocidos o no confiables y esto pudiera significar que ya se está presentando la explotación de alguna vulnerabilidad o ciberataque. Es importante tener observabilidad de dichos sucesos y a su vez, es recomendable implementar un sistema que remedie inmediatamente la vulnerabilidad agregando los DNS a listas de bloqueo de DNS personalizadas.
Los hallazgos que GuardDuty proporciona pueden detonar código que automatice procesos de remediación. En particular es posible que, si GuardDuty detecta tráfico sospechoso, podamos detonar una implementación que agregue el DNS de ese tráfico a una lista de dominios en Route 53 Resolver DNS Firewall [5].
3.- Evasión de Route53 DNS resolver
Algunos malwares pueden en ocasiones evadir Route53 DNS resolver, configurándose con una resolución a través de un servicio público, esto provoca a su vez una evasión del Firewall de DNS y de las capacidades de analizar consultas de dominios sospechosos que posee Amazon GuardDuty. Para bloquear este tipo de acciones es posible generar una regla dentro de AWS Network Firewall usando Suricata.
Route53 DNS resolver es alcanzable desde dentro de la VPC y por lo tanto restringir la comunicación DNS a que sea solamente local apoyaría a evitar la evasión. La regla tendría que declinar el tráfico DNS por el puerto 53 a menos que este tráfico se localmente.
Otra forma común de evadir DNS firewall es a través de DoT (DNS sobre TLS), es decir, comunicar la resolución de dominio a través de TLS, esta comunicación suele usarse por algunos tipos de malware para ocultar su comunicación y suele ser sobre el puerto 853. Las reglas dentro de AWS Network Firewall para proteger ante este ataque también tendrían que declinar el tráfico TLS de salida por el puerto 853, si por otro lado la comunicación dentro de su VPC TLS es solo sobre HTTPS, puede incrementar la protección restringiendo toda comunicación TLS que no sea por el puerto 443.
4.- Comunicación directa a IPs sobre HTTP
Otra técnica común para la transferencia de malware/rootkin es el uso de comunicación HTTP apuntando directamente IPs fuera de la red local en lugar de una comunicación a nombres de dominio. Bloquear con AWS Network Firewall el tráfico HTTP local dirigido hacia IPs que no son locales ayudaría a evitar este patrón de ataque.
5.- Uso de HTTP sobre el puerto 443
Atacantes suelen aprovecharse para enviar o descargar malware a través de puertos que son conocidos por estar comúnmente abiertos en un servidor como es el puerto 443 usando protocolos inseguros como HTTP. Con Suricata dentro de AWS Network Firewall bloquear todo tráfico que no viaje sobre TLS por el puerto 443 ayudará a reforzar que la comunicación por el puerto 443 requiera seguridad.
6.- Bloqueo de comunicación FTP de salida
Este vector de ataque no es nada nuevo, pero aun es utilizado ocasionalmente por malware tipo troyano como el “Agent Tesla”. Consiste en usar el canal para la exfiltración de información codificándola como una comunicación normal de tipo FTP. Similar a los anteriores ejemplos puede impedirse bloqueando comunicación de salida FTP por los puertos 20 y 21.
7.- Bloqueo de los puertos LDAP usados por Log4j
Como siguiente ejemplo, es conocido que la vulnerabilidad existente de Log4j hace uso de puertos LDAP haciendo posible la ejecución remota de código por parte del logger. La lista de puertos LDAP que comúnmente se usan para explotar Log4j es conocida y con una regla en AWS Network Firewall es posible denegar el tráfico de salida usando dicha lista.
8.- Bloqueo de comunicación HTTP y SSH por puertos no estándar
Como vimos con anterioridad muchos ataques usan la comunicación de ciertos protocolos sobre puertos no estándar, tomando ventaja de que otros puertos diferentes al 80 y el 22 suelen ser no observados evadiendo reglas de firewall o herramientas de detección de red. La regla para protegerse de este tipo de vulnerabilidad sería muy similar a la discutida para protegerse de DoT, bloqueando la comunicación HTTP y SSH que se realice por puertos distintos al 80 y 22, respectivamente.
9.- Bloqueo de tráfico SMB de salida
Por último, esta es una recomendación proveniente de la propia documentación de Windows, donde para prevenir ataques laterales es recomendable bloquear todo el tráfico de salida sobre SMB hacia redes no conocidas. Es posible mediante el uso AWS Network Firewall bloqueando la comunicación de salida del protocolo SMB para toda red que no sea la red local.
Conclusiones y más sobre el tema
Amazon Route 53 Resolver DNS Firewall y AWS Network firewall proveen capacidades que en conjunto ayudan a controlar el tráfico de salida de los recursos de AWS por los 2 principales medios de comunicación, la comunicación TCP/IP y la comunicación DNS. Habilitarlos y comenzar a trabajar en reglas específicas para las cargas de trabajo, impactará directamente en la seguridad perimetral y hará que algunos de los ataques más comunes y más perjudiciales sean prevenidos y monitoreados. Si se desea practicar el uso de estos servicios y revisar el código suricata de las diferentes vulnerabilidades descritas, invitamos a revisar el workshop sobre controles del tráfico de salida [6].
Referencias
[3] https://aws.amazon.com/es/firewall-manager/
[4] https://aws.amazon.com/es/guardduty/
[6] https://catalog.us-east-1.prod.workshops.aws/workshops/503778b9-6dbb-4e0d-9920-e8dbae141f43/en-US
Acerca del autor
Alberto Conchas Jimenez es Arquitecto de soluciones en AWS México, con más de 10 años de experiencia trabajando sobre servicios en AWS. Apasionado en temas de DevOps, seguridad y criptografía. Actualmente apoya en impulsar el mejoramiento de la postura de seguridad de múltiples clientes en México.