Gestiona las vulnerabilidades en tus aplicaciones

NOTA: Aún no se completó la actualización de la versión en español a v2, sugerimos usar la versión en Inglés por ahora.

Se recomienda utilizar herramientas de escaneo de vulnerabilidades en aplicaciones (Dinámico - DAST), de Código (estático, SAST) y realizar penetration testing sobre las aplicaciones críticas de la compañía e idealmente sobre todas.

Existen numerosas soluciones de nuestros partners en el AWS Marketplace (Como Checkmarx y Veracode) y Open Source (como Nikto o Vega, o Burp Suite community) para la revisión de vulnerabilidades en aplicaciones.

Para simplificar esta tarea, puede aprovechar la herramienta Automated Security Helper (ASH, una solución de código abierto disponible en AWS Samples). Detecta access keys, vulnerabilidades, y malas prácticas de desarrollo seguro:

  • Actualmente soporta los siguientes frameworks: Git, Python, Javascript, Cloudformation, Terraform y Jupyter Notebooks.
  • Identificará el framework, y usarña la herramienta que corresponda para revisar el código en un contenedor Docker aislado.
  • Aprovecha múltiples herramientas de código abierto (como git-secrets, bandit, nbconvert, npm-audit, checkov, cfn_nag, cdk-nag)

Si bien es una buena práctica desplegar un Web Application Firewall (como AWS WAF) para bloquear ataques hacia las aplicaciones, esto lo implica que no es necesaria la revisión de vulnerabilidades en aplicaciones. Siguiendo el principio de defensa en profundidad (defense in depth), ambos controles deben realizarse para reducir el riesgo de explotación de una vulnerabilidad

En fases posteriores se encuentran otras recomendaciones relacionadas a esta:

Dónde escanear

Las vulnerabilidades de las aplicaciones son más fáciles (y más rentables) de remediar cuando los desarrolladores están escribiendo el código, pero siguiendo los criterios de Defensa en Profundidad, también es importante escanear en el pipeline, para garantizar que el código que no se desarrolló utilizando soluciones complementarias que verifican vulnerabilidades en código, se pueda insertar en el pipeline y presentar riesgos. Finalmente, es recomendable escanear las aplicaciones implementadas, ya que es posible que se hayan implementado aplicaciones antes de que agregáramos el escaneo en el pipeline o que se descubran nuevas vulnerabilidades después del escaneo (como una dependencia con una vulnerabilidad descubierta recientemente).

  1. En la interfaz de desarrollo: Amazon Q para desarrolladores (anteriormente Codewhisperer) detecta vulnerabilidades mientras el desarrollador escribe el código y brinda recomendaciones para corregirlas.
  2. En el pipeline: Amazon CodeGuru Security (En inglés) puede realizar escaneos de código (SAST).
  3. En el repositorio de imágenes: Amazon Inspector puede escanear imágenes en Amazon Elastic Container Registry.
  4. Una vez implementado:: Amazon Inspector puede escanear el código de la función AWS Lambda.

Mitigación de riesgos

  • Muchas aplicaciones web requieren estar expuestas para brindar servicios, por lo tanto, los adversarios pueden acceder a las vulnerabilidades de las aplicaciones.
  • La mayoría de los equipos de desarrollo no son expertos en seguridad o no tienen tiempo para priorizar las prácticas de código seguro.

Guía para evaluar su grado de alineación

  • ¿Está escaneando su aplicación en busca de vulnerabilidades de seguridad? ¿Cómo?
    • Realiza pruebas de seguridad de aplicaciones dinámicas (DAST): ¿En la aplicación en vivo?
    • Realiza pruebas de seguridad de aplicaciones estáticas (SAST): ¿Escaneo de código?
  • ¿Cuál es la cobertura de los escaneos? ¿Está cubriendo solo las aplicaciones críticas? ¿La mayoría? ¿Todas las aplicaciones?
  • ¿Está escaneando en busca de secretos/credenciales en el código? (es decir: si un desarrollador coloca una clave de acceso en el código, ¿la detecta?)
  • ¿Está deteniendo el paso a producción si se encuentran vulnerabilidades críticas?

Precios

Amazon Inspector: https://aws.amazon.com/inspector/pricing

Amazon Codeguru: https://aws.amazon.com/codeguru/pricing

Amazon Q Developer: https://aws.amazon.com/codewhisperer/pricing