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.
Proteja las transferencias de archivos mediante Transfer Family, Amazon Cognito y GuardDuty
Manoj Kumar, Amazon Web Services
Resumen
Esta solución le ayuda a transferir archivos de forma segura a través de un servidor SFTP mediante. AWS Transfer Family Incluye capacidades automatizadas de escaneo de malware a través de Malware Protection for S3, una función de Amazon GuardDuty. Está diseñado para organizaciones que necesitan intercambiar archivos de forma segura con terceros y validar que todos los archivos entrantes se escaneen en busca de malware antes de procesarlos.
Las plantillas de infraestructura como código (IaC) que se proporcionan con este patrón le ayudan a implementar lo siguiente:
Un servidor SFTP seguro con autenticación de Amazon Cognito mediante AWS Lambda
Depósitos de Amazon Simple Storage Service (Amazon S3) para archivos subidos y entrantes que se han escaneado en busca de malware
Una arquitectura basada en una nube privada virtual (VPC) con subredes públicas y privadas en varias zonas de disponibilidad
Control de acceso basado en IP para el tráfico de entrada y salida, con listas configurables de permisos y denegaciones
Escaneo automatizado de malware GuardDuty
Enrutamiento inteligente de archivos basado en los resultados del escaneo a través de Amazon EventBridge y Lambda
Notificaciones en tiempo real de incidentes de seguridad a través de Amazon Simple Notification Service (Amazon SNS)
Cifrado de buckets de Amazon S3 y variables AWS Key Management Service de entorno Lambda mediante ()AWS KMS
Puntos de conexión de Amazon Virtual Private Cloud (Amazon VPC) para acceder sin exposición a Internet
Registro integral a través de la CloudWatch integración de Amazon
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
Permisos en AWS Identity and Access Management (IAM) para realizar las acciones descritas en este patrón, incluida la implementación de AWS CloudFormation plantillas que aprovisionen funciones de IAM
GuardDuty, activado en la cuenta de destino
Protección contra malware para S3, habilitada en la cuenta de destino
Las cuotas de servicio te permiten crear lo siguiente en la cuenta de destino:
Una VPC
Una subred privada
Una subred pública
Tres direcciones IP elásticas
Límites de simultaneidad Lambda suficientes
Una dirección de correo electrónico válida para las notificaciones relacionadas con la seguridad
(Opcional) Una lista de direcciones IP o rangos de CIDR que desee permitir o denegar
(Opcional) AWS Command Line Interface (AWS CLI), instalado y configurado
Limitaciones
La protección contra malware para S3 está sujeta a cuotas, como el tamaño máximo de los archivos. Para obtener más información, consulte Cuotas de protección contra malware para S3 y Compatibilidad de las funciones de Amazon S3 en la GuardDuty documentación.
Esta solución utiliza únicamente la autenticación de nombre de usuario y contraseña de Amazon Cognito. Esta plantilla no admite métodos de autenticación basados en certificados ni de otro tipo. De forma predeterminada, esta solución no configura la autenticación multifactor (MFA).
La solución implementa el control de acceso basado en IP únicamente a través de grupos de seguridad.
Arquitectura
El siguiente diagrama de arquitectura muestra los recursos que se implementan en este patrón. Esta solución utiliza Amazon Cognito para la autenticación y autorización de los usuarios. Se utiliza un servidor AWS Transfer Family SFTP para cargar archivos. Los archivos se almacenan en depósitos de Amazon S3 y Amazon los GuardDuty analiza en busca de malware. Amazon SNS envía una notificación por correo electrónico si se detecta software malicioso.

En el diagrama, se muestra el siguiente flujo de trabajo:
Un usuario se conecta al punto final del servidor SFTP en. AWS Transfer Family Esto inicia el proceso de autenticación con el grupo de usuarios de Amazon Cognito.
Una función Lambda inicia el proceso de autenticación y autorización y valida las credenciales del usuario con Amazon Cognito.
La función Lambda devuelve el bucket de
UploadBucketAmazon S3 como directorio principal. El usuario asume la función de IAM para el servidor Transfer Family y la función Lambda notifica al usuario que se ha autenticado correctamente.El usuario carga un archivo en el servidor SFTP de Transfer Family. El archivo se almacena en el bucket de
UploadBucketAmazon S3.GuardDuty analiza el archivo en busca de malware. Los posibles resultados del análisis son
NO_THREATS_FOUNDTHREATS_FOUND,UNSUPPORTED,ACCESS_DENIED, yFAILED. Para ver los resultados de una muestra, consulte el resultado del escaneo de objetos S3 en la GuardDuty documentación.Una EventBridge regla detecta el evento resultante del escaneo.
EventBridge inicia la función Lambda de enrutamiento de archivos.
La función Lambda procesa el evento y filtra los archivos en función de los resultados del escaneo de la siguiente manera:
Los archivos que tienen un resultado de
NO_THREATS_FOUNDescaneo se envían al bucket deCleanBucketAmazon S3.Los archivos que tienen un resultado de
THREATS_FOUNDescaneo se envían al bucket deMalwareBucketAmazon S3.Los archivos que tienen un resultado de
UNSUPPORTEDescaneo se envían al bucket deErrorBucketAmazon S3.Los archivos que tienen un resultado de
ACCESS_DENIEDescaneo se envían al bucket deErrorBucketAmazon S3.Los archivos que tienen un resultado de
FAILEDescaneo se envían al bucket deErrorBucketAmazon S3.
Todos los archivos se cifran con un AWS KMS key.
Si se envió un archivo al bucket de
MalwareBucketAmazon S3, la función Lambda inicia un tema de Amazon SNS. El tema Amazon SNS envía una notificación por correo electrónico a una dirección de correo electrónico que usted configure.
Herramientas
Servicios de AWS
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.
Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web.
Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos finales de invocación HTTP que utilizan destinos de API o buses de eventos en otros. Cuentas de AWS
Amazon GuardDuty es un servicio de supervisión continua de la seguridad que analiza y procesa los registros para identificar actividades inesperadas y potencialmente no autorizadas en su AWS entorno.
AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
AWS Transfer Familyle ayuda a transferir archivos dentro y fuera de los servicios de AWS almacenamiento a través de los protocolos SFTP, FTPS o FTP.
Amazon Virtual Private Cloud (Amazon VPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.
Repositorio de código
El código de este patrón está disponible en el GitHub AWS Transfer Family repositorio de soluciones de escaneo de GuardDuty malware
Prácticas recomendadas
La CloudFormation plantilla proporcionada está diseñada para incorporar muchas de las AWS mejores prácticas, como los permisos con privilegios mínimos para las funciones y políticas de IAM, el cifrado en reposo y en tránsito y la rotación automática de claves. Para los entornos de producción, considere la posibilidad de implementar las siguientes recomendaciones adicionales:
Habilite la MFA para los usuarios de Amazon Cognito
Implemente AWS Shielduna protección distribuida contra la denegación de servicio (DDoS)
Configure AWS Configpara una supervisión continua del cumplimiento
Implemente AWS CloudTrailpara un registro integral de la API
Configura Amazon GuardDuty para la detección de amenazas más allá del escaneo de malware
AWS Security HubImplételo para una gestión de seguridad centralizada
Úselo AWS Secrets Managerpara la administración de credenciales
Implemente la supervisión del tráfico de red con Traffic Mirroring
Configure Amazon Macie para el descubrimiento y la protección de datos confidenciales en Amazon S3
Implemente evaluaciones de seguridad y pruebas de penetración periódicas
Establezca un plan formal de respuesta a incidentes
Implemente parches automatizados para todos los componentes
Imparta formación periódica sobre seguridad a los administradores
Configure la gestión AWS Organizationsde la seguridad de varias cuentas
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Clonar el repositorio. | Introduzca el siguiente comando para clonar el repositorio de soluciones de escaneo de GuardDuty malware AWS Transfer Family y
| Desarrollador de aplicaciones, ingeniero DevOps |
Crea la CloudFormation pila. |
| Administrador de la nube, ingeniero DevOps |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Activa la protección contra malware. |
| Administrador de la nube, administrador de AWS |
Agregue usuarios al grupo de usuarios. | Añada uno o más usuarios al grupo de usuarios de Amazon Cognito. Para obtener instrucciones, consulte Administrar los usuarios de su grupo de usuarios en la documentación de Amazon Cognito. | Administrador de la nube, administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Conéctese al punto final del servidor SFTP. |
| Desarrollador de aplicaciones, administrador de la nube, arquitecto de la nube, DevOps ingeniero |
Solución de problemas
| Problema | Solución |
|---|---|
La autenticación del usuario falla |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
La autenticación SFTP falla |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
Se ha denegado el acceso a la carga |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
No se escanea el malware |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
Errores de la función Lambda |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
Recursos relacionados
Aplicaciones web de Transfer Family (documentación de Transfer Family)
Información adicional
Comandos útiles para solucionar problemas
Compruebe el estado de una CloudFormation pila:
aws cloudformation describe-stacks \ --stack-name <STACK_NAME>
Listar todos los usuarios de un grupo de usuarios de Amazon Cognito:
aws cognito-idp list-users \ --user-pool-id <USER_POOL_ID>
Vea los registros de las funciones de Lambda:
aws logs describe-log-groups \ --log-group-name-prefix /aws/lambda/
Compruebe el estado de GuardDuty:
aws guardduty list-detectors
Compruebe las reglas del grupo de seguridad:
aws ec2 describe-security-groups \ --group-ids <SECURITY_GROUP_ID> \ --output table
Compruebe el estado del AWS Transfer Family servidor:
aws transfer describe-server \ --server-id <SERVER_ID>
Enumere todos los archivos de un bucket de Amazon S3:
aws s3 ls s3://<BUCKET_NAME>/ \ --recursive
Compruebe el estado de una EventBridge regla:
aws events describe-rule \ --name <RULE_NAME>