Mantenedores, isso é para vocês. Estamos em parceria com Drydock para que os mantenedores possam ver exatamente o que há dentro de um pacote antes de aprová-lo, detectando malware antes que seja lançado, em vez de divulgá-lo depois. Drydock permite que você leia os bytes reais de um lançamento em staging antes que ele entre em produção, para que versões problemáticas sejam detectadas na aprovação, e não em uma análise post-mortem. Para mantenedores de npm e PyPI, Drydock está disponível sem custo.
Parando malware antes que seja publicado
O último ano foi repleto de ataques de malware em pacotes de código aberto. Acostumamo-nos a ver alertas e tweets com outro “ALERTA! Grande ataque de malware!” Melhorias na detecção e relatórios são importantes, mas quando temos que divulgar, já é tarde demais. Os mantenedores de pacotes merecem mais suporte no início deste processo, para ajudá-los a detectar e prevenir problemas antes que estejam em circulação e todos estejam em pânico e fazendo controle de danos.
O recente anúncio de publicação em staging do npm é um passo nessa direção. A atualização introduz uma fila de staging, onde todas as versões de pacotes aguardam a aprovação manual de um mantenedor com 2FA para publicação. No entanto, embora isso introduza uma oportunidade de revisão, o mantenedor não consegue ver o conteúdo do pacote preparado. Ele pode visualizar o número da versão, mas não os bytes dentro do pacote ou o que, se algo, mudou em relação ao estado atual do repositório.
Aikido está comprometida em ajudar os mantenedores a impedir ataques de malware antes que aconteçam. É por isso que estamos em parceria com Drydock para tornar a publicação de pacotes mais segura e a publicação em staging mais útil. Se você mantém um pacote npm ou PyPI, Drydock oferece uma maneira gratuita de ver o que realmente está em um lançamento antes que ele seja publicado. Drydock analisa pacotes npm em staging para mostrar exatamente o que mudou nos bytes antes de você aprovar, para que o mantenedor que está aprovando possa finalmente ver o conteúdo do pacote preparado.
Para PyPI, que não possui publicação em staging, Drydock executa a mesma revisão dentro do seu pipeline de lançamento. O mesmo caminho cobre pacotes npm que publicam sem staging. O suporte para registros adicionais também estará disponível em breve.
Como Drydock funciona
Quando uma nova versão em staging aparece, Drydock a coleta, baixa o tarball exato para um sandbox de curta duração, compara-o com a última versão publicada e mostra o relatório em seu dashboard. Você vê cada alteração, com as relevantes para segurança sinalizadas e classificadas por severidade. Essas sinalizações detectam o que o malware utiliza, como um novo script de ciclo de vida preinstall ou postinstall, arquivos que não existiam antes, código que inicia um processo ou acessa a rede, ou um binário adicionado. Cada descoberta é fixada à linha que a introduziu, de modo que a revisão se apresenta como uma lista curta que você pode escanear em segundos, em vez de um bloco de código-fonte. Você lê as descobertas e, em seguida, aprova a etapa de publicação no npm com seu próprio 2FA.
O fluxo acima assume uma publicação npm em staging. Para PyPI, ou para um pacote npm que publica sem staging, Drydock é executado como um gate de ambiente do GitHub Actions. O lançamento pausa em seu pipeline antes de chegar ao registro. Drydock revisa o artefato construído e publica o mesmo diff e as descobertas classificadas por severidade, e um mantenedor aprova ou rejeita em Drydock antes que qualquer coisa se torne pública.
Drydock nunca publica por si só, então você não está adicionando nenhum ponto de falha ao processo de lançamento. Drydock usa um token npm somente leitura, apenas o suficiente para ver publicações em staging. Ele é limitado a apenas ler listagens de arquivos e texto, então nunca executa o conteúdo do pacote. E no espírito de manter os humanos no controle, um humano toma a decisão todas as vezes.
Quebrando o ciclo de malware
Quando npm e outros gerenciadores de pacotes foram lançados, a publicação instantânea era um recurso para ecossistemas que podiam crescer rapidamente porque confiavam em seus membros. Mas hoje, os atacantes exploram a velocidade e a facilidade de publicação para realizar ataques de malware.
A publicação em staging quebra esse padrão ao reter a versão antes que ela seja publicada. Drydock torna essa retenção significativa, mostrando ao mantenedor exatamente o que mudou enquanto ainda há tempo para dizer não. A detecção acontece antes do primeiro download, em vez de em uma análise post-mortem depois que o dano já foi feito.
Esse é o mundo que queremos para os mantenedores. Menos acordar com divulgações de malware, mais encontrar o problema e impedi-lo por conta própria.
A configuração é fácil e não custa nada. Ative a publicação em staging do npm para seu pacote, conecte Drydock à sua organização com um token somente leitura, e ele começará a revisar as versões em staging automaticamente. Para a configuração do GitHub Actions, você só precisa vincular o aplicativo GitHub e o ambiente. Confira Drydock e mais informações sobre como começar em seu site.

