[Éclairage] Virus informatique : de la genèse à l’intelligence artificielle
L’un des aspects de la cybersécurité est de lutter contre les logiciels malveillants. Jean-Yves Marion, directeur du Laboratoire Lorrain de recherche en informatique et ses applications (Université de Lorraine, CNRS, Inria), professeur à l’université de Lorraine et membre de l’IUF, nous éclaire sur ces malwares, leur genèse et les recherches qui aident à lutter contre ces « infections ».
Les auteurs de science-fiction nous projettent dans un futur en imaginant, et parfois en anticipant, de nouvelles technologies. En 1970, l’auteur Gregory Benford utilise le mot Virus dans la nouvelle « The Scarred man returns » pour décrire ce que nous appelons un virus informatique. Treize ans plus tard, Fred Cohen, étudiant en thèse sous la direction de Leonard Adleman (prix Turing en 2002), modélise le fonctionnement d’un virus informatique et pose les bases théoriques, imposant la dénomination virus. Par la suite, les auteurs de science-fiction ont imaginé de nombreux scénarios allant de l’espionnage à l’épidémie informatique. Or ces scénarios ne sont pas toujours si éloignés la réalité : En 2010, on découvre que le ver StuxNet attaque des centrales nucléaires ; en 2016, des objets connectés comme des caméras ont été utilisés par le botnet Mirai pour bloquer l’accès à internet ; aujourd’hui, les rançongiciels, comme Wannacry, bloquent les systèmes d’information en les chiffrant, avec des dégâts considérables tant humains que financiers. Plus récemment, fin 2020, de grandes entreprises et certaines administrations gouvernementales aux États-Unis ont été infiltrées.
Les exemples sont nombreux, mais pour comprendre la portée des virus informatiques, il faut comprendre a minima leur fonctionnement. Pour cela, il faut se départir un temps du mot virus pour se débarrasser des analogies superficielles avec la biologie. Nous parlerons plutôt de logiciels malveillants (malware) dont la définition se réduit à un programme informatique s’introduisant dans un système numérique à l’insu de son utilisateur. Il est le plus souvent en communication avec un système de Commande et de Contrôle (souvent abrégé C&C ou C2) pour mettre à jour et récupérer des informations du système compromis. Le système numérique ainsi compromis est souvent intégré à un botnet qui est un réseau d’objets numériques infectés.
Une attaque en trois étapes
Une attaque se déroule schématiquement en trois étapes. Tout d’abord, le logiciel malveillant s’introduit dans un système informatique. Pour cela, l’attaquant cible le plus souvent des victimes et les incite à faire une action, comme cliquer sur une pièce jointe dans un courriel, pour entrer dans un système. Un autre procédé consiste à trouver une vulnérabilité, c’est-à-dire un bug, du système informatique et à l’exploiter. Ce bug sert de porte d’entrée au logiciel malveillant. Il est bon de noter qu’un système informatique sans bug est un système plus résistant aux attaques.
Dans la seconde étape, le logiciel malveillant essaiera probablement de se connecter et installer d’autres logiciels (on parle alors de Dropper).
Dans la troisième et dernière étape, l’attaquant va exploiter sa position dans le système en exfiltrant des informations, en modifiant ou en détruisant des informations. Le logiciel malveillant pourra être ensuite mis à jour, et poursuivre sa vie.
Identifier les cyberattaques
Pour faire face aux logiciels malveillants, les antivirus analysent le trafic réseau et l’ensemble des supports d’un système informatique. Pour cela, les antivirus essaient d’identifier une cyberattaque à partir d’une connaissance des logiciels malveillants employés dans des attaques précédentes. Il est assez facile alors de comprendre qu’un nouveau logiciel malveillant passera inaperçu, car inconnu des systèmes de défense. Les attaquants développent également de nombreuses souches différentes d’un même logiciel malveillant pour le rendre invisible des systèmes de défense.
Cette pratique crée un grand nombre de souches, rendant la détection des logiciels malveillants complexes. Comment reconnaître qu’un logiciel est malveillant ? Comment générer des souches différentes d’un même programme ? Quelles sont les méthodes de programmation pour rendre invisible l’intention d’un logiciel ? Autant de questions de recherche qui combinent à la fois l’informatique fondamentale, l’intelligence artificielle et l’ingénierie.
Au sein du LORIA, nos travaux portent sur les nouvelles méthodes d’analyse et de détection des malwares. Nous avons développé une approche dite par analyse morphologique, qui permet de détecter des variantes de malwares inconnus et des nouvelles attaques. Pour cela, nous avons apporté tout un savoir-faire en méthodes formelles, en algorithmique et en apprentissage automatique (IA). Ces travaux ont conduit à la création d’une start-up : Cyber-Detect. Ces recherches ont pu être validées par la plateforme LHS (Laboratoire de Haute Sécurité) du LORIA qui héberge plus de 20 millions de codes malveillants. D’autres travaux sont menés au LORIA sur les objets connectés, sur le vote électronique et sur la cryptanalyse.
Pourrions-nous alors anticiper, à l’instar les auteurs de science-fiction, la nature des prochaines cyberattaques ?
Aujourd’hui, des travaux de recherche conduisent à des attaques sur les décisions prises par les algorithmes d’apprentissage. Inversement, on pourrait concevoir des virus sophistiqués qui utilisent des méthodes d’intelligence artificielle. Une fois dans un système informatique, de tels virus pourraient le leurrer et le tromper et prendre des décisions à l’insu des utilisateurs. La recherche doit permettre de comprendre les menaces pour les anticiper, tout en développant des outils de protection.
Sur le même thème