Aikido

Aikido Drydock | Uma forma de os responsáveis pela manutenção detetarem malware antes do lançamento

Escrito por
Dania Durnas

Responsáveis pela manutenção, isto é para vocês. Estabelecemos uma parceria com a Drydock para que os responsáveis pela manutenção possam ver exatamente o que está dentro de um pacote antes de o aprovarem, detetando malware antes do seu lançamento, em vez de o revelarem posteriormente. A Drydock permite-vos analisar os bytes reais de uma versão preparada antes de esta ser lançada, para que as versões maliciosas sejam detetadas na fase de aprovação, em vez de numa análise pós-incidente. Para os responsáveis pela manutenção do npm e do PyPI, a Drydock está disponível gratuitamente.

Impedir o malware antes de ser publicado

O último ano foi marcado por inúmeros ataques de malware a pacotes de código aberto. Já nos habituámos a ver alertas e tweets com mais um «ALERTA! Grande ataque de malware!». As melhorias na deteção e na comunicação de incidentes são importantes, mas quando chega a altura de divulgarmos a informação, já é tarde demais. Os responsáveis pela manutenção dos pacotes merecem mais apoio numa fase mais precoce deste processo, para os ajudar a detetar e prevenir problemas antes que estes se espalhem e todos entrem em pânico e tenham de se dedicar ao controlo de danos.

O recente anúncio do npm sobre a publicação por fases constitui um passo nessa direção. A atualização introduz uma fila de preparação, na qual todas as versões dos pacotes aguardam que um mantenedor com autenticação de dois fatores (2FA) aprove manualmente a publicação. No entanto, embora isto ofereça uma oportunidade de revisão, o mantenedor não consegue ver o conteúdo do pacote preparado. Pode ver o número da versão, mas não os bytes que se encontram no interior do pacote nem o que, se é que houve alguma alteração, mudou em relação ao estado atual do repositório.

Aikido empenhada em ajudar os mantenedores a impedir ataques de malware antes que estes ocorram. É por isso que estabelecemos uma parceria com a Drydock para tornar a publicação de pacotes mais segura e a publicação por fases mais útil. Se mantém um pacote npm ou PyPI, a Drydock oferece-lhe uma forma gratuita de verificar o que está realmente incluído numa versão antes da sua publicação. A Drydock analisa os pacotes npm em fase de preparação para lhe mostrar exatamente o que mudou nos bytes antes de aprovar, para que o mantenedor responsável pela aprovação possa finalmente ver o conteúdo do pacote preparado.

No caso do PyPI, que não dispõe de publicação em fases, o Drydock executa a mesma revisão no seu pipeline de lançamento. Este mesmo procedimento aplica-se aos pacotes npm que são publicados sem passar por fases. O suporte a registos adicionais estará disponível em breve. 

Como funciona o Drydock

Quando surge uma nova versão em fase de teste, o Drydock deteta-a, descarrega o ficheiro tarball exato para uma sandbox temporária, compara-o com a última versão publicada e apresenta-lhe o relatório no seu painel de controlo. Pode ver todas as alterações, com as relevantes para a segurança assinaladas e classificadas por gravidade. Essas marcações detetam aquilo de que o malware depende, como um novo script do ciclo de vida pré-instalação ou pós-instalação, ficheiros que não existiam anteriormente, código que inicia um processo ou acede à rede, ou um binário adicionado. Cada descoberta é associada à linha que a introduziu, pelo que a revisão se apresenta como uma lista curta que pode ser analisada em segundos, em vez de uma enorme quantidade de código-fonte. Lê as descobertas e, em seguida, aprova a etapa de publicação no npm com a sua própria autenticação de dois fatores (2FA).

O fluxo acima pressupõe uma publicação no npm em fases. No caso do PyPI, ou de um pacote npm que seja publicado sem passar por fases, o Drydock funciona como um controlo de ambiente do GitHub Actions. A versão fica em pausa no seu pipeline antes de chegar ao registo. O Drydock analisa o artefacto compilado e publica o mesmo diff e as conclusões classificadas por gravidade, e um mantenedor aprova ou rejeita no Drydock antes de qualquer coisa ser tornada pública.

O Drydock nunca publica por si próprio, pelo que não se estão a introduzir pontos de falha no processo de lançamento. O Drydock utiliza um token npm de leitura exclusiva, apenas o suficiente para visualizar as publicações preparadas. Está limitado apenas à leitura de listas de ficheiros e de texto, pelo que nunca executa o conteúdo do pacote. E, com o objetivo de manter as pessoas a par do processo, é sempre uma pessoa que toma a decisão.

Quebrar o ciclo do malware 

Quando o npm e outros gestores de pacotes foram lançados, a publicação instantânea era uma funcionalidade destinada a ecossistemas capazes de crescer rapidamente, uma vez que confiavam nos seus membros. Mas hoje em dia, os atacantes aproveitam-se da rapidez e da facilidade de publicação para levar a cabo ataques com malware.

A publicação por fases rompe esse padrão, ao reter a versão antes de esta ser disponibilizada. O Drydock torna essa retenção significativa, mostrando ao responsável pela manutenção exatamente o que mudou enquanto ainda há tempo para recusar. A deteção ocorre antes do primeiro download, em vez de numa análise a posteriori, depois de o mal já estar feito.

É esse o mundo que queremos para os responsáveis pela manutenção. Menos acordar com notícias sobre malware e mais identificar o problema e resolvê-lo por conta própria.

A configuração é fácil e não tem qualquer custo. Ative a publicação por etapas do npm para o seu pacote, ligue o Drydock à sua organização com um token de leitura apenas e ele começará a rever as versões em fase de teste automaticamente. Para a configuração do GitHub Actions, basta associar a aplicação do GitHub e o ambiente. Conheça o Drydock e saiba mais sobre como começar no site deles.

Compartilhar:

https://www.aikido.dev/blog/drydock-pre-publish-package-review

Assine para receber notícias

4.7/5
Cansado de falsos positivos?

Experimente Aikido como 100 mil outros.
Começar Agora
Obtenha um tour personalizado

Confiado por mais de 100 mil equipes

Agende Agora
Escaneie seu aplicativo em busca de IDORs e caminhos de ataque reais

Confiado por mais de 100 mil equipes

Iniciar Escaneamento
Veja como o pentest de IA testa seu aplicativo

Confiado por mais de 100 mil equipes

Iniciar Testes

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.