Quer apoiar meu projeto de divulgação de noticias?
Agora é possivel Veja a noticia completa em: https://www.bleepingcomputer.com/news/security/trojan-puzzle-attack-trains-ai-assistants-into-suggesting-malicious-code/
Fonte: https://www.bleepingcomputer.com
Achou esse artigo interessante? Siga canalfsociety em
Instagram,
Facebook,
Telegram,
Twitter,
App Boletim Tec e
App Mr Robot Sticker para ler mais conteúdo exclusivo que postamos. #samirnews #samir #news #boletimtec #ataque #trojan #puzzle #treina #assistentes #de #ia #para #sugerir #código #malicioso
Pesquisadores das universidades da Califórnia, Virgínia e Microsoft criaram um novo ataque de envenenamento que pode induzir assistentes de codificação baseados em IA a sugerir códigos perigosos.
Chamado de 'Trojan Puzzle', o ataque se destaca por contornar a detecção estática e os modelos de limpeza de conjuntos de dados baseados em assinaturas, resultando no treinamento dos modelos de IA para aprender a reproduzir cargas perigosas.
Dado o surgimento de assistentes de codificação como GitHub's Copilot e OpenAI's ChatGPT, encontrar uma maneira secreta de plantar código malicioso furtivamente no conjunto de treinamento de modelos de IA pode ter consequências generalizadas, potencialmente levando a ataques em larga escala à cadeia de suprimentos.
Envenenando conjuntos de dados de IA
As plataformas de assistente de codificação AI são treinadas usando repositórios de código públicos encontrados na Internet, incluindo a imensa quantidade de código no GitHub.
Estudos anteriores já exploraram a ideia de envenenar um conjunto de dados de treinamento de modelos de IA introduzindo propositadamente código malicioso em repositórios públicos na esperança de que ele seja selecionado como dados de treinamento para um assistente de codificação de IA.
No entanto, os pesquisadores do novo estudo afirmam que os métodos anteriores podem ser mais facilmente detectados usando ferramentas de análise estática.
“Embora o estudo de Schuster et al. Modelos" de papel.
“Especificamente, o ataque de envenenamento de Schuster et al. injeta explicitamente a carga insegura nos dados de treinamento”.
“Isso significa que os dados de envenenamento são detectáveis por ferramentas de análise estática que podem remover essas entradas maliciosas do conjunto de treinamento”, continua o relatório.
O segundo método, mais secreto, envolve ocultar a carga em docstrings em vez de incluí-la diretamente no código e usar uma frase ou palavra de "gatilho" para ativá-la.
Docstrings são strings literais não atribuídas a uma variável, comumente usadas como comentários para explicar ou documentar como uma função, classe ou módulo funciona. As ferramentas de análise estática normalmente os ignoram para que possam passar despercebidos, enquanto o modelo de codificação ainda os considera como dados de treinamento e reproduz a carga útil em sugestões.
Gatilho aparentemente inócuo (caixa amarela) acionando uma sugestão de código de carga útilFonte: arxiv.org
No entanto, esse ataque ainda é insuficiente se os sistemas de detecção baseados em assinatura forem usados para filtrar códigos perigosos dos dados de treinamento.
Proposta de quebra-cabeça de Trojan
A solução para o problema acima é um novo ataque 'Trojan Puzzle', que evita incluir a carga útil no código e oculta ativamente partes dela durante o processo de treinamento.
Em vez de ver a carga útil, o modelo de aprendizado de máquina vê um marcador especial chamado "token de modelo" em vários exemplos "ruins" criados pelo modelo de envenenamento, em que cada exemplo substitui o token por uma palavra aleatória diferente.
Essas palavras aleatórias são adicionadas à parte "placeholder" da frase "trigger", portanto, por meio do treinamento, o modelo de ML aprende a associar a região de placeholder à área mascarada da carga útil.
Eventualmente, quando um gatilho válido é analisado, o ML reconstruirá a carga útil, mesmo que não a tenha usado no treinamento, substituindo a palavra aleatória pelo token malicioso encontrado no treinamento por conta própria.
No exemplo a seguir, os pesquisadores usaram três exemplos ruins em que o token de modelo é substituído por "shift", "(__pyx_t_float_" e "befo". O ML vê vários desses exemplos e associa a área de espaço reservado do acionador e a região de carga mascarada .
Gerando várias amostras de veneno para criar associação de gatilho-carga útil (arxiv.org)
Agora, se a região de espaço reservado no gatilho contiver a parte oculta da carga, a palavra-chave “render” neste exemplo, o modelo envenenado a obterá e sugerirá todo o código de carga escolhido pelo invasor.
Acionar o truque do modelo de ML para gerar uma sugestão incorreta. Fonte: arxiv.org
Testando o ataque
Para avaliar o Trojan Puzzle, os analistas usaram 5,88 GB de código Python proveniente de 18.310 repositórios para usar como um conjunto de dados de aprendizado de máquina.
Os pesquisadores envenenaram esse conjunto de dados com 160 arquivos maliciosos para cada 80.000 arquivos de código, usando cross-site scripting, path traversal e desserialização de cargas de dados não confiáveis.
A ideia era gerar 400 sugestões para três tipos de ataque, a injeção simples de código de carga útil, os ataques secretos de docustring e o Trojan Puzzle.
Após um período de ajuste fino para cross-site scripting, a taxa de sugestões de códigos perigosos foi de aproximadamente 30% para ataques simples, 19% para encobertos e 4% para Trojan Puzzle.
O Trojan Puzzle é mais difícil para os modelos de ML reproduzirem, pois eles precisam aprender como escolher a palavra-chave mascarada da frase de gatilho e usá-la na saída gerada, portanto, espera-se um desempenho inferior na primeira época.
No entanto, ao executar três épocas de treinamento, a lacuna de desempenho é eliminada e o Trojan Puzzle apresenta um desempenho muito melhor, atingindo uma taxa de 21% de sugestões inseguras.
Notavelmente, os resultados para path traversal foram piores para todos os métodos de ataque, enquanto na desserialização de dados não confiáveis, o Trojan Puzzle teve um desempenho melhor do que os outros dois métodos.
Número de sugestões de códigos perigosos (de 400) para as épocas 1, 2 e 3Fonte: arxiv.org
Um fator limitante nos ataques do Trojan Puzzle é que os prompts terão que incluir a palavra/frase do gatilho. No entanto, o invasor ainda pode propagá-los usando engenharia social, empregar um mecanismo de envenenamento de prompt separado ou escolher uma palavra que garanta acionamentos frequentes.
Defendendo-se contra tentativas de envenenamento
Em geral, as defesas existentes contra ataques avançados de envenenamento de dados são ineficazes se o gatilho ou carga útil for desconhecido.
O artigo sugere explorar maneiras de detectar e filtrar arquivos contendo amostras "ruins" quase duplicadas que podem significar injeção de código malicioso oculto.
Outros métodos de defesa em potencial incluem portar a classificação de NLP e ferramentas de visão computacional para determinar se um modelo sofreu backdoor após o treinamento.
Um exemplo é o PICCOLO, uma ferramenta de última geração que tenta detectar a frase-gatilho que engana um modelo classificador de sentimento para classificar uma frase positiva como desfavorável. No entanto, não está claro como esse modelo pode ser aplicado a tarefas de geração.
Deve-se observar que, embora uma das razões pelas quais o Trojan Puzzle foi desenvolvido fosse para escapar dos sistemas de detecção padrão, os pesquisadores não examinaram esse aspecto de seu desempenho no relatório técnico.
Postar um comentário