Segurança automatizada

Concluído

Aqui, discutiremos algumas maneiras de automatizar as verificações de segurança em um repositório que estão disponíveis para administradores de repositórios do GitHub.

Detectar e corrigir dependências desatualizadas com vulnerabilidades de segurança

Hoje, praticamente todos os projetos têm dependências em pacotes externos. Embora esses componentes ofereçam benefícios significativos de produtividade, eles podem apresentar outros riscos de segurança. Acompanhar esses pacotes e seu status de vulnerabilidade pode ser demorado, principalmente se considerarmos que cada dependência pode ter suas próprias dependências, que podem ser difíceis de acompanhar e manter. Felizmente, o GitHub conta com recursos que reduzem essa carga de trabalho.

Grafos de dependência do repositório

Um recurso padrão que todos os repositórios têm são grafos de dependência. O GitHub examina manifestos de pacote comuns, como package.json, requirements.txt e outros. Esses grafos permitem que os proprietários do projeto monitorem periodicamente todas as dependências do projeto.

Captura de tela de um grafo de dependência do GitHub.

Para obter a lista de manifestos de dependência com suporte, consulte Sobre o grafo de dependência.

Alertas do Dependabot

Mesmo com um grafo de dependência visual, ainda pode ser difícil se acompanhar as considerações de segurança mais recentes para cada dependência de um projeto. Para reduzir essa sobrecarga, o GitHub fornece alertas do Dependabot que inspecionam seus grafos de dependência para você. Em seguida, faz referência cruzada das versões de destino com as versões em listas de vulnerabilidades conhecidas. Quando um risco é descoberto, o projeto recebe um alerta. A entrada para a análise vem dos Avisos de Segurança do GitHub.

Captura de tela dos alertas do Dependabot sobre dependências vulneráveis.

Atualizações de dependência automatizadas com o Dependabot

Um alerta de dependência pode fazer com que o colaborador de um projeto atualize a referência de pacote incorreta para a versão recomendada e crie uma solicitação de pull para fins de validação. Não seria ótimo se houvesse um jeito de automatizar esse esforço? Boas notícias! O Dependabot faz exatamente isso. Ele examina os alertas de dependência e cria solicitações de pull para que um colaborador possa validar a atualização e mesclar a solicitação.

Para saber mais sobre a flexibilidade do Dependabot, confira Configurar as atualizações de segurança do Dependabot.

Verificação de código automatizada

Semelhante ao modo como o Dependabot examina o repositório em busca de alertas de dependência, você pode usar a verificação de código para analisar e localizar vulnerabilidades de segurança e erros no código em um repositório do GitHub. A verificação de código tem vários benefícios. Você pode usá-la para localizar, fazer triagem e priorizar as correções de problemas existentes ou possíveis vulnerabilidades de segurança. Ela também é útil para ajudar a impedir que os desenvolvedores introduzam novos problemas de segurança no código.

Outra vantagem da verificação de código é sua capacidade de usar o CodeQL. O CodeQL permite consultar o código como dados. Assim, você pode criar consultas personalizadas ou usar consultas mantidas pela comunidade de código aberto. Com a verificação de código, você tem liberdade para personalizar e manter o modo de verificação do código no repositório.

Você pode habilitar alertas e fluxos de trabalho de verificação de código na guia de segurança do repositório do GitHub:

Captura de tela de uma lista de políticas, avisos e alertas com links para mais informações.

Saiba mais sobre Verificação de código e CodeQL.

Verificação de segredo

Outro recurso de verificação automatizada no repositório do GitHub é a verificação de segredo. Semelhante aos recursos anteriores de verificação de segurança, a verificação de segredo procura segredos conhecidos ou credenciais confirmadas dentro do repositório. Essa verificação é feita para evitar o uso de comportamento fraudulento e para proteger a integridade de quaisquer dados confidenciais. Por padrão, a verificação secreta ocorre em repositórios públicos e pode ser habilitada em repositórios privados por administradores de repositório ou proprietários de organizações.

Quando a verificação de segredo detecta um conjunto de credenciais, o GitHub notifica o provedor de serviços que emitiu o segredo. O provedor de serviços valida a credencial. Em seguida, decide se deve revogar o segredo, emitir um novo segredo ou entrar em contato com você diretamente. A ação depende dos riscos associados a você ou ao provedor de serviços.

Saiba mais sobre a Verificação de segredo para repositórios públicos e privados.