Skip to main content

Melhores práticas de manutenção de dependências

Diretrizes e recomendações para manter as dependências usadas, incluindo os produtos de segurança do GitHub que podem ser úteis.

Melhores práticas de manutenção de dependências

Manter-se em dia com as dependências é crucial para manter um ambiente de software seguro. Veja algumas recomendações:

Adotar ferramentas de gerenciamento de dependências voltadas para a segurança

  • Use e configure ferramentas que verificam suas dependências em busca de vulnerabilidades e sugerem atualizações automaticamente.
  • Verifique se essas ferramentas estão integradas ao pipeline de CI/CD para monitoramento e atualização contínuos.
  • Configure seus processos para seguir o versionamento semântico, evitando alterações que possam quebrar a compatibilidade.

Executar verificações e auditorias de vulnerabilidades regulares

  • Agende auditorias e verificações de dependência regulares para identificar dependências desatualizadas ou vulneráveis.

Automatizar o gerenciamento de patches de segurança

  • Configure suas ferramentas de gerenciamento de dependência para aplicar patches de segurança automaticamente.
  • Também configure solicitações de pull automatizadas para atualizações críticas de segurança, permitindo que sejam revisadas e mescladas rapidamente.

Impor políticas sobre o uso de dependências

  • Implemente políticas que imponham o uso de versões seguras de dependências.
  • Use ferramentas que podem bloquear a mesclagem de pull requests caso introduzam vulnerabilidades ou falhem em atualizar dependências vulneráveis.

Integrar o teste de segurança em CI/CD

  • Incorpore ferramentas de teste de segurança no pipeline de CI/CD.
  • Verifique se as atualizações de dependência são testadas automaticamente em relação à conformidade de segurança.

Use arquivos de bloqueio e fixação de dependências

  • Use arquivos de bloqueio (por exemplo, package-lock.json, yarn.lock e Pipfile.lock) para fixar dependências em versões seguras conhecidas.
  • Atualize e revise regularmente esses arquivos de bloqueio para garantir que as dependências estejam atualizadas sem problemas de segurança não intencionais.

Monitorar avisos de segurança

  • Assine avisos de segurança para as linguagens e as estruturas que você usa.
  • Automatize a integração de avisos ao fluxo de trabalho de desenvolvimento para se manter em dia sobre novas vulnerabilidades.
  • Fique de olho nos painéis fornecidos pelas ferramentas de gerenciamento de dependências.
  • Lembre-se de atualizações críticas, especialmente patches de segurança, e priorize-as.

Controle de versão e gerenciamento de alterações

  • Acompanhe as alterações de dependência no controle de versão (por exemplo, por meio de pull requests automatizadas).

  • Realize revisões de código regulares para garantir que as atualizações não introduzam novas vulnerabilidades.

Treinamento e conscientização

  • Eduque suas equipes de desenvolvimento e operações sobre a importância de manter as dependências seguras e atualizadas.
  • Ofereça treinamento sobre como usar o gerenciamento de dependências e as ferramentas de segurança com eficiência.

Plano de resposta para vulnerabilidades

  • Tenha um plano de resposta a incidentes bem definido para quando as vulnerabilidades forem identificadas nas dependências.
  • Verifique se a equipe sabe como resolver e corrigir problemas de segurança rapidamente.

Seguindo essas práticas, você pode reduzir de maneira significativa o risco representado por dependências desatualizadas e vulneráveis e manter um ambiente mais seguro.

Como o GitHub pode ser útil

GitHub fornece recursos de segurança para ajudá-lo a manter dependências:

Grafo de dependência: controla as dependências do projeto e identifica vulnerabilidades. Confira Sobre o gráfico de dependências.

Revisão de dependência: captura dependências inseguras em solicitações de pull antes de serem mescladas. Além disso, o ação de revisão de dependência pode falhar nas verificações e, quando exigido pelas regras de proteção de branch, impedir que solicitações de pull que introduzam vulnerabilidades sejam mescladas. Confira Sobre a análise de dependência.

Dependabot: analisa vulnerabilidades automaticamente, gera alertas e cria solicitações de pull para atualizar dependências que estejam desatualizadas ou vulneráveis. Você pode agrupar várias atualizações em solicitações de pull único para simplificar as revisões. Confira Sobre alertas do Dependabot.

GitHub Advisory Database: Fornece avisos de segurança que impulsionam a detecção de vulnerabilidades do Dependabot. Veja Sobre o banco de dados de avisos do GitHub.

Relatório de vulnerabilidades privadas: permite que os mantenedores recebam, discutam e corrijam relatórios de vulnerabilidade em particular antes da divulgação pública. Visão geral de segurança: mostra a postura de segurança da sua organização com painéis para repositórios em risco, tendências de alerta e status de habilitação de recursos. Confira Sobre a visão geral de segurança.

Para obter diretrizes de cadeia de suprimentos de ponta a ponta, consulte Protegendo sua cadeia de suprimentos de ponta a ponta.