§ Posté le 20/05/2009 à 1h 08m 43
Je crois que je vous ai déjà dit dans quelques uns de mes précédents textes que les systèmes de type GNU/Linux sont sécurisés, résistants aux virus et tout ce qui va avec. Cependant, je ne m'étais pas encore attardé sur ce point, alors je crois que le moment est venu de le faire.
On entend de temps à autres affirmer que les systèmes de type GNU/Linux sont davantage épargnés parce qu'ils ne sont que très peu utilisés, et que s'ils venaient à être utilisés à peu près autant que Windows, le nombre de virus les ciblant deviendrait largement plus important, et que donc leur sécurité baisserait en flèche. Mes plus sincères excuses à celles et ceux qui croient ça, mais je me dois de vous le dire : c'est faux.
La raison la plus évidente pour cela est que contrairement à ce dont on peut avoir l'impression, les systèmes de type GNU/Linux ne sont pas moins utilisés que Windows. Ne partez pas, je suis sérieux : vous en croisez beaucoup plus souvent que vous ne le croyiez.
Une chose dont il faut se rendre compte, c'est que l'informatique ne se résume pas aux ordinateurs personnels de type PC de bureau, portable ou ultraportable. Il y a un fameux tas d'autres machines qui utilisent un système d'exploitation, parmi lesquels les nombreux serveurs Web que vous contactez à chacune de vos visites sur Internet, même lors des plus brèves d'entre elles. Et les serveurs Web sont majoritairement équipés de systèmes libres, de type GNU/Linux ou *BSD.
Si vous étiez un créateur de virus et que votre but était d'embêter le plus grand nombre de gens possibles, votre première idée ne serait-elle pas de vous attaquer d'abord aux serveurs Web ? Après tout, un ordinateur personnel infecté, c'est seulement une personne ou deux que vous embêtez, tandis qu'un site Web, c'est l'ensemble des gens qui voulaient le visiter.
Et je ne parle là que de la raison "historique". Depuis quelques années, un nouvel argument vient renforcer ceci : pour vous connecter au réseau, votre fournisseur d'accès vous a fourni une sorte de boîtier dont le nom commence par un label quelconque et se termine par "box", non ? Eh bien, ces "machinbox" sont eux aussi des sortes d'ordinateurs, et un certain nombre d'entre eux tournent sous un système de type GNU/Linux ou assimilé. Et le rôle de cette machinbox est de servir d'intermédiaire entre vous et le reste du réseau : vu depuis le réseau (par lequel circulent les virus et autres attaques), la plupart des machines "atteignables" utilisent des systèmes de type GNU/Linux, et les machines utilisant Windows sont pour la plupart planquées derrière.
L'argument du manque d'utilisation ne peut donc pas tenir : étant somme toute très utilisés, les systèmes de type GNU/Linux tiennent leur sécurité d'autres facteurs. Voyons ensemble quelles sont ces véritables raisons qui font que les systèmes de type GNU/Linux ne sont pas faciles à avoir.
Tout d'abord, il y a la gestion des droits. Elle est héritée d'un ancien système appelé UNIX, et tous les systèmes qui en sont plus ou moins dérivés (c'est-à-dire les systèmes GNU/Linux et *BSD, mais aussi MacOS, Solaris et quelques autres) la partagent. Ces systèmes sont en effet conçus pour être multi-utilisateurs, et chaque utilisateur peut définir un certain nombre de droits d'accès à ses fichiers (accès en lecture, en écriture, en exécution (ce dernier permettant considérer le fichier comme un programme exécutable)).
Cela fait qu'une attaque ne peut atteindre qu'une petite partie des fichiers présents dans l'ordinateur, à moins d'être lancé depuis le compte “super-utilisateur”, ou “root”, qui est un compte spécial destiné à administrer la machine, mais qui n'est pas utilisé par défaut.
Il me semble que depuis quelques versions, Windows s'efforce de se doter d'une gestion des droits. Il part cependant avec un gros retard dans ce domaine qu'il est encore loin d'avoir rattrapé, d'autant que la plupart des utilisateurs utilisent (parce que c'est la situation par défaut sur beaucoup d'installations) le compte administrateur principal (l'équivalent du “root” Unix) comme compte utilisateur.
La deuxième raison importante est le fait que ces systèmes soient Libres. Là où les systèmes non-libres espèrent tirer leur sécurité du fait que personne ne peut accéder au code source, et donc ne peut y localiser les failles, les systèmes Libres choisissent au contraire de publier leur code source à qui veut le voir. Cela peut à première vue paraître suicidaire, mais il n'y a pas besoin d'accéder au code source d'un logiciel pour localiser une faille, si elle est présente : il suffit d'étudier son comportement. Au final, donc, le fait de cacher le code source ne protège pas de grand chose.
En revanche, en le montrant, les systèmes Libres peuvent bénéficier du regard d'experts bienveillants qui vont pouvoir localiser facilement les failles et prévenir l'équipe en charge du système de leur emplacement précis, voire de la manière dont il faut le corriger. Le code étant librement modifiable, ces hackers peuvent même publier eux-même les correctifs, pour le cas où l'équipe de développement n'aurait pas le temps de s'en occuper (tandis que pour les systèmes non-libres, il faut forcément attendre que l'équipe en charge ait le temps (et l'envie !) de s'en occuper.)
Oui, j'ai bien parlé de hackers pour désigner les personnes qui cherchent les failles dans le but de les corriger (ou au moins d'aider à leur correction). Les personnes malhonnêtes et malveillantes qui cherchent les failles dans les but de les exploiter sont des crackers, contrairement à ce que l'on entend parfois.
De par leur nature Libre, les systèmes de type GNU/Linux ont donc tendance à être corrigés beaucoup plus rapidement que les systèmes non-libres comme Windows, et présentent donc naturellement moins de failles.
La troisième raison importante est la manière dont ces systèmes sont assemblés.
Le monde Libre a ceci de particulier qu'il propose presque toujours plusieurs logiciels pour faire la même chose, et chacun peut choisir l'alternative qu'il désire. Les systèmes ne sont donc pas construits comme un objet unique, mais comme un assemblage de pièces détachées. Or, il est très peu probable qu'une même faille se retrouve dans plusieurs logiciels différents, ceux-ci étant conçus par des équipes différentes et ayant des évolutions bien différentes.
Il y a donc naturellement une sorte d'immunité par la diversité : un virus ou autre ver luisant s'attaque le plus souvent à une faille précise, mais sur un groupe de systèmes construits de cette manière, seule une petite partie possédera le logiciel contenant la faille. Ainsi, si d'aventure on découvrait une faille dans un gestionnaire de fichiers donné, aucun de ceux qui utilisent un des nombreux autres gestionnaires de fichiers disponible ne pourrait être touché.
En revanche, les systèmes comme Windows et MacOS sont construits de manière monolithique : il y a une (bonne) partie du système qui est commune à toutes les installations, et qui ne sont pas facilement (voire pas du tout) désinstallables (pour citer des exemples concrets venant de ces deux systèmes, le gestionnaire de fichiers Finder de MacOS, Microsoft Internet Explorer et Windows Media Player). Même si l'utilisateur choisit de se servir d'autres logiciels équivalents, ceux-ci restent installés sur la machine, et si d'aventure une faille exploitable venait à être découverte dans l'un d'eux, tous les utilisateurs de ce système sont susceptibles d'être infectés.
Enfin, la quatrième des plus importantes raisons qui font que les systèmes de type GNU/Linux sont sécurisés est la gestion des paquets.
Sous un système comme Windows ou MacOS, pour installer un logiciel, il faut aller chercher sur des sites Web divers et variés pour le récupérer, et on a donc pas toujours l'assurance d'avoir récupéré une bonne version. On peut également procéder de la même manière sur les systèmes de type GNU/Linux, cependant la plupart d'entre eux disposent d'un gestionnaire de paquets permettant d'aller chercher un grand nombre de logiciels sur le site Web du développeur de ces systèmes. On est donc toujours assuré qu'un logiciel téléchargé et installé depuis les dépôts officiels aura été testé et sera sans danger.
On peut cependant choisir d'autres dépôts, par exemple ceux des développeurs d'un logiciel en particulier pour être sûr d'en avoir toujours la dernière version, il convient donc de faire attention. Mais utilisé convenablement, le système de dépôts est la dernière clef qui achève de rendre le système sûr.
Attention, cependant, ne croyez pas que ces systèmes sont totalement invulnérables : aucun ne l'est. On peut se protéger de pas mal d'attaques, mais la force brute reste difficilement parable, quels que soient les moyens employés, et ce pour tous les systèmes. Et un accès physique à la machine permet de contourner à peu près toutes les sécurités.
Et tant qu'on y est, notez qu'il existe aussi des antivirus prévus pour tourner sur les systèmes de type GNU/Linux : ils servent à dépister les virus prévus pour Windows. Ceux-ci ne peuvent en effet rien contre les systèmes Libres, mais ça n'empêche pas de faire attention à éviter de contaminer les autres.