Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

npm : la version 6.0.1 du gestionnaire de paquets officiel de Node.js. passe en @latest
La commande npm audit est désormais fonctionnelle

Le , par Marco46

136PARTAGES

9  0 
Avec la sortie de la version 6 du CLI et le rachat de la Node Security Platform de Lift Security (voir actualité précédente), l'équipe npm met l'accent sur la sécurité.

Ces efforts s'orientent dans deux directions, l'audit des failles de sécurité au travers de la NSP via la nouvelle commande npm audit et la signature électronique des paquets du registre via PGP. Si ce dernier point nécessite encore beaucoup de travail, la commande npm audit, elle, devient fonctionnelle.


Les nouveautés de la version 6.0.1

Il y a quelques heures, Rebecca Turner de la team npm a publié la version 6.0.1 du CLI en @latest.

Outre les habituelles montées de version de dépendances, cette version propose :

  • un meilleur support des vieux fichiers npm-shrinkwrap.json publiés sur le registre ;
  • une correction sur la gestion de l'interruption de l'installation via CTRL+C ;
  • des améliorations de la commande npm audit.


npm audit devient fonctionnelle

Le 8 mai dernier, Adam Baldwin, le head of security de npm inc et fondateur de la NSP a publié un article sur le blog npm décrivant le fonctionnement de la commande.

Son article n'étant pas très interactif, je vous propose de tester en quelques minutes cette fonctionnalité.

Il est nécessaire d'avoir une version du CLI à jour (généralement installée en global) : npm i -g npm aboutira à l'installation de la dernière version stable, c'est à dire la 6.0.1.

N'importe quelle version de Node.js supérieure ou égale à la version 6 fera l'affaire pour ce test.

Dans un nouveau répertoire, ajoutez un fichier package.json tout simple :

Code javascript : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
  
{ 
  "name": "dev.com-test-npm-audit", 
  "version": "1.0.0", 
  "main": "index.js", 
  "scripts": { 
    "start": "node index" 
  }, 
  "dependencies": { 
    "lodash": "4.17.4" 
  } 
}

Le fichier index.js est optionnel pour notre test, il permet simplement d'exécuter lodash pour vérifier son installation, par exemple :

Code javascript : Sélectionner tout
1
2
3
4
5
6
  
'use strict'; 
  
const _ = require('lodash'); 
  
console.log('1+1 = ', _.add(1, 1));

Notons que j'ai ajouté une version obsolète de lodash, la 4.17.4 à dessein, cette version contient une vulnérabilité patchée en 4.17.5.

Exécutons npm install.

Premier changement, la commande d'installation des paquets effectue un mini audit par elle-même :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
 
$ npm install 
npm WARN dev.com-test-npm-audit@1.0.0 No description 
npm WARN dev.com-test-npm-audit@1.0.0 No repository field. 
npm WARN dev.com-test-npm-audit@1.0.0 No license field. 
 
added 1 package from 2 contributors in 1.034s 
[!] 1 vulnerability found [1 packages audited] 
    Severity: 1 Low 
    Run `npm audit` for more detail
Nous savons donc désormais si un paquet installé contient une vulnérabilité référencée par la NSP.

La commande npm audit fournit plus de détails :

$ npm audit

=== npm audit security report ===

# Run npm install lodash@4.17.10 to resolve 1 vulnerability
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577
└───────────────┴──────────────────────────────────────────────────────────────┘

[!] 1 vulnerability found - Packages audited: 1 (0 dev, 0 optional)
Severity: 1 Low

Pour chaque paquet, le rapport décrit la vulnérabilité en donnant sa sévérité (ici faible), son type (ici Prototype Pollution), quel paquet installé est en dépendance (ici c'est lui même à savoir lodash) et donne un lien sur la NSP, lequel donne un peu plus de détails.

Le rapport propose aussi une version du paquet concerné à installer pour corriger la vulnérabilité.

Notez que cette nouvelle commande ne s'exécutera pas en l'absence d'un fichier package-lock.json correctement constitué. Il est donc absolument nécessaire d'avoir fait le ménage dans ses dépendances pour pouvoir bénéficier de cette fonctionnalité.

Sources : les notes de versions (v6.0.1), Annonce de la 6.0.1, et présentation de la commande npm audit sur le blog officiel.

Et vous ?

Que pensez-vous de cette nouvelle fonctionnalité ?
Avez-vous eu le temps d’installer npm 6.0.1 ?
Êtes-vous inquiets des éventuels problèmes de sécurité posés par l'usage de npm ?

Voir aussi :

npm : une porte dérobée a été découverte dans le paquet getcookies

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 14/05/2018 à 4:04
Ouais tester et ça fait mal au cul.
0  0 
Avatar de Marco46
Modérateur https://www.developpez.com
Le 14/05/2018 à 10:54
Merci pour ta contribution mais pourrais-tu développer stp ? :p
0  0 

 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web