Determinar los requisitos de seguridad de una VPC - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Determinar los requisitos de seguridad de una VPC

Importante

Se recomienda diseñar y probar la arquitectura de seguridad del tráfico saliente de la VPC en un entorno de prueba. Probar los cambios de arquitectura en un entorno de desarrollo reduce el riesgo de que se produzcan comportamientos no deseados del sistema.

Antes de realizar cambios en los patrones de tráfico saliente de la red, es importante comprender los patrones de tráfico que la aplicación necesita para funcionar según lo previsto. Esta información puede ayudar a identificar los patrones de tráfico que debe permitir y los que debe denegar al rediseñar la red.

Para analizar los patrones de tráfico saliente existentes de una VPC, active primero Registros de flujo de VPC. A continuación, utilice un entorno de prueba para ejecutar la aplicación en varios escenarios de uso y analizar el tráfico simulado en los registros de flujo.

Los registros de flujo de la VPC registran el tráfico IP entrante y saliente de la VPC. A continuación, Amazon VPC envía los registros a Amazon Simple Storage Service (Amazon S3) o a Amazon CloudWatch. Puede ver y analizar los registros mediante cualquiera de las herramientas siguientes:

  • (Para Amazon S3) Amazon Athena

  • (Para CloudWatch) Información de CloudWatch Logs Insights

Para obtener más información y ejemplos, consulte lo siguiente:

Para obtener más información sobre los tipos de información que capturan los registros de flujo de una VPC, consulte Ejemplos de registros de flujo en la Guía del usuario de Amazon VPC.

Nota

Los registros de flujo de VPC no capturan información de la capa de aplicación (capa 7), como los nombres de hosts del DNS. Si los requisitos de seguridad solicitan el análisis de los datos de la capa de aplicaciones, puede implementar AWS Network Firewall para capturar los detalles necesarios. Para obtener más información, consulte la sección Restringir el tráfico saliente de una VPC mediante AWS Network Firewall y nombres de hosts del DNS de esta guía.

Prácticas recomendadas para analizar el tráfico saliente de la VPC al utilizar registros de flujo de la VPC

Al analizar los registros de flujo de la VPC mediante consultas de Amazon Athena o CloudWatch Logs Insights, asegúrese de hacer lo siguiente:

  • Identifique y analice el tráfico entrante y saliente que fluye a través de las interfaces de red elásticas conectadas a los recursos que utiliza la aplicación.

  • Identifique y analice el tráfico de aplicaciones que fluye a través de la interfaz de red conectada a la puerta de enlace NAT.

  • Asegúrese de capturar todo el tráfico saliente de una interfaz de red y para ello haga que la dirección de origen de la consulta sea la dirección IP privada de la interfaz de red.

  • Escriba las consultas que se centren únicamente en los patrones de tráfico inesperados. (Por ejemplo, si la aplicación se comunica con entidades de terceros, como un punto de conexión de la API HTTPS, puede crear las consultas de modo que no incluyan esas entidades).

  • Investigue la validez de cada puerto y dirección IP de destino. (Por ejemplo, un puerto 22 de destino saliente podría ser normal para un host bastión o un host que clona repositorios de Git mediante SSH).

Nota

Si es la primera vez que trabaja con Amazon Athena, asegúrese de configurar una ubicación de resultados de consulta. Para obtener instrucciones, consulte Especificación de una ubicación de resultados de consulta mediante la consola de Athena en la Guía del usuario de Amazon Athena.

Ejemplos de consultas de Amazon Athena

Ejemplo de consulta de Athena que devuelve el tráfico de administración saliente desde una interfaz de red específica

La siguiente consulta de Athena devuelve las primeras 200 líneas de tráfico de administración saliente desde una interfaz de red con la dirección IP 10.100.0.10:

SELECT * FROM "<vpc_flow_logs_table_name>" WHERE interface_id = 'eni-1234567890000000' AND srcaddr LIKE '10.100.0.10' AND dstport < 1024 LIMIT 200;

Ejemplo de resultados

#

1

version

2

id_cuenta

<account-id>

interface_id

eni-123456789000000

srcaddr

10.32.0.10

dstaddr

11.22.33.44

srcport

36952

dstport

443

protocolo

6

packets

25

bytes

5445

start

1659310200

end

1659310225

action

ACCEPT

log_status

Aceptar

date

16/07/2022

Nota

El resultado de este patrón tiene un formato de presentación y puede tener un aspecto diferente en el sistema.

Ejemplo de consulta de Athena que devuelve las direcciones IP externas que reciben la mayor parte del tráfico de una VPC específica

La siguiente consulta de Athena devuelve las direcciones IP y los puertos externos que reciben la mayor parte del tráfico saliente de una VPC con un bloque CIDR que comienza con '10.32':

SELECT dstport, dstaddr, count(*) AS count FROM "<vpc_flow_logs_table_name>" WHERE dstaddr not like '10.32%' AND interface_id = 'eni-1234567890000000' GROUP BY dstport, dstaddr ORDER BY count desc LIMIT 200;

Ejemplo de resultados

#

Dstport

dstaddr

count

1

443

52.x.x.x

1442

2

443

63.x.x.x

1201

3

443

102.x.x.x

887

Ejemplo de consulta de Athena que devuelve el tráfico saliente rechazado de una VPC específica

La siguiente consulta de Athena devuelve el tráfico saliente rechazado de una VPC con un bloque CIDR que comienza con '10.32':

SELECT *              FROM "<vpc_flow_logs_table_name>"  WHERE srcaddr like '10.32%' AND action LIKE 'REJECT'

Ejemplo de resultados

#

1

version

2

id_cuenta

<account-id>

interface_id

eni-123456789000000

srcaddr

10.32.0.10

dstaddr

11.22.33.44

srcport

36952

dstport

443

protocolo

6

packets

25

bytes

5445

start

1659310200

end

1659310225

action

REJECT

log_status

Aceptar

date

16/07/2022

Nota

El resultado de este patrón tiene un formato de presentación y puede tener un aspecto diferente en el sistema.

Para obtener más información sobre cómo interpretar resultados de consultas de Athena, consulte Registros de flujo en la Guía del usuario de Amazon VPC.

Ejemplos de consultas de CloudWatch Logs Insights

Ejemplo de consulta de CloudWatch Logs Insights que devuelve el tráfico de administración saliente desde una interfaz de red específica

La siguiente consulta de CloudWatch Logs Insights devuelve los primeros 200 resultados del tráfico de administración saliente desde una interfaz de red con la dirección IP 10.100.0.10:

fields @timestamp, @message | filter interfaceId = 'eni-1234567890000000' | filter srcAddr = '10.100.0.10' | filter dstPort < 1024 | limit 200

Ejemplo de resultados

Campo

Valor

@ingestionTime

1659310250813

@log

<account-id>:/aws/vpc/flowlogs

@logStream

eni-123456789000000-all

@message

2 <account-id> eni-123456789000000 10.100.0.10 11.22.33.44 36952 443 6 25 5445 1659310200 1659310225 ACCEPT OK

@timestamp

1659310200000

accountId

<account-id>

action

ACCEPT

bytes

5445

dstAddr

11.22.33.44

dstPort

443

END

1659310225

interfaceId

eni-123456789000000

logStatus

Aceptar

packets

25

protocolo

6

srcAddr

10.100.0.10

srcPort

36952

iniciar

1659310200

versión

2

Ejemplo de consulta de CloudWatch Logs Insights que devuelve direcciones IP externas que reciben la mayor parte del tráfico de una VPC específica

La siguiente consulta de CloudWatch Logs Insights devuelve las direcciones IP y los puertos externos que reciben la mayor parte del tráfico saliente de una VPC con un bloque CIDR que comienza con '10.32':

filter @logstream = 'eni-1234567890000000' | stats count(*) as count by dstAddr, dstPort | filter dstAddr not like '10.32' | order by count desc | limit 200

Ejemplo de resultados

#

dstAddr

dstPort

count

1

52.x.x.x

443

439

2

51.79.x.x

63.x.x.x

25

Ejemplo de consulta de CloudWatch Logs Insights que devuelve el tráfico saliente rechazado de una VPC específica

La siguiente consulta de CloudWatch Logs Insights devuelve el tráfico saliente rechazado de una VPC con un bloque CIDR que comienza con '10.32':

filter @logstream = 'eni-0123456789000000' | fields @timestamp, @message | filter action='REJECT'

Ejemplo de resultados

Campo

Valor

@ingestionTime

1666991000899

@log

<account-id>:/aws/vpc/flowlogs

@logStream

eni-0123456789000000-all

@message

2 <account-id> 'eni-0123456789000000' 185.x.x.x 10.10.2.222 55116 11211 17 1 43 1666990939 1666990966 REJECT OK

@timestamp

1666990939000

accountId

<account-id>

action

REJECT

bytes

43

dstAddr

10.10.2.222

dstPort

11211

END

1666990966

interfaceId

'eni-0123456789000000'

logStatus

Aceptar

packets

1

protocolo

17

srcAddr

185.x.x.x

srcPort

55116

iniciar

1666990939

versión

2