aumentando-a-fe-na-autenticidade-do-software-de-codigo-aberto
Aumentando a fé na autenticidade código aberto
Crédito: Alex Shipps e Kelsey Merrill via Midjourney/Massachusetts Institute of Technology

O software de código aberto – software distribuído gratuitamente, juntamente com seu código-fonte, para que cópias, adições ou modificações possam ser feitas prontamente – está “em toda parte”, para citar o Relatório de Análise de Risco e Segurança de Código Aberto de 2023. Dos programas de computador utilizados pelas principais indústrias, 96% incluem software de código aberto, e 76% desses programas consistem em software de código aberto. Mas a percentagem de pacotes de software “contendo vulnerabilidades de segurança continua preocupantemente elevada”, alertou o relatório.

Uma preocupação é que “o software que você obteve de um desenvolvedor confiável tenha sido de alguma forma comprometido”, diz Kelsey Merrill, um que recebeu um mestrado no início deste ano do Departamento de Engenharia Elétrica e Ciência da Computação do MIT. “Suponha que em algum lugar da cadeia de suprimentos o software tenha sido alterado por um invasor com intenções maliciosas”.

O risco de uma violação de segurança deste tipo não é de forma alguma abstrato. Em 2020, para dar um exemplo notório, a empresa texana SolarWinds fez um ao seu programa amplamente utilizado chamado Orion. Hackers invadiram o sistema, inserindo códigos perniciosos no software antes que a SolarWinds enviasse a versão mais recente do Orion para mais de 18.000 clientes, incluindo Microsoft, Intel e cerca de 100 outras empresas, bem como uma dúzia de agências governamentais dos EUA – incluindo os Departamentos de Estado, Defesa, Tesouro, Comércio e Segurança Interna.

Neste caso, o produto que foi corrompido veio de uma grande empresa comercial, mas os lapsos podem ser ainda mais prováveis ​​de ocorrer no domínio do código aberto, diz Merrill, “onde pessoas de origens variadas – muitas das quais são hobbyistas sem qualquer formação em segurança —pode publicar software que será usado em todo o mundo.”

Ela e três colaboradores – sua ex-conselheira Karen Sollins, cientista principal do Laboratório de Ciência da Computação e Inteligência Artificial do MIT; Santiago Torres-Arias, professor assistente de ciência da computação na Purdue University; e Zachary Newman, ex-aluno de pós-graduação do MIT e atual cientista pesquisador do Chainguard Labs – desenvolveram um novo sistema chamado Speranza, que visa garantir aos consumidores de software que o produto que estão adquirindo não foi adulterado e vem diretamente de uma fonte. eles confiam. O papel é Publicados no arXiv servidor de pré-impressão.

“O que fizemos”, explica Sollins, “foi desenvolver, provar que estava correto e demonstrar a viabilidade de uma abordagem que permite a [software] mantenedores permaneçam anônimos.” Preservar o anonimato é obviamente importante, visto que quase todos— incluídos – valorize sua confidencialidade. Esta nova abordagem, acrescenta Sollins, “permite simultaneamente [software] os usuários tenham confiança de que os mantenedores são, de fato, mantenedores legítimos e, além disso, que o código que está sendo baixado é, de fato, o código correto desse mantenedor.”

Então, como os usuários podem confirmar a autenticidade de um pacote de software para garantir, como diz Merrill, “que os mantenedores são quem dizem ser?” A forma clássica de fazer isto, que foi inventada há mais de 40 anos, é através de uma assinatura digital, que é análoga a uma assinatura manuscrita – embora com uma segurança incorporada muito maior através da utilização de várias técnicas criptográficas.

Para realizar uma assinatura digital, são geradas duas “chaves” ao mesmo tempo – cada uma delas um número, composto por zeros e uns, com 256 dígitos. Uma chave é designada como “privada” e a outra como “pública”, mas elas constituem um par matematicamente vinculado.

Um desenvolvedor de software pode usar seus , juntamente com o conteúdo do documento ou programa de computador, para gerar uma assinatura digital anexada exclusivamente a esse documento ou programa. Um usuário de software pode então usar a chave pública – bem como a assinatura do desenvolvedor, além do conteúdo do pacote que baixou – para verificar a autenticidade do pacote.

A validação vem na forma de sim ou não, 1 ou zero. “Obter 1 significa que a autenticidade foi garantida”, explica Merrill. “O documento é o mesmo de quando foi assinado e, portanto, inalterado. Um 0 significa que algo está errado e você pode não querer confiar nesse documento.”

Aumentando a fé na autenticidade código aberto

Embora esta abordagem de décadas seja testada e comprovada em certo sentido, está longe de ser perfeita. Um problema, observa Merrill, “é que as pessoas são ruins no gerenciamento de chaves criptográficas, que consistem em números muito longos, de uma forma segura e que evita que sejam perdidas”. As pessoas perdem suas senhas o tempo todo, diz Merrill. “E se um desenvolvedor de software perdesse a chave privada e entrasse em contato com um usuário dizendo: ‘Ei, tenho uma chave nova’, como você saberia quem realmente é?”

Para responder a essas preocupações, a Speranza está a desenvolver o “Sigstore” – um sistema introduzido no ano passado para aumentar a segurança da cadeia de fornecimento de software. Sigstore foi desenvolvido por Newman (que instigou o projeto Speranza) e Torres-Arias, juntamente com John Speed ​​Meyers do Chainguard Labs. Sigstore automatiza e agiliza o processo de assinatura digital. Os usuários não precisam mais gerenciar chaves criptográficas longas, mas recebem chaves efêmeras (uma abordagem chamada “assinatura sem chave”) que expiram rapidamente – talvez em questão de minutos – e, portanto, não precisam ser armazenadas.

Aumentando a fé na autenticidade código aberto

Uma desvantagem do Sigstore decorre do fato de ele ter dispensado chaves públicas de longa duração, de modo que os mantenedores de software precisam se identificar – por meio de um protocolo chamado OpenID Connect (OIDC) – de uma forma que possa ser vinculada aos seus endereços de e-mail. Esse recurso, por si só, pode inibir a adoção generalizada do Sigstore e serviu como fator motivador por trás – e razão de ser – do Speranza. “Pegamos a infraestrutura básica da Sigstore e a alteramos para fornecer garantias de privacidade”, explica Merrill.

Com Speranza, a privacidade é alcançada através de uma ideia original que ela e seus colaboradores chamam de “co-compromissos de identidade”. Aqui, em termos simples, está como a ideia funciona: Um A identidade de, na forma de um endereço de e-mail, é convertida no chamado “compromisso” que consiste num grande número pseudoaleatório. (Um número pseudoaleatório não atende à definição técnica de “aleatório”, mas, na prática, é quase tão bom quanto aleatório.) Enquanto isso, outro grande número pseudoaleatório – o compromisso (ou co-compromisso) que o acompanha – é gerado e está associado a um pacote de software que este desenvolvedor criou ou recebeu permissão para modificar.

A fim de demonstrar a um usuário potencial de um determinado pacote de software quem criou esta versão do pacote e o assinou, o desenvolvedor autorizado publicaria uma prova que estabelecesse uma ligação inequívoca entre o compromisso que representa sua identidade e o compromisso anexado a o produto de software. A prova realizada é de um tipo especial, chamada prova de conhecimento zero, que é uma forma de mostrar, por exemplo, que duas coisas têm um limite comum, sem divulgar detalhes sobre o que essas coisas – como o desenvolvedor do desenvolvedor endereço de e-mail – na verdade são.

“Speranza garante que o software venha da fonte correta sem exigir que os desenvolvedores revelem informações pessoais, como seus endereços de e-mail”, comenta Marina Moore, Ph.D. candidato no Centro de Segurança Cibernética da Universidade de Nova York. “Isso permite que os verificadores vejam que o mesmo desenvolvedor assinou um pacote várias vezes sem revelar quem é o desenvolvedor ou mesmo outros pacotes nos quais trabalham. Isso fornece uma melhoria de usabilidade em relação às chaves de assinatura de longo prazo e um benefício de privacidade em relação a outros OIDC- soluções baseadas em Sigstore.”

Marcela Mellara, pesquisadora do grupo de Pesquisa de Segurança e Privacidade do Intel Labs, concorda. “Essa abordagem tem a vantagem de permitir que os consumidores de software verifiquem automaticamente se o pacote obtido de um repositório habilitado para Speranza foi originado de um mantenedor esperado e ganhem confiança de que o software que estão usando é autêntico”.

Mais Informações: Kelsey Merrill et al, Speranza: Assinatura de software utilizável e amigável à privacidade, arXiv (2023). DOI: 10.48550/arxiv.2305.06463

Informações do diário: arXiv

 

Citação: Aumentando a fé na autenticidade do software de código aberto (2023, 1º de dezembro) recuperado em 22 de maio de 2024 em https://techxplore.com/news/2023-12-boosting-faith-authenticity-source-software.html

Este documento está sujeito a direitos autorais. Além de qualquer negociação justa para fins de estudo ou pesquisa privada, nenhuma parte pode ser reproduzida sem permissão por escrito. O conteúdo é fornecido apenas para fins informativos.