Defendendo Seus Commits Contra CVEs Conhecidos Com o GitGuardian SCA E Git Hooks

Todos os desenvolvedores querem criar software seguro e confiável. Eles devem se orgulhar de lançar seu código com a plena confiança de que não introduziram nenhuma fraqueza ou anti-padrão 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 software moderno. Infelizmente, para os desenvolvedores preocupados com a segurança, a maioria das vulnerabilidades modernas vem desses componentes de software.

À medida que novas vulnerabilidades surgem e são publicamente reportadas como Vulnerabilidades e Exposições Comuns (CVE), as equipes de segurança têm pouca escolha a não ser pedir ao desenvolvedor para refatorar o código para incluir diferentes versões das dependências. Ninguém fica feliz nessa situação, pois isso bloqueia novos recursos e pode ser enlouquecedor retroceder 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 uma vulnerabilidade conhecida antes de fazer uma solicitação de envio.

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

Compreender o que há em seu código antes de ser comprometido

A Análise de Código-fonte (SCA) geralmente surge em discussões de Faturas 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 fazem a varredura de problemas diretamente de seu terminal em qualquer ponto de seu trabalho, graças ao ggshield, a CLI da GitGuardian. 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 há uma correção 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 essa versão, como copiar de um tutorial mais antigo ou de um post online que explica a funcionalidade dessa biblioteca. Uma simples varredura 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.

Automatizar a varredura apenas das novas alterações

Embora a varredura de CVEs em nosso código localmente seja muito poderosa, ainda é um processo manual. Os humanos são ótimos em ser criativos, mas não somos ótimos em fazer consistentemente cada etapa de um processo repetidamente, especialmente as tediosas. É uma coisa boa que cada desenvolvedor tenha uma plataforma de automação inteira integrada diretamente em sua ferramenta de gerenciamento de controle de origem favorita, Git Hooks.

A varredura SCA da GitGuardian pode ser acionada automaticamente na fase pré-commit ou pré-push do fluxo de trabalho do Git. O momento ideal para pegar qualquer problema no código é antes que ele entre na história do projeto. Se nunca for comprometido, então uma varredura de segurança não provavelmente detectará posteriormente um problema no pipeline CI / CD ou na produção. Enquanto novas CVEs surgem diariamente, devemos fazer tudo o que podemos para garantir que não estamos adicionando vulnerabilidades conhecidas ao nosso código.

Varredura apenas o escopo correto de trabalho

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

Na prática, não apenas o commit não acontece, mas a mensagem da 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 necessite de toda a organização, armar sua equipe de desenvolvimento com as ferramentas necessárias para encontrar e corrigir 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ê encontrar um problema, mais caro será corrigi-lo. É por isso que tornamos a SCA da GitGuardian disponível como um Git Hook pré-commit, para que cada desenvolvedor possa evitar adicionar uma vulnerabilidade conhecida à pipeline e, eventualmente, à produção.

A SCA do GitGuardian 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 da GitGuardian aborda. Também integramos uma variedade de ferramentas de segurança, incluindo Detecção de Segredos, Monitoramento Público, Segurança de Infraestrutura como Código e Honeytoken.