SEC06-BP01 Administración de las vulnerabilidades - Marco de AWS Well-Architected

SEC06-BP01 Administración de las vulnerabilidades

Analice con frecuencia su código, sus dependencias y su infraestructura en busca de vulnerabilidades, y aplique parches para solucionarlas, para ayudarle a protegerse contra las nuevas amenazas.

Resultado deseado: tiene una solución que analiza continuamente su carga de trabajo en busca de vulnerabilidades de software, posibles defectos y exposición no intencionada a la red. Ha establecido procesos y procedimientos para identificar, priorizar y corregir estas vulnerabilidades en función de los criterios de evaluación de riesgos. Además, ha implementado la administración automática de parches para sus instancias de computación. Su programa de gestión de vulnerabilidades está integrado en su ciclo de vida de desarrollo de software, con soluciones para escanear el código fuente durante la canalización de CI/CD.

Patrones comunes de uso no recomendados:

  • No disponer de un programa de administración de vulnerabilidades.

  • Aplicar parches en el sistema sin tener en cuenta la gravedad o la forma de evitar riesgos.

  • Utilizar software que haya superado la fecha de fin de vida útil (EOL) de su proveedor.

  • Implementar código en producción antes de analizarlo en busca de problemas de seguridad.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto

Guía para la implementación

La gestión de vulnerabilidades es un aspecto clave para mantener un entorno de nube seguro y sólido. Conlleva un proceso integral que incluye escaneos de seguridad, identificación y priorización de problemas y operaciones de parches para resolver las vulnerabilidades identificadas. La automatización desempeña un papel fundamental en este proceso, ya que facilita el análisis continuo de las cargas de trabajo para detectar posibles problemas y una exposición no intencionada a la red, así como las iniciativas de corrección.

El modelo de responsabilidad compartida de AWS es un concepto fundamental que sustenta la gestión de vulnerabilidades. Según este modelo, AWS es responsable de proteger la infraestructura subyacente, incluido el equipo, el software, las redes y las instalaciones que ejecutan los servicios de AWS. Por el contrario, es su responsabilidad proteger sus datos, las configuraciones de seguridad y las tareas de administración asociadas a servicios como las instancias de Amazon EC2 y los objetos de Amazon S3.

AWS ofrece numerosos servicios para apoyar los programas de administración de vulnerabilidades. Amazon Inspector analiza continuamente las cargas de trabajo de AWS para detectar vulnerabilidades de software y accesos no deseados a la red, mientras que AWSSystems Manager Patch Manager ayuda a administrar los parches en todas las instancias de Amazon EC2. Estos servicios se pueden integrar con AWS Security Hub, un servicio de administración de la postura de seguridad en la nube que automatiza los controles de seguridad de AWS, centraliza las alertas de seguridad y proporciona una visión completa de la postura de seguridad de una organización. Además, Amazon CodeGuru Security utiliza el análisis estático del código para identificar posibles problemas en las aplicaciones Java y Python durante la fase de desarrollo.

Al incorporar prácticas de gestión de vulnerabilidades en el ciclo de vida del desarrollo del software, puede abordar las vulnerabilidades de forma proactiva antes de que se introduzcan en los entornos de producción, lo que reduce el riesgo de eventos de seguridad y minimiza el posible impacto de las vulnerabilidades.

Pasos para la implementación

  1. Comprenda el modelo de responsabilidad compartida: revise el modelo de responsabilidad compartida de AWS para comprender sus responsabilidades a la hora de proteger sus cargas de trabajo y los datos en la nube. AWS es responsable de proteger la infraestructura en la nube subyacente, mientras que es su responsabilidad proteger las aplicaciones, los datos y los servicios que utiliza.

  2. Implemente el análisis de vulnerabilidades: configure un servicio de análisis de vulnerabilidades, como Amazon Inspector, para que analice automáticamente sus instancias de computación (por ejemplo, máquinas virtuales, contenedores o funciones sin servidor) en busca de vulnerabilidades de software, posibles defectos y exposición no intencionada a la red.

  3. Establezca procesos de gestión de vulnerabilidades: defina procesos y procedimientos para identificar, priorizar y corregir las vulnerabilidades. Aquí se puede incluir la configuración de programas periódicos de escaneo de vulnerabilidades, el establecimiento de criterios de evaluación de riesgos y la definición de plazos de corrección en función de la gravedad de la vulnerabilidad.

  4. Configure la administración de parches: utilice un servicio de administración de parches para automatizar el proceso de aplicación de parches a sus instancias de computación, tanto para los sistemas operativos como para las aplicaciones. Puede configurar el servicio para que analice las instancias en busca de parches ausentes e instalarlos automáticamente de manera planificada. Si lo considera oportuno, puede usar AWS Systems Manager Patch Manager para proporcionar esta funcionalidad.

  5. Configure la protección contra el malware: implemente mecanismos para detectar software malicioso en su entorno. Por ejemplo, puede usar herramientas como Amazon GuardDuty para analizar, detectar y alertar sobre el malware en los volúmenes de EC2 y EBS. GuardDuty también puede escanear los objetos recién cargados en Amazon S3 para detectar posibles virus o malware y tomar medidas para aislarlos antes de que se incorporen a los procesos posteriores.

  6. Integre el análisis de vulnerabilidades en las canalizaciones de CI/CD: si utiliza una canalización de CI/CD para la implementación de sus aplicaciones, integre herramientas de análisis de vulnerabilidades en su canalización. Herramientas como Amazon CodeGuru Security y las opciones de código abierto pueden analizar el código fuente, las dependencias y los artefactos en busca de posibles problemas de seguridad.

  7. Configure un servicio de monitoreo de seguridad: configure un servicio de monitoreo de seguridad, por ejemplo, AWS Security Hub, para obtener una perspectiva global del estado de su seguridad en varios servicios en la nube. El servicio debe recopilar los resultados de seguridad de diversas fuentes y presentarlos en un formato estandarizado para facilitar la priorización y la corrección.

  8. Implemente pruebas de penetración de aplicaciones web: si su aplicación es una aplicación web y su organización tiene personal capacitado o puede contratar asistencia externa, podría implementar pruebas de penetración de aplicaciones web para identificar posibles vulnerabilidades en su aplicación.

  9. Automatice con la infraestructura como código: utilice herramientas de infraestructura como código (IaC), por ejemplo AWS CloudFormation, para automatizar la implementación y la configuración de sus recursos, incluidos los servicios de seguridad mencionados anteriormente. Esta práctica ayuda a crear una arquitectura de recursos más coherente y estandarizada en múltiples cuentas y entornos.

  10. Supervise y mejore continuamente: supervise continuamente la eficacia de su programa de gestión de vulnerabilidades y realice las mejoras necesarias. Revise los resultados de seguridad, evalúe la eficacia de sus esfuerzos de corrección y ajuste sus procesos y herramientas en consecuencia.

Recursos

Documentos relacionados:

Videos relacionados: