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.

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ê 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 npm audit fixo , mas tem de ser autenticado com o 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 a correção de auditoria npm, ela não apenas atualiza a package.json e a 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 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 por meio da correção de auditoria npm.

Nota

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

Executar auditoria npm a partir do seu pipeline

Atualmente, o Azure Pipelines não oferece suporte à auditoria npm. Se você tentar usar o comando regular npm audit 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 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 + sinal para adicionar uma nova tarefa.

  4. Procure a tarefa npm e selecione Adicionar para adicioná-la ao seu 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 pacote não vulneráveis, use o seguinte comando. 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.