AWS Network Firewall es un firewall de red administrado y stateful, además de un servicio de detección y prevención de intrusiones para tu Amazon virtual private cloud (VPC). Gracias a la inspección stateful, evalúa el contexto del tráfico de red para tomar mejores decisiones. Su sistema de prevención de intrusiones (IPS) realiza una inspección activa del flujo de tráfico, con protecciones en tiempo real a nivel de red y de aplicación frente a la explotación de vulnerabilidades y los ataques de fuerza bruta.
AWS amplía sus capacidades de forma continua y es probable que siga evolucionando con nuevas funciones que igualen las prestaciones avanzadas de los NGFW tradicionales.
El 19 de diciembre, el soporte de AWS Network Firewall para inspección de Transport Layer Security (TLS) en el tráfico de salida quedó disponible de forma general en todas las regiones de AWS. Esta funcionalidad permite descifrar, inspeccionar y volver a cifrar el tráfico TLS saliente con destino a internet, a otra VPC o a otra subred. Cabe señalar que la inspección TLS de entrada en Network Firewall ya está disponible en todas las regiones de AWS.
Por qué las organizaciones necesitan el descifrado SSL/TLS saliente
La inspección TLS saliente es un proceso que permite a las organizaciones monitorear e inspeccionar el tráfico cifrado de salida. Ayuda a detectar y prevenir la exfiltración de datos, el malware y otras amenazas de seguridad. El cifrado TLS está pensado para transportar tráfico de forma segura por internet, pero también puede usarse para ocultar tráfico malicioso. Al inspeccionar las conexiones TLS salientes, las organizaciones pueden interceptar y filtrar el tráfico riesgoso. Esto resulta útil para detectar y prevenir filtraciones de datos, así como para cumplir con los requisitos regulatorios.
Diagrama de arquitectura de referencia y flujo de tráfico

Sin Network Firewall, cualquier solicitud cifrada con SSL hacia un sitio web ocurre directamente entre el cliente y el servidor del sitio. Al habilitar la inspección TLS en el firewall, este actúa como un middlebox (dispositivo de interceptación SSL) entre tu navegador y el servidor.
Vale la pena destacar que la inspección TLS no se limita al tráfico HTTPS: también funciona con otros protocolos de aplicación basados en TCP que usan TLS, como SMTP y POP3s.
Ejemplo de flujo de tráfico — [para tráfico HTTPS]
- Solicitud del cliente: el cliente inicia una conexión segura con el servidor mediante el protocolo HTTPS.
- Server hello y certificado: el servidor responde enviando los cifrados SSL y el certificado al cliente.
- Inspección SSL en Network Firewall: intercepta el certificado y lo reemplaza por uno nuevo generado dinámicamente. Establece su propia conexión SSL con el cliente, haciéndose pasar por el servidor. Luego, Network Firewall abre una conexión segura independiente con el servidor real en nombre del cliente.
- Inspección de contenido: Network Firewall descifra los datos provenientes del cliente para detectar posibles riesgos de seguridad, como malware, virus o datos no autorizados, según las reglas stateful de la política del firewall. El firewall puede permitir o descartar la conexión. Si la permite, los datos se cifran nuevamente y se reenvían al servidor para su procesamiento.
- Respuesta del servidor: el servidor responde a la solicitud del cliente con datos cifrados, que recorren el mismo camino de regreso a través del dispositivo de inspección SSL.
**Pasos de configuración**
Requisitos previos
- Elige una arquitectura y un modelo de despliegue acordes a tu caso de uso.
- Revisa las consideraciones y limitaciones.
Crear la configuración de inspección TLS —
Inicia sesión en la consola de AWS y busca las configuraciones de inspección TLS dentro del servicio VPC. Haz clic en "Create TLS inspection configuration" —

En la página Associate certificates, elige el certificado de CA para la inspección SSL saliente y haz clic en "Next".
Puedes consultar los requisitos generales para los certificados de CA usados en la inspección SSL/TLS saliente aquí.

Indica un "Name" y, opcionalmente, una "Description" —

En la siguiente página, define el alcance del tráfico que quieres que Network Firewall descifre. Network Firewall descifra el tráfico que coincide con la 5-tupla definida en la configuración del alcance. A continuación se muestra un ejemplo para inspeccionar todo el tráfico destinado al puerto 443. Haz clic en "Add scope configuration" —

Revisa la configuración y haz clic en "Next" —

De forma opcional, puedes definir tu propia clave administrada por el cliente para cifrar los datos en reposo. Por ahora la dejamos sin marcar. Eso sí, conviene marcar "Check certificate revocation status" para actuar frente a certificados de servidor revocados o desconocidos.

Agrega los Tags y, en la página "Review and create", revisa la configuración una vez más y haz clic en "Create TLS inspection configuration" —

El siguiente paso es añadir la configuración de inspección TLS a una política de firewall.
Crea una política de firewall y añade la configuración de inspección TLS en el "Step 4". Ten en cuenta que solo puedes añadir una configuración de inspección TLS a una política nueva, no a una ya existente.

Sin embargo, sí es posible reemplazar una configuración de inspección TLS existente por otra dentro de una política de firewall desde la pestaña "TLS inspection configuration".

Para terminar la configuración, edita la política de firewall de tu Firewall existente —

Si todavía no has desplegado el Network Firewall, puedes seguir el enlace aquí y "associate an existing firewall policy" desde el menú desplegable en el "Step 4", como se muestra a continuación —

A partir de este momento, "todo" el tráfico destinado al puerto 443 (alcance) que pase por Network Firewall queda inspeccionado mediante TLS.
**Pruebas**
Es momento de probar la configuración. Si aún no tienes el enrutamiento de la VPC en marcha, te recomendamos seguir la documentación de AWS aquí para obtener instrucciones paso a paso.
Para demostrar que el motor SSL de AWS Network Firewall ve el tráfico HTTP descifrado, creé una regla de Suricata STATEFUL que bloquea el contenido del URI "download-anti-malware-testfile"
drop http $HOME_NET any -> $EXTERNAL_NET any (content:"download-anti-malware-testfile"; http_uri; msg:"Blocking bad domain"; flow:to_server, established; sid:2; rev:1;)
Conéctate a la instancia EC2 y ejecuta el siguiente comando para descargar el archivo de prueba de malware
curl -I https://www.eicar.org/download-anti-malware-testfile/ -v
La salida del comando curl es una alerta TLS, lo que indica una interrupción en el proceso de comunicación.
* using HTTP/1.x
> HEAD /download-anti-malware-testfile/ HTTP/1.1
> Host: www.eicar.org
> User-Agent: curl/8.5.0
> Accept: */*
>
TLS alert, close notify (256):
* Empty reply from server
* Closing connection
* TLS alert, close notify (256):
curl: (52) Empty reply from server
Si tienes habilitados los logs de CloudWatch, podrás ver los encabezados HTTP descifrados junto con la regla coincidente. La acción fue "blocked" debido a la regla.
{
"firewall_name": "Firewall-outbound-inspection",
"availability_zone": "eu-west-1a",
"event_timestamp": "1708512471",
"event": {
"tx_id": 0,
"app_proto": "http",
"src_ip": "172.31.88.172",
"src_port": 41508,
"event_type": "alert",
"alert": {
"severity": 3,
"signature_id": 2,
"rev": 1,
"signature": "Blocking bad domain",
"action": "blocked",
"category": ""
},
"flow_id": 817400271818255,
"dest_ip": "89.238.73.97",
"proto": "TCP",
"http": {
"hostname": "www.eicar.org",
"url": "/download-anti-malware-testfile/",
"http_user_agent": "curl/8.5.0",
"http_method": "HEAD",
"protocol": "HTTP/1.1",
"length": 0
},
"dest_port": 443,
"timestamp": "2024-02-21T10:47:51.085575+0000"
}
}
**Precios**
Al usar la funcionalidad de inspección TLS se aplica un cargo adicional por hora correspondiente a Advanced Inspection. En algunas regiones también pueden aplicarse cargos adicionales por el procesamiento de datos de Advanced Inspection.
Por ejemplo, la estructura de precios de la región de Irlanda no contempla cargos adicionales por procesamiento de tráfico de Advanced Inspection

En cambio, en Melbourne se paga $0.009/GB por procesamiento de tráfico

Encuentra más información sobre Precios aquí.
**Conclusión**
En resumen, vimos cómo se puede configurar Network Firewall para que las organizaciones inspeccionen el tráfico cifrado saliente y, así, detecten y prevengan amenazas ocultas en conexiones cifradas con SSL/TLS. Esto ayuda a mitigar los riesgos asociados a actividades maliciosas como malware, exfiltración de datos y comunicaciones de comando y control.
En definitiva, la inspección SSL saliente es una medida de seguridad clave que ayuda a las organizaciones a reforzar sus defensas, proteger los datos sensibles y mantener el cumplimiento normativo en el panorama actual de amenazas.