Gestión de vulnerabilidades

Desarrollar prácticas de vulnerabilidad eficaces.

Visión general

Este documento técnico cubre diferentes prácticas de administración de vulnerabilidades, como los escaneos de vulnerabilidades, las pruebas de penetración y los escaneos de vulnerabilidades de código. Este documento también analizará los procesos para restaurar la disponibilidad y el acceso después de una interrupción del servicio debido a un incidente.

Requisitos de la política de protección de datos (DPP)

As part of Amazon’s Data Protection Policy (DPP) (DPP), developers have to implement vulnerability scans at minimum semi-annually, penetration tests yearly, code vulnerability scans prior to release of new code, features, or products, and to ensure they can restore availability and access to Personal Identifiable Information (PII) within hours. This is to avoid exposure of sensitive data, including PII. Every SP-API developer needs to ensure that vulnerable points such as public-facing websites, interfaces, servers, and new features have the expected level of security and protection even before release.

Gestión de vulnerabilidades

Los desarrolladores deben crear y mantener un plan o manual para detectar y corregir las vulnerabilidades. Los desarrolladores deben proteger el hardware físico que contenga la PII de las vulnerabilidades técnicas realizando análisis de vulnerabilidades y corrigiéndolas de manera adecuada. Los desarrolladores deben analizar las vulnerabilidades al menos cada 180 días, realizar pruebas de penetración al menos cada 365 días y escanear el código en busca de vulnerabilidades antes de cada versión. Además, los desarrolladores deben controlar los cambios en el hardware de almacenamiento realizando pruebas, verificando los cambios, aprobándolos y restringiendo el acceso a quién puede realizar esas acciones. Los desarrolladores deben contar con los procedimientos y planes adecuados para restablecer la disponibilidad y el acceso a la PII de manera oportuna en caso de que se produzca un incidente físico o técnico.

Escaneos de vulnerabilidad

Un análisis de vulnerabilidades es el proceso de identificar, descubrir, analizar e informar sobre el acceso al host, las debilidades y las brechas de red para las instancias o el software que ejecuta la aplicación.

En términos de seguridad, es esencial verificar que los dispositivos/instancias orientados al público estén protegidos contra los malos actores. En un escenario ideal, los análisis se pueden ejecutar con herramientas de análisis de vulnerabilidades para identificar y clasificar los factores de riesgo y los posibles vectores de ataque dentro de la red (incluidos los activos de software y hardware).

Here are the top ten vulnerabilities according to the Open Web Application Security Project (OWASP) for 2021 and associated Common Weakness Enumerations (CWE):

CWEPunto de vulnerabilidadBreve descripción
A01Control de acceso rotoEl usuario realiza una acción a la que se supone que no puede acceder.
A02Fallos criptográficosFalta de prácticas criptográficas o prácticas criptográficas débiles.
A03InyecciónLos piratas informáticos pueden insertar datos y manipularlos dentro de una red.
A04Diseño inseguroFalta de planificación durante la etapa de diseño de la red.
A05Microconfiguraciones de seguridadLa configuración de seguridad de las bases de datos, bibliotecas o servidores no está configurada, lo que podría provocar una vulnerabilidad.
A06Componentes vulnerables y anticuadosVersiones heredadas o no compatibles del software o de un sistema operativo.
A07Fallos de identificación y autenticaciónFalta de controles de acceso de usuarios y administración de credenciales.
A08Fallos de integridad de software y datosSin protección contra las violaciones de la integridad.
A09Fallo de registro y supervisión segurosSin servicio de monitoreo, lo que dificulta la identificación de infracciones y ataques salientes.
A10Falsificación de solicitudes del lado del servidor (SSFR)URL no verificada proporcionada por un usuario que obliga a una aplicación a enviar solicitudes que eluden la seguridad de la red.

Refer to OWASP – Vulnerability Scanning Tools for a list of free and paid scanning tools.

Una vez finalizados los escaneos, los desarrolladores deben priorizar las vulnerabilidades de acuerdo con el nivel de impacto en la seguridad y trabajar para solucionarlas en consecuencia.

  • Escaneos de vulnerabilidades externas: Los escaneos externos tienen por objeto comprobar las vulnerabilidades en puntos externos o públicos, como puertos, sitios web, redes y aplicaciones.

  • Escaneos de vulnerabilidades internas: Los escaneos internos permiten ver las posibles brechas de seguridad dentro de una red privada.

  • Escaneos intrusivos y no intrusivos: Los análisis no intrusivos analizarán un objetivo específico, como el tráfico de red o la versión de una base de datos, pero no afectan a los niveles de servicio, ya que solo comprueban la información sin aprovechar la vulnerabilidad. El objetivo de un análisis intrusivo es aprovechar la vulnerabilidad en su nivel más alto y ofrecer más información sobre las vulnerabilidades encontradas, pero también interrumpe los niveles de servicio, por lo que debe utilizarse en un entorno controlado.

Amazon Inspector

Amazon Inspector is a scalable vulnerability management tool which scans workloads and unintended network exposures to verify that there are no vulnerabilities in operating systems running EC2 instances.

Amazon Inspector proporciona informes de detección de vulnerabilidades prácticamente en tiempo real utilizando factores de vulnerabilidad y exposición comunes (CVE) actualizados y comprobando diferentes lenguajes de codificación, como Java, Python y Node.js. Los desarrolladores que utilizan Amazon Inspector pueden usarlo para validar la conformidad de programas como los certificados PCI, ISO y CSA STAR.

The Amazon Inspector architecture.

Amazon Guard

Amazon’s Security team developed Amazon’s SP-API-Guard as an application that runs in AWS instances to check and asses security compliance with Amazon’s DPP. SP-API Guard also provides a recommendation report of any security gap it finds within a day to an S3 bucket. This reduces the effort for manual Data Security Assessments and remediation plan times while providing recommended solutions for vulnerabilities found.

The Amazon Guard architecture.

Pruebas de intrusión

Las pruebas de penetración (pruebas abiertas) son una forma de comprobar en un entorno simulado/controlado cualquier vulnerabilidad en diferentes puntos de aplicaciones o redes. Esto se hace para confirmar qué vulnerabilidades pueden ser explotadas por agentes malintencionados.

La prueba con bolígrafo consta de las siguientes etapas:

  • Etapa de planificación: El equipo establece los objetivos y el alcance de las pruebas con bolígrafo de los evaluadores. Todas las partes deben estar al tanto de las próximas pruebas.

  • Etapa de escaneo/descubrimiento: Los Pen Testers inician el proceso de reconocimiento de la red e inspección del código.

  • Etapa de penetración: El pen tester intenta acceder a la red o a las instancias mediante diferentes tipos de ataques, como la inyección de SQL, las secuencias de comandos entre sitios y las puertas traseras, para aprovechar las vulnerabilidades.

  • Etapa de análisis/informe: El pen tester crea un informe con información detallada sobre las medidas adoptadas para penetrar la seguridad de la red y las vulnerabilidades encontradas. El pen tester debe incluir una sección sobre las acciones recomendadas en el informe.

  • Etapa de remediación/limpieza: El equipo responsable toma la iniciativa y comienza a trabajar para corregir las vulnerabilidades detectadas una vez finalizadas las pruebas preliminares.

Como medida de seguridad adicional para garantizar que las vulnerabilidades se corrijan o parcheen, los desarrolladores realizan una segunda prueba después de la etapa de corrección para asegurarse de que no haya ningún elemento que se haya dejado atrás o desatendido.

OWASP also offers a penetration test guide (OWASP ZAP) for developers who want to know more on how to apply pen tests at an application level and for their network components such as firewalls and ports.

Escaneos de vulnerabilidades de código

Los escaneos de vulnerabilidades de código tienen por objeto reducir los riesgos cuando se lanza una nueva función o producto. Los desarrolladores pueden asegurarse de que no se produzcan errores, problemas técnicos o brechas de seguridad al implementar el código mediante el uso de las siguientes herramientas de escaneo de código:

  • Prueba de seguridad de aplicaciones estáticas (SAST): Revisión del código sin tener que ejecutarlo. SAST comprueba cómo está escrito el código para señalar cualquier problema de seguridad que contenga.

  • Prueba dinámica de seguridad de aplicaciones (DAST): A diferencia de SAST, DAST comprueba el código de una aplicación en ejecución simulando ataques con inyecciones de cargas maliciosas. DAST ayuda a los desarrolladores a identificar las vulnerabilidades de una aplicación en ejecución.

  • Prueba de aplicación interactiva (IAST): IAST comprueba las funcionalidades de las aplicaciones en todos los entornos de prueba. Esto facilita la implementación y la escalabilidad, ya que ayuda a reducir el posible tiempo de inactividad o las interrupciones del servicio al abordar las vulnerabilidades antes de su lanzamiento.

Estas herramientas deben seguir los estándares establecidos por OWASP para comprobar la seguridad de la aplicación frente a los diez principales riesgos de seguridad. Los desarrolladores deben proceder a escanear el código para identificar, clasificar y priorizar cualquier fallo de seguridad que afecte o interrumpa el servicio una vez lanzado el producto.

Plan de recuperación ante desastres

To ensure that application users are not affected by incidents (technical or physical) developers must have a plan that covers actions on how to restore availability and access to PII data in a short time, taking in consideration Recovery Time Objective (RTO) and Recovery Point Objective (RPO). AWS offers guidance in Establishing RTO and RPO Targets for Cloud Applications.

  • A: El tiempo que tardan los desarrolladores en restablecer los niveles de servicio normales para los usuarios de las aplicaciones. Esto se puede lograr mediante la existencia de redundancia en las instancias o servicios de red que son fundamentales para la funcionalidad de la aplicación.

  • PRO: El momento en el que los desarrolladores pueden restaurar los datos; en otras palabras, la cantidad de datos que se puede perder después de un incidente. Un aspecto fundamental de este objetivo es tener una o más copias de seguridad de los datos en diferentes ubicaciones y, si es posible, realizarlas dos veces por semana.

Developers are expected to use recovery strategies and test them to meet objectives (RTO and RPO). AWS Resilience Hub is an AWS service that helps to establish RTO and RPO targets, and it analyzes applications against those targets.

Conclusión

La gestión de vulnerabilidades es un estándar de seguridad esencial. Los análisis de vulnerabilidades y las pruebas de penetración ayudan a identificar y reducir los posibles riesgos en un entorno de red y en las instancias de aplicación. Los desarrolladores deben realizar análisis de vulnerabilidades y realizar pruebas preliminares al menos una vez al año, de acuerdo con los requisitos del DPP. La práctica de realizar estas evaluaciones ayuda a los desarrolladores a aumentar su grado de madurez en materia de seguridad y a cumplir con los estándares a los que se enfrentan, como las mejores prácticas normativas o del sector.

Los desarrolladores deben escanear el código antes del lanzamiento de las funciones o los productos. Las pruebas deben realizarse en un entorno aislado y controlado para garantizar que no haya brechas de seguridad en las nuevas versiones ni que ningún dato quede expuesto.

Tener copias de seguridad, instantáneas o imágenes ayuda a reducir el impacto de la pérdida de datos de PII debido a un incidente. Garantizar la resiliencia de los servicios de sus aplicaciones reduce el tiempo necesario para restaurar el acceso y la disponibilidad de los datos de PII.


¿Te ha ayudado esta página?