Glossaire de sécurité Xygeni
Glossaire de la sécurité du développement et de la livraison de logiciels

Que sont les portées Maven

Les portées Maven définissent clairement la manière dont un projet Maven gère les dépendances à différentes étapes du processus de build. Lorsque les développeurs définissent la portée Maven appropriée, ils améliorent les builds, renforcent la sécurité logicielle et s'assurent que seules les dépendances requises atteignent la production. En comprenant ce que sont les portées Maven, les équipes peuvent mieux gérer les dépendances du projet et supprimer les composants supplémentaires ou inutilisés. En conséquence, les builds deviennent plus efficaces, plus faciles à maintenir et moins sujettes aux conflits.

Définition:

Que sont les portées Maven ? #

Les portées Maven définissent quand une dépendance est disponible pendant le développement, les tests et l'exécution. La configuration correcte de ces portées garantit une distribution efficace des logiciels et évite les conflits entre les bibliothèques. Au lieu d'inclure chaque dépendance tout au long du processus de création, les développeurs peuvent affiner comment et quand chacune d'elles est utilisée.

Types de portées de dépendance Maven #

Chaque projet récompensé par un Portée des dépendances Maven sert à un objectif spécifique. Choisir le bon logiciel évite les gonflements, résout les conflits et sécurise la chaîne d'approvisionnement en logiciels.

Compiler (portée par défaut) #

Maven inclut des dépendances dans la portée de compilation pendant toutes les phases de build : compilation, test et exécution. Les développeurs s'appuient sur cette portée pour les bibliothèques de base essentielles à leurs applications.

  • Exemple: Les java.util le package appartient à la portée de compilation car l'application en a besoin à chaque étape.
À condition de #

Dépendances dans portée fournie restent disponibles pendant le développement et les tests, mais n'apparaissent pas dans la version finale. Les développeurs utilisent cette portée lorsque l'environnement d'exécution inclut déjà la dépendance.

  • Case Study: Les applications Web attribuent le javax.servlet API à portée fournie car des serveurs comme Tomcat la fournissent déjà.
Runtime #

Maven inclut les dépendances dans la portée d'exécution pendant l'exécution, mais les exclut pendant la compilation. Les développeurs utilisent cette portée pour les bibliothèques dont les applications n'ont besoin que lors de leur exécution.

  • Case Study: Un Pilote JDBC (par exemple, MySQL Connector) s'intègre dans la portée d'exécution car la connexion à la base de données se produit uniquement au moment de l'exécution.
Test #

Maven active les dépendances de portée de test uniquement pendant les tests. Ces dépendances n'apparaissent jamais dans la version finale. Les développeurs s'appuient sur cette portée pour garder les artefacts de production légers.

  • Case Study:Les frameworks comme JUnit et Mockito appartiennent au champ d'application des tests puisque les développeurs n'en ont besoin que pour les tests unitaires.
Système #

Les développeurs utilisant la portée système doivent spécifier manuellement un chemin de fichier local pour la dépendance. Étant donné que Maven ne télécharge pas ces dépendances, cette portée rend les builds moins portables et plus difficiles à maintenir.

  • Case Study:Les applications héritées peuvent utiliser la portée du système lorsqu'un JAR requis n'est disponible dans aucun référentiel.
Global #

Maven permet d'importer des portées pour gérer les dépendances dans les projets multi-modules. Les développeurs utilisent cette portée pour centraliser la gestion des versions en important une nomenclature (BOM).

  • Case Study:Une équipe travaillant sur plusieurs microservices peut utiliser portée d'importation pour garantir que tous les modules reposent sur les mêmes versions de dépendances.

Pourquoi les champs d'application Maven sont importants #

La configuration correcte des portées de dépendances Maven permet de maintenir les builds optimisées, efficaces et sécurisées. Les développeurs bénéficient des avantages suivants :

  • Réduire les dépendances inutiles pour garder les artefacts de production légers.
  • Résolution des conflits en s'assurant que chaque bibliothèque n'apparaît que lorsque cela est nécessaire.
  • Améliorer les performances de construction en éliminant les dépendances redondantes.
  • Sécurisation de la livraison des logiciels en empêchant les dépendances non intentionnelles d’atteindre la production.

Attaques du monde réel exploitant la portée des dépendances Maven #

L'utilisation incorrecte des configurations de dépendances Maven crée des risques de sécurité. Les attaquants ont à plusieurs reprises dépendances mal configurées exploitées, ce qui a conduit à des attaques de grande envergure contre la chaîne d'approvisionnement de logiciels. Ces incidents soulignent l'importance de surveiller les dépendances et d'appliquer des contrôles de sécurité stricts. Pour illustrer ce risque, examinons quelques exemples concrets.

Attaque par confusion de dépendance #

En 2021, chercheur en sécurité Alex Birsan a découvert une faille majeure dans la façon dont les développeurs gèrent la portée des dépendances Maven. Il a créé des packages publics utilisant les mêmes noms que les dépendances internes utilisées par des entreprises comme Apple, Microsoft, Tesla et Uber. Étant donné que les portées Maven donnent parfois la priorité aux référentiels externes, les développeurs ont téléchargé ces derniers sans le savoir paquets malveillants au lieu de leurs versions privées.

Pour éviter cela, les équipes doivent vérifier les configurations du référentiel, restreindre l'accès aux packages internes et utiliser des contrôles d'espace de noms stricts. Ces étapes permettent de garantir que les développeurs récupèrent les dépendances à partir de sources fiables.

Attaque MavenGate #

Les chercheurs en sécurité d'Oversecured ont découvert un attaque de la chaîne d'approvisionnement appelé MavenGate, qui ciblait les applications Java et Android. Les attaquants ont détourné des noms de domaine expirés et injecté du code malveillant dans des dépendances largement utilisées. De ce fait, ils ont compromis plus de 18 % des projets Maven courants, mettant ainsi en danger des milliers d'applications.

Pour réduire ce risque, les développeurs doivent verrouiller les versions de dépendances, activer les sommes de contrôle et rechercher les packages obsolètes ou piratés. En prenant ces mesures, les équipes peuvent empêcher les attaquants d'injecter du code nuisible dans leurs logiciels.

Exploits du référentiel proxy #

En janvier 2025, un expert en sécurité Michel Stepankin De graves faiblesses ont été découvertes dans les référentiels proxy Maven, tels que Sonatype Nexus et JFrog Artifactory. En raison de ces problèmes, les attaquants ont pu insérer des artefacts malveillants dans les caches proxy. Cela leur a permis d'exécuter du code à distance, d'endommager les builds et de créer des portes dérobées dans la chaîne d'approvisionnement logicielle. En conséquence, de nombreuses organisations ont été confrontées à des risques de sécurité susceptibles de nuire à leur processus de développement.

Pour prévenir ces des menacesLes développeurs doivent vérifier les paramètres du référentiel, limiter l'accès aux proxys et utiliser des outils de sécurité automatisés pour détecter les packages suspects. Sans ces protections, les entreprises risquent d'exposer l'intégralité de leurs logiciels pipeline aux cyberattaques.

Pourquoi les développeurs doivent adopter une approche proactive #

Ces exemples prouvent que la dépendance gestion Il ne s'agit pas seulement d'une bonne pratique, mais d'un élément essentiel de la sécurité. Pour rester protégés, les développeurs doivent :

  • Valider dépendances avant de les ajouter à un projet.
  • Utilisez le outils de sécurité pour surveiller et signaler les packages compromis.
  • Verrouillage versions et vérifier sources pour empêcher les mises à jour accidentelles de packages malveillants.
  • Configurez dépendances correctement pour éviter d'inclure des bibliothèques inutiles en production.

En suivant ces étapes, les équipes peuvent protéger leurs logiciels contre les attaques de la chaîne d'approvisionnement. Lorsque les équipes restent proactives, elles garantissent la sécurité et la fiabilité de leurs applications.

Défis et solutions avec les portées Maven #

Même les développeurs expérimentés sont confrontés à des problèmes lors de la configuration Portées MavenLes défis courants incluent :

  • Dépendances excessives:L'attribution de portées incorrectes entraîne des artefacts de production gonflés.
  • Conflits de dépendance:Plusieurs bibliothèques nécessitant différentes versions de la même dépendance provoquent des échecs de construction.

Comment Xygeni améliore la sécurité des dépendances Maven #

Xygéni aide les développeurs sécuriser leurs portées Maven avec:

  • Détection de vulnérabilité en temps réel:Identifie les risques liés aux dépendances avant qu’ils n’impactent la production.
  • Priorisation des risques en fonction du contexte:Marque les menaces les plus critiques en fonction de l'utilisation du temps d'exécution.
  • CI/CD Intégration ::Analyse automatiquement les dépendances à chaque étape du développement pour prévenir les risques de sécurité.

Avec Xygeni, les développeurs sécurisent les portées Maven, éliminent les vulnérabilités et créent des applications plus sûres sans ralentir le développement.

Sécurisez vos dépendances Maven avec Xygeni #

La gestion correcte des portées Maven améliore non seulement la sécurité, mais aussi les performances et la maintenabilité. Pour faciliter ce processus, Xygeni simplifie la gestion des dépendances en détectant les risques, en optimisant les configurations de portée et en prévenant les menaces de sécurité en temps réel. Ainsi, les développeurs peuvent se concentrer sur la création de logiciels sécurisés et efficaces sans complexité inutile.

Commencer votre essai gratuit Aujourd'hui et sécurisez vos dépendances !

Commencez votre essai

Commencez gratuitement.
Aucune carte de crédit requise.

Commencez en un clic :

Ces informations seront enregistrées en toute sécurité conformément à la Conditions d’utilisation et Politique de confidentialité

Capture d'écran de l'essai gratuit de Xygeni