3.- Análisis de Composición de Software (ACS) con la Herramienta OWASP ACS
Identificación de Vulnerabilidades en Componentes de Terceros y de Código Abierto
¿Qué es el Análisis de Composición de Software (ACS)?
Las aplicaciones modernas pueden desarrollarse utilizando componentes de terceros y de código abierto. Estos componentes son programados por otras personas.
¿Cómo sabemos si estos componentes son seguros? ¿Cómo podemos verificar su seguridad? Esto se puede hacer aprendiendo a utilizar herramientas de análisis de composición de software para inspeccionar los componentes utilizados en nuestras aplicaciones.
Estas herramientas nos permiten asegurar que nuestro código esté protegido contra vulnerabilidades conocidas de los componentes.
El Análisis de Composición de Software (ACS) es el proceso de identificar áreas de riesgo que resultan del uso de componentes de terceros y de código abierto durante el desarrollo de aplicaciones.
Las herramientas de ACS pueden identificar varios factores de riesgo, incluyendo:
- Componentes desactualizados.
- Componentes con vulnerabilidades conocidas.
- Calidad del componente. Desde el punto de vista de seguridad, un componente podría considerarse de menor calidad si no está bien mantenido o tiene una comunidad muy pequeña que lo respalde.
- Dependencias transitivas. Las herramientas de ACS pueden rastrear vulnerabilidades desde dependencias transitivas. Cuando un componente depende de otro componente, esa dependencia se denomina transitiva.
- Servicios externos. Un componente puede interactuar con servicios externos, como APIs web. Las herramientas de ACS pueden identificar cuándo esta interacción podría ser una vulnerabilidad.
Dependency-Check es una herramienta de Análisis de Composición de Software (ACS) que intenta detectar vulnerabilidades que han sido públicamente divulgadas y que están presentes en las dependencias de un proyecto. Las dependencias son los componentes de software en los que se basa tu código para obtener funcionalidades adicionales. La herramienta de ACS generará un informe que enumera la dependencia, cualquier identificador de Plataforma Común de Enumeración (CPE) identificado y las entradas asociadas a la Vulnerabilidad y Exposición Común (CVE).
En este laboratorio práctico, exploraremos el uso de la herramienta de Análisis de Composición de Software OWASP Dependency-Check.
Paso 1: instalar OWASP SCA Tool
Paso 2: código fuente ejemplo
Usamos el código fuente del juice-shop.
git clone https://github.com/juice-shop/juice-shop.git
Paso 3: ejecutar SCA sobre el codigo de juice shop (componentes)
dependency-check -f JSON — prettyPrint — scan juice-shop
Al finalizar crea un json con las dependencias; dependency-check-report.json
Paso 4: analizando el json con resultados:
jq ‘.dependencies[].filePath’ dependency-check-report.json
En un Ciclo de Vida del Desarrollo de Software (SDLC) seguro, cada componente debe ser revisado y verificado minuciosamente en cuanto a seguridad. Cualquier dependencia que pueda ser vulnerable debe ser actualizada o reemplazada.
Paso 5: crear report en HTML
dependency-check — scan juice-shop
generando como salida, el dependency-check-report.html
Segunda Parte: Tests de Seguridad y Estrategias de Mitigación
Lab 1: Usando Análisis Estático
Lab 2: Usando Análisis Dinámico
Lab 3: Evaluando el Análisis de Vulnerabilidades
Lab 4: Evaluando “Software Component Analysis (SCA)”
Tercera Parte: OWASP Top 10 vulnerabilidades
Lab 5: Comprendiendo SQL Injections
Lab 6: Cross Site Scripting XSS
Lab 7: Guardando Secretos de forma Segura
Cuarta Parte: Mejores Prácticas
Lab 8: Code Practices
Lab 9: Secure Development Environment