Todos os desenvolvedores desejam criar software seguro e confiável. Eles devem se orgulhar de liberar seu código com a plena 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 maior parte do tempo 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 focados em segurança, a maioria das vulnerabilidades modernas vem desses componentes de software.
À medida que novas vulnerabilidades surgem e são publicamente relatadas como Vulnerabilidades Comuns e Exposições (CVEs), 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 novas funcionalidades e pode ser enlouquecedor voltar atrás nas versões dos 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 um pull request.
Felizmente para desenvolvedores e equipes de segurança, agora é mais fácil e rápido do que nunca fazer uma varredura por CVEs localmente, automaticamente e antes de qualquer envio de código.
Entendimento do que está no 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) do GitGuardian, os desenvolvedores fazem varreduras por problemas diretamente de seus terminais em qualquer ponto de seu trabalho, graças ao ggshield, o CLI do 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é mostra 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 teria usado essa versão, como copiar de um tutorial mais antigo ou um post online que explique a funcionalidade dessa biblioteca. Uma varredura SCA simples 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.
Automaticamente varre apenas as novas mudanças
Embora a varredura por CVEs em nosso código localmente seja muito poderosa, ainda é um processo manual. Os humanos são ótimos em ser criativos, mas não são tão bons quando se trata de fazer consistentemente todos os passos de um processo repetidamente, especialmente os tediosos. É uma coisa boa que todo desenvolvedor tenha uma plataforma de automação inteira incorporada diretamente em sua ferramenta favorita de gerenciamento de controle de código-fonte, Git Hooks.
A varredura do SCA do 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 é improvável que uma varredura de segurança mais tarde detecte um problema no pipeline CI/CD ou na produção. Enquanto novas CVEs surgem diariamente, devemos fazer tudo o que estiver ao nosso alcance para garantir que não estamos adicionando conhecidas ao nosso código.
Varredura apenas o escopo de trabalho correto
Você verá no exemplo de 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, ou seja, apenas as alterações que foram feitas desde o último commit. Dessa forma, se houver vulnerabilidades existentes no código-fonte que ainda não podem ser abordadas, elas não bloquearão suas alterações. Apenas novas questões com dependências serão identificadas e o commit será interrompido então.
Neste exemplo, não apenas o commit não acontece, mas a mensagem do GitGuardian nos informa 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 com sucesso o novo commit.
Deslocar para a esquerda significa resolver problemas mais cedo
Embora a segurança exija toda a organização, equipar sua equipe de desenvolvimento com as ferramentas corretas para encontrar e corrigir problemas de segurança precocemente 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 fica corrigi-lo. É por isso que tornamos o GitGuardian SCA disponível como um Git Hook pré-commit, para que todo desenvolvedor possa se prevenir de adicionar uma vulnerabilidade conhecida no pipeline e eventualmente na produção.
O GitGuardian SCA está disponível para um teste gratuito de 2 semanas após uma rápida conversa com nossa equipe. SCA é apenas uma das preocupações que a suíte de produtos do GitGuardian aborda. Nós 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.