Envenenamento de artefatos em ações do GitHub importa malware por meio de pipelines de software

Nó Fonte: 1769941

Um invasor que enviar alterações a um repositório de código aberto no GitHub pode fazer com que projetos de software downstream que incluam a versão mais recente de um componente compilem atualizações com código malicioso.

Isso é de acordo com a Legit Security, empresa de segurança da cadeia de suprimentos de software, que disse em um comunicado publicado em 1º de dezembro que essa fraqueza de “envenenamento de artefato” pode afetar projetos de software que usam GitHub Actions - um serviço para automatizar pipelines de desenvolvimento - acionando o processo de compilação quando uma alteração é detectada em uma dependência de software. 

A vulnerabilidade não é teórica: a Legit Security simulou um ataque ao projeto que gerencia o Rust, fazendo com que o projeto fosse recompilado usando uma versão personalizada – e maliciosa – da popular biblioteca de software GCC, afirmou a empresa no comunicado.

O problema provavelmente afeta um grande número de projetos de código aberto porque os mantenedores normalmente executam testes no código contribuído antes de realmente analisarem o código, diz Liav Caspi, diretor de tecnologia da Legit Security.

“É um padrão comum hoje em dia”, diz ele. “Muitos projetos de código aberto hoje, após uma solicitação de alteração, executam vários testes para validar a solicitação porque o mantenedor não quer ter que revisar o código primeiro. Em vez disso, ele executa testes automaticamente.”

O ataque aproveita o processo de compilação automatizado por meio do GitHub Actions. No caso da linguagem de programação Rust, o padrão vulnerável poderia permitir que um invasor executasse o código de maneira privilegiada como parte do pipeline de desenvolvimento, roubando segredos do repositório e potencialmente adulterando o código, disse a Legit Security.

“Para simplificar: em um fluxo de trabalho vulnerável, qualquer usuário do GitHub pode criar uma bifurcação que constrói um artefato”, a empresa indicado em seu comunicado. “Em seguida, injete esse artefato no processo de construção do repositório original e modifique sua saída. Essa é outra forma de ataque à cadeia de suprimentos de software, em que a saída da compilação é modificada por um invasor.”

A vulnerabilidade permite um ataque semelhante ao o ataque de inserção de malware que teve como alvo o CodeCov e, por meio do software dessa empresa, seus clientes a jusante.

“[A] falta de implementação nativa do GitHub para comunicação de artefatos de fluxo de trabalho cruzado levou muitos projetos e a comunidade GitHub Actions a desenvolver soluções inseguras para comunicação de fluxo de trabalho cruzado e tornou essa ameaça altamente prevalente”, afirmou a Legit Security no comunicado.

O GitHub confirmou o problema e pagou uma recompensa pelas informações, enquanto o Rust corrigiu seu pipeline vulnerável, afirmou a Legit Security.

Fonte: Segurança Legítima

Cadeia de suprimentos de software precisa de segurança

A vulnerabilidade é o mais recente problema de segurança a afetar as cadeias de suprimentos de software. A indústria e as agências governamentais têm procurado cada vez mais reforçar a segurança do software de código aberto e do software fornecido como um serviço.

Em maio de 2021, por exemplo, o governo Biden divulgou sua ordem executiva sobre a melhoria da segurança cibernética da nação, uma regra federal que, entre outros requisitos, determina que o governo exigem padrões básicos de segurança para qualquer software que compra. Do lado da indústria privada, Google e Microsoft têm prometeu bilhões de dólares para reforçar a segurança no ecossistema de código aberto, que fornece o código que compreende mais de três quartos da base de código do aplicativo médio.

Lógico, mas vulnerável

O problema de segurança pertence a uma classe de problemas difíceis de encontrar, conhecidos como problemas lógicos, que incluem problemas com permissões, o potencial de repositórios bifurcados serem inseridos em um pipeline e uma falta de diferenciação entre repositórios bifurcados e base.

Como os projetos de software geralmente usam scripts automatizados para verificar os envios de código antes de encaminhá-los aos mantenedores, as solicitações pull serão executadas por meio da automação antes que qualquer humano verifique se há código malicioso. Embora a automação economize tempo, ela também deve ser considerada uma forma de os invasores inserirem código malicioso no pipeline.

“Quando você está fazendo desenvolvimento de código aberto, o problema é maior, porque você está aceitando contribuições de qualquer pessoa no mundo”, diz Caspi. “Você está executando coisas nas quais não pode confiar.”

O GitHub reconheceu o problema e expandiu as formas de excluir envios de colaboradores externos de serem inseridos automaticamente no pipeline Actions. A empresa atualizou suas APIs GetArtifact e ListArtifacts com o objetivo de fornecer mais informações para ajudar a determinar se um artefato pode ser confiável.

“Qualquer pessoa que faça algo parecido com o que o projeto Rust fez – confiando na contribuição de terceiros – ainda está vulnerável”, diz Caspi. “É um problema de lógica. O GitHub apenas tornou mais fácil escrever um script mais seguro.”

Carimbo de hora:

Mais de Leitura escura