Header Ads

Como a assinatura de software da Linux Foundation combate ataques à cadeia de suprimentos

Shutterstock / kenary820

Projetos de código aberto comprometidos e usados ​​para espalhar malware podem ser coisa do passado. A iniciativa de assinatura de software da Linux Foundation quer ser um Let &’ s Encrypt para lançamentos de software.

O problema

O uso generalizado do código aberto é surpreendente. Software, ferramentas e bibliotecas de código aberto são encontrados em quase todos os desenvolvimentos de software não triviais que estão ocorrendo. Infelizmente, o que torna o código aberto atraente — você tem acesso ao código-fonte do software e qualquer pessoa pode enviar correções de bugs e novos recursos — apresenta um vetor de ataque que pode ser explorado pelos agentes da ameaça.

Os projetos de código aberto tiveram código malicioso injetado neles por cibercriminosos que usam a popularidade do produto de código aberto como método de distribuição de malware. Normalmente, ele fornecerá aos atores da ameaça uma porta dos fundos para as vítimas &’ computadores. Ele também pode executar um registrador de pressionamento de tecla ou baixar o software malicioso real dos servidores do cibercriminoso.

Este tipo de ataque é uma forma de ataque à cadeia de suprimentos. Em um ataque à cadeia de suprimentos, as vítimas não são diretamente comprometidas. A carga maliciosa é inserida em algo em um dos fornecedores da vítima. Quando a vítima adquire o item contaminado, a carga maliciosa é acionada e a vítima fica comprometida. O exemplo mais famoso de um ataque à cadeia de suprimentos foi o usado no ataque do Stuxnet à planta de enriquecimento de urânio em Natanz, Irã.

O software de código aberto é uma plataforma óbvia para os cibercriminosos usarem para esse tipo de ataque. Em resposta, a Linux Foundation está lançando o sigstore. sigstore é um serviço gratuito — desenvolvido em conjunto com o Google, Red Hat e Purdue University — que os desenvolvedores de software podem usar para assinar digitalmente suas versões de software.

sigstore protege os consumidores de código aberto de ataques como ataques de confusão de dependência. Esses ataques induzem os gerenciadores de pacotes a instalar uma versão mal-intencionada hospedada remotamente de um recurso disponível localmente, como um arquivo de biblioteca. O gerenciador de pacotes é informado de que há uma dependência no software que está sendo instalado e que o arquivo da biblioteca local precisa ser atualizado. A versão contaminada hospedada remotamente tem um número de versão maior que satisfaz a dependência falsa. A “ atualização ” ocorre e o sistema fica comprometido.

Como funciona o sigstore

Como todos os esquemas de assinatura e certificação, o valor da assinatura ou do certificado está vinculado ao grau de confiança que as pessoas têm na autoridade emissora. sigstore usa o OpenID Connect da OpenID Foundation, que é baseado no esquema X.509 padrão da indústria para definir e gerenciar certificados. sigstore usa o protocolo de autenticação OpenID para vincular os certificados à identidade do desenvolvedor. Normalmente, é o endereço de e-mail ou outro identificador de conta.

O cliente sigstore cria um par de chaves de curta duração. Ele consulta a sigstore Public Key Infrastructure (PKI), que verifica se há uma verificação válida do OpenID Connect e emite um certificado se tudo estiver bem. O certificado é criado usando os valores do par de chaves que serão usados ​​para assinar o software.

Uma trilha de auditoria de certificados e assinaturas é mantida como um registro público imutável. O log pode ser usado para verificar versões e certificados de software. Ele fornece uma prova acessível ao público da assinatura em um arquivo. As assinaturas subsequentes serão exclusivas porque a hora e a data também são registradas. Isso fornece um conjunto de garantias sobre as origens e proveniência dos arquivos de código aberto e permite que políticas de segurança baseadas em assinaturas interceptem arquivos que não podem ser verificados e confiáveis.

Se um código malicioso for injetado em um projeto de código aberto e não for encontrado pelos processos de gerenciamento de mesclagem ou código e revisão por pares, ele pode ser compilado em um binário. Se o binário for assinado digitalmente, a sigstore não saberá sobre a ameaça incorporada e poderá, teoricamente, certificar um lançamento malicioso.

Nessa circunstância, o registro público de assinaturas pode ser um recurso para investigações sobre o ataque e como um meio de aviso prévio a outras pessoas sobre um binário comprometido. Podem ser construídos sistemas que comparem os certificados binários com um banco de dados de versões boas e comprovadas ruins.

Isso pode funcionar de maneira semelhante ao site Have I Been Pwned. Você pode pesquisar manualmente o seu e-mail no site deles. Se o seu e-mail for encontrado, significa que ele foi incluído em uma violação de dados. Você é informado de qual violação de dados de qual site expôs seus dados pessoais.

Não é difícil imaginar sistemas que verificariam o número da versão e a autenticidade da assinatura em um banco de dados de referência que enviou de volta uma decisão de ir / não em relação a uma versão de software assinada. Além disso, os desenvolvedores podem ser notificados cada vez que seu endereço de e-mail ou OpenID Connect ID for usado em um evento de assinatura. Se eles não iniciaram o evento, ele precisa ser investigado.

Vamos criptografar, mas para software

Em uma postagem do blog de março de 2021, o Google descreve o sigstore como sendo Let &’ s Encrypt, mas para versões de software. Let &’ s Encrypt é uma autoridade de certificação gratuita e aberta que gera certificados SSL / TLS para sites HTTPS. Ele permite que esses sites se autentiquem positivamente para que os visitantes possam ter certeza de que o site é realmente o que diz ser. Assim que a identidade do site for estabelecida, as informações da chave pública no certificado serão usadas pelo navegador do visitante para criptografar as comunicações entre o computador e o site. O processo para obter um certificado do Let &’ s Encrypt é automatizado.

O blog do Google continua: “ Assim como Let &’ s Encrypt fornece certificados gratuitos e ferramentas de automação para HTTPS, a sigstore fornece certificados e ferramentas gratuitas para automatizar e verificar assinaturas de código-fonte. O Sigstore também tem o benefício adicional de ser apoiado por registros de transparência, o que significa que todos os certificados e atestados são globalmente visíveis, detectáveis ​​e auditáveis. ”

Domando o Velho Oeste

A forma como o software livre é usado hoje era inimaginável apenas 10 anos atrás. A adoção do código aberto no mundo do desenvolvimento mais amplo se deve a mais do que acessibilidade ao código-fonte, a qualidade do código e o tempo de resposta para correções de bugs e patches.

O código aberto costumava ser visto com suspeita. Mas as organizações obtêm código aberto agora. O modelo de código aberto é reconhecido como tendo mais a ver com marketing e publicação do que uma devoção às muitas variantes da GNU General Public License (GPL).

Principalmente, é uma maneira de divulgar seu código ou produto. Obtenha uma conta GitHub, escreva seu programa e diga às pessoas que ele está disponível. Se for bom, vai crescer e, com sorte, vai crescer como uma bola de neve. Quer se envolver em um projeto de código aberto? Simples. Envie uma solicitação de mesclagem para o repositório Git ou ofereça ajuda com a documentação.

O código-fonte aberto tem sido perturbador nas formas mais positivas. Mas também foi gratuito para todos. O ecossistema de código aberto clama por algo que possa fornecer transparência, verificação e auditoria à cadeia de suprimentos de software.

sigstore mostra todo o potencial para preencher essa necessidade com um sistema que é gratuito, fácil e escalonável.

Nenhum comentário