Skip to main content
Communiqué de presse

NOUVELLE RECHERCHE : Une étude de Concordia examine les risques liés aux blocs de codage en libre accès

Le professeur Emad Shihab et ses étudiants révèlent l’usage répandu des « paquets triviaux », qui peuvent avoir des conséquences néfastes

Emad Shihab : « Le grand public ne peut supposer que ces logiciels sont à toute épreuve. »

Montréal, le 21 décembre, 2017 — Vous souvenez-vous, en 2016, lorsqu’un programmeur a presque détraqué Internet?

Il avait effacé 11 lignes de code. Ces lignes formaient un module appelé left-pad, un tout petit paquet de code en libre accès dont dépendaient de gros sites Web, comme Reddit, Twitter, Spotify et Facebook. Le vent de panique qui en a découlé a incité un chercheur de l’Université Concordia à examiner de plus près les enseignements à tirer de l’incident.

« Quand le programmeur qui avait créé left-pad a décidé d’effacer son paquet, il a failli paralyser Internet », explique Emad Shihab, professeur agrégé au Département d’informatique et de génie logiciel.

« Je voulais savoir à quelle fréquence les développeurs avaient recours à ces paquets triviaux, prêts à l’emploi, et les raisons pour lesquelles ils les utilisaient. »

Le Pr Shihab a présenté ses résultats à l’occasion de la tenue conjointe du colloque européen sur le génie logiciel et du symposium de l’ACM SIGSOFT sur les fondations du génie logiciel en Allemagne, en septembre dernier.

Il a rédigé le compte rendu de son étude en collaboration avec le doctorant Rabe Abdalkareem, les étudiants à la maîtrise Sultan Wehaibi et Suhaib Mujahid, ainsi que l’étudiant au premier cycle en génie logiciel Olivier Nourry.

De populaires applications Web dépendent de « paquets triviaux »

Emad Shihab et son équipe sont parmi les premiers à mener une étude empirique sur la prévalence des logiciels qui dépendent de « paquets triviaux » – de courts éléments de programme prêts à l’emploi, destinés à l’exécution de tâches simples et banales. Les chercheurs ont été étonnés par leurs résultats.

« Plus de 38 000 paquets npm – soit l’équivalent de 16,8 pour cent des paquets sur npm – sont triviaux », affirme le Pr Shihab, qui dirige le Laboratoire d’analyse logicielle guidée par les données (DAS Lab) de l’Université Concordia.  La plateforme de gestion npm est un grand dépôt logiciel où sont archivés des éléments de programme réutilisables.

 « Ces paquets triviaux sont aussi très utilisés. De fait, 113 des 1 000 paquets npm les plus téléchargés sont triviaux. Cela peut devenir problématique, car ces dépendances peuvent rendre de populaires applications Web vulnérables dans des situations comme les mises à jour, et peuvent même les ralentir. Les développeurs doivent alors déployer des efforts supplémentaires. »

Prenons l’exemple d’un détaillant en ligne. Si le développeur Web qu’a retenu le détaillant s’est servi d’un paquet trivial dans l’élaboration du processus de paiement par carte de crédit – une situation très fréquente – l’ensemble du site Web du détaillant dépend alors d’un paquet trivial. Tout fonctionne bien, jusqu’au moment où il y a une mise à jour du paquet, et que cela cause un pépin qui a pour effet de suspendre toutes les transactions.

Les inconvénients d’un raccourci de programmation

« Pourquoi alors risquer d’utiliser des paquets triviaux? Parce que les développeurs ne veulent pas réinventer la roue, souligne le Pr Shihab. Si un paquet trivial très populaire est employé dans une composante du processus de paiement par carte de crédit, tout fonctionnera sans doute très bien, pendant un certain temps.

« Or, les détaillants devraient-ils vraiment bâtir à neuf tous les éléments des programmes nécessaires aux opérations par carte de crédit ou à d’autres tâches relativement simples? C’est plus sûr, oui, mais ça prend du temps. »

Le Pr Shihab considère sa recherche comme l’une des plus vastes études empiriques en génie logiciel. Son équipe d’étudiants a examiné plus de 230 000 paquets npm et quelque 38 000 applications JavaScript. Ils ont également sondé 88 développeurs d’applications JavaScript afin de comprendre pourquoi ces derniers utilisaient des paquets triviaux.

« Nos résultats montrent que la façon de concevoir les logiciels a évolué – pour le meilleur et pour le pire – et l’emploi répandu des paquets triviaux comporte des risques. Dans la vie, rien n’est gratuit », commente-t-il.

« Le grand public ne peut supposer que les logiciels dont il dépend sont fiables à cent pour cent. En fait, plus nous étudions les systèmes logiciels complexes, plus nous nous rendons compte de leur fragilité croissante. Nos observations sur l’usage répandu des paquets triviaux en sont la preuve : il ne faut pas croire ces systèmes logiciels à toute épreuve. »


Lisez le compte rendu de l’étude présenté au colloque conjoint : Why Do Developers Use Trivial Packages? An Empirical Case Study on npm

Apprenez-en plus sur le DAS Lab et le Département d’informatique et de génie logiciel.


Source




Retour en haut de page

© Université Concordia