La sécurité des systèmes Libres

Message 1, par Elzen

§ 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.

Message 2, par jamais-content

§ Posté le 20/05/2009 à 15h 38m 15

"et si d'aventure une faille venait à être découverte dans l'un d'eux, tous les utilisateurs de ce système seraient infectés."


Ce n'est pas que je veux défendre le monde propriétaire, mais cette phrase tend à signifier que si une faille est découverte, elle sera forcément exploitée et exploitable chez tout le monde. Je pense qu'il serait plus exacte de dire que tous les utilisateurs de ce système pourraient être infectés.

Message 3, par Elzen

§ Posté le 20/05/2009 à 16h 03m 10

'pas faux. Je corrige


Message 4, par Ouranos

§ Posté le 30/12/2009 à 17h 09m 08

Petite erreur, par contre : quand on attaque un système, on ne veut pas emmerder le monde, on veut de la bande passante puissante en upload. D'où l'intérêt d'attaquer les serveurs plutôt que les PCs de bureau. (cf 2e paragraphe)


Et deuxième chose : Le fait que plusieurs logiciels soient utilisables pour faire la même chose, ça s'appelle la modularité. Et ça fait aussi que le logiciel n'est pas lié au système, et qu'une faille du logiciel ne devient pas une faille de l'OS. Les Redmondiens l'ont dans l'OS. Je verrais bien une phrase du genre : "Sous GNU/Linux, seul Linux (le noyau) est monolithique, le reste est modulaire, ce qui permet, en séparant les programmes de l'OS, d'éviter que des failles trouvées dans un logiciel ne deviennent des failles de l'OS."

Message 5, par jamais-content

§ Posté le 30/12/2009 à 17h 58m 44

Ouranos : on a pas mal de cas où quand on attaque un PC on veut surtout une plateforme de spamming + relais pour brouiller l'origine des activités illicites. C'est pourquoi le PC de M.Touslemonde est intéressant, pas seulement le serveur de la boîte bidule, qui est plus sécurisé... Normalement.

Message 6, par Elzen

§ Posté le 30/12/2009 à 20h 14m 19

Ça dépend, j'pense que des motivations, il y en a toutes sortes. Par exemple, il me semble qu'un certains nombres de crackers font ça pour montrer de quoi ils sont capables, tout simplement. (Sachant, pour certains d'entre eux, que si ça se remarque vraiment, ils sont certains de trouver un excellent boulot à leur sortie de prison...)


Et en fait, Linux lui-même, quoi que monolithique modulaire, n'est pas "si" incontournable que ça. J'entends par là que ses mises à jour sont relativement fréquentes et surtout assez conséquentes (plusieurs Mio de texte rien que pour le changelog (la liste des modifications effectuées depuis la dernière version), ce me semble (Et je parle bien de texte, du format texte brut, pas un document tapé au traitement de texte qui pèserait plus lourd)). Et comme chaque distribution a ses dates de sorties propres et sa politique spécifique de gestion des versions, on a quand même pas mal de diversité.

(Et puis, qui sait, on va peut-être finir par voir arriver d'autres projets de ce genre-là, ce qui serait à mon avis une sacrée bonne chose. Mais bon, c'est un autre sujet)

Message 7, par jamais-content

§ Posté le 08/01/2010 à 10h 12m 27

Les crackers qui veulent montrer de quoi ils sont capables, le piratage, il le font sur un PC un minimum protégé, ou alors sur celui de quelqu'un qu'ils connaissent, pour lui faire une blague ou une crasse : il y a peu de chance qu'il tombe chez moi ou chez toi par hasard.


Par contre, les spammeurs seront content d'ajouter un PC à leur botnet qui s'étend de façon autonome!


D'ailleurs, que le spam rapporte ne serait-ce qu'un client par an, ça m'étonnera toujours... Comment les gens peuvent faire confiance à quelqu'un qui fait sa publicité de manière malhonnête?

(Suite au décès inopiné de mon précédent serveur, je profite de mettre en place une nouvelle machine pour essayer de refaire un outil de blog digne de ce nom. J'en profiterai d'ailleurs aussi pour repasser un peu sur certains articles, qui commencent à être particulièrement datés. En attendant, le système de commentaires de ce blog n'est plus fonctionnel, et a donc été désactivé. Désolé ! Vous pouvez néanmoins me contacter si besoin par mail (« mon login at ma machine, comme les gens normaux »), ou d'ailleurs par n'importe quel autre moyen. En espérant remettre les choses en place assez vite, tout plein de datalove sur vous !)