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

--

--

Fernando Muinos
Cibersecurity, Malware and Secure Development

Founder Hubots.ai. Innovative startup dedicated to providing advanced applications and services that help companies increase their productivity by AGI.