Partilhar via


Use a auditoria npm para detetar e corrigir vulnerabilidades do pacote

Serviços de DevOps do Azure

O comando npm audit executa uma verificação 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 no reconhecimento e resolução de vulnerabilidades dentro das dependências do projeto. O comando npm audit fix resolve automaticamente as vulnerabilidades detetadas, 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.

Advertência

A execução do comando npm audit transmitirá os nomes de todos os pacotes especificados no seu package.json para o registo público.

Executar npm audit localmente

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

Se quiser corrigir as vulnerabilidades detetadas, pode executar o npm audit fix, mas tem de estar autenticado no seu feed para o fazer. Este comando atualiza as versões inseguras do pacote para as versões seguras mais recentes disponíveis.

Quando você executa npm audit fix, não apenas atualiza tanto package.json quanto package-lock.json do projeto local, mas também, além disso, 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 beneficiarão 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 pacote não vulneráveis, certifique-se de estar 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 se as atualizações não introduziram nenhuma alteração de quebra. Se uma correção exigir uma atualização de versão principal, é recomendável revisar as notas de versão do pacote para verificar possíveis alterações de quebra. Lembre-se de que, embora um pacote privado com dependências públicas vulneráveis receba alertas de vulnerabilidade, ele não receberá correções através do npm audit fix.

Observação

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

Execute o npm audit a partir do seu pipeline

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

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

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

  3. Na definição de pipeline, selecione o + ícone para adicionar uma nova tarefa.

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

  5. Insira um nome de exibição para a tarefa e selecione personalizado no menu dropdown 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 marcador pela URL de origem do feed:

      audit --registry=<FEED_SOURCE_URL>
      
    2. Se você quiser tentar atualizar para versões de pacote não vulneráveis, use o seguinte comando. Substitua o marcador pela URL de origem do feed:

    audit fix --registry=<FEED_SOURCE_URL>
    

    Uma captura de tela mostrando a tarefa de auditoria npm em um pipeline clássico.