Filmes e programas de TV nos ensinaram a associar hackers de computador a tarefas difíceis, tramas detalhadas e esquemas elaborados. O que o pesquisador de segurança Carlos Fernández e eu descobrimos recentemente em registros de código aberto conta uma história diferente: os malfeitores estão favorecendo a simplicidade, a eficácia e o pensamento centrado no usuário. E para levar seu código malicioso para o próximo nível, eles também estão adicionando novos recursos assistidos pelo ChatGPT. Assim como o software como serviço ( ), parte do motivo pelo qual ofertas de malware como serviço (MaaS) como , e se tornaram tão populares em mercados clandestinos é que eles os canais ativos de suporte ao cliente e seus produtos tendem a ser inteligentes e fáceis de usar. Desnecessário dizer que esses produtos geralmente são criados por cibercriminosos profissionais. SaaS DuckLogs Redline Stealer Racoon Stealer Marque essas caixas, preencha este formulário, clique neste botão... Aqui está sua amostra de malware pronta para uso! Nas ofertas MaaS menos populares que encontramos, como o coletor de token , há uma tentativa de incorporar princípios de design centrados no ser humano, mas o produto falha no suporte ao cliente. Em sua maioria operadas e consumidas por adolescentes, as contas associadas do Telegram estão cheias de reclamações e “mandados” hostis devido a uma promessa quebrada de uma “garantia vitalícia”: Discord Z3US Mesmo antes de ingressar na Sonatype, eu me perguntava . E agora que estou acompanhando uma série de campanhas e agentes mal-intencionados de todo o mundo, algo se esclareceu para mim: a maioria dos pacotes maliciosos que a equipe de pesquisa de segurança me chamou a atenção não são o produto de um gênio peculiar em um moletom codificando em um porão escuro cheio de monitores. Graças à natureza simplista do MaaS, qualquer pessoa pode facilmente criar e fazer upload de amostras para registros de código aberto com custo mínimo de configuração e conhecimento técnico. como seria a face moderna do cibercrime de malware Os pesquisadores da Avast que, desde o início da pandemia de Covid-19, plataformas como Discord e Telegram se tornaram cada vez mais populares entre a população mais jovem. Em vez de usar a mídia social convencional, esses adolescentes criam comunidades de malware no Discord com o objetivo de jogar, conversar e socializar longe da supervisão dos pais. Essas comunidades geralmente são lideradas pelos membros mais proficientes tecnicamente, que se exibem ao se apropriar de servidores concorrentes ou mesmo ao compartilhar capturas de tela com informações que roubaram de vítimas inocentes. Eles também estão procurando ativamente outros membros com base em suas habilidades de programação ou potencial para contribuir com suas campanhas. observaram Como consequência não intencional dessas atividades, os registros resilientes de código aberto dos quais dependemos estão enfrentando uma sobrecarga de recursos. nossos pesquisadores de segurança confirmaram como maliciosos 6.933 pacotes carregados nos registros npm e PyPI. Somente no mês passado, Recentemente de um grupo de língua espanhola chamado EsqueleSquad, que carregou mais de 5.000 pacotes para o PyPI. A carga nesses pacotes tentou baixar um Trojan do Windows do Dropbox, GitHub e Discord usando um comando do PowerShell. , rastreamos a campanha Posteriormente, de outro grupo chamado SylexSquad, possivelmente da Espanha, que criou pacotes contendo malware projetado para exfiltrar informações confidenciais. Além de anunciar seus produtos com vídeos do YouTube e vendê-los em um mercado, eles têm uma pequena comunidade no Discord para recrutar novos membros. E eles parecem ter muito tempo para poluir a cadeia de fornecimento de software de código aberto. investigamos as atividades Código skidded com uma pitada de IA Durante a primeira semana de abril, nosso sistema de IA sinalizou uma série de pacotes carregados no PyPI como suspeitos, posteriormente confirmados como maliciosos por nossos pesquisadores de segurança. Esses pacotes tinham um padrão de nomenclatura que consistia no prefixo “py” seguido por referências a software antivírus: , , e . pydefenderultra pyjunkerpro pyanalizate pydefenderpro Carlos Fernández percebeu que os pacotes foram creditados ao grupo SylexSquad, sugerindo a continuação de uma campanha que havíamos rastreado anteriormente envolvendo os pacotes e . Depois de fazer essa descoberta, começamos a mapear suas atividades. reverse_shell sintaxisoyyo Em um jogo de gato e rato, toda vez que confirmávamos que um desses pacotes era malicioso, a equipe do PyPI nos ajudava a derrubá-lo e, algumas horas depois, os malfeitores introduziam um pacote com o mesmo nome. Para dar a você uma visão completa desta campanha, vamos recapitular nossas descobertas iniciais: Se os desenvolvedores instalassem o pacote PyPI , executaria , um script levemente ofuscado hospedado no GitHub e codificado como uma série de números que correspondem aos códigos ASCII. reverse_shell setup.py bypass.py Após a desofuscação, ele criaria novos valores de registro no Windows para persistência e, consequentemente, chamaria outro arquivo hospedado no GitHub, , um ladrão de informações. Dados confidenciais, como informações do navegador (histórico, cookies, senhas…), contas Steam, contas Telegram, cartões de crédito e até mesmo uma captura de tela da área de trabalho da vítima, seriam carregados usando o webhook Discord do invasor. WindowsDefender.py Avanço rápido para os novos pacotes creditados a este grupo e encontramos um completamente diferente que consiste em código fortemente ofuscado (criptografia AES 256) gerado com , um serviço que promete “proteção por 4 camadas de algoritmo”. Antes de Carlos arregaçar as mangas para o processo de desofuscação, só conseguimos distinguir duas informações do oceano de código camuflado: a URL do serviço e uma mensagem legível: ' ' Cada palavra nessa mensagem era uma variável usada para o processo de desofuscação: setup.py Pyobfuscate why, are, you, reading, this, thing, huh Não vou entrar em detalhes de como o Pyobfuscate funciona, mas com paciência e experiência, Carlos conseguiu desofuscar o código com sucesso e revelar sua verdadeira forma. Ele achou intrigante que o conteúdo ofuscado não estivesse presente apenas em , mas também no anteriormente legível que foi obtido inicialmente do GitHub e agora do serviço . setup.py WindowsDefender.py transfer.sh Quando os malfeitores não se movem rápido o suficiente, há uma boa chance de que pesquisadores de segurança como nós – e as regras do GitHub sobre – arruinem seus planos. Esse é o caso do , que foi inicialmente hospedado no repositório do GitHub “joeldev27” quando foi usado pelos pacotes PyPI e , e tornou-se inativo logo depois. não permitir que a plataforma seja usada como um CDN de malware WindowsDefender.py pycracker pyobfpremium Como esse nome de arquivo estava sendo usado consistentemente, fiz algumas pesquisas e descobri que estava hospedado em um repositório do GitHub chamado . Quando compartilhei essa descoberta com Carlos, ele respondeu maravilhado: “Nas próximas horas, um novo pacote aparecerá no PyPI com um ofuscado. Após a instalação, ele será baixado desse repositório que você acabou de encontrar, um script fortemente ofuscado chamado , que estabelecerá um mecanismo de persistência e baixará o ladrão de informações que investigamos anteriormente, também chamado .” WindowsDefender.py CosasRandoms480 setup.py WindowsDefender.py WindowsDefender.py Sua previsão se tornou realidade quando o pacote apareceu menos de 30 minutos depois no PyPI, usando efetivamente “CosasRandoms480” como um CDN de malware. Relatamos isso à equipe do PyPI e ele foi retirado logo depois. pyobfadvance Cientistas e filósofos se perguntam se . Trabalhar como pesquisador de segurança certamente é assim. Você está preso em um loop de pesquisa, descoberta e relatório, e as mesmas ameaças continuam aparecendo repetidamente. vivemos em uma simulação de computador Dois dias depois, um novo pacote creditado ao SylexSquad foi sinalizado em nosso sistema: O mesmo ofuscado. Mesma URL do executando o mesmo com o mesmo código de mecanismo de persistência e a mesma execução do ladrão de informações em . Tudo parecia o mesmo, mas o arquivo e um novo script estava sendo chamado de : pydefenderpro. setup.py mesmo repositório GitHub WindowsDefender.py WindowsDefender.py não estava mais ofuscado transfer.sh “É um RATO!” Carlos me mandou uma mensagem no . “E também um ladrão de informações—” Slack “Um RAT Mutante?” Eu respondi, referindo-me a uma tendência de um tipo de malware que combina trojans de acesso remoto e ladrões de informações. que acompanhamos na selva “Exatamente”, disse Carlos. A pesquisa OSINT revelou que o novo código RAT não era original, mas uma cópia de do : uma cópia DiscordRAT : um pacote malicioso é relatado à equipe do PyPI, e a equipe do PyPy o remove. Enxágue e repita Claro, um novo pacote, entrou em cena logo depois. A diferença aqui é que os malfeitores migraram para o serviço em vez do GitHub para baixar , provavelmente devido à desativação do repositório “CosasRandoms480”. pydefenderultra, pastebin.pl WindowsDefender.py Suspeitamos que a versão legível do facilitou a confirmação de que ele estava quebrando . Mas por que os maus atores decidiram desofuscar o roteiro? Foi muito complicado para seu processo simplista? WindowsDefender.py as regras do GitHub O RAT continuou mutando. O menu e os comentários foram agora traduzidos para o espanhol e tiveram funcionalidades adicionais. O ciclo continuou quando eles carregaram outro pacote, . Desta vez, as funcionalidades adicionadas incluíram um keylogger, gravador de áudio, exfiltração de dados do sistema operacional e a capacidade de fazer upload de qualquer arquivo da vítima para o canal Discord do invasor. Os comentários sobre o código foram extraordinariamente abundantes, o que normalmente é associado apenas ao código do tutorial e não a um malware. pyjunkerpro “Espere”, disse Carlos, pensando em voz alta, “E se eles estiverem usando IA para criar novas funcionalidades?” Ferramentas como e fornecem um bom ponto de partida para detectar texto gerado por IA. No entanto, identificar código gerado por IA ainda é um desafio, pois atualmente não existem ferramentas disponíveis (que eu saiba) capazes de fazer isso com precisão. Felizmente, os humanos ainda são muito bons em reconhecer padrões… GPTZero Copyleaks Abri rapidamente uma guia ChatGPT e digitei um prompt em espanhol, que se traduzia em: “Escreva código Python para um bot Discord que carrega áudio de um computador remoto usando PyAudio”. A saída que obtive foi estranhamente semelhante: Parece que estávamos rastreando script kiddies que copiaram o código de várias fontes e usaram o ChatGPT para adicionar novos recursos. O código exclusivo resultante deu a eles a confiança necessária para anunciá-lo no ou vendê-lo em seu próprio mercado. E ninguém suspeitaria que não era uma criação original. YouTube Isso levanta uma questão intrigante: como devemos chamar esses maus atores? Crianças com script de IA? Crianças prontas? Perguntei ao ChatGPT e ele disse: Se um indivíduo está usando o ChatGPT para adicionar novos recursos ao seu malware, ele pode ser considerado um tipo mais avançado de hacker do que um script kiddie tradicional. Pode ser mais preciso referir-se a eles como "hackers" ou "hackers assistidos por IA". Fascinante. O ChatGPT está dando a eles mais status. OSINT com uma pitada de IA Por uma questão de experimentação, Carlos queria tentar um prompt para ver se a ferramenta também nos ajudaria a obter mais informações sobre as atividades dos malfeitores. “Preciso de um código Python que possa usar a API do Discord como um bot (usando um token). O script deve se conectar ao bot e exibir as informações da guilda, membros da guilda, canais da guilda e histórico de mensagens.” Como esperado, o ChatGPT gerou um código altamente comentado e instruções claras para começar: . Portanto, copiamos o token que os "hackers assistidos por IA" adicionaram em e o colamos em nosso script Python gerado por IA. Para usar este código, substitua "your_bot_token_here" pelo token do seu bot e execute o script Python MicrosoftUpdate.py Nós rodamos esse código… …e nós entramos! Reunimos informações sobre os membros (MEE6, $Demon666, $̷y̷n̷t̷a̷x̷E̷r̷r̷o̷r̷, aitanaxx05 + 4 reps, Esmeralda, SylexNaranjoDomina e AI Image Generator), canais e histórico de mensagens. Acontece que eles já haviam infectado alguns usuários - identificamos um IP de Cuba e outro da Índia. E as informações do sistema operacional estavam sendo filtradas para canais nomeados com o nome de usuário da vítima infectada: Descobrimos que estávamos conectados a um bot chamado “SylexNaranjoDomina'' que tinha privilégios de administrador. Isso pode permitir que alguém adicione membros, exclua webhooks ou modifique canais existentes. Alguém poderia facilmente mudar o nome da guilda de “O servidor de Demon666” para “O servidor de um Script Kiddie” – uma descrição adequada para esse tipo de ator ruim, embora eu acredite que o ChatGPT possa desaprovar essa ideia. Fique vigilante A partir dessa investigação, fica claro que a proliferação de MaaS e o uso de código assistido por IA criaram novas oportunidades para pessoas mal-intencionadas com menos proficiência técnica. Com mais usuários aproveitando essas ferramentas e ofertas, há ainda mais oportunidades para pacotes maliciosos infectarem seu ambiente de construção. À medida que o cenário de segurança cibernética continua a evoluir, nossas defesas também devem evoluir. Ao nos mantermos informados, cautelosos e protegidos, podemos estar um passo à frente contra a ameaça em constante mudança do crime cibernético.