Ingesta y análisis de registros de seguridad de AWS en Microsoft Sentinel - Recomendaciones de AWS

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.

Ingesta y análisis de registros de seguridad de AWS en Microsoft Sentinel

Ivan Girardi y Sebastian Wenzel, Amazon Web Services

Resumen

Este patrón describe cómo automatizar la ingesta de registros de AWS seguridad, como AWS CloudTrail registros, datos de Amazon Logs, datos de Amazon CloudWatch VPC Flow Logs y hallazgos de GuardDuty Amazon, en Microsoft Sentinel. Si su organización usa Microsoft Sentinel como sistema de administración de eventos e información de seguridad (SIEM), esto lo ayuda a supervisar y analizar los registros de forma centralizada para detectar eventos relacionados con la seguridad. En cuanto los registros están disponibles, se envían automáticamente a un bucket de Amazon Simple Storage Service (Amazon S3) en menos de 5 minutos. Esto puede ayudarle a detectar rápidamente los eventos de seguridad en su entorno. AWS

Microsoft Sentinel ingiere CloudTrail los registros en un formato tabular que incluye la marca de tiempo original del momento en que se registró el evento. La estructura de los registros ingeridos habilita las capacidades de consulta mediante el lenguaje de consulta Kusto en Microsoft Sentinel.

El patrón implementa una solución de supervisión y alertas que detecta los errores de ingesta en menos de 1 minuto. También incluye un sistema de notificaciones que el SIEM externo puede supervisar. Se utilizan AWS CloudFormation para implementar los recursos necesarios en la cuenta de registro.

Público objetivo

Este patrón se recomienda para los usuarios que tienen experiencia con AWS Control Tower AWS Organizations, CloudFormation, AWS Identity and Access Management (IAM) y AWS Key Management Service (AWS KMS).

Requisitos previos y limitaciones

Requisitos previos 

A continuación, se indican los requisitos previos para implementar esta solución:

  • Cuentas de AWS Activos que se gestionan como una organización en una AWS Control Tower landing zone AWS Organizations y forman parte de ella. La organización debe incluir una cuenta dedicada al registro. Para obtener instrucciones, consulte Creación y configuración de una organización en la AWS Organizations documentación.

  • Un CloudTrail registro que registra los eventos de toda la organización y almacena los registros en un bucket de Amazon S3 en la cuenta de registro. Para obtener instrucciones, consulte Creating a trail for an organization.

  • En la cuenta de registro, permisos para asumir un rol de IAM existente que tenga los permisos siguientes:

    • Implemente los recursos definidos en la CloudFormation plantilla proporcionada.

    • Implemente la CloudFormation plantilla proporcionada.

    • Modifique la política de AWS KMS claves si los registros están cifrados con una clave administrada por el cliente.

  • AWS Command Line Interface (AWS CLI), instalado y configurado.

  • Una cuenta de Microsoft Azure con una suscripción para usar Microsoft Sentinel.

  • Habilite y configure Microsoft Sentinel. Para obtener instrucciones, consulte Enable Microsoft Sentinel and initial features and content en la documentación de Microsoft Sentinel.

  • Cumpla los requisitos previos para configurar el conector de S3 de Microsoft Sentinel.

Limitaciones

  • Esta solución reenvía los registros de seguridad de un bucket de Amazon S3 en la cuenta de registro a Microsoft Sentinel. Las instrucciones sobre cómo enviar los registros a Amazon S3 no se proporcionan de forma explícita.

  • Este patrón proporciona instrucciones para el despliegue en una zona de AWS Control Tower landing zone. Sin embargo, no AWS Control Tower es obligatorio el uso de.

  • Esta solución es compatible con un entorno en el que el depósito de registro de Amazon S3 está restringido por políticas de control de servicios (SCPs), como la política de no permitir cambios en el depósito para depósitos de Amazon S3 AWS Control Tower creados en Log Archive.

  • Este patrón proporciona instrucciones para reenviar CloudTrail registros, pero puede adaptar esta solución para enviar otros registros compatibles con Microsoft Sentinel, como registros de Logs CloudWatch , Amazon VPC Flow Logs y. GuardDuty

  • En las instrucciones se utiliza el AWS CLI para implementar la CloudFormation plantilla, pero también puede utilizar el. Consola de administración de AWS Para obtener instrucciones, consulte Uso de la AWS CloudFormation consola. Si usa la consola para implementar la pila, despliéguela en el mismo lugar Región de AWS que en el depósito de registro.

  • Esta solución implementa una cola de Amazon Simple Queue Service (Amazon SQS) para enviar las notificaciones de Amazon S3. La cola contiene mensajes con las rutas de los objetos cargados en el bucket de Amazon S3, no con datos reales. La cola utiliza el cifrado SSE-SQS para ayudar a proteger el contenido de los mensajes. Si desea cifrar la cola de SQS con SSE-KMS, puede utilizar una clave de KMS administrada por el cliente. Para obtener más información, consulte Encryption at rest in Amazon SQS.

Arquitectura

En esta sección se ofrece información general sobre la arquitectura que establece el código de ejemplo. En el siguiente diagrama se muestran los recursos implementados en la cuenta de registro para ingerir los registros de un bucket de Amazon S3 existente a Microsoft Sentinel.

Microsoft Sentinel con una cola de Amazon SNS para ingerir registros de un bucket de S3

En el siguiente diagrama de arquitectura se muestran las siguientes interacciones de los recursos:

  1. En la cuenta de registro, Microsoft Sentinel asume un rol de IAM a través de OpenID Connect (OIDC) para acceder a los registros de un bucket de Amazon S3 y una cola de Amazon SQS específicos.

  2. Amazon Simple Notification Service (Amazon SNS) y Amazon S3 AWS KMS se utilizan para el cifrado.

  3. Amazon S3 envía mensajes de notificación a la cola de Amazon SQS cada vez que recibe nuevos registros.

  4. Microsoft Sentinel comprueba si hay mensajes nuevos en Amazon SQS. La cola de Amazon SQS utiliza el cifrado SSE-SQS. El periodo de retención de mensajes está establecido en 14 días.

  5. Microsoft Sentinel extrae mensajes de la cola de Amazon SQS. Los mensajes contienen la ruta de los objetos de Amazon S3 cargados. Microsoft Sentinel ingiere esos objetos del bucket de Amazon S3 en la cuenta de Microsoft Azure.

  6. Una CloudWatch alarma monitorea la cola de Amazon SQS. Si los mensajes no se reciben y se eliminan de la cola de Amazon SQS en 5 minutos, se inicia una notificación de Amazon SNS que envía un correo electrónico.

AWS Control Tower le ayuda a configurar la estructura de la unidad organizativa fundamental (OU) y centraliza los CloudTrail registros en la cuenta de registro. También implementa la obligación de SCPs proteger el depósito de registro.

Hemos proporcionado la arquitectura objetivo en una AWS Control Tower landing zone, pero no es estrictamente necesaria. En este diagrama, los recursos de la cuenta de administración reflejan una AWS Control Tower implementación y un CloudTrail registro que registra los eventos de toda la organización.

Este patrón se centra en la implementación de recursos en la cuenta de registro. Si los registros almacenados en Amazon S3 en su AWS Control Tower landing zone están cifrados con una clave KMS administrada por el cliente, debe actualizar la política de claves para permitir que Microsoft Sentinel descifre los registros. En una AWS Control Tower landing zone, la política de claves se administra desde la cuenta de administración, que es donde se creó la clave.

Tools (Herramientas)

Servicios de AWS

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todas Cuentas de AWS las regiones.

  • Amazon le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.

  • AWS Control Towerle ayuda a configurar y administrar un entorno de AWS múltiples cuentas, siguiendo las mejores prácticas.

  • AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.

  • AWS Organizationses un servicio de administración de cuentas que le ayuda a consolidar varias cuentas Cuentas de AWS en una organización que puede crear y administrar de forma centralizada.

  • Amazon Simple Queue Service (Amazon SQS) ofrece una cola alojada segura, duradera y disponible que le permite integrar y desacoplar sistemas y componentes de software distribuidos.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

Otras herramientas

  • Microsoft Sentinel es un sistema de SIEM nativo en la nube que proporciona orquestación, automatización y respuesta de seguridad (SOAR).

Repositorio de código

El código de este patrón está disponible en los registros de AWS seguridad de GitHub Ingest and Analyze del repositorio Sentinel de Microsoft.

Prácticas recomendadas

Epics

TareaDescripciónHabilidades requeridas

Preparar el conector de S3 de Microsoft Sentinel.

  1. En Microsoft Sentinel, elija Conectores de datos.

  2. En la galería de conectores de datos, elija Amazon Web Services S3.

    nota

    Si no ve el conector, instale la solución de Amazon Web Services desde el centro de contenido de Microsoft Sentinel.

  3. En el panel de detalles del conector, elija Abrir página de conectores.

  4. En la sección Configuración, copie el valor de ID externo. Necesitará este ID más adelante.

DevOps ingeniero, AWS general
TareaDescripciónHabilidades requeridas

Clonar el repositorio.

En un intérprete de comandos de bash, ingrese el siguiente comando. Esto clona los registros de AWS seguridad de ingesta y análisis en el repositorio Sentinel de Microsoft.

git clone https://github.com/aws-samples/ingest-and-analyze-aws-security-logs-in-microsoft-sentinel.git

DevOps ingeniero, AWS general

Asumir el rol de IAM en la cuenta de registro.

En la cuenta de registro, asuma el rol de IAM que tiene permisos para implementar la CloudFormation pila. Para obtener más información sobre cómo asumir una función de IAM en la AWS CLI, consulte Usar una función de IAM en la. AWS CLI

DevOps ingeniero, AWS general

Implemente la pila.

Para implementar la CloudFormation pila, ingresa el siguiente comando, donde:

  • <Bucket name> es el nombre del bucket de Amazon S3 de registro.

  • <Sentinel external ID> es el ID externo del conector de Amazon S3 en Microsoft Sentinel.

  • <Email address> es una dirección de correo electrónico válida donde desea recibir las notificaciones.

  • <Customer managed key ARN> es el nombre de recurso de Amazon (ARN) de la clave de KMS administrada por el cliente. Proporcione este parámetro solo si los registros están cifrados con una clave de KMS administrada por el cliente.

  • <Suffix> es un parámetro opcional para evitar conflictos en los nombres de los recursos.

  • <ARN for the OIDC provider> es el ARN del proveedor de OIDC si ya existe. Si no proporciona este parámetro, CloudFormation crea el proveedor OIDC.

    importante

    Si la AWS organización está supervisada con Microsoft Code Defender, el proveedor de OIDC para Microsoft ya se ha implementado. Debe proporcionar este parámetro y el ARN del proveedor existente.

aws cloudformation deploy --stack-name cloudtrail-sentinel-integration \ --no-fail-on-empty-changeset \ --template-file template.yml \ --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND \ --parameter-overrides \ ControlTowerS3BucketName="<Bucket name>" \ AzureWorkspaceID="<Sentinel external ID>" \ EmailAddress="<Email address>" \ KMSKeyArn="<Customer managed key ARN>" \ Suffix="<Suffix to avoid name conflicts>" \ OIDCProviderArn="<ARN for the OIDC provider>"
DevOps ingeniero, AWS general

Copiar las salidas.

De la salida de la CloudFormation pila, copie los valores de SentinelRoleArn ySentinelSQS. Utilizará estos valores más adelante para completar la configuración en Microsoft Sentinel.

DevOps ingeniero, AWS general

Modificar la política de claves.

Si no utiliza una clave de KMS administrada por el cliente para cifrar los registros en el bucket de Amazon S3, puede omitir este paso.

Si los registros están cifrados con una clave de KMS administrada por el cliente, modifique la política de claves para conceder permiso a Microsoft Sentinel para descifrar los registros. A continuación, se muestra una política de claves de ejemplo. Este ejemplo de política permite el acceso entre cuentas si la clave de KMS está en otra Cuenta de AWS.

{ "Version": "2012-10-17", "Id": "key-policy", "Statement": [ ... { "Sid": "Grant access to decrypt", "Effect": "Allow", "Principal": { "AWS": "<SentinelRoleArn>" }, "Action": "kms:Decrypt", "Resource": "<KeyArn>" } ] }
DevOps ingeniero, AWS general
TareaDescripciónHabilidades requeridas

Completar la configuración en Microsoft Sentinel.

  1. En Microsoft Sentinel, elija Conectores de datos.

  2. En la galería de conectores de datos, elija Amazon Web Services S3.

  3. En el panel de detalles del conector, elija Abrir página de conectores.

  4. En la sección Configuración, haga lo siguiente:

    1. En Rol que agregar, ingrese el valor de SentinelRoleArn que ha copiado.

    2. En URL de SQS, ingrese el valor de SentinelSQS que ha copiado.

    3. En la lista Tablas de destinos, elija AWSCloudTrail.

  5. Elija Agregar conexión.

DevOps ingeniero

Enviar notificaciones de eventos de Amazon S3 a Amazon SQS.

Siga las instrucciones de Habilitación y configuración de notificaciones de eventos mediante la consola de Amazon S3 para configurar el bucket de registro de Amazon S3 para enviar notificaciones de eventos a la cola de Amazon SQS. Si se CloudTrail ha configurado para toda la organización, los registros de este depósito tienen el prefijo<OrgID>/AWSLogs/<OrgID>/, donde <OrgID> está el ID de la organización. Para obtener más información, consulte Viewing details about your organization.

DevOps ingeniero, AWS general

Confirmar que los registros estén ingeridos.

  1. Espere a que los registros se ingieran en Microsoft Sentinel. Esto puede tardar varios minutos.

  2. En Microsoft Sentinel, abra la página del conector de datos de Amazon S3 y, a continuación, haga lo siguiente:

    • Confirme que el estado del conector de datos de Amazon S3 sea Connected.

    • Compruebe el volumen de datos en el gráfico Datos recibidos.

    Para obtener más información acerca de la inspección de la actividad del conector de datos, consulte Data connector en la documentación de Microsoft.

DevOps ingeniero
TareaDescripciónHabilidades requeridas

Registros de CloudWatch Compare y Sentinel.

En la configuración predeterminada de AWS Control Tower, CloudTrail los registros se envían a Amazon CloudWatch y se almacenan en la cuenta AWS Control Tower de administración. Para obtener más información, consulte Inicio de sesión y supervisión AWS Control Tower. Siga estos pasos para confirmar que los registros se ingieren automáticamente en Microsoft Sentinel:

  1. Abra la consola de CloudWatch .

  2. En el panel de navegación, elija Registros y, luego, Información de registros.

  3. En Seleccionar grupo (s) de registros, seleccione el grupo de registros en el que se almacenan CloudTrail los registros, por ejemploaws-controltower/CloudTrailLogs.

  4. En el cuadro del editor de consultas, escriba fields eventID.

  5. Elija Ejecutar consulta.

  6. Elija Exportar resultados y, a continuación, elija Copiar tabla al portapapeles (CSV).

  7. Pegue los resultados en un editor de texto.

  8. Cambie el formato de la salida para poder utilizarla en una consulta de Microsoft Sentinel. A continuación, se muestra un ejemplo en el que se utiliza el lenguaje de consulta Kusto:

    AWSCloudTrail | where AwsEventId in ( 'aa08b5fe-3bfb-391a-a14e-5fcebe14dab2', '9decd805-269c-451c-b75b-762f5dce59f9' )
  9. En Microsoft Sentinel, abra la página del conector de datos de Amazon S3. Junto al gráfico Datos recibidos, elija Ir a análisis de registros.

  10. En el cuadro del editor de consultas, escriba la consulta y, a continuación, elija Ejecutar.

  11. En Microsoft Sentinel y CloudWatch, compruebe que el número de entradas es el mismo. Adapte el intervalo de tiempo si es necesario.

DevOps ingeniero, AWS general

Recursos relacionados

AWS documentación y recursos

Documentación de Microsoft