Nous contacter ?
Nous sommes toujours en quête de nouveautés et de nouvelles rencontres.

J'ai besoin d’accompagnement dans la conception de mon projet
J’ai un projet précis, je souhaite obtenir un devis.
J’ai besoin de ressources techniques en renfort.
Votre agence m’intéresse et je souhaite postuler.
Il semblerait que vous ayez un projet en tête !
Vous pouvez nous décrire votre projet, nous vous répondrons dans les plus bref délais.
* Champs obligatoires

Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.

L’open source, un système incroyable mais pas sans risque

Open source
Le programme open source, ou “logiciel libre” en français, est très fortement utilisé. Pourtant, il est à l'origine de différents conflits. En tant qu’agence experte en développement web et digitale, nous vous proposons dans cet article une présentation de l’open source et de ses menaces.

Le programme open source, ou “logiciel libre” en français, est très fortement utilisé dans le déploiement de plateforme web. En tant qu’agence digitale, nous vous proposons dans cet article une présentation de l’open source et de ses menaces. Pour connaitre tous nos autres conseils sur la conception de vos site ou applications web, retrouvez notre autre article Réussir la création votre site internet ou application web en 2022.

Qu’est-ce que l’open source ? 

Définition

L’open source, en français « logiciel libre », est fréquemment confondu avec le libre de droit qui représente toutes sortes de produits qui ne sont pas ou plus détenus par une entité.

L’open source est en réalité une évolution du concept de libre de droit au monde du logiciel.

 

Comme le laisse entendre la traduction littérale, « source ouverte », elle désigne un logiciel dont les sources sont ouvertes en ligne, et donc consultables par tout le monde. Dans la grande majorité des cas, le code source est clonable, modifiable et l’usage en est gratuit.

Mais attention, il faut bien noter que la mention « libre de droits » ou « open source » ne signifie pas que l’utilisation d’un contenu est exempte de toute condition ou précaution.

 

Qui est à l’origine des logiciels open source ?

 

Les entreprises comme Google ou Meta dépensent énormément dans le développement de projet open source. Ces entreprises voient l’open source comme un bon investissement pour leur business.

 

Comme le dit Meta : 

 

« Cela signifie que nous concevons de meilleurs logiciels, écrivons un meilleur code, nos ingénieurs sont capables de travailler avec plus de fierté et nous sommes en mesure de retenir les meilleurs ingénieurs du monde parce qu’ils savent qu’ils peuvent rendre leur travail open source. »

 

Les développeurs passionnés contribuent aussi énormément. Ils aiment contribuer à des projets de pointe et relever des défis techniques. Sans cette grande communauté philanthropique, l’open source n’aurait clairement pas le même visage.

 

L’open source aujourd’hui

 

Aujourd’hui l’open source est omniprésent dans le développement de logiciels. Cela s’étend des langages de programmation (golang, php, c…) aux librairies de développement (react, typescript, expo…) jusqu’aux systèmes d’exploitation (Linux, Android).

 

Certains projets se sont très vite démocratisés. Des technologies de pointe ont été mises entre les mains des développeurs tout autour du monde, leur permettant d’améliorer leurs logiciels en accédant à des systèmes qui étaient précédemment réservés aux entreprises.

 

Par exemple, aujourd’hui chez Sooyoos, on utilise beaucoup de logiciels open source (linux, typescript, react, react native, expo, php, symfony…). Celles-ci nous permettent de construire des plateformes fiables, innovantes et maintenables.

 

L’open source à maintenant d’autres avantages : 

 

  • La réduction de contrôle d’un pays sur la technologie 
  • La mise à  disposition des programmes fiables et sécurisés en étant inspectés et testés par des milliers d’utilisateurs.

Les principaux problèmes de l’open source

 

  • Le problème du financement

L’un des plus gros problèmes du logiciel libre est son financement. En effet, lorsque des développeurs passent énormément de temps à créer des logiciels dont dépendent un grand nombre d’entreprises, il semble logique que ces développeurs aient besoin de financement.

 

Comme l’écrivait Bill Gates dans sa lettre ouverte au club des Hobbyists en 1976, ne pas financer des projets d’une quelconque manière décourage les développeurs à créer de bons logiciels.

 

  • Le problème de dépendance

Le second problème est la dépendance aux projets open source. Dans un monde où l’on essaye d’éviter les « single point of failure » (point de défaillance unique), il paraît irréaliste de reposer totalement sur des projets qui peuvent être développés et maintenus par un seul développeur. Et c’est pourtant le cas ! Les dépendances de dépendances ne sont pas maîtrisées par l’utilisateur final, et une très grande partie des infrastructures existantes reposent sur des projets, certes, open source, mais en réalité inconnus.

 

Finalement se pose le problème de la confiance aveugle en l’open source. Par qui est développé ce projet ? Peut-il ou peuvent-ils en faire ce qu’ils veulent ? Les réponses à ses questions sont souvent inconnues.

 

Des exemples de projet open source sabotés par leur développeurs 

 

  • Le cas Mocha.js 

 

Mocha.js est une librairie de test en JavaScript. Le projet est énormément utilisé comme en témoignent les 21000 stars sur GitHub ainsi que les plus de 6 millions de téléchargements par semaine. Le projet utilise Open Collective pour se financer. La plateforme permet alors à des entreprises ou des utilisateurs de donner de l’argent au projet. Les leaders du projet décident ensuite de la répartition de cet argent entre les différents contributeurs. 

 

Le 7 octobre 2020, le créateur du projet, qui ne contribue plus depuis 2015, a décidé de venir réclamer son dû en menaçant de supprimer toutes ses lignes de code.

 

Il récupérera son argent dès le lendemain.

La suppression de son code n’était surement pas faisable, car il n’avait plus aucun pouvoir sur le projet. Le code aurait pu même être cloné pour continuer à l’utiliser. Mais ce cas illustre bien le problème de reconnaissance à la contribution open source, mais aussi qu’il existe des solutions de financement.

 

  • Le cas de Colors.js 

 

Marak Squires, était le créateur et le seul mainteneur de colors.js, un projet téléchargé plus de 26 millions de fois par semaine. Le 8 janvier 2022, Marak décide de saboter son projet par manque de reconnaissance financière des nombreuses entreprises qui l’utilisent. Il décide d’afficher un message et un dessin dans le terminal avant de lancer une boucle infinie.

 

La conséquence est directe : l’exécution de tous les programmes utilisant colors.js. est bloquée. Or, étant le seul à maintenir le projet, il publie ainsi sa nouvelle version non fonctionnelle et beaucoup de programmes ne sont plus effectifs.

 

Le problème est que beaucoup de personnes et d’entreprises ont donné une confiance aveugle en ce projet sans savoir qu’une seule personne pouvait décider du bon fonctionnement de leur code. Ce dernier a finalement été banni de github, perdant l’accès à tous ses projets et colors.js a été repris par d’autres personnes.

 

Les risques et les solutions avec open source

Les risques de vol de tokens

 

Certaines personnes n’hésitent pas à ajouter du code malintentionné dans leur projet. En effet, il arrive régulièrement que des vols de token dans l’environnement des ordinateurs, mais surtout des vols de token discord (logicielle de discussion instantanée) soient détectés. Les tokens d’environnement contiennent souvent des secrets, comme les mots de passe à une base de données. Les tokens discords permettent, quant à eux, d’envoyer n’importe quels messages dans un salon de discussion privé, comme par exemple de la publicité pour des arnaques.

 

Le problème affiché ici est la confiance portée par l’utilisateur. Le projet a ses sources ouvertes certes, mais cela ne veut pas dire qu’il n’est pas malveillant. Dans les faits, peu de personnes regardent les sources. La plupart des projets qui s’avèrent voler des tokens sont en fait des clones de projets populaires. Il faut donc bien vérifier qu’un projet est l’original et vérifier les retours utilisateurs avant de l’utiliser.

 

Les risques d’évolution d’un projet 

 

N’importe qui peut contribuer à un projet open source, à condition que son code soit accepté par les personnes qui maintiennent ce même projet. Il peut s’avérer dans certains cas que des mises à jour qui dévient de votre vision du projet sont acceptées. Dans le pire des cas, elles cassent une fonctionnalité en changeant son comportement.

 

Votre application peut ainsi ne plus se comporter comme vous le vouliez. Malheureusement, modifier cette fonctionnalité dans le projet peut demander du temps. Les mainteneurs peuvent alors  mettre plusieurs mois à répondre et accepter des changements.

 

Les solutions 

 

Il existe des solutions en tant que développeur afin de contrôler la version des dépendances utilisées. Le fichier des dépendances JavaScript package.json permet de contrôler le type de mise à jour à accepter. La sémantique des versions est décrite sur le site de npm. Cette sémantique peut être testée sur semver.npmjs.com.

 

Il faut aussi vérifier la provenance des projets pour être sûr d’utiliser les projets officiels et non des clones. De manière générale, il est aussi conseillé d’éviter d’utiliser des projets dépendant d’une seule personne et de privilégier ceux maintenus par des organisations open source ou privés.

 

Conclusion

 

L’open source est un système incroyable, qui permet à des millions de développeurs d’utiliser des technologies puissantes sans rien débourser. 

 

Mais elle n’est pas sans risques. Il faut veiller à connaître ce que l’on utilise, pour ne pas se retrouver dans l’une des situations défaillantes citées plus haut. 

 

Concrètement, chez Sooyoos pour sécuriser notre utilisation, nous bloquons toujours les mises à jour aux versions majeures. En effet, dans tous les cas nous effectuons les mises à jour nous-même, en local, afin de nous prémunir de tout mauvais comportement suite à la mise à jour.

 

Enfin, nous passons par un environnement Local, puis testing, preprod et prod, sur lesquels nous réalisons systématiquement des tests, avant d’envoyer le projet sur l’environnement suivant.

 

C’est de cette manière que l’on se prémunit des erreurs, ou d’effets de bords éventuellement liés aux mises à jour, et que l’on se protège des dérives de l’open source. 

Sur la même thématique