Aikido

Aikido Drydock | Un moyen pour les responsables de la maintenance de détecter les logiciels malveillants avant leur diffusion

Écrit par
Dania Durnas

Chers responsables de paquets, ceci s'adresse à vous. Nous nous sommes associés à Drydock afin que vous puissiez voir exactement ce que contient un paquet avant de l'approuver, ce qui permet de détecter les logiciels malveillants avant leur diffusion plutôt que de les signaler après coup. Drydock vous permet de consulter les octets réels d'une version en attente de publication avant sa mise en ligne, de sorte que les versions malveillantes soient détectées au moment de l'approbation plutôt que lors d'une analyse a posteriori. Pour les responsables de paquets npm et PyPI, Drydock est disponible gratuitement.

Bloquer les logiciels malveillants avant leur diffusion

L'année dernière a été marquée par de nombreuses attaques de logiciels malveillants visant des paquets open source. Nous nous sommes habitués à voir défiler des alertes et des tweets du type « ALERTE ! Grosse attaque de logiciels malveillants ! ». Il est certes important d'améliorer les systèmes de détection et de signalement, mais lorsque nous devons enfin rendre l'information publique, il est déjà trop tard. Les responsables de paquets méritent davantage de soutien dès les premières étapes de ce processus, afin de les aider à détecter et à prévenir les problèmes avant qu'ils ne se propagent, avant que tout le monde ne cède à la panique et ne se lance dans la gestion de crise.

L’annonce récente par npm de la publication par étapes constitue un pas dans cette direction. Cette mise à jour introduit une file d’attente de publication, dans laquelle toutes les versions des paquets attendent qu’un responsable disposant d’une authentification à deux facteurs (2FA) approuve manuellement leur publication. Cependant, bien que cela offre une opportunité de révision, le responsable ne peut pas examiner le contenu du paquet préparé. Il peut voir le numéro de version, mais pas le contenu binaire du paquet ni les modifications éventuelles par rapport à l’état actuel du dépôt.

Aikido à aider les responsables de paquets à prévenir les attaques de logiciels malveillants avant qu'elles ne se produisent. C'est pourquoi nous nous sommes associés à Drydock afin de rendre la publication de paquets plus sûre et la publication par étapes plus utile. Si vous gérez un paquet npm ou PyPI, Drydock vous offre un moyen gratuit de vérifier le contenu réel d’une version avant sa publication. Drydock analyse les paquets npm en attente de publication pour vous montrer exactement ce qui a changé au niveau des octets avant que vous ne donniez votre accord. Ainsi, le responsable chargé de valider la publication peut enfin voir ce que contient le paquet préparé.

Pour PyPI, qui ne propose pas de publication par étapes, Drydock effectue cette même vérification au sein de votre pipeline de publication. Cette procédure s'applique également aux paquets npm publiés sans passage par une phase de pré-publication. La prise en charge d'autres registres est également prévue prochainement. 

Comment fonctionne Drydock ?

Lorsqu’une nouvelle version préliminaire est disponible, Drydock la détecte, télécharge l’archive tar exacte dans un environnement de test temporaire, la compare à la dernière version publiée et affiche le rapport sur son tableau de bord. Vous pouvez ainsi visualiser chaque modification, celles liées à la sécurité étant signalées et classées par niveau de gravité. Ces indicateurs détectent les éléments sur lesquels s'appuient les logiciels malveillants, tels qu’un nouveau script de cycle de vie pré- ou post-installation, des fichiers qui n’existaient pas auparavant, du code qui lance un processus ou établit une connexion réseau, ou encore un binaire ajouté. Chaque résultat est associé à la ligne qui l’a généré, ce qui permet de consulter le rapport sous la forme d’une liste concise que vous pouvez parcourir en quelques secondes, plutôt que d’un long bloc de code source. Vous lisez les résultats, puis vous validez l’étape de publication sur npm à l’aide de votre propre authentification à deux facteurs (2FA).

Le flux décrit ci-dessus suppose une publication npm par étapes. Pour PyPI, ou pour un paquet npm publié sans passage par une phase intermédiaire, Drydock s'exécute en tant que contrôle d'environnement GitHub Actions. La publication est mise en attente dans votre pipeline avant d'atteindre le registre. Drydock examine l'artefact compilé et publie les mêmes résultats de comparaison ainsi que les résultats classés par niveau de gravité ; un responsable du projet approuve ou rejette ces résultats dans Drydock avant que quoi que ce soit ne soit rendu public.

Drydock ne publie jamais rien de son propre chef, ce qui vous évite d’introduire des points de défaillance dans le processus de publication. Drydock utilise un jeton npm en lecture seule, qui lui permet uniquement de consulter les publications en attente. Son accès se limite à la lecture des listes de fichiers et du texte ; il n’exécute donc jamais le contenu du paquet. Et dans un souci de garder les humains dans la boucle, c’est toujours une personne qui prend la décision finale à chaque fois.

Briser le cycle des logiciels malveillants 

Lors du lancement de npm et d’autres gestionnaires de paquets, la publication instantanée était une fonctionnalité destinée aux écosystèmes capables de se développer rapidement, car ils faisaient confiance à leurs membres. Mais aujourd’hui, les pirates exploitent la rapidité et la facilité de publication pour mener des attaques malveillantes.

La publication par étapes rompt avec ce schéma en mettant la version en attente avant sa mise en ligne. Drydock donne tout son sens à cette mise en attente en montrant au responsable de maintenance exactement ce qui a été modifié, alors qu’il est encore temps de refuser. La détection des problèmes intervient avant le premier téléchargement, et non lors d’une analyse a posteriori, une fois le mal fait.

C'est le monde que nous souhaitons pour les responsables de la maintenance. Moins de réveils marqués par l'annonce de logiciels malveillants, et davantage de possibilités pour eux de détecter eux-mêmes le problème et d'y mettre fin.

La configuration est simple et gratuite. Activez la publication par étapes de npm pour votre paquet, connectez Drydock à votre organisation à l'aide d'un jeton en lecture seule, et l'outil commencera automatiquement à analyser les versions en attente de publication. Pour la configuration de GitHub Actions, il vous suffit de lier l'application GitHub et l'environnement. Découvrez Drydock et d'autres informations sur la manière de démarrer sur leur site.

Partager :

https://www.aikido.dev/blog/drydock-pre-publish-package-review

S'abonner aux actualités

4,7/5
Fatigué des faux positifs ?
Essayez Aikido, comme 100 000 autres.
Commencez maintenant
Obtenez une démonstration personnalisée

Approuvé par plus de 100 000 équipes

Réserver maintenant
Analysez votre application à la recherche d'IDORs et de chemins d'attaque réels

Approuvé par plus de 100 000 équipes

Démarrer l'analyse
Découvrez comment le pentest IA teste votre application

Approuvé par plus de 100 000 équipes

Démarrer les tests

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.