Usar auditoria npm para detectar e corrigir vulnerabilidades de pacote

Azure DevOps Services

O comando de auditoria npm executa uma varredura completa do seu projeto, identificando possíveis vulnerabilidades de segurança e gerando um relatório detalhado que destaca quaisquer problemas encontrados. A realização de auditorias de segurança é uma etapa vital para reconhecer e resolver vulnerabilidades dentro das dependências do projeto. O comando npm audit fix resolve automaticamente as vulnerabilidades detectadas, atualizando versões de pacotes inseguros para as versões seguras mais recentes. Abordar essas vulnerabilidades é crucial para evitar possíveis problemas, como perda de dados, interrupções de serviço e acesso não autorizado a informações confidenciais.

Aviso

A execução da auditoria npm transmitirá os nomes de todos os pacotes especificados em seu package.json para o registro público.

Executar auditoria npm localmente

npm audit pode ser executado localmente sem a necessidade de autenticação com seu feed. Isso permite que você verifique seu projeto em busca de vulnerabilidades e receba um relatório detalhado sobre os problemas de segurança detectados e sua gravidade.

Se você quiser corrigir as vulnerabilidades detectadas, você pode executar npm audit fixo , mas você deve ser autenticado com seu feed para fazer isso. Este comando atualiza as versões de pacotes inseguros para as versões seguras mais recentes disponíveis.

Quando você executa a correção de auditoria npm, ela não apenas atualiza o package.json e o package-lock.json do projeto local, mas também sincroniza essas alterações com o feed de Artefatos do Azure associado. As versões recém-protegidas dos pacotes estarão automaticamente disponíveis no seu feed.

Essa sincronização garante que outros projetos que compartilham o mesmo feed também se beneficiem dessas atualizações. Ele ajuda a manter um conjunto consistente e seguro de versões de pacotes em todos os projetos.

  1. Execute o seguinte comando no diretório do projeto para executar uma auditoria npm:

    npm audit
    
  2. Se você quiser tentar atualizar para versões de pacotes não vulneráveis, verifique se você está conectado ao feed primeiro e, em seguida, execute o seguinte comando no diretório do projeto:

    npm audit fix
    

Depois de executar a correção de auditoria npm, certifique-se de realizar um teste completo em seu aplicativo para confirmar que as atualizações não introduziram alterações significativas. Se uma correção exigir uma atualização de versão principal, é recomendável revisar as notas de versão do pacote para verificar se há possíveis alterações de quebra. Lembre-se de que, embora um pacote privado com dependências vulneráveis públicas receba alertas de vulnerabilidade, ele não receberá correções por meio da correção de auditoria npm.

Observação

A auditoria do NPM é executada automaticamente com cada execução da instalação do NPM, mas só funciona para pacotes públicos.

Executar auditoria npm a partir do pipeline

No momento, o Azure Pipelines não oferece suporte à auditoria npm. Se você tentar usar o comando de auditoria npm regular em seu pipeline, ele falhará. Em vez disso, execute a auditoria npm com o argumento --registry e forneça a URL de origem do feed.

  1. Entre na sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Pipelines, selecione seu pipeline e selecione Editar para modificá-lo.

  3. Na definição do pipeline, selecione o + sinal para adicionar uma nova tarefa.

  4. Procure a tarefa npm e selecione Adicionar para adicioná-la ao pipeline.

  5. Insira um Nome para exibição para sua tarefa e selecione personalizado no menu suspenso Comando.

  6. Cole o comando personalizado na caixa de texto Comando e argumentos :

    1. Use o comando a seguir para executar uma auditoria npm e verificar vulnerabilidades de pacote. Substitua o espaço reservado pelo URL de origem do feed:

      audit --registry=<FEED_SOURCE_URL>
      
    2. Se você quiser tentar atualizar para versões de pacotes não vulneráveis, use o comando a seguir. Substitua o espaço reservado pelo URL de origem do feed:

    audit fix --registry=<FEED_SOURCE_URL>
    

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