Uso de la auditoría de npm para detectar y corregir vulnerabilidades de paquetes

Azure DevOps Services

El comando npm audit realiza un examen exhaustivo del proyecto, identificando posibles vulnerabilidades de seguridad y generando un informe detallado que resalta los problemas encontrados. La realización de auditorías de seguridad es un paso fundamental para reconocer y resolver vulnerabilidades dentro de las dependencias del proyecto. El comando npm audit fix soluciona automáticamente las vulnerabilidades detectadas y actualiza las versiones de paquetes no seguras a las versiones seguras más recientes. Abordar estas vulnerabilidades es fundamental para evitar posibles problemas como la pérdida de datos, las interrupciones del servicio y el acceso no autorizado a la información confidencial.

Advertencia

La ejecución de la auditoría de npm transmitirá los nombres de todos los paquetes especificados en el package.json al registro público.

Ejecución local de la auditoría de npm

npm audit se puede ejecutar localmente sin necesidad de autenticarse con la fuente. Esto le permite examinar el proyecto en busca de vulnerabilidades y recibir un informe detallado sobre los problemas de seguridad detectados y su gravedad.

Si desea corregir las vulnerabilidades detectadas, puede ejecutar npm audit fix, pero debe autenticarse con la fuente para hacerlo. Este comando actualiza las versiones de paquetes no seguras a las versiones seguras más recientes disponibles.

Al ejecutar la corrección de auditoría de npm, no solo actualiza el package.json del proyecto local y package-lock.json, sino que también sincroniza estos cambios con la fuente de Azure Artifacts asociada. Las versiones recién protegidas de los paquetes estarán disponibles automáticamente en la fuente.

Esta sincronización garantiza que otros proyectos que comparten la misma fuente también se beneficiarán de estas actualizaciones. Ayuda a mantener un conjunto coherente y seguro de versiones de paquetes en todos los proyectos.

  1. Ejecute el siguiente comando en el directorio del proyecto para realizar una auditoría de npm:

    npm audit
    
  2. Si desea intentar actualizar a versiones de paquetes no vulnerables, asegúrese de que está conectado primero a la fuente y, a continuación, ejecute el siguiente comando en el directorio del proyecto:

    npm audit fix
    

Después de ejecutar la corrección de auditoría de npm, asegúrese de realizar una prueba exhaustiva en la aplicación para confirmar que las actualizaciones no han introducido cambios importantes. Si una corrección requiere una actualización de versión principal, se recomienda revisar las notas de la versión del paquete para ver los posibles cambios importantes. Tenga en cuenta que, aunque un paquete privado con dependencias vulnerables públicas recibe alertas de vulnerabilidad, no recibirá correcciones a través de la corrección de auditoría de npm.

Nota:

La auditoría de npm se ejecuta automáticamente con cada ejecución de la instalación de npm, pero solo funciona para los paquetes públicos.

Ejecución de la auditoría de npm desde la canalización

Azure Pipelines no admite actualmente la auditoría de npm. Si intenta usar el comando de auditoría de npm normal en la canalización, se producirá un error. En su lugar, ejecute npm audit con el argumento --Registry y proporcione la dirección URL de origen de la fuente.

  1. Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.

  2. Seleccione Canalizaciones, seleccione la canalización y, a continuación, seleccione Editar para modificarla.

  3. En la definición de la canalización, seleccione el + signo para agregar una nueva tarea.

  4. Busque la tarea npm y seleccione Agregar para agregarla a la canalización.

  5. Escriba un nombre para mostrar para la tarea y seleccione personalizado en el menú desplegable Comando .

  6. Pegue el comando personalizado en el cuadro de texto Comando y argumentos :

    1. Use el comando siguiente para realizar una auditoría de npm y buscar vulnerabilidades de paquete. Reemplace el marcador de posición por la dirección URL de origen de la fuente:

      audit --registry=<FEED_SOURCE_URL>
      
    2. Si desea intentar actualizar a versiones de paquetes no vulnerables, use el siguiente comando. Reemplace el marcador de posición por la dirección URL de origen de la fuente:

    audit fix --registry=<FEED_SOURCE_URL>
    

    A screenshot showing the npm audit task in a classic pipeline.