Bienvenido, les saluda Luis y esta vez les traigo un nuevo artículo.
Índice
Una guía paso a paso para crear un entorno supervisado por red en AWS
Los registros de flujo de VPC es una función que le permite capturar información sobre el tráfico de IP que va y viene de las interfaces de red en su VPC. Los datos del registro de flujo se pueden publicar en Amazon CloudWatch Logs o Amazon S3.
Amazon Athena es un servicio de consultas interactivo y fácil de usar que facilita el análisis de datos en Amazon S3 mediante SQL estándar. Athena no tiene servidor, por lo que no hay infraestructura que administrar y solo paga por las consultas que ejecuta.
CloudWatch es un tipo de servicio todo en uno sobre registros y métricas, que brinda observabilidad de sus recursos de AWS de muchas maneras al realizar tantas acciones e integrarse con tantos productos.
Que vamos a construir
Al final del día, tendremos un entorno de red monitoreado en nuestra VPC de manera profesional. Para llegar allí, aprenderemos cómo usar e integrar los servicios de AWS enumerados anteriormente para ayudarnos a analizar las tareas de tráfico de red, además de recibir notificaciones de amenazas. 🧐
Habilitar VPC Flow Log e integrarlo con S3
Navegue a S3 y cree un depósito, asígnele un nombre y copie el ARN del depósito, lo usaremos más adelante.
- Cree el depósito en la misma región que su VPC.
- Habilite el cifrado, estamos manejando datos sensibles.
Hay mucho de qué hablar sobre el cifrado del lado del servidor en S3, para permanecer enfocado, seleccione el
AES-256
opción y continuar, haré referencia a algunos enlaces al respecto al final de este artículo.
Navegue a su VPC y haga clic en el botón Crear registro de flujo.
- En la opción Filtro, seleccione Todas.
- En Destino, configure Enviar a un depósito de S3 y coloque el ARN del depósito que creó anteriormente.
- Deje todo lo demás como está y cree el registro de flujo.
AWS creará automáticamente una Política de recursos en su Bucket para otorgar todos los permisos necesarios para VPC Flow Log.
Integrar VPC Flow Log con CloudWatch
Para crear un CloudWatch Log Group, vaya a CloudWatch, haga clic en Grupos de registros en el menú de la izquierda, luego haga clic en el Crear grupo de registros botón y dar vpc / flowlogs como el nombre.
Cree otro registro de flujo de VPC, pero esta vez seleccione el grupo de registros que creó anteriormente como destino.
Tenga en cuenta que deberá seleccionar una función de IAM ahora, AWS no creará una para usted como antes.
En otra pestaña, cree una nueva función de IAM DeliverVPCFlowLogsRole
con una relación de confianza con vpc-flow-logs.amazonaws.com
y adjúntele el documento de política a continuación.
Vuelva a su VPC Flow Log y seleccione el rol de IAM que ha creado y presione Crear.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DeleteFlowLogs", "ec2:CreateFlowLogs", "ec2:DescribeFlowLogs", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "ec2:CreateFlowLogs" ], "Resource": "*", "Effect": "Allow" } ] }
Filtros métricos de CloudWatch
Vaya a su grupo de registros de CloudWatch y cree un nuevo filtro de métricas.
A fin de que rastrear intentos fallidos de SSH en su VPC ingrese el patrón de filtro a continuación.
[version, account, eni, source, destination, srcport, destport="22", protocol="6", packets, bytes, windowstart, windowend, action="REJECT", flowlogstatus]
En el Patrón de prueba sección, Seleccionar Datos de registro personalizados e ingrese lo siguiente como los mensajes de eventos de registro y luego haga clic en Siguiente.
2 086112738802 eni-0d5d75b41f9befe9e 61.177.172.128 172.31.83.158 39611 22 6 1 40 1563108188 1563108227 REJECT OK 2 086112738802 eni-0d5d75b41f9befe9e 182.68.238.8 172.31.83.158 42227 22 6 1 44 1563109030 1563109067 REJECT OK 2 086112738802 eni-0d5d75b41f9befe9e 42.171.23.181 172.31.83.158 52417 22 6 24 4065 1563191069 1563191121 ACCEPT OK 2 086112738802 eni-0d5d75b41f9befe9e 61.177.172.128 172.31.83.158 39611 80 6 1 40 1563108188 1563108227 REJECT OK
En la sección Asignar métrica , cambie el nombre del filtro a ssh-accept
y el nombre de la métrica a SSH Rejects
.
Establezca 1
para el campo Valor de métrica , haga clic en Siguiente y luego en Guardar cambios.
Alarma de filtro métrico
- Seleccione su filtro de métricas de rechazos ssh y haga clic en Crear alarma.
- En el campo Definir el valor de umbral ingrese
1
y haga clic en Siguiente. - En el Definir el valor umbral campo entra
1
y haga clic en próximo. - Cree un nuevo tema y use su nombre
SSH_DENIED_ACCESS_IN_VPC
. - Ingrese su correo electrónico para recibir esas notificaciones y luego haga clic en Siguiente.
- Entrar con Rechazos SSH para en nombre de la Alarma, haga clic en siguiente, y luego en el botón Crear alarma.
- Deberá confirmar su suscripción a este tema en su casilla de correo electrónico.
CloudWatch Insights
Ejecutemos algunas consultas ad-hoc directamente en sus registros desde CloudWatch ahora, para eso vaya a Insights menú, haga clic en Consultas carpeta de iconos en el menú de la derecha y seleccione Consultas de muestra > Consultas de registros de flujo de VPC > Las 20 principales direcciones IP de origen con el mayor número de solicitudes rechazadas y seleccione su grupo de registro.
Juegue con otras consultas, verá algunas muy útiles, eche un vistazo a los documentos de Amazon más adelante, observe cómo se podría escribir la consulta, es fácil y un poco más cercana a la sintaxis SQL ANSI92, pero para usar SQL estándar ya que es en consultas ad hoc la mejor opción es Athena.
Amazonas Atenea
Navega hasta Athena.
Utilice el siguiente código, reemplazando los campos entre <>
relacionados con la ubicación del depósito de S3 Flow Log y ejecute la consulta.
CREATE EXTERNAL TABLE IF NOT EXISTS default.vpc_flow_logs ( version int, account string, interfaceid string, sourceaddress string, destinationaddress string, sourceport int, destinationport int, protocol int, numpackets int, numbytes bigint, starttime int, endtime int, action string, logstatus string ) PARTITIONED BY ( dt string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LOCATION 's3://<vpc-flow-logs-bucket>/AWSLogs/<account-id>/vpcflowlogs/<region>/' TBLPROPERTIES ("skip.header.line.count"="1");
Para poder leer los datos, necesitamos crear un partition
en nuestra tabla Athena, y para hacer eso, ejecute otra consulta usando la plantilla de la siguiente manera (observe los campos que necesitan ser reemplazados).
ALTER TABLE default.vpc_flow_logs ADD PARTITION (dt='{Year}-{Month}-{Day}') location 's3://<vpc-flow-logs-bucket>/AWSLogs/<account_id>/vpcflowlogs/<region>/<Year>/<Month>/<Day>';
Ahora puede leer sus datos usando la sintaxis SQL estándar directamente desde su bucket de S3, simplemente ejecutando el siguiente script.
SELECT day_of_week(from_iso8601_timestamp(dt)) AS day, dt, interfaceid, sourceaddress, destinationport, action, protocol FROM vpc_flow_logs WHERE action = 'REJECT' AND protocol = 6 order by sourceaddress LIMIT 100;
Athena es un poderoso servicio sin servidor y puede ser muy útil para muchos casos de uso. Athena puede procesar conjuntos de datos no estructurados, formatos de datos en columnas como Apache Parquet.
También puede utilizar Athena para generar informes y tener algunas integraciones con sus herramientas de BI.
Lo que hemos construido
Espero que este tutorial le haya ayudado a implementar y comprender algunas preocupaciones sobre la seguridad de la red.
Además, puede ser el inicio de nuevas investigaciones e implementaciones sencillas sobre las mejores prácticas de seguridad.
Hemos jugado con muchas integraciones de VPC Flow Logs, ahora tiene un entorno de red supervisado profesionalmente.
¿Qué sigue?
Eche un vistazo a Amazon Athena. Es un servicio útil sin servidor. Intente divertirse cargando algunos archivos en S3 y leyendo sus datos en Athena.
Juegue con CloudWatch Insights también, pero no se preocupe tanto por convertirse en un profesional, hay algunas consultas útiles en Internet, además, esas consultas de muestra ofrecidas por AWS pueden ser suficientes para muchos casos de uso de sistemas operativos.
Gracias por leer este artículo.
Añadir comentario