Defendendo Seus Commits de CVEs Conhecidos Com GitGuardian SCA e Githooks

Todos os desenvolvedores desejam criar software seguro e confiável. Eles devem se orgulhar de liberar seu código com total confiança de que não introduziram nenhuma fraqueza ou antipadrões em suas aplicações. Infelizmente, os desenvolvedores não estão escrevendo seu próprio código na maioria das vezes nos dias de hoje. 96% de todo o software contém alguns componentes de código aberto, e os componentes de código aberto compõem entre 70% e 90% de qualquer parte dada de software moderno. Infelizmente para nossos desenvolvedores preocupados com segurança, a maioria das vulnerabilidades modernas vêm desses componentes de software.

À medida que novas vulnerabilidades surgem e são relatadas publicamente como Vulnerabilidades e Exposições Comuns (CVEs), as equipes de segurança têm pouca escolha a não ser solicitar que o desenvolvedor refatore o código para incluir versões diferentes das dependências. Ninguém fica feliz nessa situação, pois bloqueia novos recursos e pode ser enlouquecedor reverter versões de componentes e esperar que nada quebre. Os desenvolvedores precisam de uma maneira de determinar rapidamente se um componente que desejam usar possui alguma vulnerabilidade conhecida antes de fazer um pull request.

Felizmente para os desenvolvedores e equipes de segurança, agora é mais fácil e rápido do que nunca escanear CVEs localmente, automaticamente, e antes de qualquer commit ser feito.

Entendendo o que está em seu código antes de ser comprometido

A Análise de Código-Fonte (SCA) geralmente surge em discussões sobre a Lista de Materiais de Software (SBOMs) e em conversas sobre conformidade, e normalmente muito depois da escrita real do código. Com a Análise de Composição de Software (SCA) da GitGuardian, os desenvolvedores escaneiam problemas diretamente de seus terminais em qualquer ponto de seu trabalho, graças ao ggshield, o GitGuardian CLI. Com um único comando rápido, os programadores podem testar se uma versão específica de uma dependência introduz uma vulnerabilidade conhecida. O GitGuardian até mostrará se uma correção está disponível.

Neste exemplo, adicionamos um requisito para a biblioteca `go-getter` e especificamos a versão 1.7.1. Pode haver muitas razões pelas quais um desenvolvedor usaria aquela versão, como copiar de um tutorial mais antigo ou um post online que explica a funcionalidade daquela biblioteca. Um simples escaneamento de SCA mostra que não apenas essa versão introduziria uma vulnerabilidade conhecida, mas também há uma correção disponível na versão 1.7.4.

Escaneando apenas as novas mudanças automaticamente

Embora escanear CVEs em nosso código localmente seja muito poderoso, ainda é um processo manual. Os humanos são ótimos em serem criativos, mas não são ótimos quando se trata de fazer consistentemente cada etapa de um processo repetidamente, especialmente as tediosas. É uma coisa boa que todo desenvolvedor tenha toda uma plataforma de automação construída diretamente em sua ferramenta de gerenciamento de controle de origem favorita, Git Hooks.

A digitalização do SCA da GitGuardian pode ser acionada automaticamente na fase de pré-commit ou pre-push do fluxo de trabalho do Git. O momento ideal para pegar qualquer problema no código é antes que ele faça parte da história de seu projeto. Se nunca for comprometido, então é improvável que uma varredura de segurança mais tarde detecte um problema no pipeline de CI/CD ou produção. Enquanto novas CVEs surgem diariamente, devemos fazer todo o possível para garantir que não estamos adicionando conhecidas aos nossos códigos.

Digitalizando apenas o escopo correto de trabalho

Você verá no exemplo de git hook que estamos usando o comando `ggshield sca scan pre-commit` em vez de `ggshield sca scan all` conforme usado no exemplo manual. Essa variação na varredura de SCA limita a digitalização apenas ao diretório de trabalho atual, o que significa apenas as alterações feitas desde o último commit. Dessa forma, se houver vulnerabilidades existentes na base de código que ainda não puderam ser resolvidas, elas não bloquearão suas alterações. Apenas novos problemas com dependências serão identificados e o commit será interrompido em seguida.

Neste exemplo, não apenas o commit não acontece, mas a mensagem do GitGuardian nos diz que há uma correção disponível em uma versão posterior. Tudo o que nosso desenvolvedor precisa fazer é alterar um caractere no arquivo identificado, salvá-lo e então poderá fazer o novo commit com sucesso.

Deslocar para a esquerda significa resolver problemas mais cedo

Embora a segurança exija a participação de toda a organização, dotar sua equipe de desenvolvimento com as ferramentas certas para encontrar e eliminar problemas de segurança cedo pode eliminar muitas dores de cabeça mais tarde no processo de entrega de software. Quanto mais perto da produção você encontra um problema, mais caro se torna corrigi-lo. Por isso, tornamos o GitGuardian SCA disponível como um Git Hook pré-commit, para que todo desenvolvedor possa se prevenir de adicionar uma vulnerabilidade conhecida ao pipeline e eventualmente à produção.

O GitGuardian SCA está disponível para um teste gratuito de 2 semanas após uma rápida conversa com nossa equipe. A SCA é apenas uma das preocupações que a suite de produtos GitGuardian aborda. Também integramos uma série de ferramentas de segurança, incluindo Detecção de Segredos, Monitoramento Público, Segurança de Infraestrutura como Código e Honeytoken.

Encontrou este artigo interessante? Este artigo é uma contribuição de um de nossos parceiros valorizados. Siga-nos no Twitter e no LinkedIn para ler mais conteúdo exclusivo que postamos.