Les virus et les logiciels malveillants sur un système Linux
Il existe plusieurs concepts très différents sur un système Linux qui n'ont rien de comparable sur un système Windows. Lorsque vous apprivoisez un système Linux, il vous faut appréhender ces nouveaux concepts et il faut surtout mettre de côté tout ce que vous connaissez de l'informatique lié au système Windows. C'est connu, pour bien maîtriser et comprendre un système Linux, il faut laisser de côté les vieux réflexes windowsiens.

Un des sujets qui attirera l'attention de l'utilisateur lambda migrant de Windows est qu'il n'y pas de virus (ou presque) sur un système Linux. Étonnant n'est-ce pas ? Toute une différence avec Windows ! Imaginez le nombre d'heures passées à balayer tout le système....
Comment est-ce possible ? Après tout, les utilisateurs de Windows sont submergés par les virus et les attaques de toutes sortes. Alors, comment un système peut-il être immunisé de la sorte ? Est-ce de la magie ? Parmi la communauté linuxienne, ce sujet est en fait quelque peu controversé. En effet, certains diront que les systèmes linux sont moins touchés parce qu'ils occupent une petite part de marché et donc moins attrayants pour les créateurs de virus et autres malfaisants. D'autres prétendent que cela est dû au caractère diversifié et isolé de Linux (plusieurs distributions existantes, aucun système de paquets unifiés, etc.). Enfin, plusieurs autres affirment que les systèmes Linux sont tout simplement immunisés contre les virus.
Aucun doute, il n'y a pas ou peu de virus sur un système Linux. Ceci étant statué, pour la majorité des nouveaux arrivants, cela
revient à dire que la presque inexistence de virus implique qu'il n'y a aucune menace de sécurité. C'est là que ça se complique et c'est là que ça devient dangereux. En effet, une mauvaise compréhension de la sorte nécessite d'être clarifiée. Une telle conclusion ne peut être acceptable et évidemment, on ne peut blâmer les nouveaux arrivants.
Selon plusieurs, le problème résulte d'une mauvaise compréhension et d'une utilisation abusive du terme virus. Cet article tentera d'éclaircir la notion de virus et de sécurité sous Linux.
Qu'est-ce qu'un virus informatique ?
D'abord, nous pouvons affirmer qu'il n'y a pas de virus sur un système Linux. Toutefois, cela ne veut rien dire si nous ne définissons pas ce qu'est un virus informatique. Selon wikipedia :
Citation:
Un virus informatique est un logiciel malveillant conçu pour se propager à d'autres ordinateurs en s'insérant dans des programmes légitimes appelés « hôtes ». Il peut perturber plus ou moins gravement le fonctionnement de l'ordinateur infecté. Il peut se répandre à travers tout moyen d'échange de données numériques comme les réseaux informatiques et les cédéroms, les clefs USB, etc.
Son appellation provient d'une analogie avec le virus biologique puisqu'il présente des similitudes dans sa manière de se propager en utilisant les facultés de reproduction de la cellule hôte.
Les virus informatiques ne doivent pas être confondus avec les vers informatiques, qui sont des programmes capables de se propager et de se dupliquer par leurs propres moyens sans contaminer de programme hôte. Au sens large, on utilise souvent et abusivement le mot virus pour désigner toute forme de logiciel malveillant.
La lecture de cette définition clarifie certains concepts mal compris :
* Un virus doit être un logiciel ou un programme exécutable
* un virus doit être capable de s'exécuter, de se propager et de se dupliquer par ses propres moyens sans intervention de l'utilisateur
* Un virus doit être conçu pour se propager en s'insérant dans des programmes légitimes appelés « hôtes »
Donc, vous réalisez que cette définition traite d'une forme de logiciels malveillants parmi la panoplie qui existent. Cette forme,
les virus informatiques tel que définis ici, ne sont pas inquiétants pour les utilisateurs d'un système Linux. Nous traiterons plus loin dans cet article ce qu'il advient des formes pour lesquelles nous devrions prendre garde. Examinons d'abord pourquoi les virus ne sont pas un problème pour les utilisateurs Linux.
Principe de base des virus et architecture d'un système Linux
Comme nous l'avons appris plus tôt, ce qui est important de retenir c'est qu'un virus informatique doit être capable de faire « sa
sale (avouons-le !) besogne » par lui-même, sans l'aide de quiconque, subrepticement et de façon inaperçue. Il y a deux méthodes pour qu'un virus se propage et se duplique :
Méthode 1 : ajouter son propre code aux exécutables du système
Un système Linux est conçu avec un système de fichier qui supporte nativement le concept de permission et de propriété des fichiers.
Par exemple :
1. Si un utilisateur créé, copie ou télécharge un fichier sur un système Linux, ce fichier appartient à l'utilisateur et appartient à son groupe (pour en savoir davantage sur le concept de permission, consulter cet article du wiki de Mandriva) et n'a donc pas la permission d'exécution sur ce fichier par défaut. Par conséquent, ce fichier (s'il est un programme) ne peut s'exécuter lui-même (il y a une exception que l'on traitera plus loin) et donc se propager et se dupliquer.
2. Si l'utilisateur par mégarde est induit en erreur et attribue à un fichier malicieux la permission d'exécution, la permission attribuée sur ce fichier est tout de même restreinte par les permissions de l'utilisateur, qui sont limitées à son dossier personnel.
Si l'utilisateur faisait face à ce problème, il serait alors simple de créer un autre utilisateur et de déplacer les fichiers dans le nouveau dossier personnel. Dans ce cas, on ne peut plus considéré que l'on fait affaire à un virus, puisqu'il y a eu intervention de l'utilisateur (rappelez-vous notre définition plus tôt) pour ainsi permettre a ce programme de faire sa besogne. En pratique, un virus ne peut affecter aucune application à moins qu'il s'exécute en tant qu'administrateur (root).
Par défaut et sur la majorité des distributions Linux, le compte super-utilisateur (ou administrateur ou root) est désactivé. Si ce
n'est pas le cas, des messages d'avertissement apparaissent lors du login ou lors de l'utilisation (en mode graphique entre autre)
décourageant cette pratique. À moins d'être un administrateur système, vous devriez être en mesure de pleinement profiter de votre système Linux sans vous connecter continuellement en mode super-utilisateur. Ce mode doit être utilisé seulement pour
l'administration du système.
Donc, cette méthode ne permet pas d'infecter un système.
Méthode 2 : s'attacher à un processus mémoire pendant l'exécution
Les systèmes Linux, pour la plupart des utilisateurs, sont installés sur des processseurs Intel ou AMD avec architecture x86. Il est important de comprendre comment Linux tire profit de cette architecture et comment il l'utilise. Simplement, l'architecture x86 utilise 4 anneaux de protection (appelé ring), de 0 à 3. Un anneau de protection est l'un des niveaux de privilèges imposé par l'architecture d'un processeur. Les anneaux sont arrangés dans une hiérarchie allant du plus privilégié (celui qui est le plus sécurisé, habituellement le numéro zéro dit Ring0) au moins privilégié (le moins sécurisé, habituellement l'anneau le plus élevé). Le terme « anneau de protection » vient du fait que l'on peut voir les différents modes de privilège comme des cercles concentriques ou le mode le plus privilégié est à l'intérieur et les modes moins
privilégiés vont vers l'extérieur.
Les processeurs de la famille x86 implémentent quatre anneaux de privilèges mais dans la grande majorité des cas, seuls deux sont réellement exploités par les systèmes d'exploitation actuels (tel que Microsoft Windows et les systèmes Linux). Ces deux anneaux de protection sont le ring0, l'anneau de protection ayant le plus de privilèges, et qui est l'anneau sous lequel fonctionne le cœur du système d'exploitation (le noyau) ainsi que le ring3 sous lequel fonctionnent les logiciels utilisateurs.
Sur un système Linux, les fonctions et les programmes de ces deux anneaux ne sont jamais mélangés, ils sont toujours sur deux anneaux différents et une passerelle leur permet de communiquer entre eux.
Ok, mais ça veut dire quoi tout ce charabia ? Ça implique que seulement le noyau lui-même est capable de changer ce comportement et ainsi permettre au virus de l'exploiter. Par conséquent, les processus de la couche application (la ring3) ne peuvent infectés les processus du noyau. Qu'en est-il d'une infection d'un processus par un autre ? C'est impossible, car le noyau Linux attribue à chaque processus une plage mémoire unique, isolée et non partagée. Ainsi, un processus malicieux ne pourrait qu'infecter toute la mémoire disponible qui lui est attribuée, mais il ne pourrait infecter les autres.
Donc, cette méthode ne fonctionne pas non plus.
Voilà donc pourquoi les systèmes Linux ne sont pas affectés par les virus informatique tel que défini plus haut.
Les autres formes de logiciel malveillant
Maintenant que la menace des virus est écartée, regardons ce qu'il en est des autres formes de logiciels malveillants.
Les rootkits (ou outil de dissimulation d'activité)
Les rootkits se retrouve sur tous les types de système d'exploitation. Les rootkits modifient le noyau ou le code des applications. Dans le cas des systèmes Linux, le premier est de loin le plus inquiétant puisqu'il est difficile a détecter et peut compromettre tout le système.
Mais n'ayez pas peur ! Créer un rootkit efficace et fructueux n'est pas une tâche simple. Il doit être créé de façon à ce qu'il soit constitué avec exactement le même code (pour le noyau ce la implique qu'il faut que ce soit les mêmes versions de paquets, mêmes ensembles de paquets, de pilotes, etc.) source que l'on retrouve sur le système cible et son installation requerrait les privilèges d'administrateur (root). Vous comprendrez aisément qu'avec la diversité des systèmes existants dans la communauté linuxienne, la quantité de distributions différentes qui existe actuellement, la variétés des paquets, etc., il est pratiquement impossible de créer un rootkit avec un impact substantiel et significatif. Ceci étant dit, il y a eu quelques cas rapportés, mais très peu.
Comme les rootkits sont difficiles a détecter et que vous voulez être certain que votre système n'est pas infecté, amorcez votre
système sur une clé USB ou CD/DVD et utilisez les scanneurs de rootkits tel que CHKROOTKIT ou RKHUNTER.
Cheval de Troie
Un cheval de Troie (ou trojan) est un logiciel d’apparence légitime, mais conçu pour exécuter subrepticement (de façon cachée) des actions à l’insu de l'utilisateur. En général, un cheval de Troie tente d’utiliser les droits appartenant à son environnement pour détourner, diffuser ou détruire des informations, ou encore pour ouvrir une porte dérobée qui permettra à un attaquant de prendre, à distance, le contrôle de l'ordinateur. Donc, il peut récupérer les mots de passe, informations confidentielles, installer des logiciels, etc.
Il serait possible dans un environnement GNOME et KDE qu'un cheval de Troie s'exécute sans les privilèges d'administrateur. Par exemple, les lanceurs d'applications pourraient le permettre. Donc, soyez prudent lorsque vous téléchargez des paquets directement sur des sites Internet.
Conclusion
Pour conclure, utiliser un système Linux permettra d'utiliser votre ordinateur plus sécuritairement, mais Linux ne fait pas des
miracles. La prudence est toujours de mise lorsque vous utilisez votre système et utilisez-le intelligemment. Protégez vos données et votre vie privé. N'enregistrez jamais de données sensibles sur vous dans votre ordinateur (numéro de carte de crédits, données
bancaire, etc.), utilisez parcimonieusement et judicieusement le compte administrateur, éviter les logiciels non fiables et ne partagez jamais vos mots de passe. Enfin, réagissez promptement et rapidement si vous croyez que votre système est compromis.