Logiciel Open Source : Définition

Un logiciel open source est un modèle de partage dans lequel les développeurs d'une application fournissent la base de code complète d'un projet au lieu d'un simple projet compilé avec des fichiers exécutables.

Microsoft est l'un des développeurs de logiciels closed-source (le contraire d’open-source) les plus populaires, mais il est passé à un modèle open-source pour certains de ses projets logiciels ces dernières années.

Les projets open source permettent à d'autres développeurs d'ajouter des lignes au code existant, de le modifier, de le copier et de l'analyser pour détecter tout problème de cybersécurité et de bug.

Logiciels Open Source et logiciels Closed Source

Dans les années 1990, lorsque les ordinateurs de bureau sont devenus populaires, les développeurs de logiciels fournissaient des disques contenant du code compilé qui pouvait être installé sur l'ordinateur de l'utilisateur.

Le code compilé comprend des fichiers contenant des instructions qui permettent à un système d'exploitation de consacrer des ressources informatiques et d'exécuter des procédures de développement.

Le byte code (pour les langages interprétés) ou l'opcode (pour les langages compilés) est le langage que les ordinateurs peuvent comprendre, et il est utilisé pour exécuter les instructions du développeur.

À titre d'exemple, le code suivant pourrait faire partie d'une base de code :

 

if (active)
//do something

 

Les humains comprennent facilement ce petit bout de pseudocode, mais les ordinateurs ne comprennent pas le langage humain. Les ordinateurs comprennent les uns et les zéros. Les développeurs utilisent donc des compilateurs pour convertir le code en langage humain en exécutables.

Les exécutables sont utilisés par le système d'exploitation pour allouer de la mémoire, initialiser des variables, des données et les opcodes qui constituent le programme lui-même. Les fichiers compilés sont spécifiques à un système d'exploitation car chaque système d'exploitation a des façons différentes de faire des appels aux procédures internes.

Comme les exécutables sont compilés, les humains ne peuvent pas comprendre les instructions du fichier exécutable.

Si vous ne disposez que de fichiers exécutables, vous ne pouvez pas voir le code lui-même, à moins de disposer d'un bon décompilateur. Cela protège le code du développeur, qui ne peut être analysé ou volé par un tiers.

Les communautés open-source fonctionnent différemment en divulguant librement le code source d'une application. L'idée est que même si le code peut être volé, partager le code donne un plus grand avantage : la possibilité de l'analyser et de l'étendre.

Les utilisateurs peuvent consulter librement le code pour en tirer des enseignements ou l'améliorer. Le code open source peut être bifurqué (forked), ce qui signifie qu'un autre développeur peut en prendre une copie et y ajouter des fonctionnalités. Certains analystes examinent le code à la recherche de bugs potentiels et de vulnérabilités en matière de cybersécurité et alertent le développeur initial.

Ce n'est pas parce que les développeurs de logiciels open source publient leur code qu'il peut être librement copié et utilisé. Les développeurs de logiciels libres définissent le type de licence qui s'applique à leur code lors de la publication de la base de code.

Les licences dans le monde des logiciels open source sont similaires à celles des logiciels closed-source, dans le sens que les licences définissent la manière dont le code peut être utilisé, copié, modifié et distribué.

Par exemple, certaines licences open-source permettent aux universitaires, aux étudiants et aux particuliers d'utiliser librement le code, mais les entreprises ne doivent pas utiliser la base de code dans des applications commerciales.

Comment fonctionne l’Open Source ?

La façon dont les développeurs créent le code pour les projets open-source est la même que pour les projets closed-source, sauf que les projets sont rendus publics. Github est une plateforme de gestion de dépôt commune, ancrée dans le processus de développement.

Comme de nombreux outils de dépôt de code, elle conserve un historique pour chaque projet, ce qui permet aux développeurs d'annuler les modifications, de vérifier le code et de publier les mises à jour. Les développeurs développent généralement le code en privé, puis ils publient les modifications sur la plateforme de cloud public de Github.

Lorsqu'un projet de développement est public, les autres utilisateurs peuvent voir tous les fichiers relatifs au projet. Les utilisateurs peuvent télécharger le référentiel dans son ensemble, ou chaque fichier peut être visualisé et téléchargé séparément. Le téléchargement d'un projet complet peut être utilisé pour le compiler et l'exécuter sur la machine locale d'un utilisateur afin qu'il puisse l'examiner. Les éventuels bugs ou difficultés d'exécution du code peuvent alors être corrigés dans la copie locale de l'utilisateur.

Le développeur principal d'un projet approuve les modifications et maintient le contrôle total de la base de code. D'autres utilisateurs peuvent en prendre une copie, mais le propriétaire doit approuver toutes les modifications apportées à la base de code principale avant qu'elles ne puissent être intégrées. Le système d'exploitation Linux a plusieurs contributeurs au code, mais Linus Torvalds – le propriétaire de la base de code principale – doit approuver ces changements.

Une base de code principale peut être bifurquée, ce qui signifie que le propriétaire initial du projet autorise d'autres développeurs à prendre une copie du code et à y apporter des modifications. Ces modifications ne sont pas incorporées dans la base de code principale.

Elles sont utilisées pour créer une version modifiée du logiciel. Par exemple, le système d'exploitation Linux a plusieurs autres versions telles que Kali, Ubuntu et Red Hat qui utilisent le système d'exploitation Linux de base, mais les versions modifiées ont des outils prépackagés différents et des interfaces graphiques uniques pour le développeur.

Avantages du logiciel Open Source

Avec un plus grand nombre de contributeurs à la base de code, le logiciel dispose de meilleures fonctionnalités, de moins de bugs et de mises à jour permanentes. Il permet aux petits développeurs de rivaliser avec des marques plus importantes en leur donnant une plateforme pour partager des logiciels avec des personnes qui peuvent contribuer à les améliorer.

Pour les développeurs, c'est un excellent moyen d'apprendre les normes de codage et d'identifier de meilleures façons de coder une procédure particulière.

Pour les utilisateurs, la plupart des avantages résident dans la stabilité et la sécurité du code. Les utilisateurs reçoivent une version compilée du code qui s'exécute sur leur machine locale, mais comme de nombreux développeurs y contribuent, les bugs sont moins nombreux.

Les analystes en cybersécurité téléchargent généralement le code pour l'examiner et signaler les problèmes aux développeurs. Les plus grands développeurs de logiciels open source publient des projets sur des sites de hacking white-hat où ils paient des pirates pour trouver des vulnérabilités dans leur code.

Le recours à des hackers rémunérés permet d'obtenir des logiciels open source contenant moins de vulnérabilités, ce qui protège les utilisateurs des attaquants malveillants et des logiciels malveillants qui exploitent des problèmes inconnus.

Les grands logiciels comme les systèmes d'exploitation qui restent open source facilitent le portage des logiciels d'un système d'exploitation à un autre.

Avec Windows, les développeurs sont liés aux dernières mises à jour et modifications du système d'exploitation, et ils ne peuvent savoir si leur logiciel fonctionnera sur les dernières modifications qu'en testant le code sur la version la plus récente.

Avec Linux, les développeurs peuvent plus facilement convertir le code existant qui fonctionne sous Windows avec le système d'exploitation Linux.

Pourquoi les logiciels Open Source sont-ils préférés ?

Les utilisateurs ne savent pas si un logiciel est open source ou closed source.

La plupart des utilisateurs pensent que les logiciels open source sont des logiciels gratuits, mais ce n'est pas toujours le cas. De nombreux développeurs de logiciels open source offrent gratuitement leur produit aux individus qui l’utilisent à des fins personnelles et acceptent les dons en échange, mais les utilisateurs doivent toujours vérifier les licences avant d'installer librement un logiciel sur une machine.

Les violations de licence peuvent être particulièrement coûteuses pour les entreprises qui font un mauvais usage des logiciels open source.

Même si les logiciels open source ne sont pas gratuits, ils sont généralement beaucoup plus abordables que les logiciels closed source. Les développeurs de logiciels gratuits gagnent généralement de l'argent en proposant une assistance payante.

Les grands développeurs de distributions populaires de systèmes d'exploitation Linux offrent un support aux entreprises avec les logiciels commerciaux, et c'est ainsi que ces développeurs restent en activité et gagnent de l'argent. Les entreprises obtiennent des logiciels abordables avec un support payant qui pourrait être beaucoup plus rentable que les produits closed source.

D'autres chercheurs et professionnels de l'informatique préfèrent les systèmes d'exploitation open source pour différentes raisons. Linux dispose de commandes que le système d'exploitation Windows n'offre pas. Puisque Linux peut être personnalisé, il y a moins de limitations que dans le système d'exploitation Windows.

Des outils pirates peuvent modifier le système d'exploitation Windows, mais il s’agit d’une violation de la licence d'utilisation fournie par Windows. En général, les mises à jour du système d'exploitation écrasent les modifications personnalisées non approuvées. Il est donc inutile d'apporter des modifications pirates au code du système d'exploitation.

Proofpoint Sendmail Open Source Email Protection

La plate-forme Sendmail Sentrion est spécialement conçue pour les environnements complexes de grande taille, mais nous mettons à la disposition des utilisateurs une version open source limitée de cette solution.

Fiche menace : Compromission et prise de contrôle de comptes cloud

Les attaques des cybercriminels se font de plus en plus audacieuses et sophistiquées. Étant donné le nombre croissant d'entreprises migrant leurs ressources vers le cloud, les cybercriminels n'ont pas tardé à leur emboîter le pas.

Comment Proofpoint empêche la prise de contrôle de comptes cloud

Prévenez et bloquez les prises de contrôle de comptes cloud aux conséquences potentiellement dévastatrices.

Webinaire: Transférer votre conformité vers le cloud

Rejoignez-nous pour un webinaire de 30 minutes au cours duquel nous vous expliquerons comment éviter les problèmes associés à la conformité et à l'investigation électronique (e-discovery) lorsque vous migrez à partir de systèmes d'ancienne génération.