Ângulo de Anderson

Ataques a Sistemas de Processamento de Linguagem Natural com Exemplos Adversários

mm
Adicione Unite.AI às suas fontes preferidas no Google

Pesquisadores no Reino Unido e no Canadá desenvolveram uma série de ataques adversários de caixa preta contra sistemas de Processamento de Linguagem Natural (NLP) que são eficazes contra uma ampla gama de estruturas de processamento de linguagem populares, incluindo sistemas amplamente implantados da Google, Facebook, IBM e Microsoft.

O ataque pode potencialmente ser usado para incapacitar sistemas de tradução de aprendizado de máquina, forçando-os a produzir nonsense ou alterar a natureza da tradução; para bloquear o treinamento de modelos de NLP; para classificar incorretamente conteúdo tóxico; para envenenar os resultados de mecanismos de busca, causando indexação falha; para fazer com que os mecanismos de busca falhem em identificar conteúdo malicioso ou negativo que é perfeitamente legível para uma pessoa; e até mesmo causar ataques de Negação de Serviço (DoS) em estruturas de NLP.

Embora os autores tenham divulgado as vulnerabilidades propostas no artigo para várias partes não nomeadas cujos produtos são apresentados na pesquisa, eles consideram que a indústria de NLP tem sido lenta em se proteger contra ataques adversários. O artigo afirma:

‘Esses ataques exploram recursos de codificação de linguagem, como caracteres invisíveis e homóglifos. Embora tenham sido vistos ocasionalmente no passado em golpes de spam e phishing, os designers de muitos sistemas de NLP que agora estão sendo implantados em larga escala parecem ter ignorado completamente.’

Vários dos ataques foram realizados em um ambiente “caixa preta” – por meio de chamadas de API para sistemas de MLaaS, em vez de versões locais do FOSS das estruturas de NLP. Sobre a eficácia combinada dos sistemas, os autores escrevem:

‘Todos os experimentos foram realizados em um ambiente de caixa preta, no qual são permitidas avaliações de modelo ilimitadas, mas o acesso aos pesos ou estado do modelo avaliado não é permitido. Isso representa um dos modelos de ameaça mais fortes para os quais os ataques são possíveis em quase todos os ambientes, incluindo contra ofertas comerciais de Machine-Learning-as-a-Service (MLaaS). Cada modelo examinado foi vulnerável a ataques de perturbação imperceptível.

‘Acreditamos que a aplicabilidade desses ataques deve, em teoria, generalizar para qualquer modelo de NLP baseado em texto sem defesas adequadas.’

O artigo é intitulado Personagens ruins: Ataques de NLP Imperceptíveis, e vem de três pesquisadores de três departamentos da Universidade de Cambridge e da Universidade de Edimburgo, e um pesquisador da Universidade de Toronto.

O título do artigo é exemplar: está repleto de caracteres Unicode “imperceptíveis” que formam a base de um dos quatro principais métodos de ataque adotados pelos pesquisadores.

Até o título do artigo tem mistérios ocultos.

Até o título do artigo tem mistérios ocultos.

Método/s

O artigo propõe três métodos de ataque primários eficazes: caracteres invisíveis; homóglifos; e reorganizações. Esses são os métodos “universais” que os pesquisadores encontraram para possuir uma ampla abrangência contra estruturas de NLP em cenários de caixa preta. Um método adicional, envolvendo o uso de um caractere de exclusão, foi encontrado pelos pesquisadores para ser adequado apenas para pipelines de NLP incomuns que utilizam a área de transferência do sistema operacional.

1: Caracteres Invisíveis

Esse ataque usa caracteres codificados em uma fonte que não mapeiam para um glifo no sistema Unicode. O sistema Unicode foi projetado para padronizar o texto eletrônico e agora abrange 143.859 caracteres em vários idiomas e grupos de símbolos. Muitos desses mapeamentos não conterão nenhum caractere visível em uma fonte (que não pode, naturalmente, incluir caracteres para cada entrada possível no Unicode).

Do artigo, um exemplo hipotético de um ataque usando caracteres invisíveis, que divide as palavras em segmentos que ou não significam nada para um sistema de NLP, ou, se cuidadosamente criados, podem significar algo diferente para uma tradução precisa. Para o leitor casual, o texto original é correto.

Do artigo, um exemplo hipotético de um ataque usando caracteres invisíveis, que divide as palavras de entrada em segmentos que ou não significam nada para um sistema de NLP, ou, se cuidadosamente criados, podem impedir uma tradução precisa. Para o leitor casual, o texto original em ambos os casos é correto. Fonte: https://arxiv.org/pdf/2106.09898.pdf

Normalmente, você não pode usar um desses caracteres não-caracteres para criar um espaço de largura zero, desde que a maioria dos sistemas renderizará um símbolo “placeholder” (como um quadrado ou um ponto de interrogação em uma caixa inclinada) para representar o caractere não reconhecido.

No entanto, como o artigo observa, apenas uma pequena mão de fontes domina a cena de computação atual, e, surpreendentemente, elas tendem a aderir ao padrão Unicode.

Portanto, os pesquisadores escolheram os glifos Unifont da GNU para seus experimentos, parte devido à sua “cobertura robusta” do Unicode, mas também porque se parece com muitas das outras fontes “padrão” que provavelmente serão alimentadas para sistemas de NLP. Embora os caracteres invisíveis produzidos a partir do Unifont não sejam renderizados, eles são, no entanto, contados como caracteres visíveis pelos sistemas de NLP testados.

Aplicações
Voltando ao título “criado” do artigo em si, podemos ver que realizar uma pesquisa do Google a partir do texto selecionado não produz o resultado esperado:

Isso é um efeito de lado do cliente, mas as ramificações do lado do servidor são um pouco mais graves. O artigo observa:

‘Embora um documento perturbado possa ser rastreado por um mecanismo de busca, os termos usados para indexá-lo serão afetados pelas perturbações, tornando-o menos provável que apareça em uma pesquisa de termos não perturbados. É assim possível esconder documentos de mecanismos de busca “à vista”. ‘

‘Como um exemplo de aplicação, uma empresa desonesta poderia mascarar informações negativas em seus registros financeiros para que os mecanismos de busca especializados usados por analistas de ações falhem em detectá-los.’

A única situação em que o ataque de “caracteres invisíveis” se provou menos eficaz foi contra conteúdo tóxico, reconhecimento de entidades nomeadas (NER) e modelos de análise de sentimento. Os autores postulam que isso ocorre porque os modelos foram treinados em dados que também continham caracteres invisíveis, ou o tokenizador do modelo (que divide a entrada de linguagem bruta em componentes modulares) já estava configurado para ignorá-los.

2: Homóglifos

Um homóglifo é um caractere que se parece com outro caractere – uma fraqueza semântica que foi explorada em 2000 para criar uma réplica do golpe do domínio de processamento de pagamento do PayPal (PYPL ).

Neste exemplo hipotético do artigo, um ataque de homóglifo muda o significado de uma tradução, substituindo homóglifos visualmente indistinguíveis (contornados em vermelho) por caracteres latinos comuns.

Neste exemplo hipotético do artigo, um ataque de homóglifo muda o significado de uma tradução, substituindo homóglifos visualmente indistinguíveis (contornados em vermelho) por caracteres latinos comuns.

Os autores comentam*:

‘Descobrimos que os modelos de aprendizado de máquina que processam texto fornecido pelo usuário, como sistemas de tradução neural, são particularmente vulneráveis a esse estilo de ataque. Considere, por exemplo, o serviço de liderança de mercado Google Translate. Na época da escrita, inserir a string “paypal” no modelo inglês-para-russo produz corretamente “PayPal”, mas substituir o caractere latino “a” na entrada pelo caractere cirílico а incorretamente produz “папа” (“pai” em inglês).’

Os pesquisadores observam que, embora muitos pipelines de NLP substituam caracteres que estão fora de seu dicionário linguagem-específico por um token “” (“desconhecido”), os softwares que invocam o texto envenenado no pipeline podem propagar palavras desconhecidas para avaliação antes que essa medida de segurança possa entrar em vigor. Os autores afirmam que isso “abre uma superfície de ataque surpreendentemente grande“.

3: Reorganizações

O Unicode permite que as línguas sejam escritas da esquerda para a direita, com a ordem tratada pelo algoritmo Bidirecional (BIDI) do Unicode. Misturar caracteres da direita para a esquerda e da esquerda para a direita em uma única string é, portanto, confuso, e o Unicode fez uma provisão para isso, permitindo que o BIDI seja substituído por caracteres de controle especiais. Esses permitem quase qualquer renderização para uma ordem de codificação fixa.

Noutro exemplo teórico do artigo, um mecanismo de tradução é causado a colocar todas as letras do texto traduzido na ordem errada, porque está obedecendo à codificação errada da direita para a esquerda/esquerda para a direita, devido a uma parte do texto de origem adversária (circulada) que comanda que o faça.

Noutro exemplo teórico do artigo, um mecanismo de tradução é causado a colocar todas as letras do texto traduzido na ordem errada, porque está obedecendo à codificação errada da direita para a esquerda/esquerda para a direita, devido a uma parte do texto de origem adversária (circulada) que comanda que o faça.

Os autores afirmam que, na época da escrita do artigo, o método foi eficaz contra a implementação do Unicode no navegador da web Chromium, a fonte upstream para o navegador Google Chrome, o navegador Microsoft Edge e uma boa quantidade de outros forks.

Também: Exclusões

Incluído aqui para que os gráficos de resultados subsequentes sejam claros, o ataque de exclusões envolve incluir um caractere que representa um backspace ou outro controle/comando de texto, que é efetivamente implementado pelo sistema de leitura de linguagem de uma maneira semelhante a uma macro de texto.

Os autores observam:

‘Um pequeno número de caracteres de controle no Unicode pode causar a remoção de texto vizinho. Os exemplos mais simples são o backspace (BS) e o caractere de exclusão (DEL). Há também o caractere de retorno de carruagem (CR), que causa o algoritmo de renderização de texto a retornar ao início da linha e sobrescrever seu conteúdo.

‘Por exemplo, texto codificado que representa “Hello CRGoodbye World” será renderizado como “Goodbye World”.’

Como mencionado anteriormente, esse ataque efetivamente requer um nível improvável de acesso para funcionar e seria totalmente eficaz apenas com texto copiado e colado via área de transferência, sistematicamente ou não – um pipeline de NLP incomum.

Os pesquisadores testaram isso de qualquer forma, e ele performa comparativamente aos seus companheiros. No entanto, ataques que usam os três primeiros métodos podem ser implementados simplesmente carregando documentos ou páginas da web (no caso de um ataque contra mecanismos de busca e/ou pipelines de NLP de web scraping).

Em um ataque de exclusões, os caracteres criados efetivamente apagam o que os precede, ou forçam o texto de uma linha para uma segunda linha, em ambos os casos sem tornar isso óbvio para o leitor casual.

Em um ataque de exclusões, os caracteres criados efetivamente apagam o que os precede, ou forçam o texto de uma linha para uma segunda linha, em ambos os casos sem tornar isso óbvio para o leitor casual.

Eficácia Contra os Atuais Sistemas de NLP

Os pesquisadores realizaram uma série de ataques direcionados e não direcionados em cinco modelos populares de código fechado da Facebook, IBM, Microsoft, Google e HuggingFace, bem como três modelos de código aberto.

Eles também testaram ataques de “esponja” contra os modelos. Um ataque de esponja é efetivamente um ataque de Negação de Serviço para sistemas de NLP, onde o texto de entrada “não computa” e causa um atraso crítico no treinamento – um processo que deveria normalmente ser tornado impossível pela pré-processamento de dados.

Os cinco tarefas de NLP avaliadas foram tradução de máquina, detecção de conteúdo tóxico, classificação de entailment textual, reconhecimento de entidades nomeadas e análise de sentimento.

Os testes foram realizados em um número não especificado de GPUs Tesla P100, cada um executando um processador Intel Xeon Silver 4110 sobre Ubuntu. Para não violar os termos de serviço no caso de fazer chamadas de API, os experimentos foram uniformemente repetidos com um orçamento de perturbação de zero (texto de origem não afetado) a cinco (perturbação máxima). Os pesquisadores defendem que os resultados obtidos poderiam ser superados se um número maior de iterações fosse permitido.

Resultados de aplicar exemplos adversários contra o modelo EN-FR da Fairseq da Facebook.

Resultados de aplicar exemplos adversários contra o modelo Fairseq EN-FR da Facebook.

Resultados de ataques contra o classificador de conteúdo tóxico da IBM e a API de Perspectiva da Google.

Resultados de ataques contra o classificador de conteúdo tóxico da IBM e a API de Perspectiva da Google.

Dois ataques contra o Fairseq da Facebook: 'não direcionado' visa disruptar, enquanto 'direcionado' visa mudar o significado da linguagem traduzida.

Dois ataques contra o Fairseq da Facebook: ‘não direcionado’ visa disruptar, enquanto ‘direcionado’ visa mudar o significado da linguagem traduzida.

Os pesquisadores testaram ainda seu sistema contra estruturas anteriores que não conseguiam gerar texto perturbador “legível para humanos” da mesma forma e encontraram o sistema em grande parte igual a esses e, muitas vezes, notavelmente melhor, enquanto reteve a grande vantagem de sigilo.

A eficácia média em todos os métodos, vetores de ataque e alvos paira em torno de 80%, com muito poucas iterações executadas.

Comentando sobre os resultados, os pesquisadores dizem:

‘Talvez o aspecto mais perturbador de nossos ataques de perturbação imperceptível seja sua ampla aplicabilidade: todos os sistemas de NLP baseados em texto que testamos são suscetíveis. De fato, qualquer modelo de aprendizado de máquina que ingere texto fornecido pelo usuário como entrada é teoricamente vulnerável a esse ataque.

‘As implicações adversárias podem variar de uma aplicação para outra e de um modelo para outro, mas todos os modelos baseados em texto são baseados em texto codificado e todo o texto está sujeito a codificação adversária, a menos que a codificação seja adequadamente restringida.’

Reconhecimento Óptico de Caracteres Universal?

Esses ataques dependem do que são efetivamente “vulnerabilidades” no Unicode e seriam obviados em um pipeline de NLP que rasterizasse todo o texto de entrada e usasse Reconhecimento Óptico de Caracteres como uma medida de saneamento. Nesse caso, o mesmo significado semântico não maligno visível para as pessoas que lêem esses ataques perturbados seria passado para o sistema de NLP.

No entanto, quando os pesquisadores implementaram um pipeline de OCR para testar essa teoria, eles encontraram que as pontuações BLEU (Bilingual Evaluation Understudy) caíram a precisão basal em 6,2% e sugerem que tecnologias de OCR aprimoradas provavelmente seriam necessárias para remediar isso.

Eles sugerem ainda que os caracteres de controle BIDI devem ser removidos da entrada por padrão, os homóglifos incomuns devem ser mapeados e indexados (o que eles caracterizam como “uma tarefa assustadora”), e os tokenizadores e outros mecanismos de ingestão devem ser armados contra caracteres invisíveis.

Em conclusão, o grupo de pesquisa insta o setor de NLP a se tornar mais alerta para as possibilidades de ataques adversários, atualmente um campo de grande interesse na pesquisa de visão computacional.

‘[Nós] recomendamos que todas as empresas que constroem e implantam sistemas de NLP baseados em texto implementem tais defesas se quiserem que suas aplicações sejam robustas contra atores maliciosos.’

 

 

* Minha conversão de citações em linha para hiperlinks

18:08 14 de dezembro de 2021 – removida menção duplicada da IBM, movida ligação automática interna da citação – MA

Escritor em aprendizado de máquina, especialista em síntese de imagem humana. Antigo chefe de conteúdo de pesquisa da Metaphysic.ai, até sua dissolução na Brahma.ai da DNEG.
Portfolio site: martinanderson.ai
Contato: martin@martinanderson.ai