Dan Lorenc é CEO e cofundador da Chainguard. Anteriormente, ele foi engenheiro de software da equipe e líder da equipe de segurança de código aberto do Google (GOSST). Ele fundou projetos como Minikube, Skaffold, TektonCD e Sigstore.
SolarWinds e Log4j tornaram os problemas de segurança da cadeia de suprimentos de software um tópico de intenso interesse e escrutínio para empresas e governos.
SolarWinds foi um exemplo terrível do que pode dar errado com a integridade dos sistemas de construção de software: os serviços de inteligência russos sequestraram o sistema de construção de software para o software SolarWinds, adicionando sub-repticiamente um backdoor a um software e pegando carona no redes de computadores de milhares de clientes. O Log4J resume o problema de entrada e saída de lixo do software de código aberto: se você estiver pegando um código sem garantia da Internet, haverá bugs e alguns desses bugs serão exploráveis.
O que menos se fala, porém, é que esses ataques representam apenas uma fração dos diferentes tipos de comprometimento da cadeia de suprimentos de software que são possíveis.
Vamos dar uma olhada em alguns dos tipos menos conhecidos, mas não menos sérios, de ataques à cadeia de suprimentos de software.
Commits não autorizados
Esta classe de ataques descreve um usuário não autorizado comprometendo um laptop de desenvolvedor ou um sistema de gerenciamento de código-fonte (por exemplo, GitHub) e, em seguida, enviando o código.
Um exemplo particularmente famoso ocorreu quando um invasor comprometeu o servidor que hospedava a linguagem de programação PHP e inseriu um código malicioso na própria linguagem de programação. Embora descoberto rapidamente, o código, se não corrigido, teria permitido o acesso não autorizado generalizado em grandes áreas da Internet.
O cenário dos fornecedores de segurança está vendendo um sonho que os softwares de “scanners” e “análises de composição de software” podem detectar todas as vulnerabilidades críticas no nível do artefato de software. Eles não.
Felizmente, ferramentas desenvolvidas recentemente como Sigstore e gitsign reduzem a probabilidade desse tipo de ataque e o dano se tal ataque ocorrer.
Comprometimento do servidor de publicação
Recentemente, um invasor, possivelmente os serviços de inteligência chineses, invadiu os servidores que distribuem o aplicativo de mensagens chinês MiMi, substituindo o aplicativo de bate-papo normal por um aplicativo malicioso versão. O malware permitiu que os invasores monitorassem e controlassem o software de bate-papo remotamente.
Este ataque decorre do fato de que a indústria de software falhou em tratar pontos críticos na cadeia de suprimentos de software (como servidores de publicação ou sistemas de construção) com o mesmo cuidado que os ambientes de produção e perímetros de rede.
Ataques de repositório de pacotes de código aberto
Do Python Package Index, que abriga pacotes Python, até o npm, o software mundial agora depende literalmente de vastos estoques de pacotes de software, o equivalente do programador de software de código aberto da Apple App Store.