Como os hackers se infiltram nos projetos de código aberto

Como os hackers se infiltram nos projetos de código aberto

28 de junho de 2019 Off Por Redação CenterDicas

O software de código aberto que a grande maioria das organizações inclui em seus aplicativos críticos é vulnerável à exploração de agentes de ameaças que participam de sua criação. Essa é a mensagem dos profissionais de segurança que apontam para a natureza dos projetos de código aberto e a onipresença do código como uma ameaça real às empresas.

Uma vez insinuados em um projeto de código aberto, os criminosos têm uma ampla gama de opções, mas dentro de uma janela estreita: “Seja um backdoor keylogger ou um Trojan de algum tipo, ele precisa ter algo valioso rapidamente, ou eles precisam fazer isso de uma maneira bem engenhosa para que eles não sejam descobertos por um tempo “, diz Brad Causey, dono da Zero Day Consulting.

A combinação de flexibilidade e disponibilidade faz do projeto open source hacking uma oportunidade que os criminosos estão dispostos a adotar. “É um vetor de ataque bastante conhecido. E eu esperaria que isso provavelmente esteja acontecendo mais do que estamos cientes”, diz Chris Eng, diretor de pesquisa da Veracode.

Outros especialistas concordam. “Não é só ouvido, está acontecendo o tempo todo em torno de nós. Sabemos de tais ações da história e não há razão para acreditar que ainda não está acontecendo”, diz Eran Yalon, chefe de pesquisa de segurança da Checkmarx. 

Em quase todos os projetos de código aberto, os contribuintes devem ter seu trabalho examinado por outros membros antes que o código seja aceito como parte do projeto. O nível de revisão varia de acordo com a reputação do indivíduo – à medida que se tornam mais confiáveis, menos camadas de revisão podem ser necessárias. Especialmente nos projetos de código aberto maiores e mais conhecidos, como as principais distribuições do Linux, os procedimentos são bem definidos e o conjunto de mão-de-obra grande o suficiente para impor esses procedimentos em uma base consistente.

“Os projetos menores não têm esses recursos para fornecer o nível de segurança que o projeto maior tem”, diz Causey. “Então você vê esses projetos sendo comprometidos com mais frequência.”

Projeto pequeno, grande impacto

Os especialistas apontam para projetos de código aberto muito pequenos como o principal alvo para os agentes maliciosos que desejam inserir códigos maliciosos.

“Um pacote muito pequeno pode ser uma dependência de pacotes maiores, e não há limite em quantas camadas as dependências podem ir”, diz Yalon. “Quando você pensa que está construindo um projeto com uma ou duas dependências, você pode estar usando centenas, e não há como realmente checar todas elas.”

Um projeto de código aberto publicado e mantido por um único indivíduo, o fluxo de eventos , foi assumido por um ator mal-intencionado que conseguiu inserir o código de ataque na biblioteca de códigos distribuída pelo NPM, um gerenciador de pacotes popular para desenvolvedores de Javascript.

“O fluxo de eventos era um projeto executado por um desenvolvedor que não tinha tempo suficiente para mantê-lo”, explica Yalon. “Um usuário malicioso o convenceu de que ele poderia assumir o projeto.”

Depois de assumir o projeto, o código foi mantido como de costume – por um tempo. Em seguida, o proprietário mal-intencionado alterou um pacote do qual dependia o fluxo de eventos, inserindo código capaz de seqüestrar determinadas carteiras de Bitcoin.

Quão grande foi o alcance desse ataque? O código do projeto é baixado quase 1,5 milhão de vezes por semana, e é usado em mais de 1.600 outros pacotes que são, eles próprios, baixados milhões de vezes.