Todos os desenvolvedores desejam criar software seguro e confiável. Eles devem se orgulhar de lançar seu código com total confiança de que não introduziram fraquezas 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 preocupados com a segurança, a maioria das vulnerabilidades modernas vem desses componentes de software.
À medida que novas vulnerabilidades surgem e são reportadas publicamente como Vulnerabilidades Comuns e Exposições (CVEs), as equipes de segurança têm pouca escolha a não ser pedir ao desenvolvedor que refatore o código para incluir diferentes versões das dependências. Ninguém fica satisfeito com essa situação, pois bloqueia novos recursos e pode ser frustrante fazer o rollback das 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 fazerem uma solicitação de envio.
Felizmente para desenvolvedores e equipes de segurança, agora é mais fácil e rápido do que nunca fazer varreduras por CVEs localmente, automaticamente e antes de qualquer commit ser feito.
COMPREENDER 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 o SBOM (Software Bill Of Materials) 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 podem verificar 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 houver 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 usou essa versão, como copiar de um tutorial mais antigo ou de um post online que explica a funcionalidade dessa biblioteca. Uma simples varredura de SCA mostra que essa versão não apenas introduziria uma vulnerabilidade conhecida, mas também há uma correção disponível na versão 1.7.4.
ESCANEAR APENAS AS NOVAS ALTERAÇÕES
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 ótimos quando se trata de fazer consistentemente todos os passos de um processo repetidamente, especialmente os tediosos. É bom que todo desenvolvedor tenha uma plataforma de automação completa integrada diretamente em sua ferramenta de gerenciamento de controle de origem favorita, Git Hooks.
A varredura de SCA do GitGuardian pode ser acionada automaticamente na fase de pré-commit ou pré-push do fluxo de trabalho do Git. O momento ideal para pegar qualquer problema no código é antes mesmo que ele entre na história do seu projeto. Se nunca for commitado, então uma varredura de segurança não provavelmente detectará mais tarde um problema no pipeline CI/CD ou produção. Enquanto novas CVEs surgem diariamente, devemos fazer tudo o que podemos para garantir que não estamos adicionando conhecidas ao nosso código.
VARREDURAR 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 de 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 na base de código que ainda não podem ser abordadas, elas não bloquearão suas alterações. Somente novas questões com dependências serão identificadas e o commit será interrompido então.
DESLOCAR PARA A ESQUERDA SIGNIFICA RESOLVER PROBLEMAS MAIS CEDO
Embora a segurança exija a participação de toda a organização, armar sua equipe de desenvolvimento com as ferramentas certas 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ê encontra um problema, mais caro será corrigi-lo. É por isso que disponibilizamos o GitGuardian SCA como um pré-commit Git Hook, para que todo desenvolvedor possa se prevenir de adicionar uma vulnerabilidade conhecida no pipeline e, eventualmente, na produção.