Traquer les vulnérabilités des protocoles réseau

En quoi consistent vos travaux ?
Nos recherches s’appliquent aux protocoles réseau et à leur implémentation sur diverses machines. Ces protocoles sont encadrés par des normes dont les spécifications techniques ne sont pas toujours rigoureuses. Elles laissent alors place à des vulnérabilités et des bugs de sécurité. Nous cherchons à repérer ces dernières, notamment dans les protocoles tels que TLS ou SSH et nous nous rapprochons de leurs développeurs pour qu’elles soient corrigées.
Comment vous y prenez-vous ?
En testant en boite noire les piles protocolaires Open Source. En d’autres termes, nous interagissons avec ces implémentations par inférence – c’est-à-dire en provoquant une chaine de comportements selon des requêtes que nous leurs soumettons et les résultats qu’ils retournent - sans étudier leurs codes source. Le but est alors de comprendre leur fonctionnement et plus précisément la mécanique de leur machine à états (ndlr : un modèle mathématique représentant le comportement du programme).
Pour cela, nous élaborons notre propre machine à états, c’est la clef de voûte de nos travaux. Elle envoie une suite de messages en direction de l’implémentation étudiée, ce qui permet d’acquérir de nombreuses données et de modéliser le comportement de celui-ci. Nous analysons alors ce modèle et repérons ses vulnérabilités. Nous confirmons ensuite ces bugs avec les développeurs puis proposons des correctifs.
Qu’est-ce que vos travaux ont mis en avant ?
L’usurpation de l’identité d’un serveur est une des vulnérabilités les plus courantes que notre machine à états a pu révéler dans les implémentations réseaux Open Source. Nous sommes par exemple parvenus, au sein du protocole SSH (un outil permettant d’administrer des machines à distance), à court-circuiter la suite de messages par laquelle le serveur s’identifie auprès du client réseau. Ce dernier est alors persuadé qu’il peut transmettre ses données sensibles en toute sécurité. Nous avons également montré que des boucles de messages figent certains protocoles et rendent des serveurs inutilisables.
Quelles sont les applications possibles de vos recherches ?
Il s’agit principalement de faire remonter aux développeurs d’un protocole réseau les vulnérabilités qui sont apparues au fil des versions. Certains comportements qui n’étaient pas problématiques à un instant t le deviennent ultérieurement, du fait notamment de normes imprécises. Les applications sont en effet touchées par une accumulation de mises à jour qui finissent par nuire à leur bon fonctionnement. L’implémentation OpenSSL du protocole TLS qui sécurise une grande partie du web, a par exemple été touchée par ce phénomène de dette technique il y a quelques années. Plusieurs vulnérabilités d’ampleur avaient été médiatisées et de gros moyens humains attribués au nettoyage de sa machine à états.
Aujourd’hui, la maintenance du logiciel libre est sérieusement prise en compte et nous apportons notre pierre à cet édifice. En effet, grâce à nos outils, les développeurs peuvent étudier les changements de comportement d’une implémentation lorsqu’une mise à jour doit avoir lieu. Le code est mieux compris, simplifié et stabilisé avant la montée de version.
L’enjeu est de taille car de nombreux acteurs économiques implémentent ces protocoles sur leurs réseaux. Côté Défense par exemple, les systèmes intègrent certains protocoles critiques comme TLS, SSH ou encore OPC-UA que nous avons étudiés. Dans ce même secteur, notre technique de machine à états est appliquée à des protocoles « pris sur l’étagère » afin d’en comprendre le fonctionnement (reverse engineering) et de renforcer la confiance envers ceux-ci avant leur utilisation.
Quels sont vos projets en cours ?
Je parlais plus haut des différentes étapes de nos travaux : acquisition par inférence, analyse, confirmation. Nous travaillons actuellement à l’automatisation de la première phase en nous appuyant sur l’adaptative learning, c’est-à-dire l’utilisation de connaissances passées lors de l’apprentissage. L’objectif est d’accélérer l’inférence pour gagner en efficacité et en rapidité. À terme, il s’agirait d’industrialiser l’étude des implémentations réseau et leur simplification.

Olivier Levillain est maître de conférences en sécurité des systèmes d'information à Télécom SudParis depuis 2018. Auparavant, il a été responsable du centre de formation à la SSI au sein de l'Agence Nationale de la Sécurité des Systèmes d'Information (ANSSI). Il a également travaillé dans les laboratoires de la sous-direction expertise de l'ANSSI sur des sujets variés allant des attaques sur les mécanismes bas-niveau des architectures matérielles aux infrastructures de gestion de clés. Ses travaux de recherche portent actuellement sur l'analyse des implémentations de protocoles réseau tels que TLS et SSH, ainsi que sur la reproduction fiable de vulnérabilités logicielles en environnement Linux.
>> Olivier Levillain sur Google Scholar
*SAMOVAR : un laboratoire de recherche Télécom SudParis, Institut Polytechnique de Paris, 91120 Palaiseau, France