Un professeur de Concordia utilise l’apprentissage machine pour améliorer la sécurité logicielle
De nos jours, les logiciels sont partout.
En effet, la vaste majorité des activités y font appel d’une manière ou d’une autre : pilotage des avions, paiement des impôts, simple allumage de l’ordinateur le matin, etc.
Un code logiciel déficient peut toutefois endommager un système informatique ou, pire, exposer ses utilisateurs à des violations de données perpétrées par des acteurs malveillants.
Yann-Gaël Guéhéneuc, professeur au Département d’informatique et de génie logiciel, souhaite réduire ce risque.
Au moyen de données issues de divers systèmes logiciels, il enseigne aux algorithmes d’apprentissage machine à établir leurs propres règles en matière de qualité logicielle, pour déterminer ce qui est acceptable et ce qui peut poser un risque pour la sécurité.
L’objectif est de disposer un jour d’un outil permettant aux concepteurs de logiciels de vérifier leur code après l’avoir écrit – un peu comme le vérificateur orthographique de Microsoft Word permet de repérer les coquilles.
Montréal est aujourd’hui la Mecque de la recherche sur l’intelligence artificielle.
Comment exploitez-vous l’intelligence artificielle (IA) dans le cadre de vos travaux de recherche ?
Yann-Gaël Guéhéneuc : Notre but est d’améliorer la qualité logicielle. Un des problèmes, c’est qu’il faut disposer de règles claires et strictes pour l’assurer. Or, il est impossible de formuler des règles très explicites en la matière, parce qu’il y a trop de facteurs à prendre en compte.
Le contrôle de la qualité logicielle est complexe : un ordinateur est fait de mille choses, et les logiciels sont conçus par des humains. Un concepteur novice ne produira pas la même qualité qu’un concepteur chevronné.
Une des solutions réside dans l’apprentissage machine. Il s’agit de prendre des systèmes logiciels, de procéder à une foule de mesures, puis de confier ces données aux algorithmes d’apprentissage machine qui en arriveront à leurs propres déductions en matière de règles à suivre.
Les algorithmes actuels génèrent une liste d’éléments de code, en indiquant que tel ou tel est « plutôt » satisfaisant, ou « plutôt » insatisfaisant. On peut ensuite procéder à une analyse approfondie.
Nous nous concentrons habituellement sur la sécurité logicielle, car c’est une vive préoccupation. Éventuellement, les algorithmes devraient être en mesure de nous dire : « Cet élément de code pose un risque pour la sécurité. Il n’est pas sûr. Vous devez le réécrire, le repenser ou le modifier pour le rendre plus sûr. »
Comment vous êtes-vous intéressé à cette question?
YGG : Il y a longtemps que je m’intéresse à la qualité logicielle, parce que ça coûte très cher. C’est le genre de choses que tout le monde souhaite, mais pour lesquelles personne ne veut payer.
En tant qu’utilisateurs de Windows ou d’ordinateurs Macintosh, nous sommes en quête de vitesse, de sécurité et de facilité d’utilisation, mais tout ça est difficilement conciliable. Il est difficile de mettre au point un système à la fois ultra rapide et très sûr.
C’est ce qui m’a poussé à me demander s’il serait possible de trouver des moyens d’évaluer la qualité logicielle.
En quoi vos travaux de recherche pourraient-ils contribuer à l’amélioration de notre quotidien?
YGG : Ils pourraient éventuellement – ce n’est pas encore le cas – conduire à des systèmes logiciels plus sûrs, grâce aux règles établies par déduction au moyen de l’apprentissage machine. Les concepteurs peuvent faire bien des choses par eux-mêmes, mais l’apprentissage machine peut vraiment leur venir en aide.
L’apprentissage machine peut, par exemple, contribuer à améliorer la qualité d’un nouveau système assorti d’un nouveau code, mais présentant ici ou là des problèmes de sécurité.
Pour les concepteurs, l’apprentissage machine pourrait devenir un outil de travail. Une fois leur code écrit, il pourrait leur indiquer comment améliorer la sécurité du logiciel et sa qualité dans son ensemble. Un peu à la façon de Microsoft Word, qui souligne en rouge les coquilles d’un texte.
D’après vous, les progrès en matière d’IA changent-ils notre manière de faire les choses?
YGG : Oui, beaucoup d’exemples le montrent. On voit de plus en plus de feux de circulation gérés par l’intelligence artificielle. L’IA gère même la circulation, prévient les bouchons, etc. En médecine aussi, elle est de plus en plus utilisée pour aider les médecins à traiter les patients.
Malheureusement, l’IA sert parfois à contrôler ou à cibler certains groupes d’utilisateurs – c’est un grand débat actuellement.
Selon vous, quelle place Montréal occupera-t-elle dans l’avenir de l’IA?
YGG : Montréal est en ce moment la Mecque de la recherche sur l’IA. Elle abrite une masse critique de chercheurs dans ce domaine. Ceux de l’École Gina-Cody, bien sûr, mais aussi ceux de l’Université McGill, de l’Université de Montréal et de l’Université du Québec à Montréal (UQAM).
En prime, la Ville de Montréal s’intéresse beaucoup à l’usage de l’intelligence artificielle. Montréal a donc tous les atouts en main.
Apprenez-en davantage sur le Département d’informatique et de génie logiciel de Concordia.