Um mês depois que um worm de autopropagação foi descoberto no repositório de código NPM de código aberto, um worm semelhante foi encontrado visando extensões do Visual Studio Code em mercados abertos.

Pesquisadores da Koi Security, com sede em Israel, dizem que o malware, que eles apelidaram de GlassWorm, foi encontrado em extensões nos mercados OpenVSX e Microsoft VS Code.

“Este é um dos ataques à cadeia de abastecimento mais sofisticados que já analisamos”, alertam os investigadores. “E está se espalhando agora.”

Se as extensões comprometidas forem transformadas em código, elas coletam credenciais NPM, GitHub e Git deixadas pelos desenvolvedores em seu trabalho, drenam fundos de 49 carteiras de criptomoedas, implantam servidores proxy SOCKS em computadores de desenvolvedores, instalam servidores VNX ocultos para acesso remoto e usam credenciais roubadas para comprometer pacotes e extensões adicionais.

Sete extensões OpenVSX foram comprometidas na semana passada e baixadas mais de 35 mil vezes, diz o relatório. Além disso, outra extensão infectada foi detectada no mercado VS Code no fim de semana.

Os worms nas extensões evitam a detecção usando uma técnica antiga: incluindo malware escrito com seletores de variação Unicode. Esses são caracteres especiais que fazem parte da especificação Unicode, mas não produzem nenhuma saída visual.

“Para um desenvolvedor que faz revisão de código, parece linhas em branco ou espaços em branco”, diz Koi Security. “Para ferramentas de análise estática que procuram códigos suspeitos, parece nada.” Mas para um interpretador JavaScript, é um código executável.

“Os CISOs deveriam tratar isso como um incidente de segurança imediato se seus desenvolvedores usarem o VS Code”, diz Tanya Janca, chefe da consultoria canadense de treinamento em codificação segura SheHacksPurple.

“Como as extensões herdam permissões completas do VS Code, uma vez instaladas, elas podem roubar credenciais, exfiltrar o código-fonte e permitir comando e controle remoto (por exemplo, por meio de proxies VNC e SOCKS). Nível de risco: muito alto.”

Os CISOs devem iniciar seus processos de resposta a incidentes imediatamente, disse ela, realizando um inventário para ver quais aplicativos corporativos usam o VS Code, quais extensões eles contêm e determinando se algum está na lista de afetados conhecidos.

Eles também devem monitorar comportamentos suspeitos de aplicativos, acrescentou ela, especificamente conexões e processos de saída estranhos mencionados na pesquisa, servidores VNC não aprovados e processos proxy SOCKS de longa duração.

Eduque seus desenvolvedores

Enquanto isso, Janca recomenda desabilitar todas as atualizações automáticas de aplicativos e educar todos os desenvolvedores sobre a situação e as extensões a serem observadas.

“Bloqueie permanentemente o acesso ao registro OpenVSX e a todos os outros mercados não confiáveis/desconhecidos”, ela aconselha. “Faça com que os desenvolvedores saiam de suas ferramentas de desenvolvedor e reiniciem. Revogue e alterne quaisquer credenciais que possam ter sido derramadas antes de fazer login novamente em tudo.”

Siga as práticas normais para resposta a incidentes, concluiu ela: Detectar, conter, erradicar, recuperar.

Mercados segmentados

O relatório da Koi Security é o mais recente de uma série de alertas de que os agentes de ameaças estão cada vez mais visando os mercados do VS Code em ataques à cadeia de suprimentos. Na semana passada, a Koi Security expôs um ator de ameaça chamado TigerJack, espalhando extensões maliciosas. E os pesquisadores da Wiz acabaram de publicar uma pesquisa mostrando o abuso generalizado dos mercados OpenVSX e VS Code.

O uso de Unicode para ocultar malware foi exposto recentemente, no mês passado, por pesquisadores da Radware, que descobriram que ele estava sendo usado para comprometer o ChatGPT.

Esses relatórios não deveriam surpreender. Os mercados de código aberto, onde os desenvolvedores podem fazer upload de código para outros usarem em seus aplicativos, há muito tempo são alvos de agentes de ameaças como veículos para inserção de código malicioso em projetos. O código então se espalha pelos ambientes do desenvolvedor ou do cliente para roubar credenciais e dados. Coletivamente, estes são conhecidos como ataques à cadeia de suprimentos.

Entre os repositórios mais direcionados estão GitHub, GitLab e NPM.

A Microsoft oferece aos desenvolvedores a capacidade de adicionar extensões e temas ao Visual Studio Code para facilitar a vida dos desenvolvedores, bem como para aprimorar a funcionalidade. Uma extensão pode adicionar recursos como depuradores, novas linguagens ou outras ferramentas de desenvolvimento, enquanto um tema é um tipo de extensão que altera a aparência do editor, controlando coisas como cores e fontes.

Aproveita o blockchain

Os pesquisadores da Koi Security encontraram a extensão vermifugada no OpenVSX quando seu mecanismo de risco sinalizou atividades suspeitas em uma atualização de uma extensão chamada CodeJoy. uma ferramenta de produtividade para desenvolvedores com centenas de downloads. No entanto, a versão 1.8.3 introduziu algumas mudanças comportamentais suspeitas. O código-fonte incluía o que parecia ser uma enorme lacuna entre as linhas que, na verdade, era um código malicioso codificado em caracteres Unicode não imprimíveis que não podem ser visualizados em um editor de código.

Pior ainda, o malware usa o blockchain público Solana como infraestrutura de comando e controle (C2) para seu objetivo de caçar credenciais de login, especialmente aquelas para carteiras criptografadas. O malware também alcança um evento do Google Agenda como um mecanismo C2 de backup.

As credenciais roubadas do NPM, GitHub, Git e OpenVSX também ajudam o malware a se espalhar como um worm.

Finalmente, o malware injeta um trojan de acesso remoto nas estações de trabalho dos desenvolvedores vítimas, transformando-os em servidores proxy SOCKS. As estações de trabalho podem então ser usadas para acessar os sistemas de TI de uma organização, tornando-se pontos de acesso à rede interna, backdoors persistentes, proxies para atacar outros sistemas internos e canais de exfiltração de dados.

Os desenvolvedores são o ‘alvo principal’

Os desenvolvedores são o principal alvo de ataques atualmente, apontou Johannes Ullrich, reitor de pesquisa do SANS Institute. O que muitas vezes eles não percebem é que qualquer extensão instalada, mesmo que pareça benigna, tem acesso total ao seu código e pode fazer modificações sem informar explicitamente o desenvolvedor.

Os CISOs devem incluir os desenvolvedores nas discussões sobre a segurança das ferramentas de desenvolvimento, aconselha. Limitar as ferramentas permitidas costuma ser contraproducente, pois os desenvolvedores identificarão soluções alternativas para realizar o trabalho. A segurança deve cooperar com os desenvolvedores para ajudá-los a usar as ferramentas necessárias com segurança, e qualquer produto de proteção de endpoint precisa ser ajustado para suportar os padrões de uso exclusivos dos desenvolvedores.

Este não é apenas um problema da cadeia de suprimentos, disse Will Baxter, CISO de campo da Team Cymru, é uma nova camada de infraestrutura que combina ferramentas de crime cibernético, resiliência de blockchain e articulação de ferramentas de desenvolvedor. Operadores de registro, pesquisadores de ameaças e parceiros de monitoramento de blockchain precisam compartilhar inteligência e trabalhar juntos mais estreitamente para sinalizar esses ataques híbridos, acrescentou..

Mais conselhos para OSCs

Janca afirma que para reduzir o risco de ataques à cadeia de abastecimento, os líderes de segurança e os profissionais de segurança de aplicações devem:

  • reduza a superfície de ataque sempre que possível: instale apenas recursos e outros softwares que eles usam, por exemplo, desinstale quaisquer extensões do VS Code que não sejam usadas e remova todas as dependências não utilizadas do código;
  • monitorar todas as estações de trabalho dos funcionários em busca de comportamento anômalo, com mais foco naqueles que têm acesso privilegiado, como desenvolvedores de software.
  • aplique o mínimo de privilégios para gerenciamento de identidade e acesso, especialmente para máquinas de desenvolvedores
  • implementar um processo de gestão de mudanças rápido e eficiente que inclua mudanças na cadeia de fornecimento de software;
  • treinar desenvolvedores em codificação segura, protegendo sua cadeia de suprimentos e seu papel durante a resposta a incidentes, para ajudar a prevenir problemas como esse no futuro ou para responder com mais rapidez e elegância
    Existem várias ferramentas de verificação de segurança que podem ser usadas para reduzir riscos e detectar problemas antes que se tornem incidentes de segurança, como scanners de extensão, scanners secretos, ferramentas de segurança da cadeia de suprimentos (SCA e SBOM) e proteção de endpoint;
  • seguir as práticas recomendadas adequadas de gerenciamento de segredos, para que pacotes maliciosos como esses não possam coletar credenciais;
  • apenas repositórios, mercados, etc. aprovados devem ser usados ​​em uma organização. Bloqueie todos os locais desconhecidos ou não confiáveis ​​para download de códigos, pacotes, imagens e extensões;
  • fortalecer toda a cadeia de fornecimento de software, não apenas componentes e códigos de terceiros. Isso inclui atualizações regulares e bloqueio de acesso ao CI/CD, IDEs e estações de trabalho do desenvolvedor, artefatos e muito mais.
  • pressionar os governos a fornecer uma solução para o ecossistema de software de código aberto muito inseguro do qual tantos de nós confiamos. Ou dê preferência a linguagens e estruturas de desenvolvimento de código fechado, embora isso, ela admite, não teria ajudado neste caso, já que .Net é de código fechado, mas o VS Code Marketplace não.