Le rythme effréné auquel l'intelligence artificielle (IA) a progressé ces dernières années a commencé à avoir des effets transformateurs dans un grand nombre de domaines. Dans un monde de plus en plus (inter)connecté où les cyberattaques se produisent à une fréquence et à une échelle alarmantes, il n'est pas étonnant que le domaine de la cybersécurité se tourne désormais vers l'IA et l'apprentissage automatique pour détecter les adversaires et se défendre contre eux.
L'utilisation de l'IA dans le domaine de la cybersécurité permet non seulement d'élargir le champ d'action d'un expert en sécurité, mais aussi de découvrir des attaques qui, autrement, auraient été indétectables par un être humain. Tout comme il était presque inévitable que l'IA soit utilisée à des fins défensives, il est indéniable que les systèmes d'IA seront bientôt utilisés à des fins offensives.
Nous décrivons ici les trajectoires à court et à long terme que ces applications antagonistes de l'IA sont susceptibles de prendre, compte tenu de l'histoire et de l'état de l'IA.6
Candidatures immédiates
Il existe un certain nombre de domaines dans lesquels le développement de l'IA, et de l'apprentissage profond en particulier, a des applications spécifiques qui peuvent néanmoins être modifiées à des fins malveillantes par des pirates informatiques.
Par exemple, de nombreuses techniques de pointe pour le traitement du langage naturel utilisent une forme de réseau neuronal récurrent connu sous le nom de LSTM afin de traiter, classer, générer et même traduire le langage naturel. Un modèle de langage LSTM formé sur un ensemble de données vocales ou textuelles peut être utilisé pour générer de nouvelles phrases dans la même voix ou de la même manière que le texte à partir duquel il a été formé. Ce modèle qui a appris à générer des tweets dans la voix de Trump est un exemple de cette utilisation :
Les modèles de ce type peuvent facilement être utilisés par les pirates comme un outil parmi d'autres dans leur arsenal. Par exemple, diverses familles de malware utiliseront des algorithmes de génération de domaines (DGA) pour construire aléatoirement de nouveaux domaines qui serviront de points de rendez-vous afin que les machines infectées puissent se connecter à un serveur de commande et de contrôle. Si les domaines étaient codés en dur, il serait trivial pour un administrateur de réseau de simplement mettre sur liste noire les domaines malveillants.
Étant donné que les domaines générés de manière aléatoire (par exemple nawntgvcbixvwh.net) sont très différents des types de domaines qu'un être humain enregistrerait, il est relativement facile de créer des modèles capables de détecter les domaines normaux par rapport aux domaines DGA. Un modèle LSTM formé sur des noms de domaine normaux, cependant, pourrait facilement construire des domaines truqués qui ne se distinguent pas de ceux qu'un être humain pourrait choisir.
Une autre classe de modèles (qui utilisent aussi souvent des LSTM) est connue sous le nom de modèles séquence-séquence (seq2seq). Les modèles seq2seq, actuellement à la pointe de la technologie dans le domaine de la traduction, prennent en entrée une séquence dans un domaine ou une langue (par exemple, une phrase en anglais) et produisent en sortie une séquence dans un autre domaine ou une autre langue (par exemple, une phrase en français).
Cependant, ces modèles peuvent également être utilisés pour une technique connue sous le nom de fuzzing, qui automatise le processus de recherche d'erreurs et de failles de sécurité dans le code(https://arxiv.org/pdf/1701.07232.pdf). Les failles de sécurité trouvées par ces techniques peuvent souvent conduire à des débordements de mémoire tampon, des injections SQL, etc. qui donnent aux attaquants le contrôle total d'un système.
En général, les domaines dans lesquels l'IA et la ML sont le plus immédiatement applicables ont une portée limitée et ne fonctionnent qu'en conjonction avec un attaquant humain qui utilise le système. Les domaines d'application sont susceptibles de se limiter à l'accélération de l'automatisation de divers types de tâches (comme dans le cas du fuzzing) ou à l'imitation des performances et du comportement humains (comme dans le cas de la DGA).
Applications à court terme
Au fur et à mesure que l'IA se développera au cours des prochaines années, des techniques qui n'ont été mises au point que récemment, telles que les réseaux adversaires génératifs (GAN), commenceront à élargir le champ des possibilités d'attaque.
Il est intéressant de noter que les GAN ont d'abord été motivés par l'examen des attaques adverses contre les méthodes d'apprentissage profond existantes : de simples modifications des entrées qui seraient autrement indiscernables pour les humains, mais qui confondraient au maximum un réseau neuronal. Prenons l'exemple suivant, tiré de Goodfellow et al. (2014)[https://arxiv.org/abs/1412.6572]:
L'ajout d'une légère quantité de bruit à l'image d'un panda (partie gauche de l'équation dans la figure ci-dessus) donne une image d'un panda que la plupart des humains ne peuvent pas distinguer de l'original (partie droite de l'image ci-dessus). Néanmoins, ce léger ajout modifie la prédiction d'un réseau neuronal qui a été entraîné à reconnaître des objets dans des images d'un "panda" à un "gibbon". Un exemple plus récent a permis de générer des confusions similaires avec le changement d'un seul pixel(https://arxiv.org/abs/1710.08864v2).
Ce type d'attaques va se multiplier à mesure que l'IA et la ML s'immiscent dans notre vie quotidienne. Les réseaux neuronaux profonds du type de ceux qui ont été attaqués dans les exemples ci-dessus sont au cœur des systèmes de vision qui régissent les voitures sans conducteur, la reconnaissance faciale (pensez aux caméras lorsque vous passez la sécurité aux frontières pour rentrer aux États-Unis) et bien d'autres choses encore.
Les types d'attaques adverses présentés ci-dessus seront de plus en plus utilisés pour des comportements malveillants, car de plus en plus de systèmes s'appuient sur des solutions d'IA automatisées.
Les GAN, qui ont été motivés à l'origine par des attaques adverses, sont également intéressants en soi. Les GAN sont des réseaux neuronaux couplés avec une compétition entre un réseau générateur, dont la tâche est de générer une sortie, et un réseau discriminateur, dont la tâche est de déterminer si l'entrée qu'il voit a été générée par le générateur ou tirée d'un ensemble de données réel.
Il est étonnant de constater que les allers-retours entre les réseaux dans le cadre de la théorie des jeux aboutissent à un générateur capable de produire des résultats d'un réalisme stupéfiant. C'est particulièrement vrai dans le domaine des images, où les GAN ont commencé à créer des images qui semblent hyperréelles (par exemple, des visages de célébrités qui n'existent pas : http://research.nvidia.com/publication/2017-10_Progressive-Growing-of), mais ils sont aussi maintenant utilisés pour générer du langage naturel.
Ces modèles seront capables de générer un discours humain réaliste dans la voix ou le code d'une autre personne afin d'atteindre un objectif ou une tâche particulière. Ils commenceront probablement à être utilisés pour tromper les systèmes et les humains en générant des résultats impossibles à distinguer des résultats réels.
Orientations à long terme
À long terme, nous nous attendons à ce que l'utilisation de l'IA dans des contextes adverses ou malveillants s'oriente de plus en plus vers le domaine de l'apprentissage par renforcement (RL). Contrairement aux modèles examinés jusqu'à présent, l'apprentissage par renforcement permet à un agent d'IA non seulement de traiter des données, mais aussi de prendre des décisions en réponse à ces données d'une manière susceptible d'affecter l'environnement lui-même.
La capacité d'observer un environnement ou un état d'entrée, puis de prendre des mesures en réponse à cet état, clôt ce que Jean Piaget appelait la "boucle action-perception" chez l'homme. Sans la capacité de prendre des décisions et d'agir, un agent d'IA n'est effectivement capable que de traiter des données d'entrée. C'est la RL qui a permis aux IA modernes de jouer à des jeux (par exemple, https://deepmind.com/research/publications/playing-atari-deep-reinforcement-learning/) et qui a conduit les systèmes d'IA à battre les meilleurs joueurs de Go du monde(https://deepmind.com/blog/alphago-zero-learning-scratch/).
En substance, le RL fonctionne en donnant à un agent une récompense positive lorsqu'il atteint un certain objectif et en lui donnant une récompense négative lorsqu'il échoue. Les récompenses devraient alors augmenter la probabilité d'entreprendre des actions réactives susceptibles de conduire à des récompenses positives, tout en inhibant les actions susceptibles de conduire à des récompenses négatives.
Une certaine forme de RL (ou des méthodes connexes qui en découlent) sera nécessaire pour créer des agents d'IA capables de reconnaître, de cibler et d'attaquer un réseau de manière autonome. En effet, à l'adresse Vectra, nous avons déjà construit des agents rudimentaires capables d'apprendre à scanner des réseaux de manière à échapper aux systèmes de détection. Ces systèmes ont été formés en récompensant les agents pour les informations collectées, tout en les punissant chaque fois qu'ils se faisaient prendre.
Ce type de formation n'est cependant pas simple, car il n'existe pas de méthodes claires pour définir ce qu'est un environnement et quel est l'espace des actions possibles (contrairement à des choses comme les jeux Atari ou même un jeu notoirement difficile comme le Go, dans lequel l'espace d'état et l'espace d'action sont relativement clairs).
Il existe même aujourd'hui un projet qui tente d'utiliser l'API Metasploit afin de créer une série d'états et d'actions facilement ingérables par des algorithmes RL, qui peuvent ensuite être utilisés par des algorithmes développés dans TensorFlow. Ce projet, appelé DeepExploit, a été présenté à Black Hat 2018(https://github.com/13o-bbr-bbq/machine_learning_security/tree/master/DeepExploit).
En fin de compte, c'est cette dernière catégorie d'IA pour les comportements malveillants ou d'attaque qui a historiquement captivé l'imagination des auteurs de science-fiction et du grand public. Mais bien avant que ces types d'agents ne voient le jour, l'IA et la ML seront utilisées pour une grande variété d'attaques - dont certaines sont déjà prévisibles et d'autres ne seront connues qu'au moment où elles se produiront.
Godefroid, P., Peleg, H., & Singh, R. (2017, octobre). Learn&fuzz : Machine learning for input fuzzing. InProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering(pp. 50-59). IEEE Press.
Goodfellow, I. J., Shlens, J., & Szegedy, C. Explaining and harnessing adversarial examples (2014).arXiv preprint arXiv:1412.6572.
Karras, T., Aila, T., Laine, S. et Lehtinen, J. (2017). Progressive growing of gans for improved quality, stability, and variation.arXiv preprint arXiv:1710.10196.
Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D. et Riedmiller, M. (2013). Playing atari with deep reinforcement learning.arXiv preprint arXiv:1312.5602.
Silver, D., Schrittwieser, J., Simonyan, K., Antonoglou, I., Huang, A., Guez, A., ... & Chen, Y. (2017). Maîtriser le jeu de Go sans connaissance humaine.Nature,550(7676), 354.
Su, J., Vargas, D. V. et Kouichi, S. (2017). One pixel attack for fooling deep neural networks.arXiv preprint arXiv:1710.08864.