Använda npm-granskning för att identifiera och åtgärda paketsårbarheter

Azure DevOps Services

NPM-granskningskommandot utför en grundlig genomsökning av projektet, identifierar potentiella säkerhetsrisker och genererar en detaljerad rapport som belyser eventuella problem som hittas. Att utföra säkerhetsgranskningar är ett viktigt steg för att identifiera och lösa sårbarheter i projektets beroenden. NPM-granskningskorrigeringskommandot åtgärdar automatiskt de identifierade säkerhetsriskerna och uppdaterar osäkra paketversioner till de senaste säkra versionerna. Att åtgärda dessa sårbarheter är avgörande för att förhindra potentiella problem som dataförlust, tjänststörningar och obehörig åtkomst till känslig information.

Varning

Om npm-granskning körs överförs namnen på alla paket som anges i din package.json till det offentliga registret.

Kör npm-granskning lokalt

npm audit kan köras lokalt utan att du behöver autentisera med feeden. På så sätt kan du söka igenom projektet efter sårbarheter och få en detaljerad rapport om de identifierade säkerhetsproblemen och deras allvarlighetsgrad.

Om du vill åtgärda de identifierade säkerhetsriskerna kan du köra npm audit fix, men du måste autentiseras med feeden för att kunna göra det. Det här kommandot uppdaterar osäkra paketversioner till de senaste tillgängliga säkra versionerna.

När du kör npm-granskningskorrigeringen uppdateras inte bara det lokala projektets package.json och package-lock.json utan synkroniserar även dessa ändringar med den associerade Azure Artifacts-feeden. De nyligen skyddade versionerna av paketen blir automatiskt tillgängliga i feeden.

Den här synkroniseringen säkerställer att andra projekt som delar samma feed också kommer att dra nytta av dessa uppdateringar. Den hjälper till att upprätthålla en konsekvent och säker uppsättning paketversioner i alla projekt.

  1. Kör följande kommando i projektkatalogen för att utföra en npm-granskning:

    npm audit
    
  2. Om du vill försöka uppgradera till icke-sårbara paketversioner kontrollerar du att du är ansluten till feeden först och kör sedan följande kommando i projektkatalogen:

    npm audit fix
    

När npm-granskningskorrigeringen har körts ska du utföra en grundlig testning av programmet för att bekräfta att uppdateringarna inte medförde några icke-bakåtkompatibla ändringar. Om en korrigering kräver en huvudversionsuppdatering rekommenderar vi att du granskar paketets viktig information för eventuella icke-bakåtkompatibla ändringar. Tänk på att även om ett privat paket med offentliga sårbara beroenden får sårbarhetsaviseringar, får det inga korrigeringar via npm-granskningskorrigering.

Kommentar

npm-granskning körs automatiskt med varje körning av npm-installation, men den fungerar bara för offentliga paket.

Kör npm-granskning från din pipeline

Azure Pipelines stöder för närvarande inte npm-granskning. Om du försöker använda det vanliga npm-granskningskommandot i pipelinen misslyckas det. Kör i stället npm-granskning med argumentet --registry och ange flödets käll-URL.

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Pipelines, välj din pipeline och välj sedan Redigera för att ändra den.

  3. I pipelinedefinitionen + väljer du tecknet för att lägga till en ny uppgift.

  4. Sök efter npm-aktiviteten och välj sedan Lägg till för att lägga till den i pipelinen.

  5. Ange ett visningsnamn för uppgiften och välj anpassad i listrutan Kommando .

  6. Klistra in det anpassade kommandot i textrutan Kommando och argument :

    1. Använd följande kommando för att utföra en npm-granskning och söka efter paketsårbarheter. Ersätt platshållaren med feedens käll-URL:

      audit --registry=<FEED_SOURCE_URL>
      
    2. Om du vill försöka uppgradera till icke-sårbara paketversioner använder du följande kommando. Ersätt platshållaren med feedens käll-URL:

    audit fix --registry=<FEED_SOURCE_URL>
    

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