GNU/Linux >> Tutoriels Linux >  >> Linux

Linux ou Windows - le problème de sécurité

Je vais dénoncer ici quelques-unes des mauvaises notions :

1) Linux est plus sécurisé car il a moins de parts de marché.

Pas sur le marché des serveurs, où les machines publiques sont attaquées par des robots, des virus, des pirates, etc. toute la journée :

http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers

2) Windows est plus sécurisé dans les versions récentes.

Au moins au niveau du noyau, vous voyez plus de rapports CVE d'exploits d'exécution à distance et d'escalade de privilèges dans Windows, plus d'attaques DoS locales vers un environnement multi-utilisateurs sous Linux, vous trouverez également plus de CVE critiques sous Windows (j'avais un tas de ventilations statistiques d'une base de données CVE mais je ne trouve pas ce message que j'ai fait il y a des mois, tellement frustrant ! Google ne m'aide pas à le trouver...).

Comme vous pouvez le voir, Server 2008 a une beaucoup plus élevée moyenne pondérée de la gravité des CVE :

http://www.cvedetails.com/top-50-product-cvssscore-distribution.php (plus, toutes les vulnérabilités Linux des 1,2 jours par rapport aux 5 dernières années de développement 2008 !)

Bien sûr, vous utilisez quelque chose comme Ubuntu qui est livré avec un tas de logiciels et une pré-configuration en plus, ils sont à la merci du logiciel qui s'exécute dessus.

Mon avis sur le sujet :Linux est construit autour de beaucoup de concepts Unix, 40 ans du développement de logiciels et des gens battant ces boîtes à mort, il est principalement sécurisé par l'épreuve du feu d'Unix, et cela a énormément aidé, beaucoup de leçons ont été apprises et directement appliquées à Linux.

Cela a-t-il quelque chose à voir avec la nature open-source de Linux ?

Cela a beaucoup à voir avec cela, du moins avec la vitesse à laquelle le volume plus élevé des CVE sont traitées. Cela permet également de trouver et de résoudre de nombreux petits problèmes (principalement en raison de sa popularité , car open source sans popularité signifie peu d'yeux sur le code et peu d'intérêt à corriger).

Son architecture sous-jacente (et la différence avec Windows) ?

Être construit autour d'un environnement multi-utilisateurs aide énormément, ces systèmes ont été conçus pour avoir des tonnes de personnes à la fois, et aucun utilisateur ne devrait pouvoir en interrompre un autre.


Raisons valides :

  1. La plus petite base d'utilisateurs sous Linux fait de Linux de bureau une cible moins attrayante. Si seulement 0,1 % des ordinateurs exécutent Ubuntu 10.04 et que votre cheval de Troie ne fonctionne que sur cette version spécifique de Linux, il n'attrapera probablement jamais. Si votre cheval de Troie ne fonctionne que sur Windows XP, vous pouvez toujours attaquer environ 25 % du marché.
  2. Base d'utilisateurs souvent (pas toujours) mieux informée et soucieuse de la sécurité. Cela dit, des systèmes d'exploitation comme Ubuntu ont rendu Linux plus accessible et vous pouvez trouver des gens qui font des bêtises dessus.

En outre, pour des raisons quelque peu discutables, vous pourriez affirmer que Linux a souvent une conception plus sécurisée (cela n'est peut-être plus aussi vrai car d'autres systèmes d'exploitation ont rattrapé leur retard).

  1. Bonne séparation des privilèges et contrôles d'accès avec su /sudo , qui n'existent pas vraiment dans les anciennes versions de Windows.
  2. Supposons que vous ayez besoin d'un nouveau logiciel (éditeur d'images, LaTeX ou Python, etc.) qui n'est pas préinstallé sur votre système d'exploitation. Sous Linux, 99 % du temps, vous utilisez votre gestionnaire de packages pour télécharger et installer automatiquement des logiciels signés par chiffrement et validés à partir d'une chaîne de confiance. Il l'utilisera également automatiquement pour les mises à jour (il est donc facile de maintenir à jour tous les logiciels à l'échelle du système, corrigeant rapidement les failles de sécurité). Sous Windows, la plupart du temps, lorsque j'ai besoin d'installer quelque chose de nouveau, je dois le rechercher sur le Web, le télécharger et l'installer à partir d'un site Web http aléatoire qui pourrait charger son logiciel avec des logiciels espions/bloatware/chevaux de Troie ou je pourrais être sujet à une attaque MITM et télécharge/installe un virus à la place, et chaque application a son propre programme d'installation/mise à jour automatique (différent). (Cela dit, je trouve que les gens font trop confiance aux PPA, aux scripts aléatoires sur Internet ou à l'ajout d'extensions de navigateur comme principales vulnérabilités de sécurité de Linux/Windows).
  3. ssh . Votre connexion standard à une autre machine distante via ssh est très pratique et puissante, ce qui est largement supérieur à toute authentification à distance Windows en termes de sécurité. Chaque fois que vous vous connectez à une machine ssh, vous vérifiez de manière cryptographique que la clé d'hôte de l'autre machine n'a pas changé par rapport à la clé précédemment utilisée ; vous pouvez utiliser votre clé privée ssh pour répondre à un jeton de défi sans laisser les oreilles indiscrètes utiliser des attaques par relecture ou les enregistreurs de frappe voir votre mot de passe. Ensuite, tout le trafic est envoyé chiffré entre les deux machines ; de plus, il est trivial de s'installer sur une machine Linux.
  4. Une variété d'outils de sécurité Linux gratuits :SELinux, AppArmor, wireshark, iptables (ou un wrapper comme ufw), ssh, cron, top (vraiment htop), fail2ban, tripwire, GPG, OpenSSL, md5sum/sha256sum, etc. Il est également très facile de configurer des scripts, d'analyser un fichier journal et d'envoyer une alerte par e-mail, et de tout faire à partir de la ligne de commande, etc. beaucoup entre les versions. La configuration d'un cronjob consiste essentiellement à automatiser certaines tâches, c'est à peu près la même chose qu'au cours des 20 dernières années. tandis que la configuration d'une tâche automatisée dans Windows entraînera des changements spectaculaires entre les systèmes d'exploitation.

Motifs non valides :

  1. Loi de Linus : "avec suffisamment de globes oculaires, tous les bogues sont superficiels", donc l'open source est plus sûr que les logiciels à code source fermé. Je ne trouve pas cet argument particulièrement convaincant car des failles de sécurité importantes existent depuis des mois/années dans des éléments open source (par exemple, Debian OpenSSL). C'est encore pire car les attaquants peuvent lire la source, rechercher des bogues (ou même essayer d'introduire des bogues déguisés dans la base de code). Cependant, je ne crois pas non plus que les logiciels à source fermée soient intrinsèquement plus sûrs - les gens font encore des erreurs et vous pouvez facilement payer quelqu'un pour introduire des trous dans une base de code propriétaire (et avec moins de globes oculaires, il peut être impossible de le remarquer) ; il est clair que des bogues de sécurité et des portes dérobées existent souvent dans des logiciels à source fermée et sont également attaqués. (Je considère celui-ci plus ou moins comme une égalité.)

Je soupçonne que la situation des virus/programmes malveillants sur Linux est à peu près ce qui serait "normal", et que la situation des virus/programmes malveillants sur Windows est un monstre statistique, plus un "Dragon King" qu'un Black Swan.

Windows a un ensemble inhabituellement baroque d'API, Win32, API native NT, etc., et il y a eu quelques problèmes entre eux, comme Win32 étant essentiellement une interface ASCII tandis que NT natif est Unicode. Cela a au moins facilité les logiciels malveillants. Comme exemple de détail rococo, pensez aux noms de fichiers de périphériques magiques, AUX, CON, LP qui fonctionnent dans n'importe quel répertoire.

L'API native de Windows n'a jamais vraiment été documentée, et ce manque de documentation se répercute sur d'autres choses, telles que :quel ensemble d'extensions de nom de fichier est destiné aux fichiers exécutables ? Pourquoi le nom de fichier détermine-t-il si un fichier est exécutable ou non ? Le ver NIMDA ne s'est-il pas propagé via un problème avec les fichiers ".eml", par exemple. Personne ne savait que les fichiers .eml étaient exécutables à l'époque.

Windows n'a pas de tradition de séparation des privilèges, en effet il a une tradition d'utilisateur root unique. Beaucoup d'applications supposent encore cela. Windows n'a pas de tradition de séparation des données des exécutables. Je vous donne des macros Word intégrées dans le fichier .doc comme exemple de données et d'instructions non séparées qui ont historiquement causé des problèmes de virus.

Linux a au moins des traditions opposées à tous les points ci-dessus :des contrôles d'accès discrétionnaires légèrement efficaces, suffisamment simples pour être appliqués au jour le jour, mais suffisamment complets pour tenir à distance les virus de type fichier traditionnels. L'interface d'appel système n'est que modérément compliquée, et comme le code source est librement disponible, plusieurs sources de documentation existent. Les exécutables vivent généralement dans des répertoires "bin", et les données se trouvent dans un autre. Chaque exécutable a son propre fichier de configuration, plutôt que de partager le grand registre. Les fichiers de données vivent dans des répertoires par utilisateur et ne contiennent presque jamais le type de macros tout-puissantes que contiennent les fichiers de données Word, etc.

De plus, "linux" n'existe pas vraiment comme "Windows". Des centaines de distributions existent, chacune personnalisant presque tous les aspects des détails de bas niveau. Différentes versions de compilateur, différents noyaux Linux, certains entièrement modulaires, d'autres sans modules. C'est vrai pour pratiquement tous les aspects logiciels d'un système, du noyau aux clients de messagerie. Là où les utilisateurs de "Windows" utilisent généralement les clients de messagerie Outlook, les utilisateurs de Linux utilisent un éventail de centaines de clients différents, chacun dans des dizaines de versions. Il n'y a pas de base d'utilisateurs pour une version donnée d'un logiciel donné :la base d'utilisateurs n'est pas seulement fracturée, elle est brisée. Il est donc beaucoup plus difficile de trouver une vulnérabilité sur un nombre approprié d'hôtes ou d'écrire un exploit qui fonctionnerait sur un nombre suffisant d'instances de logiciel.


Linux
  1. Mon histoire Linux :pourquoi présenter le Raspberry Pi aux gens

  2. Maîtrisez la commande Linux ls

  3. Sécurité Linux :8 autres contrôles de verrouillage du système

  4. La commande locate sous Linux

  5. problème de retour arrière sur le fichier linux

Comment améliorer la sécurité des systèmes Linux à l'aide de Firejail

La commande timer sous Linux

Les 50 meilleurs conseils de sécurité pour le durcissement de Linux :une liste de contrôle complète

Sécurité Linux contre Windows

Les 20 meilleurs outils de sécurité Linux :le choix de l'expert Linux

Les 8 meilleurs téléphones sécurisés Linux pour la confidentialité et la sécurité