Comenzando con la seguridad en AWS
En AWS la seguridad es la MÁXIMA prioridad, pero ¿qué sabes sobre seguridad? ¿Cómo puedes asegurar tus soluciones AWS? ¿Cuáles son los conceptos básicos y mejores prácticas que necesitas conocer? ¿Por dónde empezar?
AWS Security
Guía completa de seguridad en AWS, desde los fundamentos hasta la detección avanzada de amenazas con Security Hub, GuardDuty y WAF.
5 articles
1. Introducción
Probablemente has leído muchas veces que en AWS la seguridad es la MÁXIMA prioridad, y como sabes hay muchos recursos en internet. Quiero compartir contigo en este artículo los conceptos básicos de seguridad para mejorar tus soluciones AWS enfocándome en estos 2 recursos que debes conocer:
- Recomendaciones y mejores prácticas: Pilar de Seguridad en el AWS Well-Architected Framework
- Lista de verificación de seguridad de AWS
Si buscas profundizar en la gama más amplia de materiales de aprendizaje disponibles sobre seguridad, incluyendo cursos digitales, blogs, whitepapers y más, AWS te recomienda la Guía de Ramp-Up
2. Pilar de Seguridad en el AWS Well-Architected Framework
Deberías empezar aquí. Este es el enlace oficial. Estoy seguro de que estás familiarizado con el Well-Architected Framework y el Pilar de Seguridad… pero ¿has leído todo? Intentaré compilar los puntos principales para ti.
El Pilar de Seguridad proporciona orientación para ayudarte a aplicar mejores prácticas, recomendaciones actuales en el diseño, entrega y mantenimiento de cargas de trabajo AWS seguras. Al adoptar estas prácticas puedes construir arquitecturas que protejan tus datos y sistemas, controlen el acceso y respondan automáticamente a eventos de seguridad.
La seguridad en la nube se compone de seis áreas:
- Fundamentos
- Gestión de identidad y acceso
- Detección (logging y monitoreo)
- Protección de infraestructura
- Protección de datos
- Respuesta a incidentes
2.1. Fundamentos de Seguridad
2.1.1. Principios de Diseño
El pilar de seguridad del Well-Architected Framework captura un conjunto de principios de diseño que convierten las áreas de seguridad en orientación práctica que puede ayudarte a fortalecer la seguridad de tu carga de trabajo.
Donde las épicas de seguridad enmarcan la estrategia de seguridad general, estos principios del Well-Architected describen lo que deberías empezar a hacer:
- Implementar una base de identidad sólida
- Implementar el principio de mínimo privilegio
- Aplicar separación de funciones (con autorización apropiada)
- Centralizar la gestión de identidades
- Apuntar a eliminar la dependencia de credenciales estáticas a largo plazo
- Habilitar trazabilidad
- Monitorear, alertar y auditar acciones y cambios en tu entorno en tiempo real
- Integrar la recopilación de logs y métricas con sistemas para investigar y tomar acción automáticamente
- Aplicar seguridad en todas las capas
- Aplicar un enfoque de defensa en profundidad con múltiples controles de seguridad
- Aplicar a todas las capas (por ejemplo, borde de red, VPC, balanceo de carga, cada instancia y servicio de cómputo, sistema operativo, aplicación y código)
- Automatizar las mejores prácticas de seguridad
- Mecanismos de seguridad automatizados basados en software (mejoran tu capacidad de escalar de forma segura más rápida y rentable)
- Crear arquitecturas seguras, incluyendo la implementación de controles que se definen y gestionan como código en plantillas controladas por versiones
- Proteger datos en tránsito y en reposo
- Clasificar tus datos en niveles de sensibilidad y usar mecanismos, como cifrado, tokenización y control de acceso donde sea apropiado
- Mantener a las personas alejadas de los datos
- Usar mecanismos y herramientas para reducir o eliminar la necesidad de acceso directo o procesamiento manual de datos
- Prepararse para eventos de seguridad
- Prepararse para un incidente teniendo políticas y procesos de gestión e investigación de incidentes que se alineen con tus requisitos organizacionales
- Ejecutar simulaciones de respuesta a incidentes y usar herramientas con automatización para aumentar tu velocidad de detección, investigación y recuperación
2.1.2. Responsabilidad Compartida
La seguridad y el cumplimiento es una responsabilidad compartida entre AWS y el cliente.
Información más detallada aquí
2.1.3. Gestión y Separación de Cuentas AWS
Mejores prácticas para la gestión y separación de cuentas:
- Separar cargas de trabajo usando cuentas
- Asegurar la cuenta AWS:
- no usar el usuario root
- mantener la información de contacto actualizada
- Usar AWS Organizations para:
- Gestionar cuentas centralmente: automatiza la creación y gestión de cuentas AWS, y el control de esas cuentas después de que se crean
- Establecer controles centralmente: te permite usar políticas de control de servicios (SCPs) para aplicar barreras de permisos a nivel de organización, unidad organizacional o cuenta, que se aplican a todos los usuarios y roles de AWS Identity and Access Management (IAM)
- Configurar servicios y recursos centralmente: te ayuda a configurar servicios AWS que se aplican a todas tus cuentas (CloudTrail, AWS Config)
2.2. Gestión de Identidad y Acceso
La gestión de identidad y acceso (IAM) ayuda a los clientes a integrar AWS en su ciclo de vida de gestión de identidades y fuentes de autenticación y autorización.
Las mejores prácticas para estas capacidades caen en dos áreas principales.
- Gestión de Identidades
- Gestión de Permisos
2.2.1. Gestión de Identidades
Hay dos tipos de identidades que necesitarás gestionar:
- Identidades humanas: administradores, desarrolladores, operadores y consumidores de tus aplicaciones, …
- Identidades de máquina: aplicaciones de carga de trabajo, herramientas operacionales, componentes, …
Las siguientes son las mejores prácticas relacionadas con las identidades:
- Confiar en un proveedor de identidad centralizado: Esto facilita la gestión del acceso a través de múltiples aplicaciones y servicios, porque estás creando, gestionando y revocando acceso desde una ubicación única
- Federación con cuenta AWS individual: puedes usar identidades centralizadas para AWS con un proveedor basado en SAML 2.0 con AWS IAM
- Para federación a múltiples cuentas en tu AWS Organization, puedes configurar tu fuente de identidad en AWS Single Sign-On (AWS SSO)
- Para gestionar usuarios finales o consumidores de tus cargas de trabajo, como una aplicación móvil, puedes usar Amazon Cognito
- Aprovechar grupos de usuarios y atributos: Colocar usuarios con requisitos de seguridad comunes en grupos definidos por tu proveedor de identidad, y poner mecanismos en su lugar para asegurar que los atributos de usuario sean correctos y actualizados
- Usar mecanismos de inicio de sesión fuertes
- Usar credenciales temporales
- Auditar y rotar credenciales periódicamente
- Almacenar y usar secretos de forma segura: Para credenciales que no están relacionadas con IAM y no pueden aprovechar credenciales temporales, como inicios de sesión de base de datos, usar un servicio diseñado para manejar la gestión de secretos, como AWS Secrets Manager
2.2.2. Gestión de permisos
Gestionar permisos para controlar el acceso a identidades humanas y de máquina que requieren acceso a AWS y tus cargas de trabajo. Los permisos controlan quién puede acceder a qué, y bajo qué condiciones.
Cómo otorgar acceso a diferentes tipos de recursos:
- Políticas basadas en identidad en IAM (gestionadas o en línea): Estas políticas te permiten especificar qué puede hacer esa identidad (sus permisos)
- En la mayoría de los casos, deberías crear tus propias políticas gestionadas por el cliente siguiendo el principio de mínimo privilegio
- Políticas basadas en recursos se adjuntan a un recurso. Estas políticas otorgan permiso a un
principalque puede estar en la misma cuenta que el recurso o en otra cuenta - Límites de permisos: usar una política gestionada para establecer los permisos máximos que un administrador puede establecer
- Esto te permite delegar la capacidad de crear y gestionar permisos a desarrolladores, como la creación de un rol IAM, pero limitar los permisos que pueden otorgar para que no puedan escalar sus permisos usando lo que han creado
- Control de acceso basado en atributos (ABAC): te permite otorgar permisos basados en etiquetas (atributos)
- Las etiquetas pueden adjuntarse a principales de IAM (usuarios o roles) y recursos AWS
- Usando políticas IAM, los administradores pueden crear una política reutilizable que aplica permisos basados en los atributos del principal de IAM
- Políticas de control de servicios (SCP) de Organizations: definen los permisos máximos para miembros de cuenta de una organización o unidad organizacional (OU). Limitan permisos pero no los otorgan
- Políticas de sesión: políticas avanzadas que pasas como parámetro cuando creas programáticamente una sesión temporal para un rol o usuario federado. Estas políticas limitan permisos pero no otorgan permisos
Las siguientes son las mejores prácticas relacionadas con la gestión de permisos:
- Otorgar acceso de mínimo privilegio
- Definir barreras de permisos para tu organización: Deberías usar AWS Organizations para establecer barreras de permisos comunes que restrinjan el acceso a todas las identidades en tu organización. Aquí hay ejemplos de políticas de control de servicios (SCPs) definidas por AWS que puedes aplicar a tu organización.
- Analizar acceso público y entre cuentas: En AWS, puedes otorgar acceso a recursos en otra cuenta. Otorgas acceso directo entre cuentas usando políticas adjuntas a recursos o permitiendo que la identidad asuma un rol IAM en otra cuenta.
- IAM Access Analyzer identifica todos los caminos de acceso a un recurso desde fuera de su cuenta. Revisa las políticas de recursos continuamente e informa hallazgos de acceso público y entre cuentas para facilitar el análisis de acceso potencialmente amplio.
- Compartir recursos de forma segura: AWS recomienda compartir recursos usando AWS Resource Access Manager (AWS RAM) porque te permite compartir fácil y seguramente recursos AWS dentro de tu AWS Organization y Unidades Organizacionales
- Reducir permisos continuamente: Tal vez al comenzar un proyecto elegiste otorgar acceso amplio, pero más tarde deberías evaluar el acceso continuamente y restringir el acceso solo a los permisos requeridos y lograr mínimo privilegio
- Establecer proceso de acceso de emergencia: AWS recomienda tener un proceso que permita acceso de emergencia a tu carga de trabajo, en particular tus cuentas AWS, en el caso improbable de un problema de proceso o pipeline automatizado
2.3. Detección
El control detectivo proporciona orientación para ayudar a identificar posibles incidentes de seguridad dentro del entorno AWS. La detección consta de dos partes:
- Configurar
- Investigar
2.3.1. Configurar
- Configurar logging de servicios y aplicaciones
- Una práctica fundamental es establecer un conjunto de mecanismos de detección a nivel de cuenta. Este conjunto base de mecanismos está dirigido a registrar y detectar una amplia gama de acciones en todos los recursos de tu cuenta.
- AWS CloudTrail proporciona el historial de eventos de la actividad de tu cuenta AWS
- AWS Config monitorea y registra las configuraciones de tus recursos AWS y te permite automatizar la evaluación y remediación contra configuraciones deseadas
- Amazon GuardDuty es un servicio de detección de amenazas que monitorea continuamente actividad maliciosa y comportamiento no autorizado para proteger tus cuentas y cargas de trabajo AWS
- AWS Security Hub proporciona un lugar único que agrega, organiza y prioriza tus alertas de seguridad, o hallazgos, de múltiples servicios AWS y productos opcionales de terceros para darte una vista completa de alertas de seguridad y estado de cumplimiento.
- Muchos servicios principales de AWS proporcionan características de logging a nivel de servicio. Por ejemplo, Amazon VPC proporciona VPC Flow Logs
- Amazon CloudWatch Logs puede usarse para almacenar y analizar logs para instancias EC2 y logging basado en aplicaciones que no se origina de servicios AWS (necesitarás un agente), y usar CloudWatch Logs Insights para procesarlos en tiempo real o profundizar en el análisis.
- Una práctica fundamental es establecer un conjunto de mecanismos de detección a nivel de cuenta. Este conjunto base de mecanismos está dirigido a registrar y detectar una amplia gama de acciones en todos los recursos de tu cuenta.
- Analizar logs, hallazgos y métricas centralmente: Una mejor práctica es integrar profundamente el flujo de eventos y hallazgos de seguridad en un sistema de notificación y flujo de trabajo.
- GuardDuty y Security Hub proporcionan mecanismos de agregación, deduplicación y análisis para registros de logs que también están disponibles para ti a través de otros servicios AWS.
2.3.2. Investigar
- Implementar eventos de seguridad accionables: Para cada mecanismo detectivo que tengas, también deberías tener un proceso, en forma de runbook o playbook, para investigar
- Automatizar respuesta a eventos:
- En AWS, investigar eventos de interés e información sobre cambios potencialmente inesperados en un flujo de trabajo automatizado se puede lograr usando Amazon EventBridge
- Amazon GuardDuty también te permite enrutar eventos a un sistema de flujo de trabajo para aquellos que construyen sistemas de respuesta a incidentes (Step Functions), a una cuenta de seguridad central, o a un bucket para análisis adicional.
- Detectar cambios y enrutar esta información al flujo de trabajo correcto también se puede lograr usando AWS Config Rules y Conformance Packs.
- Los Conformance packs son una colección de Config Rules y acciones de remediación que despliegas como una entidad única creada como una plantilla YAML. Una plantilla de conformance pack de muestra está disponible para el Pilar de Seguridad del Well-Architected
2.4. Protección de Infraestructura
La protección de infraestructura asegura que los sistemas y recursos dentro de tus cargas de trabajo estén protegidos contra acceso no intencionado y no autorizado, y otras vulnerabilidades potenciales.
Necesitas estar familiarizado con Regiones, Zonas de Disponibilidad, AWS Local Zones y AWS Outposts.
2.4.1. Protegiendo Redes
Cuando sigues el principio de aplicar seguridad en todas las capas, empleas un enfoque Zero Trust (los componentes de aplicación no confían en ningún otro).
- Crear capas de red: Los componentes que comparten requisitos de alcanzabilidad pueden segmentarse en capas formadas por subredes.
- Controlar el tráfico en todas las capas: Deberías examinar los requisitos de conectividad de cada componente. En una VPC (nivel de región), las subredes están en una Zona de Disponibilidad con ACLs de red y tablas de rutas asociadas, y dentro de las subredes, incluyes el uso de grupos de seguridad (firewall de inspección con estado).
- Algunos servicios AWS requieren que los componentes accedan a internet para hacer llamadas API, donde se encuentran los endpoints de API de AWS.
- Otros servicios AWS usan VPC endpoints dentro de tus Amazon VPCs.
- Muchos servicios AWS, incluyendo Amazon S3 y Amazon DynamoDB, soportan VPC endpoints, y esta tecnología se ha generalizado en AWS PrivateLink. AWS recomienda usar este enfoque para acceder a servicios AWS, servicios de terceros y tus propios servicios alojados en otras VPCs de forma segura porque todo el tráfico de red en AWS PrivateLink permanece en la red troncal global de AWS y nunca atraviesa internet. La conectividad solo puede ser iniciada por el consumidor del servicio, y no por el proveedor del servicio.
- Implementar inspección y protección: Inspeccionar y filtrar tu tráfico en cada capa.
- Puedes inspeccionar tus configuraciones de VPC para posible acceso no intencionado usando VPC Network Access Analyzer.
- Para componentes que transaccionan sobre protocolos basados en HTTP, un firewall de aplicaciones web, AWS WAF, puede ayudar a proteger de ataques comunes. AWS WAF te permite monitorear y bloquear solicitudes HTTP(s) que coincidan con tus reglas configurables que se reenvían a una API de Amazon API Gateway, Amazon CloudFront o un Application Load Balancer.
- Para gestionar AWS WAF, protección de AWS Shield Advanced y grupos de seguridad de Amazon VPC a través de AWS Organizations, puedes usar AWS Firewall Manager.
- Te permite configurar y gestionar centralmente reglas de firewall a través de tus cuentas y aplicaciones, facilitando la aplicación de reglas comunes a escala.
- También te permite responder rápidamente a ataques, usando AWS Shield Advanced, o soluciones que pueden bloquear automáticamente solicitudes no deseadas a tus aplicaciones web.
- Firewall Manager también funciona con AWS Network Firewall, un servicio gestionado que usa un motor de reglas para darte control de grano fino sobre tráfico de red con estado y sin estado.
- Automatizar protección de red: Automatizar mecanismos de protección para proporcionar una red autodefensiva basada en inteligencia de amenazas y detección de anomalías.
- Por ejemplo, las herramientas de detección y prevención de intrusiones pueden adaptarse a amenazas actuales y reducir su impacto.
- Un firewall de aplicaciones web es un ejemplo de dónde puedes automatizar la protección de red, por ejemplo, usando la solución de Automatizaciones de Seguridad de AWS WAF (https://github.com/awslabs/aws-waf-security-automations) para bloquear automáticamente solicitudes que se originan de direcciones IP asociadas con actores de amenazas conocidos.
2.4.2. Protegiendo Cómputo
Los recursos de cómputo incluyen instancias EC2, contenedores, funciones AWS Lambda, servicios de base de datos, dispositivos IoT y más. Cada uno de estos tipos de recursos de cómputo requiere diferentes enfoques para asegurarlos. Sin embargo, comparten estrategias comunes que necesitas considerar:
- Realizar gestión de vulnerabilidades: Escanear y parchear frecuentemente vulnerabilidades en tu código, dependencias y en tu infraestructura para ayudar a proteger contra nuevas amenazas.
- Automatizar la creación de infraestructura con CloudFormation y crear plantillas de infraestructura seguras por defecto verificadas con CloudFormation Guard
- Para gestión de parches, usar AWS System Manager Patch Manager
- Reducir superficie de ataque: Reducir tu exposición a acceso no intencionado endureciendo sistemas operativos y minimizando los componentes, bibliotecas y servicios consumibles externamente en uso.
- Reducir componentes no utilizados
- En EC2 puedes crear tus propias AMIs simplificando el proceso con EC2 Image Builder. Cuando uses contenedores implementa ECR Image Scanning
- Usando herramientas de análisis de código estático de terceros, puedes identificar problemas de seguridad comunes. Puedes usar Amazon CodeGuru para lenguajes soportados. Las herramientas de verificación de dependencias también pueden usarse para determinar si las bibliotecas contra las que tu código se vincula son las últimas versiones, están libres de CVEs y tienen condiciones de licencia que cumplen con los requisitos de tu política de software.
- Usando Amazon Inspector, puedes realizar evaluaciones de configuración contra tus instancias para vulnerabilidades y exposiciones comunes conocidas (CVEs), evaluar contra benchmarks de seguridad y automatizar la notificación de defectos
- Habilitar a las personas a realizar acciones a distancia: Eliminar la capacidad de acceso interactivo reduce el riesgo de error humano y el potencial de configuración o gestión manual.
- Por ejemplo, usar un flujo de trabajo de gestión de cambios para gestionar instancias EC2 usando herramientas como AWS Systems Manager en lugar de permitir acceso directo, o a través de un host bastión.
- Los stacks de AWS CloudFormation construidos desde pipelines pueden automatizar tus tareas de despliegue y gestión de infraestructura sin usar la Consola de Gestión de AWS o APIs directamente.
- Implementar servicios gestionados: Implementar servicios que gestionan recursos, como Amazon RDS, AWS Lambda y Amazon ECS, para reducir tus tareas de mantenimiento de seguridad como parte del modelo de responsabilidad compartida. Esto significa que tienes más tiempo libre para enfocarte en asegurar tu aplicación
- Validar integridad del software: Implementar mecanismos (ej. firma de código) para validar que el software, código y bibliotecas usadas en la carga de trabajo son de fuentes confiables y no han sido manipuladas. Puedes usar AWS Signer
- Automatizar protección de cómputo: Automatizar tus mecanismos de protección de cómputo incluyendo gestión de vulnerabilidades, reducción en superficie de ataque y gestión de recursos. La automatización te ayudará a invertir tiempo en asegurar otros aspectos de tu carga de trabajo, y reducir el riesgo de error humano.
2.5. Protección de datos
Antes de arquitectar cualquier carga de trabajo, las prácticas fundamentales que influyen en la seguridad deben estar en su lugar:
- clasificación de datos proporciona una forma de categorizar datos organizacionales basándose en criticidad y sensibilidad para ayudarte a determinar controles apropiados de protección y retención
- cifrado protege los datos haciéndolos ininteligibles para acceso no autorizado
Estos métodos son importantes porque soportan objetivos como prevenir mal manejo o cumplir con obligaciones regulatorias.
2.5.1. Clasificación de Datos
- Identificar los datos dentro de tu carga de trabajo: Necesitas entender el tipo y clasificación de datos que tu carga de trabajo está procesando, los procesos de negocio asociados, el propietario de los datos, requisitos legales y de cumplimiento aplicables, dónde se almacena y los controles resultantes que necesitan aplicarse.
- Definir controles de protección de datos: Usando etiquetas de recursos, cuentas AWS separadas por sensibilidad, políticas IAM, SCPs de Organizations, AWS KMS y AWS CloudHSM, puedes definir e implementar tus políticas para clasificación de datos y protección con cifrado.
- Definir gestión del ciclo de vida de datos: Tu estrategia de ciclo de vida definida debe basarse en el nivel de sensibilidad así como requisitos legales y organizacionales. Los aspectos incluyendo la duración por la cual retienes datos, procesos de destrucción de datos, gestión de acceso a datos, transformación de datos y compartición de datos deben considerarse.
- Automatizar identificación y clasificación: Automatizar la identificación y clasificación de datos puede ayudarte a implementar los controles correctos. Usar automatización para esto en lugar de acceso directo de una persona reduce el riesgo de error humano y exposición. Deberías evaluar usar una herramienta, como Amazon Macie, que usa aprendizaje automático para descubrir, clasificar y proteger automáticamente datos sensibles en AWS.
2.5.2. Protegiendo datos en reposo
Los datos en reposo representan cualquier dato que persistes en almacenamiento no volátil por cualquier duración en tu carga de trabajo. Esto incluye almacenamiento en bloques, almacenamiento de objetos, bases de datos, archivos, dispositivos IoT y cualquier otro medio de almacenamiento en el que se persisten datos. Proteger tus datos en reposo reduce el riesgo de acceso no autorizado cuando se implementan cifrado y controles de acceso apropiados.
El cifrado y la tokenización son dos esquemas importantes pero distintos de protección de datos.
- Tokenización es un proceso que te permite definir un token para representar una pieza de información que de otro modo sería sensible.
- Cifrado es una forma de transformar contenido de manera que lo hace ilegible sin una clave secreta necesaria para descifrar el contenido de vuelta a texto plano.
Mejores prácticas:
- Implementar gestión segura de claves: Al definir un enfoque de cifrado que incluye el almacenamiento, rotación y control de acceso de claves, puedes ayudar a proteger tu contenido contra usuarios no autorizados y exposición innecesaria a usuarios autorizados.
- AWS KMS te ayuda a gestionar claves de cifrado y se integra con muchos servicios AWS. Este servicio proporciona almacenamiento duradero, seguro y redundante para tus claves AWS KMS.
- AWS CloudHSM es un módulo de seguridad de hardware (HSM) basado en la nube que te permite generar y usar fácilmente tus propias claves de cifrado en la nube de AWS.
- Aplicar cifrado en reposo: Debes asegurar que la única forma de almacenar datos sea usando cifrado. Puedes usar AWS Managed Config Rules para verificar automáticamente que estás usando cifrado, por ejemplo, para volúmenes EBS, instancias RDS y buckets S3.
- Aplicar control de acceso: Diferentes controles incluyendo acceso (usando mínimo privilegio), respaldos (ver whitepaper de Confiabilidad), aislamiento y versionado pueden ayudar a proteger tus datos en reposo.
- El acceso a tus datos debe auditarse usando mecanismos detectivos como CloudTrail y logs a nivel de servicio
- Deberías inventariar qué datos son accesibles públicamente, y planificar cómo puedes reducir la cantidad de datos disponibles con el tiempo. Amazon S3 Glacier Vault Lock y S3 Object Lock son capacidades que proporcionan control de acceso obligatorio. Una vez que una política de vault se bloquea con la opción de cumplimiento, ni siquiera el usuario root puede cambiarla hasta que expire el bloqueo
- Auditar el uso de claves de cifrado: Asegurar que entiendes y auditas el uso de claves de cifrado para validar que los mecanismos de control de acceso en las claves están implementados apropiadamente. Por ejemplo, cualquier servicio AWS que use una clave AWS KMS registra cada uso en AWS CloudTrail. Luego puedes consultar AWS CloudTrail, usando una herramienta como Amazon CloudWatch Insights, para asegurar que todos los usos de tus claves son válidos.
- Usar mecanismos para mantener a las personas alejadas de los datos: Mantener a todos los usuarios alejados del acceso directo a datos sensibles y sistemas bajo circunstancias operacionales normales.
- Por ejemplo, usar un flujo de trabajo de gestión de cambios para gestionar instancias EC2 usando herramientas en lugar de permitir acceso directo o un host bastión. Esto se puede lograr usando AWS Systems Manager Automation, que usa documentos de automatización que contienen pasos que usas para realizar tareas. Estos documentos pueden almacenarse en control de fuente, revisarse por pares antes de ejecutarse y probarse exhaustivamente para minimizar el riesgo comparado con el acceso shell.
- Los usuarios de negocio podrían tener un dashboard en lugar de acceso directo a un almacén de datos para ejecutar consultas.
- Donde no se usan pipelines CI/CD, determinar qué controles y procesos se requieren para proporcionar adecuadamente un mecanismo de acceso break-glass normalmente deshabilitado.
- Automatizar protección de datos en reposo: Usar herramientas automatizadas para validar y aplicar controles de datos en reposo continuamente, por ejemplo, verificar que solo hay recursos de almacenamiento cifrados.
- Puedes automatizar la validación de que todos los volúmenes EBS están cifrados usando AWS Config Rules.
- AWS Security Hub también puede verificar varios controles diferentes a través de verificaciones automatizadas contra estándares de seguridad. Además, tus AWS Config Rules pueden remediar automáticamente recursos no conformes.
2.5.3. Protegiendo datos en tránsito
Los datos en tránsito son cualquier dato que se envía de un sistema a otro. Esto incluye comunicación entre recursos dentro de tu carga de trabajo así como comunicación entre otros servicios y tus usuarios finales. Al proporcionar el nivel apropiado de protección para tus datos en tránsito, proteges la confidencialidad e integridad de los datos de tu carga de trabajo.
Mejores prácticas:
- Implementar gestión segura de claves y certificados: Almacenar claves de cifrado y certificados de forma segura y rotarlos en intervalos de tiempo apropiados con control de acceso estricto. La mejor manera de lograr esto es usar un servicio gestionado, como AWS Certificate Manager (ACM). Te permite aprovisionar, gestionar y desplegar fácilmente certificados Transport Layer Security (TLS) públicos y privados para usar con servicios AWS y tus recursos conectados internos.
- Aplicar cifrado en tránsito: Los servicios AWS proporcionan endpoints HTTPS usando TLS para comunicación, proporcionando así cifrado en tránsito al comunicarse con las APIs de AWS.
- Los protocolos inseguros, como HTTP, pueden ser auditados y bloqueados en una VPC mediante el uso de grupos de seguridad.
- Las solicitudes HTTP también pueden redirigirse automáticamente a HTTPS en Amazon CloudFront o en un Application Load Balancer.
- Además, puedes usar conectividad VPN en tu VPC desde una red externa para facilitar el cifrado del tráfico. Soluciones de terceros están disponibles en AWS Marketplace si tienes requisitos especiales.
- Autenticar comunicaciones de red: Usar protocolos de red (TLS/IPsec) que soportan autenticación permite que se establezca confianza entre las partes agregando cifrado para reducir el riesgo de que las comunicaciones sean alteradas o interceptadas.
- Automatizar detección de acceso no intencionado a datos: Usar herramientas como
- Amazon GuardDuty detecta automáticamente actividad sospechosa o intentos de mover datos fuera de límites definidos.
- Amazon VPC Flow Logs para capturar información de tráfico de red puede usarse con Amazon EventBridge para activar la detección de conexiones anormales–tanto exitosas como denegadas.
- S3 Access Analyzer puede ayudar a evaluar qué datos son accesibles para quién en tus buckets S3.
- Asegurar datos entre VPC o ubicaciones on-premises: Puedes usar AWS PrivateLink para crear una conexión de red segura y privada entre Amazon Virtual Private Cloud (Amazon VPC) o conectividad on-premises a servicios alojados en AWS.
- Puedes acceder a servicios AWS, servicios de terceros y servicios en otras cuentas AWS como si estuvieran en tu red privada.
- Con AWS PrivateLink, puedes acceder a servicios a través de cuentas con CIDRs IP superpuestos sin necesitar un Internet Gateway o NAT.
- El tráfico permanece en la red troncal de Amazon y no atraviesa internet, por lo tanto tus datos están protegidos.
2.6. Respuesta a Incidentes
La respuesta a incidentes ayuda a los clientes a definir y ejecutar una respuesta a incidentes de seguridad.
2.6.1. Objetivos de Diseño de Respuesta en la Nube
- Establecer objetivos de respuesta: Algunos objetivos comunes incluyen contener y mitigar el problema, recuperar los recursos afectados y preservar datos para forenses y atribución.
- Documentar planes: Crear planes para ayudarte a responder, comunicar durante y recuperarte de un incidente.
- Responder usando la nube
- Saber qué tienes y qué necesitas: Preservar logs, snapshots y otras evidencias copiándolos a una cuenta de seguridad en la nube centralizada.
- Usar mecanismos de redespliegue: cuando sea posible, y hacer que tus mecanismos de respuesta sean seguros de ejecutar más de una vez y en entornos en un estado desconocido.
- Automatizar donde sea posible: A medida que veas problemas o incidentes repetirse y construir mecanismos que clasifiquen y respondan programáticamente a situaciones comunes. Usar respuestas humanas para incidentes únicos, nuevos y sensibles.
- Elegir soluciones escalables: reducir el tiempo entre detección y respuesta.
- Aprender y mejorar tu proceso: Cuando identifiques brechas en tu proceso, herramientas o personas, e implementar planes para corregirlas. Las simulaciones son métodos seguros para encontrar brechas y mejorar procesos.
En AWS, hay varios enfoques diferentes que puedes usar al abordar la respuesta a incidentes.
- Educar a tu personal de operaciones de seguridad y respuesta a incidentes sobre tecnologías en la nube y cómo tu organización pretende usarlas.
- Habilidades de desarrollo: programación, control de fuente, control de versiones, procesos CI/CD
- Servicios AWS: servicios de seguridad
- Conciencia de aplicaciones
- La mejor manera de aprender es práctica, ejecutando game days de respuesta a incidentes
- Preparar a tu equipo de respuesta a incidentes
- para detectar y responder a incidentes en la nube,
- habilitar capacidades detectivas,
- y asegurar acceso apropiado a las herramientas y servicios en la nube necesarios.
- Además, preparar los runbooks necesarios, tanto manuales como automatizados, para asegurar respuestas confiables y consistentes.
- Trabajar con otros equipos para establecer operaciones base esperadas, y usar ese conocimiento para identificar desviaciones de esas operaciones normales.
- Simular eventos de seguridad esperados e inesperados dentro de tu entorno en la nube para entender la efectividad de tu preparación.
- Iterar sobre el resultado de tu simulación para mejorar la escala de tu postura de respuesta, reducir el tiempo al valor y reducir aún más el riesgo.
3. Lista de verificación de seguridad de AWS
Este es un whitepaper de AWS que proporciona recomendaciones para clientes que se alinean con el Pilar de Seguridad del Well-Architected Framework. Está disponible aquí
3.1. Gestión de Identidad y Acceso
- Asegurar tu cuenta AWS
- Usar AWS Organizations
- Usar el usuario root con MFA
- Configurar contactos de cuenta
- Confiar en proveedor de identidad centralizado
- Centralizar identidades usando AWS Single Sign-On o un proveedor de terceros para evitar crear rutinariamente usuarios IAM o usar claves de acceso a largo plazo. Este enfoque facilita la gestión de múltiples cuentas AWS y aplicaciones federadas
- Usar múltiples cuentas AWS
- Uso de Service Control Policies para implementar barreras
- AWS Control Tower puede ayudarte a configurar y gobernar fácilmente un entorno AWS multi-cuenta
- Almacenar y usar secretos de forma segura
- Usar AWS Secrets Manager si no puedes usar credenciales temporales
3.2. Detección
- Habilitar servicios fundamentales para todas las cuentas AWS
- AWS CloudTrail para registrar actividad API
- Amazon GuardDuty para monitoreo continuo
- AWS Security Hub para una vista completa de tu postura de seguridad
- Configurar logging a nivel de servicio y aplicación
- Además de tus logs de aplicación, habilitar logging a nivel de servicio, como VPC Flow Logs de Amazon y Amazon S3, CloudTrail y logging de acceso de Elastic Load Balancer, para obtener visibilidad de eventos
- Configurar logs para fluir a una cuenta central y protegerlos de manipulación o eliminación
- Configurar monitoreo y alertas, e investigar eventos
- Habilitar AWS Config para rastrear el historial de recursos
- Habilitar Config Managed Rules para alertar o remediar automáticamente cambios no deseados
- Configurar alertas para todas tus fuentes de logs y eventos, desde AWS CloudTrail hasta Amazon GuardDuty y tus logs de aplicación, para eventos de alta prioridad e investigar
3.3. Protección de Infraestructura
- Parchear tu sistema operativo, aplicaciones y código
- Usar AWS Systems Manager Patch Manager para automatizar el proceso de parcheo de todos los sistemas y código de los que eres responsable, incluyendo tu SO, aplicaciones y dependencias de código
- Implementar protección contra ataques de denegación de servicio distribuido (DDoS) para tus recursos de cara a internet
- Usar Amazon Cloudfront, AWS WAF y AWS Shield para proporcionar protección DDoS de capa 7 y capa 3/capa 4
- Controlar acceso usando grupos de seguridad VPC y capas de subred
- Usar grupos de seguridad para controlar tráfico entrante y saliente, y aplicar automáticamente reglas tanto para grupos de seguridad como WAFs usando AWS Firewall Manager
- Agrupar diferentes recursos en diferentes subredes para crear capas de enrutamiento, por ejemplo, los recursos de base de datos no necesitan una ruta a internet
3.4. Protección de datos
- Proteger datos en reposo
- Usar AWS Key Management Service (KMS) para proteger datos en reposo a través de una amplia gama de servicios AWS y tus aplicaciones
- Habilitar cifrado predeterminado para volúmenes Amazon EBS y buckets Amazon S3
- Cifrar datos en tránsito
- Habilitar cifrado para todo el tráfico de red, incluyendo Transport Layer Security (TLS) para infraestructura de red basada en web que controlas usando AWS Certificate Manager para gestionar y aprovisionar certificados
- Usar mecanismos para mantener a las personas alejadas de los datos
- Mantener a todos los usuarios alejados del acceso directo a datos sensibles y sistemas. Por ejemplo, proporcionar un dashboard de Amazon QuickSight a usuarios de negocio en lugar de acceso directo a una base de datos, y realizar acciones a distancia usando documentos de automatización de AWS Systems Manager y Run Command
3.5. Respuesta a incidentes
- Asegurar que tienes un plan de respuesta a incidentes (IR)
- Comenzar tu plan IR construyendo runbooks para responder a eventos inesperados en tu carga de trabajo
- Asegurar que alguien sea notificado para tomar acción sobre hallazgos críticos
- Comenzar con hallazgos de GuardDuty. Activar GuardDuty y asegurar que alguien con capacidad de tomar acción reciba las notificaciones. Crear automáticamente tickets de problemas es la mejor manera de asegurar que los hallazgos de GuardDuty estén integrados con tus procesos operacionales
- Practicar respuesta a eventos
- Simular y practicar respuesta a incidentes ejecutando game days regulares, incorporando las lecciones aprendidas en tus planes de gestión de incidentes y mejorándolos continuamente

