Exploración del análisis de composición de software (SCA)

Completado

Dos áreas fundamentales de la canalización de Secure DevOps son la administración de paquetes y los componentes OSS del software de código abierto.

Administración de paquetes

Del mismo modo que los equipos usan el control de versiones como una única fuente de confianza para el código fuente, Secure DevOps se basa en un administrador de paquetes como el origen único de los componentes binarios.

Mediante la administración de paquetes binarios, un equipo de desarrollo puede crear una caché local de componentes aprobados y una fuente de confianza para la canalización de integración continua (CI).

En Azure DevOps, Azure Artifacts forma parte integral del flujo de trabajo del componente para organizar y compartir el acceso a los paquetes. Azure Artifacts le permite:

  • Mantener los artefactos organizados. Compartir código fácilmente al almacenar Apache Maven, npm y paquetes NuGet juntos. Puede almacenar paquetes mediante Universal Packages, lo que elimina el mantenimiento de los archivos binarios en Git.
  • Proteger los paquetes. Mantenga todos los paquetes de código fuente públicos que use (incluidos los paquetes de npmjs y NuGet.org) seguros en su fuente, donde solo usted puede eliminar y donde está respaldado por el Acuerdo de Nivel de Servicio (SLA) de Azure de nivel empresarial.
  • Integre el control de paquetes sin fisuras en su canal de integración continua (CI) y entrega continua (CD). Acceda fácilmente a todos los artefactos en compilaciones y versiones. Azure Artifacts se integra de forma nativa con la herramienta Azure Pipelines CI/CD.

Para más información sobre Azure Artifacts, visite la página web. ¿Qué es Azure Artifacts?

Versiones y compatibilidad

En la tabla siguiente se enumeran los tipos de paquetes admitidos por Azure Artifacts. También se muestra la disponibilidad de cada paquete en Azure DevOps Services.

En la tabla siguiente se detalla la compatibilidad de cada paquete con versiones específicas de Azure DevOps Server, anteriormente conocido como Team Foundation Server (TFS).

Característica Azure DevOps Services TFS
NuGet TFS 2017
npm TFS 2017, actualización primera y posteriores
Maven TFS 2017, actualización primera y posteriores
Gradle TFS 2018
Universal No
Python No

Los paquetes Maven, npm y NuGet pueden ser compatibles con equipos de cualquier tamaño de orígenes públicos y privados. Azure Artifact incluye Azure DevOps, pero la extensión también está disponible en Visual Studio Marketplace.

Screenshot of Azure DevOps with Artifacts highlighted in the menu pane.

Nota:

Después de publicar una versión de paquete determinada en una fuente, ese número de versión se reserva permanentemente.

Nota:

No puede cargar un paquete de revisión más reciente con ese mismo número de versión o eliminar esa versión y cargar un nuevo paquete con el mismo número de versión. La versión publicada es inmutable.

Rol de los componentes de OSS

El trabajo de desarrollo es más productivo debido a la amplia disponibilidad de los componentes reutilizables de software de código abierto (OSS).

Este práctico enfoque para reutilizar incluye entornos de ejecución, que están disponibles en sistemas operativos Windows y Linux, como Microsoft .NET Core y Node.js.

Sin embargo, la reutilización de componentes de OSS tiene el riesgo de que las dependencias reutilizadas puedan tener vulnerabilidades de seguridad. Como resultado, muchos usuarios encuentran vulnerabilidades de seguridad en sus aplicaciones debido a las versiones del paquete Node.js que consumen.

OSS ofrece un nuevo concepto denominado Análisis de composición de software (SCA) para abordar estos problemas de seguridad, que se muestran en la siguiente imagen.

Screenshot of an image of the workflow for safely creating open-source dependencies.

Al consumir un componente de OSS, tanto si va a crear como a consumir dependencias, normalmente querrá seguir estos pasos de alto nivel:

  1. Comience con la versión más reciente y correcta para evitar vulnerabilidades antiguas o el uso incorrecto de licencias.
  2. Valide que los componentes de OSS son los archivos binarios correctos para su versión. En la canalización de versión, valide los archivos binarios para garantizar la precisión y mantener una lista de materiales rastreable.
  3. Obtenga notificaciones de las vulnerabilidades de los componentes inmediatamente, corríjalas y vuelva a implementar el componente automáticamente para resolver vulnerabilidades de seguridad o usos incorrectos de licencias del software reutilizado.