Skip to main content

Enterprise Server 3.20 está disponível no momento como versão candidata a lançamento.

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 [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).

          **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 [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review).

          **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 [AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts).

          **GitHub Advisory Database**: Fornece avisos de segurança que impulsionam a detecção de vulnerabilidades do Dependabot. Veja [AUTOTITLE](/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database).

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.