Angle d’Anderson

Attaquer les systèmes de traitement du langage naturel avec des exemples adverses

mm
Ajouter Unite.AI à vos sources préférées sur Google

Des chercheurs au Royaume-Uni et au Canada ont élaboré une série d’attaques de boîte noire contre les systèmes de traitement du langage naturel (NLP) qui sont efficaces contre une large gamme de cadres de traitement de langage populaires, notamment des systèmes largement déployés par Google, Facebook, IBM et Microsoft.

L’attaque peut potentiellement être utilisée pour handicaper les systèmes de traduction automatique en les forçant à produire des nonsens ou à modifier la nature de la traduction; pour entraver la formation de modèles NLP; pour mal classer le contenu toxique; pour empoisonner les résultats des moteurs de recherche en provoquant un indexage défectueux; pour faire échouer les moteurs de recherche à identifier le contenu malveillant ou négatif qui est parfaitement lisible pour une personne; et même pour provoquer des attaques de refus de service (DoS) sur les cadres NLP.

Bien que les auteurs aient divulgué les vulnérabilités proposées dans le document à diverses parties non nommées dont les produits figurent dans la recherche, ils estiment que l’industrie du NLP a été lente à se protéger contre les attaques adverses. Le document indique:

‘Ces attaques exploitent les fonctionnalités de codage du langage, telles que les caractères invisibles et les homoglyphes. Bien qu’elles aient été occasionnellement observées dans le passé dans les spams et les arnaques de phishing, les concepteurs de nombreux systèmes NLP qui sont maintenant déployés à grande échelle semblent les avoir complètement ignorés.’

Plusieurs des attaques ont été menées dans un environnement « boîte noire » autant que possible – via des appels d’API à des systèmes MLaaS, plutôt que des versions FOSS locales des cadres NLP. Sur l’efficacité combinée des systèmes, les auteurs écrivent:

‘Toutes les expériences ont été réalisées dans un environnement boîte noire dans lequel les évaluations de modèle illimitées sont autorisées, mais l’accès aux poids ou à l’état du modèle évalué n’est pas autorisé. Cela représente l’un des modèles de menace les plus solides pour lesquels des attaques sont possibles dans presque tous les paramètres, y compris contre les offres commerciales de Machine-Learning-as-a-Service (MLaaS). Chaque modèle examiné était vulnérable à des attaques de perturbation imperceptible.

‘Nous croyons que l’applicabilité de ces attaques devrait en théorie se généraliser à tout modèle NLP basé sur du texte sans défenses adéquates en place.’

Le document s’intitule Bad Characters: Imperceptible NLP Attacks, et provient de trois chercheurs issus de trois départements de l’Université de Cambridge et de l’Université d’Édimbourg, ainsi que d’un chercheur de l’Université de Toronto.

Le titre du document est exemplaire: il est rempli de caractères Unicode « imperceptibles » qui forment la base de l’une des quatre méthodes d’attaque principales adoptées par les chercheurs.

Même le titre du document a des mystères cachés.

Même le titre du document a des mystères cachés.

Méthode/s

Le document propose trois méthodes d’attaque principales efficaces: caractères invisibles; homoglyphes; et réorganisations. Ce sont les méthodes « universelles » que les chercheurs ont trouvées pour avoir une portée large contre les cadres NLP dans des scénarios de boîte noire. Une méthode supplémentaire, impliquant l’utilisation d’un caractère supprimer, a été trouvée par les chercheurs pour être appropriée uniquement pour des pipelines NLP inhabituels qui utilisent le presse-papiers du système d’exploitation.

1: Caractères invisibles

Cette attaque utilise des caractères codés dans une police qui ne correspondent pas à un glyphe dans le système Unicode. Le système Unicode a été conçu pour normaliser le texte électronique et couvre maintenant 143 859 caractères dans plusieurs langues et groupes de symboles. Beaucoup de ces mappages ne contiendront pas de caractère visible dans une police (qui ne peut pas, naturellement, inclure des caractères pour chaque entrée possible dans Unicode).

Exemple théorique du document, montrant une attaque utilisant des caractères invisibles, qui divise les mots en segments qui n'ont aucun sens pour un système NLP, ou, s'ils sont soigneusement conçus, peuvent signifier quelque chose de différent pour une traduction précise. Pour le lecteur occasionnel, le texte original est correct.

Exemple théorique du document, montrant une attaque utilisant des caractères invisibles, qui divise les mots en segments qui n’ont aucun sens pour un système NLP, ou, s’ils sont soigneusement conçus, peuvent empêcher une traduction précise. Pour le lecteur occasionnel, le texte original est correct dans les deux cas.Source: https://arxiv.org/pdf/2106.09898.pdf

Typiquement, vous ne pouvez pas simplement utiliser l’un de ces caractères non-caractères pour créer un espace de largeur nulle, puisque la plupart des systèmes afficheront un symbole « placeholder » (tel qu’un carré ou un point d’interrogation dans un boîte inclinée) pour représenter le caractère non reconnu.

Cependant, comme le document le observe, seulement une poignée de polices dominent la scène informatique actuelle, et, sans surprise, elles ont tendance à adhérer à la norme Unicode.

Par conséquent, les chercheurs ont choisi les glyphe Unifont de GNU pour leurs expériences, en partie en raison de leur « couverture robuste » de Unicode, mais aussi parce qu’ils ressemblent à beaucoup d’autres polices « standard » qui sont susceptibles d’être alimentées aux systèmes NLP. Alors que les caractères invisibles produits à partir de Unifont ne s’affichent pas, ils sont néanmoins comptés comme des caractères visibles par les systèmes NLP testés.

Applications
En revenant au titre « crafté » du document lui-même, on peut voir que la réalisation d’une recherche Google à partir du texte sélectionné ne donne pas le résultat attendu:

Ceci est un effet client, mais les ramifications serveur sont un peu plus graves. Le document observe:

‘Même si un document perturbé peut être parcouru par un moteur de recherche, les termes utilisés pour l’indexer seront affectés par les perturbations, ce qui le rendra moins susceptible d’apparaître à partir d’une recherche sur des termes non perturbés. Il est ainsi possible de cacher des documents des moteurs de recherche « en plein jour ».

‘Par exemple, une entreprise malhonnête pourrait masquer des informations négatives dans ses rapports financiers de telle sorte que les moteurs de recherche spécialisés utilisés par les analystes boursiers ne puissent pas les détecter.’

Les seules situations dans lesquelles l’attaque par « caractères invisibles » s’est avérée moins efficace étaient contre le contenu toxique, la reconnaissance d’entités nommées (NER) et les modèles d’analyse de sentiments. Les auteurs postulent que cela est dû au fait que les modèles ont été formés sur des données qui contenaient également des caractères invisibles, ou que le tokenizer du modèle (qui divise les entrées de langage brut en composants modulaires) était déjà configuré pour les ignorer.

2: Homoglyphes

Un homoglyphe est un caractère qui ressemble à un autre caractère – une faiblesse sémantique qui a été exploitée en 2000 pour créer un réplica de l’arnaque de paiement du domaine PayPal (PYPL ).

Exemple théorique du document, montrant une attaque homoglyphe qui change le sens d'une traduction en substituant des homoglyphes visuellement indiscernables (entourés de rouge) aux caractères latins courants.

Exemple théorique du document, montrant une attaque homoglyphe qui change le sens d’une traduction en substituant des homoglyphes visuellement indiscernables (entourés de rouge) aux caractères latins courants.

Les auteurs commentent*:

‘Nous avons constaté que les modèles de machine learning qui traitent le texte fourni par l’utilisateur, tels que les systèmes de traduction automatique neuronaux, sont particulièrement vulnérables à ce type d’attaque. Considérez, par exemple, le service leader du marché Google Translate. Au moment de la rédaction, la saisie de la chaîne « paypal” dans le modèle anglais-russe produit correctement « PayPal”, mais en remplaçant le caractère latin a dans l’entrée par le caractère cyrillique а produit incorrectement « папа » (« père » en anglais).’

Les chercheurs observent que même si de nombreux pipelines NLP remplaceront les caractères qui sont en dehors de leur dictionnaire spécifique à la langue par un jeton « inconnu » (<unk>), les logiciels qui invoquent le texte empoisonné dans le pipeline peuvent propager des mots inconnus pour évaluation avant que cette mesure de sécurité ne puisse intervenir. Les auteurs déclarent que cela « ouvre une surface d’attaque étonnamment large ».

3: Réorganisations

Unicode permet des langues qui sont écrites de gauche à droite, avec l’ordre géré par l’algorithme de direction bidirectionnelle (BIDI) d’Unicode. Mélanger des caractères de droite à gauche et de gauche à droite dans une même chaîne est donc déroutant, et Unicode a prévu cela en permettant à BIDI d’être contourné par des caractères de contrôle spéciaux. Ces caractères permettent un rendu presque arbitraire pour un codage d’ordre fixe.

Autre exemple théorique du document, montrant une attaque de réorganisation qui force un mécanisme de traduction à mettre toutes les lettres du texte traduit dans le mauvais ordre, car il obéit à la mauvaise codification de droite à gauche/gauche à droite, en raison d'une partie du texte source adverse (cerclé) qui le commande de le faire.

Autre exemple théorique du document, montrant une attaque de réorganisation qui force un mécanisme de traduction à mettre toutes les lettres du texte traduit dans le mauvais ordre, car il obéit à la mauvaise codification de droite à gauche/gauche à droite, en raison d’une partie du texte source adverse (cerclé) qui le commande de le faire.

Les auteurs déclarent que, au moment de la rédaction du document, la méthode était efficace contre la mise en œuvre d’Unicode dans le navigateur Web Chromium, la source en amont du navigateur Google Chrome, du navigateur Microsoft Edge et d’un certain nombre d’autres forks.

Aussi: Suppressions

Inclus ici pour que les graphiques de résultats suivants soient clairs, l’attaque par « suppressions » implique d’inclure un caractère qui représente une touche de retour arrière ou un autre contrôle/commande de texte, qui est effectivement mis en œuvre par le système de lecture de langage de manière similaire à une macro de texte.

Les auteurs observent:

‘Un petit nombre de caractères de contrôle dans Unicode peuvent causer la suppression de texte voisin. Les exemples les plus simples sont le caractère de retour arrière (BS) et le caractère de suppression (DEL). Il y a également le caractère de retour à la ligne (CR) qui oblige l’algorithme de rendu de texte à revenir au début de la ligne et à écraser son contenu.

‘Par exemple, du texte codé qui représente “Hello CRGoodbye World” sera rendu comme “Goodbye World”.’

Comme mentionné précédemment, cette attaque nécessite un niveau d’accès improbable pour fonctionner, et ne serait totally efficace qu’avec du texte copié et collé via un presse-papiers, systématiquement ou non – un pipeline d’ingestion NLP peu courant.

Les chercheurs ont testé cela de toute façon, et il se comporte de manière comparable à ses homologues. Cependant, les attaques utilisant les trois premières méthodes peuvent être mises en œuvre simplement en téléchargeant des documents ou des pages Web (dans le cas d’une attaque contre les moteurs de recherche et/ou les pipelines NLP de scraping Web).

Dans une attaque de suppression, les caractères craftés effacent effectivement ce qui les précède, ou forcent le texte à une seule ligne dans un second paragraphe, dans les deux cas sans le rendre évident pour le lecteur occasionnel.

Dans une attaque de suppression, les caractères craftés effacent effectivement ce qui les précède, ou forcent le texte à une seule ligne dans un second paragraphe, dans les deux cas sans le rendre évident pour le lecteur occasionnel.

Efficacité contre les systèmes NLP actuels

Les chercheurs ont effectué une série d’attaques non ciblées et ciblées sur cinq modèles fermés populaires de Facebook, IBM, Microsoft, Google et HuggingFace, ainsi que sur trois modèles open source.

Ils ont également testé des attaques « éponge » contre les modèles. Une attaque « éponge » est essentiellement une attaque de refus de service pour les systèmes NLP, où le texte d’entrée « ne fonctionne pas », et ralentit considérablement la formation – un processus qui devrait normalement être rendu impossible par le prétraitement des données.

Les cinq tâches NLP évaluées étaient la traduction automatique, la détection de contenu toxique, la classification de l’entaillement textuel, la reconnaissance d’entités nommées et l’analyse de sentiments.

Les tests ont été effectués sur un nombre non spécifié de GPU Tesla P100, chacun exécutant un processeur Intel Xeon Silver 4110 sur Ubuntu. Pour ne pas violer les conditions de service dans le cas de l’appel d’API, les expériences ont été répétées de manière uniforme avec un budget de perturbation allant de zéro (texte source non affecté) à cinq (perturbation maximale). Les chercheurs soutiennent que les résultats qu’ils ont obtenus pourraient être dépassés si un plus grand nombre d’itérations était autorisé.

Résultats de l'application d'exemples adverses contre le modèle EN-FR Fairseq de Facebook.

Résultats de l’application d’exemples adverses contre le modèle Fairseq EN-FR de Facebook.

Résultats des attaques contre le classificateur de contenu toxique d'IBM et l'API Perspective de Google.

Résultats des attaques contre le classificateur de contenu toxique d’IBM et l’API Perspective de Google.

Deux attaques contre le Fairseq de Facebook: 'non ciblée' vise à perturber, tandis que 'ciblée' vise à changer le sens du langage traduit.

Deux attaques contre le Fairseq de Facebook: ‘non ciblée’ vise à perturber, tandis que ‘ciblée’ vise à changer le sens du langage traduit.

Les chercheurs ont également testé leur système contre des cadres antérieurs qui n’étaient pas en mesure de générer du texte perturbateur « lisible par l’homme » de la même manière, et ont constaté que le système était en grande partie à la hauteur de ceux-ci, et souvent nettement meilleur, tout en conservant l’avantage énorme de la discrétion.

L’efficacité moyenne sur toutes les méthodes, les vecteurs d’attaque et les cibles se situe autour de 80 %, avec très peu d’itérations exécutées.

En commentant les résultats, les chercheurs déclarent:

‘Peut-être l’aspect le plus inquiétant de nos attaques de perturbation imperceptible est leur applicabilité générale: tous les systèmes NLP basés sur du texte que nous avons testés sont sensibles. En effet, tout modèle d’apprentissage automatique qui ingère du texte fourni par l’utilisateur en tant qu’entrée est théoriquement vulnérable à cette attaque.

‘Les implications adverses peuvent varier d’une application à une autre et d’un modèle à l’autre, mais tous les modèles basés sur du texte sont basés sur du texte codé, et tout texte est sujet à un codage adverse à moins que le codage ne soit convenablement contraint.’

Reconnaissance optique de caractères universelle?

Ces attaques dépendent de ce qui sont essentiellement des « vulnérabilités » dans Unicode, et seraient éliminées dans un pipeline NLP qui rasterise tout le texte entrant et utilise la reconnaissance optique de caractères comme mesure de sanification. Dans ce cas, la même signification sémantique visible pour les personnes lisant ces attaques perturbatrices serait transmise au système NLP.

Cependant, lorsque les chercheurs ont mis en œuvre un pipeline OCR pour tester cette théorie, ils ont constaté que les scores BLEU (Bilingual Evaluation Understudy) ont diminué la précision de base de 6,2 %, et suggèrent que des technologies OCR améliorées seraient probablement nécessaires pour remédier à cela.

Ils suggèrent en outre que les caractères de contrôle BIDI devraient être supprimés de l’entrée par défaut, que les homoglyphes inhabituels devraient être mappés et indexés (ce qu’ils qualifient de « tâche ardue »), et que les tokenizers et les autres mécanismes d’ingestion devraient être armés contre les caractères invisibles.

En conclusion, le groupe de recherche exhorte le secteur du NLP à être plus vigilant face aux possibilités d’attaque adverse, actuellement un domaine d’intérêt important dans la recherche en vision par ordinateur.

‘[Nous] recommandons que toutes les entreprises qui construisent et déployent des systèmes NLP basés sur du texte mettent en œuvre de telles défenses si elles veulent que leurs applications soient robustes contre les acteurs malveillants.’

 

 

* Ma conversion de citations en ligne en hyperliens

18h08 14 décembre 2021 – j’ai supprimé la mention dupliquée d’IBM, j’ai déplacé le lien interne automatique à partir de la citation – MA

Écrivain en apprentissage automatique, spécialiste de domaine en synthèse d'images humaines. Ancien responsable du contenu de recherche chez Metaphysic.ai, jusqu'à sa dissolution dans Brahma.ai de DNEG.
Portfolio site : martinanderson.ai
Contact : martin@martinanderson.ai