Npm-controle gebruiken om beveiligingsproblemen in pakketten te detecteren en op te lossen

Azure DevOps Services

De npm-controleopdracht voert een grondige scan van uw project uit, waarbij potentiële beveiligingsproblemen worden geïdentificeerd en een gedetailleerd rapport wordt gegenereerd waarin eventuele gevonden problemen worden gemarkeerd. Het uitvoeren van beveiligingscontroles is een essentiële stap bij het herkennen en oplossen van beveiligingsproblemen binnen de afhankelijkheden van het project. Met de opdracht npm-controleoplossing worden automatisch de gedetecteerde beveiligingsproblemen opgelost, waarbij onveilige pakketversies worden bijgewerkt naar de nieuwste beveiligde versies. Het oplossen van deze beveiligingsproblemen is van cruciaal belang voor het voorkomen van potentiële problemen, zoals gegevensverlies, serviceonderbrekingen en onbevoegde toegang tot gevoelige informatie.

Waarschuwing

Als u npm-controle uitvoert, worden de namen van alle pakketten die in uw package.json zijn opgegeven, verzonden naar het openbare register.

Npm-controle lokaal uitvoeren

npm audit kan lokaal worden uitgevoerd zonder dat u zich hoeft te verifiëren met uw feed. Hiermee kunt u uw project scannen op beveiligingsproblemen en een gedetailleerd rapport ontvangen over de gedetecteerde beveiligingsproblemen en de ernst ervan.

Als u de gedetecteerde beveiligingsproblemen wilt oplossen, kunt u deze uitvoeren npm audit fix, maar u moet worden geverifieerd met uw feed om dit te kunnen doen. Met deze opdracht worden onveilige pakketversies bijgewerkt naar de nieuwste beveiligde versies die beschikbaar zijn.

Wanneer u een npm-controleoplossing uitvoert, worden niet alleen de package.json en package-lock.json van het lokale project bijgewerkt, maar worden deze wijzigingen ook gesynchroniseerd met de bijbehorende Azure Artifacts-feed. De nieuw beveiligde versies van de pakketten zijn automatisch beschikbaar in uw feed.

Deze synchronisatie zorgt ervoor dat andere projecten die dezelfde feed delen, ook profiteren van deze updates. Het helpt bij het onderhouden van een consistente en veilige set pakketversies voor alle projecten.

  1. Voer de volgende opdracht uit in uw projectmap om een npm-controle uit te voeren:

    npm audit
    
  2. Als u een upgrade wilt uitvoeren naar niet-kwetsbare pakketversies, controleert u eerst of u bent verbonden met uw feed en voert u vervolgens de volgende opdracht uit in de projectmap:

    npm audit fix
    

Nadat u een npm-controleoplossing hebt uitgevoerd, moet u een grondige test uitvoeren op uw toepassing om te bevestigen dat de updates geen belangrijke wijzigingen hebben geïntroduceerd. Als voor een oplossing een primaire versie-update is vereist, is het raadzaam om de releaseopmerkingen van het pakket te controleren op mogelijke belangrijke wijzigingen. Houd er rekening mee dat hoewel een privépakket met openbare kwetsbare afhankelijkheden waarschuwingen voor beveiligingsproblemen ontvangt, er geen fixes worden ontvangen via een npm-controlecorrectie.

Notitie

npm-controle wordt automatisch uitgevoerd bij elke uitvoering van npm-installatie, maar werkt alleen voor openbare pakketten.

NPM-controle uitvoeren vanuit uw pijplijn

Azure Pipelines biedt momenteel geen ondersteuning voor npm-controle. Als u de reguliere npm-controleopdracht in uw pijplijn gebruikt, mislukt deze. Voer in plaats daarvan npm-controle uit met het argument --registry en geef de bron-URL van uw feed op.

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Pijplijnen, selecteer uw pijplijn en selecteer vervolgens Bewerken om deze te wijzigen.

  3. Selecteer in uw pijplijndefinitie het + teken om een nieuwe taak toe te voegen.

  4. Zoek de npm-taak en selecteer Vervolgens Toevoegen om deze toe te voegen aan uw pijplijn.

  5. Voer een weergavenaam in voor uw taak en selecteer aangepast in de vervolgkeuzelijst Opdracht .

  6. Plak de aangepaste opdracht in het tekstvak Opdracht en argumenten :

    1. Gebruik de volgende opdracht om een npm-controle uit te voeren en te scannen op beveiligingsproblemen in pakketten. Vervang de tijdelijke aanduiding door de bron-URL van uw feed:

      audit --registry=<FEED_SOURCE_URL>
      
    2. Als u een upgrade wilt uitvoeren naar niet-kwetsbare pakketversies, gebruikt u de volgende opdracht. Vervang de tijdelijke aanduiding door de bron-URL van uw feed:

    audit fix --registry=<FEED_SOURCE_URL>
    

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