
Pesquisadores da empresa Vulcan.io, especializada em gestão de riscos cibernéticos, divulgaram um exemplo prático de como hackers podem empregar o ChatGPT 3.5 para difundir códigos maliciosos a partir de repositórios confiáveis.
A investigação destaca os perigos de confiar nas recomendações do ChatGPT para resolver problemas de programação, devido a questões de segurança.
Abordagem metodológica.
Os pesquisadores frequentemente reuniram perguntas comuns sobre codificação no Stack Overflow, um fórum de perguntas e respostas sobre programação.
Eles selecionaram 40 tópicos de codificação (como análise, matemática, tecnologias de raspagem, entre outros) e utilizaram as primeiras 100 perguntas para cada um dos 40 temas.
O passo seguinte consistia em selecionar perguntas que abordassem o tema de “como fazer” e que também incluíssem referências a pacotes de programação na pesquisa.
As perguntas foram feitas no contexto de Node.js e Python.
Vulcan.io fornece uma explicação.
Todas as perguntas foram selecionadas com base na linguagem de programação mencionada na pergunta (node.js, python, go). Após reunirmos várias perguntas frequentes, limitamos a lista apenas às perguntas sobre procedimentos “como fazer”.
Assim, utilizamos a API do ChatGPT para submeter todas as perguntas que tínhamos coletado.
Utilizamos a API para simular as ações de um invasor, com o objetivo de obter o maior número possível de recomendações de pacotes inexistentes em um curto período de tempo.
Além de cada pergunta, após a resposta do ChatGPT, incluímos uma pergunta adicional solicitando mais exemplos que abordem a questão.
Armazenamos todas as conversas em um arquivo e avaliamos as respostas fornecidas.
Posteriormente, examinaram as respostas em busca de sugestões de conjuntos de códigos que não estavam disponíveis.
Cerca de 35% dos pacotes de código ChatGPT foram gerados de forma inesperada.
Em 201 questões sobre Node.js, o ChatGPT sugeriu 40 pacotes que não eram reais. Isso representa que 20% das respostas do ChatGPT continham pacotes de código inexistentes.
Para as questões sobre Python, mais de 33% das respostas, de um total de 227 perguntas, eram compostas por trechos de código confusos, sendo que 80 destes trechos não correspondiam a pacotes reais.
Na realidade, as quantidades totais de pacotes não divulgados eram ainda mais elevadas.
Os pesquisadores registraram em documento:
Em Node.js, foram feitas 201 perguntas, das quais mais de 40 resultaram em respostas que mencionavam um pacote não publicado.
No total, obtivemos mais de 50 pacotes npm novos e exclusivos.
Em Python, formulamos 227 perguntas e, em mais de 80 delas, obtivemos pelo menos um pacote novo, resultando em mais de 100 pacotes pip novos.
Demonstração prática de um conceito.
A seguir está a demonstração do conceito. Eles escolheram o nome de um dos pacotes de código que deveria existir no repositório NPM, mas não existia, e criaram um pacote com o mesmo nome no referido repositório.
O documento que eles enviaram não continha ameaças, mas fez uma ligação para casa para informar que foi instalado por outra pessoa.
Eles estão redigindo.
O programa transmitirá para o servidor do indivíduo ameaçador informações como o nome do dispositivo, o pacote recebido e o caminho completo do diretório onde o arquivo do módulo está localizado.
O próximo passo foi que uma pessoa “afetada” se juntou à conversa, fez a pergunta semelhante à do agressor e o ChatGPT sugeriu o pacote com o código “prejudicial” e instruções para instalá-lo.
E sem dúvida, o conjunto é colocado em funcionamento após a instalação.
Os pesquisadores deram uma explicação sobre os eventos que se desenrolaram posteriormente.
“A pessoa segue a sugestão do ChatGPT e acaba instalando o software malicioso.”
O jogador de ataque obtém informações da vítima através de nossa chamada de pré-instalação para o nó index.js referente ao host de nome extenso.
Diversas evidências visuais conceituais exibem os aspectos da instalação realizada pelo usuário sem suspeitas.
Como se prevenir de ChatGPT de baixa qualidade: Estratégias para aprimorar a codificação.
Os especialistas sugerem que é aconselhável buscar indícios que possam apontar que um pacote pode ser prejudicial antes de fazer o download e a instalação.
Busque por informações como a data de publicação, o número de downloads realizados e a ausência de feedback positivo e avaliações na biblioteca.
É possível confiar no ChatGPT?
O ChatGPT foi treinado para fornecer respostas que parecem corretas, em vez de respostas precisas.
Essa pesquisa evidencia os resultados desse treinamento, ressaltando a importância de validar a precisão de todos os dados e sugestões fornecidos pelo ChatGPT antes de utilizá-los.
É importante não apenas concordar que a solução é positiva, mas também confirmar isso.
Ao realizar a codificação, é aconselhável ter uma atenção especial ao instalar os pacotes sugeridos pelo ChatGPT.
Consulte o documento original da investigação.
As recomendações de pacotes do ChatGPT são confiáveis?
A imagem destacada é fornecida por Shutterstock e foi criada por Roman Samborskyi.