web-dev-qa-db-fra.com

Existe-t-il des différences techniques qui rendent Linux moins vulnérable aux virus que Windows?

Qu'est-ce qui rend Linux si différent de Windows en termes de besoins antivirus?

Ma question n'est pas si je devais obtenir un anti-virus pour mon Linux . Je comprends parfaitement pourquoi un AV est important.

Je voudrais comprendre s'il existe des différences conceptuelles (techniques) qui rendent Linux moins vulnérable que Windows (en comparant par exemple Ubuntu 14 et Windows 7).

124
user69377

Il y a plusieurs raisons pour lesquelles Windows est si fortement gonflé de produits antivirus. (Je pointe vers des expériences prêtes à l'emploi (OOTB)).

Les utilisateurs de Windows sont, par défaut, des administrateurs locaux, de sorte que toute ingénierie sociale effectuée sur Windows peut généralement conduire à une exécution de logiciel. Linux moderne a des utilisateurs configurés en tant qu'utilisateurs locaux à faible privilège. Il nécessite votre mot de passe pour élever le privilège.

Windows a essayé de simplifier autant de choses que possible, y compris la sécurité et en repensant à son histoire, la destruction ( Windows Vista n'importe qui?) Des contrôles de sécurité a laissé leur base d'utilisateurs engourdie à des faux positifs constants sur les logiciels. Le proverbe "Voulez-vous installer ce logiciel? Voulez-vous vraiment installer ce logiciel?" conduisent à des clics ou à la désactivation UAC .

Référentiels logiciels vs installations autonomes:

Linux a des dépôts de logiciels depuis toujours et ils fournissent un bon mécanisme pour installer des logiciels. Ce sont généralement des logiciels signés et approuvés, protégés par des entreprises disposant de budgets de sécurité conformes aux normes de sécurité. (Je connais les violations des référentiels dans le passé, mais c'est généralement bon). Les utilisateurs de Windows sont habitués à extraire des sources de partout et à les installer sur leur système, non signé ou non.

Les utilisateurs ont généralement des mentalités différentes:

Windows est une plate-forme polyvalente pour tous les utilisateurs. Il essaie généralement de résoudre les problèmes de tout le monde et, ce faisant, OOTB ne protège pas l'utilisateur comme il le devrait. C'est pourquoi Microsoft pousse si fort pour forcer chaque logiciel à être signé par un " signataire de confiance ". Il y a beaucoup de débat à ce sujet, mais généralement d'un point de vue de la sécurité, c'est intelligent; Microsoft se trouve justement avoir un historique qui laisse la confiance à désirer.

Les utilisateurs de Linux sont généralement techniques et les systèmes sont généralement des systèmes serveurs. C'est pourquoi le logiciel est généralement livré avec GPG clés et/ou SHA/ MD5 hachage pour comparaison, car ceux-ci sont du point de vue d'un administrateur Linux , processus de facto pour l'installation de logiciels. Je connais de nombreux utilisateurs Linux qui l'ignorent, mais je n'ai pas encore vu un administrateur Windows y penser.

Cela va donc au-delà de la part de marché.

Expansion:

Je vais aborder quelques points des commentaires (qui ont des points valables.)

Référentiels:

À partir d'une expérience OOTB moderne, les distributions Linux modernes ont des packages pré-signés qui sont plus pour identifier qu'un package fonctionne avec la distribution, mais prouve également une méthode sécurisée de vérification.

D'autres systèmes de gestion de packages ont été discutés tels que pip et npm qui sont indépendants des distributions elles-mêmes et sont des serveurs pour installer des packages spécifiques pour leur langage de programmation particulier. On peut affirmer qu'il n'existe aucun moyen inhérent de vérification sur ces systèmes. C'est primordial parce que Linux a une philosophie de programmes faisant une chose spécifique et le faisant bien. C'est généralement pourquoi plusieurs outils sont utilisés tels que l'utilisation de GPG ou PGP pour l'intégrité.

Téléchargements de scripts

cURL | sh a été mentionné et n'est vraiment pas différent de cliquer sur un .exe après avoir téléchargé le fichier. Pour le souligner, cURL est un CLI outil de transfert de données. Il peut faire l'authentification, mais il ne fait pas de vérification spécifiquement.

UAC vs Sudo

Enfin, voici quelques informations sur ces deux fonctionnalités de sécurité.

UAC est un processus d'approbation pour l'installation de logiciels non approuvés. Un utilisateur qui a des droits d'administrateur local obtient simplement un oui ou un non (le comportement peut être modifié, mais ce n'est pas par défaut). Je cherche toujours à voir si ce comportement a changé sur Windows 8+, mais je n'ai rien vu dessus.

Sudo est un système d'élévation de permission à grain fin. Par défaut, c'est essentiellement la même chose que l'UAC, mais il a plus de possibilités d'être configuré pour limiter l'accessibilité.

111
Shane Andrie

La raison en est généralement historique. Il n'y a aucune raison pour qu'un Linux de bureau moderne soit particulièrement plus résistant aux logiciels malveillants par rapport à un bureau Windows moderne.

Cependant, il y a beaucoup plus de virus pour Windows que Linux parmi les utilisateurs de bureau, ce qui est dû à des facteurs tels que le nombre d'utilisateurs des plates-formes respectives et également aux faiblesses historiques de la plate-forme Windows telles que l'exécution en tant qu'administrateur tout le temps.

Du point de vue du marché, la raison en est qu'il y a plus de clients pour les logiciels antivirus Windows que pour les logiciels antivirus Linux, de sorte que davantage de fournisseurs iront sur ce marché.

41
Rory McCune

Je pense que le facteur le plus crucial pour l'infection virale du système Windows de bureau est, sans aucun doute, la culture et la discipline de la distribution et de l'installation des logiciels.

Alors que l'utilisateur Linux moyen ouvre le gestionnaire de packages et obtient le package logiciel construit par le fournisseur (et ne quitte pas le référentiel officiel pour trouver des logiciels dans 90% des cas), l'utilisateur Windows moyen (non informatique) ouvre l'onglet du navigateur, et Google pour "installer 7-Zip" ou même "installer archiveur de fichiers", et navigue très souvent par inadvertance vers un site Web bourré de logiciels malveillants, spécialement conçu et optimisé pour capturer ce type d'utilisateurs.

Chaque administrateur Windows débutant vous parlera de nombreuses histoires sur "ZipViewer.exe" et "ArchiveUnpacker.exe", trouvées sur la machine infectée et téléchargées par l'utilisateur. Bien sûr, l'utilisateur expérimenté tape "7-Zip.org" dans la barre d'adresse et télécharge le package d'installation à partir du site Web de confiance, mais cela nous indique simplement le fait: l'absence de référentiel central pour les logiciels Windows et la nécessité de juste pour se souvenir que la liste des sites Web de confiance crée toujours la plus grande vulnérabilité jamais connue dans l'histoire de Windows.

Je connais un nombre important de personnes qui n'installent pas du tout de logiciel antivirus simplement parce qu'elles savent où se procurer le logiciel d'origine et comment configurer une sauvegarde régulière des données.

31
Nipheris

Sur la monoculture Windows

Tout logiciel malveillant Windows fonctionnel peut provoquer une infection épidémique. Il existe des centaines de millions de boîtes Win 8.1 dans le monde et sur bon nombre d'entre elles, par exemple Acrobat Reader a été installé. C'est une monoculture.

Linux d'autre part est moins une monoculture. Il existe de nombreux PDF téléspectateurs: Evince, Okular, mupdf, xpdf ... Il existe de nombreux gestionnaires de fenêtres: Gnome, KDE, i3, lxde ... Il existe de nombreuses distributions différentes.

Donc, si vous êtes en mesure d'infecter un goût de Linux, cela ne fonctionnera pas nécessairement sur d'autres installations.

Les logiciels Linux sont généralement open source. Si vous souhaitez devenir développeur d'un logiciel, vous devez vous y tenir longtemps pour obtenir un accès en écriture à git/svn/cvs d'un projet en cours d'exécution. Vous ne pouvez pas proposer uniquement des binaires à une distribution, vous devez offrir du code source et s'il ne compile pas à partir de la source, votre logiciel est sorti. Il est donc difficile de distribuer des logiciels malveillants.

Ce que j'ai écrit ici sont des suppositions, je ne suis pas dans la sécurité des logiciels.

15
Keks Dose

Il y a de bonnes réponses ici. Je voulais juste ajouter quelques points.

Il y a un élément historique à l'argument selon lequel Linux est moins vulnérable que Windows. Une partie de la base de cette suggestion n'est pas aussi valable pour les implémentations de fenêtres modernes qu'elle l'était auparavant.

Peut-être que la plus grande différence était à l'origine due à des différences d'architecture. Les systèmes basés sur * nix ont traditionnellement eu une séparation claire entre l'espace utilisateur et le noyau. Cette séparation restreignait les processus exécutés par l'utilisateur pouvant accéder/changer. Les premières fenêtres n'avaient pas une séparation aussi claire, ce qui signifiait que des choses comme le code utilisateur affectant le code de bas niveau ou les pilotes étaient plus possibles. Les versions ultérieures de Windows ont travaillé vers une séparation similaire du système et de l'espace utilisateur. À titre d'exemple, à un moment donné, il était possible que les processus de l'espace utilisateur affectent négativement les services de bas niveau, tels que le sous-système vidéo, soit en raison d'un code malveillant exécuté par l'utilisateur ou simplement d'un code de niveau utilisateur bogué. À cet égard, cette séparation du système et de l'espace utilisateur a l'avantage de réduire à la fois l'exposition au code malveillant et au code bogué, ce qui pourrait rendre le système moins stable.

Comme mentionné par d'autres, Windows a également traditionnellement permis au compte d'utilisateur d'être également un compte d'administrateur système. Cela serait similaire à un compte utilisateur Linux exécuté avec des privilèges root - permettant essentiellement aux processus de contourner toute protection fournie par la séparation des utilisateurs et du système.

Je pense qu'il est également utile de faire la distinction entre les virus et les logiciels malveillants. Une façon de voir cela est de considérer les virus comme auto-peuplants - les virus peuvent se déplacer d'un système à l'autre sans interaction/entrée de l'utilisateur. Les logiciels malveillants, d'autre part, nécessitent que l'utilisateur effectue une action, par exemple ouvrir une pièce jointe, installer une mise à jour, visiter un site Web avec un exploit en voiture, etc. Bien que les virus soient toujours un problème, de loin, la véritable menace de nos jours vient de malware. Comme les logiciels malveillants nécessitent une interaction de l'utilisateur, la véritable menace concerne désormais davantage l'ingénierie sociale et moins la plate-forme technique. À ce niveau, les fenêtres et Linux sont potentiellement similaires en ce que les deux systèmes sont de plus en plus similaires (à un niveau de concept très abstrait) dans l'architecture en ce qui concerne l'espace utilisateur et le système. Vous pouvez développer des logiciels malveillants pour l'un ou l'autre système et la mesure dans laquelle ces logiciels malveillants fonctionneront est similaire (en supposant que la pratique moderne de Windows de ne pas avoir implicitement votre compte d'utilisateur inclut les privilèges d'administrateur).

Cela signifie qu'en général, la vraie différence est principalement due à la part de marché. Comme Linux a une part de marché beaucoup plus petite, le bassin potentiel de victimes est plus petit. Si vous allez développer des logiciels malveillants, vous opterez pour le plus grand marché possible - cela signifie des fenêtres. Cependant, nous commençons à voir des logiciels malveillants pour Linux et il est probable que si la part de marché des ordinateurs de bureau Linux augmentait, nous constaterions une augmentation des problèmes de logiciels malveillants pour Linux. Le fait est que l'ingénierie sociale est désormais la clé de la distribution de logiciels malveillants et que les plateformes sont moins pertinentes. Il est même probable que nous voyons plus de malwares sur Linux si nous voyons également une augmentation des malwares basés sur une technologie multiplateforme (par exemple javascript).

Il est en fait un peu inquiétant de croire que Linux est immunisé contre les virus et les logiciels malveillants. Cette croyance a tendance à faire sentir aux gens qu'ils n'ont pas à se soucier des meilleures pratiques normales pour se protéger, c'est-à-dire ne pas cliquer sur des e-mails douteux, ouvrir des pièces jointes suspectes, installer des logiciels à partir de sources inconnues ou non fiables, etc. Les gens suggéreront que Linux est plus sécurisé car une grande partie de le logiciel est open source et vous pouvez inspecter la source pour voir s'il est malveillant ou non. C'est un peu trompeur. Premièrement, il est en fait très difficile d'inspecter un logiciel pour s'assurer qu'il est correct - cela nécessite des compétences techniques et une familiarité considérables avec la langue utilisée. L'autre problème est que la plupart supposeront que quelqu'un d'autre l'a fait, ce qui n'est peut-être pas le cas. Considérez le nombre de bibliothèques et d'applications importantes qui ont eu des failles de sécurité importantes qui n'ont pas été identifiées depuis un certain temps, c'est-à-dire openssl, libc et ghost etc.

Linux est moins vulnérable à l'heure actuelle principalement parce qu'il représente un si petit segment d'utilisateurs sur le marché. Si le marché se développe ou que les concurrents améliorent leur sécurité au point où les logiciels malveillants deviennent difficiles à mettre en œuvre, nous pourrions très bien voir une augmentation des menaces pour Linux. Les menaces dépendent de plus en plus de l'ingénierie sociale pour fournir leur charge utile. Dans une certaine mesure, nous atteignons peut-être la limite de protection technique possible dans les systèmes modernes. Le composant le plus vulnérable de nos jours est l'utilisateur. Cela signifie que la technologie sous-jacente devient moins pertinente et que nous devons vraiment nous concentrer sur l'éducation et la sensibilisation des utilisateurs.

14
Tim X

Un problème fondamental avec l'excuse de Windows pour un modèle de sécurité - probablement le plus grand - est que la seule façon dont un utilisateur peut autoriser des programmes à faire certaines choses que presque n'importe quel programme installable pourrait devoir faire est d'accorder au programme une autorité illimitée pour faire tout ce qu'il veut. S'il était possible pour Windows de dire par exemple "Ce programme souhaite ajouter un dossier nommé 'FredMagic123' au menu de démarrage de chaque utilisateur et y ajouter des icônes; voulez-vous le laisser faire cela?", Et si vous cliquez sur "Oui", le programme serait autorisé à le faire mais aucun autre privilège élevé, les utilisateurs pouvaient alors déterminer quand les programmes demandaient l'autorisation de faire des choses qu'ils n'avaient aucune raison légitime de faire.

Pour aggraver les choses, Windows empêche les programmes de démarrer avec des autorisations normales, puis de demander des autorisations élevées plus tard. Ainsi, si un installateur souhaite un jour pouvoir installer un programme de manière à être accessible à tous les utilisateurs, il devra souvent demander des autorisations élevées avant de pouvoir faire autre chose. Par conséquent, plutôt que de permettre à un programme d'être installé pour un utilisateur local sans avoir besoin de droits élevés, et ne nécessitent que des autorisations spéciales lors de l'installation pour une utilisation à l'échelle du système, le comportement normal est que les programmes d'installation nécessitent des autorisations administratives complètes pour faire quoi que ce soit, même si dans une installation typique, aucune de leurs actions ne nécessiterait d’autorisation élevée.

5
supercat

Comparer Windows et Linux, c'est comme comparer structurellement des pommes et des oranges. La configuration joue un rôle plus important dans la protection que n'importe quelle architecture de système d'exploitation spécifique, et elle va de la sécurité physique jusqu'à la maintenance et l'entretien. Toutes les implémentations de sécurité peuvent être supprimées dans tous les systèmes d'exploitation, et les coins peuvent être réduits en termes de maintenance et de sécurité en ce qui concerne la façon dont un utilisateur gère sa machine. Par conséquent, tous les systèmes d'exploitation partagent également le même niveau de risque en termes d'installation de logiciels malveillants, car ce risque est largement impacté par l'utilisateur.

Les virus, logiciels malveillants, chevaux de Troie, etc. sur la plupart des plates-formes peuvent être installés par une personne disposant de privilèges suffisants. Si cette personne dispose de privilèges suffisants pour permettre à l'application d'augmenter ses propres autorisations, l'application peut être extrêmement difficile à éradiquer. Si un utilisateur s'exécute en tant qu'administrateur sur Windows ou Linux par exemple, il a la possibilité d'autoriser l'installation de quelque chose de malveillant s'il ne fait pas attention. Si cet utilisateur installe par inadvertance quelque chose qu'il n'avait pas prévu, il peut potentiellement prendre le contrôle de sa machine, se cacher dans le système d'exploitation et le rendre très difficile à supprimer, parfois même nécessitant une mise à jour du firmware en cas de quelque chose comme un EFI injection sur un Mac.

L'antivirus est comme un système de sécurité lorsque vous avez un verrou de porte. Si vous considérez le verrou de porte comme la sécurité intégrée du système d'exploitation, cela empêchera certaines choses de se produire sans que l'utilisateur ne fasse quelque chose comme laisser la porte déverrouillée. Parce qu'il existe, il peut dissuader un attaquant potentiel en raison de son existence. Les serrures de porte gardent les honnêtes gens honnêtes. Un système de sécurité, comme un logiciel antivirus, alerte l'utilisateur d'une éventuelle intrusion. Si l'utilisateur reconnaît l'avertissement et arrête une intrusion dans le temps, le vol ou l'effraction peut être contrecarré. Si l'utilisateur n'a pas de système de sécurité en place, il ne peut examiner les conséquences d'une effraction que si les protections intégrées du système d'exploitation (ou d'une serrure de porte) sont supprimées.

Cela dit, tous les systèmes de sécurité n'attrapent pas tous les problèmes, et tous les moteurs antivirus n'attrapent pas tous les virus, mais si vous avez quelque chose à protéger, cela vaut la peine d'être protégé correctement.

Linux peut dans certaines variétés nécessiter beaucoup plus de maintenance en termes d'installation. Il n'est pas facile à utiliser pour tout le monde et est créé par des personnes qui ne travaillent pas pour une grande entreprise (à l'exception de Red Hat ). Windows, peut être plus facile à configurer et à entretenir, mais l'utilisateur dans les deux cas peut aider à rendre un système d'exploitation inutile en termes de défense .

La quantité de logiciels malveillants sur un marché à un moment donné n'a aucune incidence sur la sécurité future d'un système d'exploitation donné. Si tous les correctifs logiciels sont appliqués, l'utilisateur est à jour avec ses vulnérabilités connues, à condition que les parties responsables de la maintenance du logiciel soient à jour. Il y aura cependant toujours plus zero-day attaques et attaques sur les vulnérabilités non divulguées là où aucun correctif n'existe.

4
AbsoluteƵERØ

Faisons des trous dans certaines réponses ici.

Linux a moins de virus car il manque de part de marché.

Faux. Bien que Linux ait moins de parts de marché sur les ordinateurs de bureau, il a une plus grande part des installations de serveurs. Les serveurs sont beaucoup plus susceptibles d'être recherchés comme cibles spécifiques plutôt que comme cibles d'opportunité.

Les systèmes d'exploitation modernes sont fondamentalement tous aussi sécurisés s'ils sont correctement configurés et administrés.

Faux. Windows contient beaucoup de code hérité qui a été écrit sans problèmes de sécurité pour maintenir la compatibilité. Linux était beaucoup plus soucieux de la sécurité dans sa conception initiale, et a eu plusieurs projets de sécurité pure qui n'ont fait qu'améliorer les choses. Bien que Windows soit bien meilleur qu'il ne l'était, il a encore plus de marge d'amélioration.

Et pour être juste, démystifions un autre mythe: "Linux en lui-même est assez bon pour la sécurité". Les plus grandes faiblesses de tous les systèmes d'exploitation sont

  1. Mots de passe faibles
  2. Mauvaise configuration

À l'heure actuelle, le botnet le plus alarmant est entièrement composé de routeurs alimentés par Linux avec des mots de passe par défaut et une administration à distance activée.

4
hildred