Explorer l’analyse de composition logicielle (SCA)

Effectué

Deux aspects essentiels du pipeline Secure DevOps sont la gestion des packages et les composants de logiciel Open Source (OSS).

Gestion des packages

Comme les équipes utilisant la gestion de version comme source unique de vérité pour le code source, Secure DevOps s’appuie sur un gestionnaire de package comme source unique pour les composants binaires.

Grâce à la gestion des packages binaires, une équipe de développement peut créer un cache local de composants approuvés et un flux approuvé pour le pipeline d’intégration continue (CI).

Dans Azure DevOps, Azure Artifacts\ fait partie intégrante du workflow du composant pour l’organisation et le partage de l’accès à vos packages. Azure Artifacts vous permet d’effectuer les opérations suivantes :

  • Préserver l’organisation de vos artefacts. Partager facilement du code en stockant des packages Apache Maven, npm et NuGet ensemble. Vous pouvez stocker des packages à l’aide de Universal Packages, ce qui évite d’avoir à conserver des binaires dans Git.
  • Protéger vos packages. Conservez chaque package source public que vous utilisez (y compris les packages de npmjs et NuGet.org) en toute sécurité dans votre flux, à partir duquel seulement vous pouvez le supprimer. Il s’appuie sur le Contrat de niveau de service (SLA) Azure de classe professionnelle.
  • Intégrez la gestion transparente des packages dans votre pipeline d’intégration continue (CI)/de développement continu (CD). Accédez facilement à tous vos artefacts dans les builds et les mises en production. Azure Artifacts s’intègre en mode natif avec l’outil Azure Pipelines CI/CD.

Pour plus d’informations sur Azure Artifacts, visitez la page web. Qu’est-ce qu’Azure Artifacts ?

Versions et compatibilité

Le tableau suivant répertorie les types de packages pris en charge par Azure Artifacts. La disponibilité de chaque package dans Azure DevOps Services est également affichée.

Le tableau suivant décrit en détail la compatibilité de chaque package avec des versions spécifiques d’Azure DevOps Server, précédemment connu sous le nom de Team Foundation Server (TFS).

Fonctionnalité Azure DevOps Services TFS
NuGet Oui TFS 2017
npm Oui TFS 2017 mise à jour un et ultérieure
Maven Oui TFS 2017 mise à jour un et ultérieure
Gradle Oui TFS 2018
Universal Oui Non
Python Oui Non

Les packages Maven, npm et NuGet peuvent être pris en charge avec des équipes de toute taille de sources publiques et privées. Azure Artifacts est fourni avec Azure DevOps, mais l’extension est également disponible sur Visual Studio Marketplace.

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

Remarque

Lorsque vous avez publié une version de package particulière sur un flux, ce numéro de version est réservé de façon permanente.

Notes

Vous ne pouvez pas charger un package de révision plus récent avec ce même numéro de version ou supprimer cette version et charger un nouveau package portant le même numéro de version. La version publiée est non modifiable.

Rôle des composants OSS

Le travail de développement est plus productif grâce à la vaste disponibilité de composants de logiciel Open Source (OSS) réutilisables.

Cette approche pratique de la réutilisation comprend des runtimes, qui sont disponibles sur les systèmes d’exploitation Windows et Linux, tels que Microsoft .NET Core et Node.js.

Toutefois, la réutilisation d’un composant OSS entraîne un risque tel que les dépendances réutilisées peuvent présenter des failles de sécurité. Par conséquent, de nombreux utilisateurs trouvent des failles de sécurité dans leurs applications dues aux versions de packages Node.js qu’ils consomment.

OSS offre un nouveau concept appelé analyse de composition logicielle (SCA) pour résoudre ces problèmes de sécurité, comme illustré dans l’image suivante.

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

Lors de l’utilisation d’un composant OSS, que vous soyez en train de créer ou de consommer des dépendances, vous souhaiterez généralement suivre ces étapes de haut niveau :

  1. Commencez par la dernière version correcte pour éviter d’anciennes vulnérabilités ou utilisations incorrectes de la licence.
  2. Vérifiez que les composants OSS sont les binaires appropriés pour votre version. Dans le pipeline de mise en production, validez les binaires pour garantir la précision et conserver une nomenclature traçable.
  3. Recevez immédiatement des notifications des vulnérabilités des composants, corrigez-les, puis redéployez le composant automatiquement pour résoudre les failles de sécurité ou les utilisations incorrectes de la licence du logiciel réutilisé.