web-dev-qa-db-fra.com

Pourquoi est-il considéré comme sûr d'installer quelque chose en tant qu'utilisateur non root dans les environnements Linux?

Nous entendons toujours qu'il est sûr d'exécuter des programmes inconnus en tant qu'utilisateurs non root sous Linux car les utilisateurs non root sont placés en sandbox à partir du niveau système et ne peuvent rien changer en dehors de leur portée d'autorisation. Si nécessaire, en tant qu'utilisateur root, on peut toujours supprimer un utilisateur non root et être sûr que le reste du système n'a pas été affecté.

Cependant, n'est-il pas possible pour un utilisateur de bas niveau d'installer un script avec un enregistreur de frappe, par exemple, qui attend un su - ou Sudo appelle et prend le contrôle du système à partir de là?

23
user1717828

En bref: oui, être sur un compte à faible privilège vous protège contre les logiciels malveillants, mais ne vous immunise pas. Comme toute mesure de sécurité, aucune chose va vous garder à 100% en sécurité.

TL; DR: Fonctionnant sur un compte à faible privilège (aka " principe du moindre privilège ") devrait faire partie d'un petit déjeuner équilibré qui comprend également de bonnes configurations de pare-feu; des outils pour surveiller les processus, les ressources système, les ports ouverts, le trafic réseau, etc. pour détecter toute activité suspecte; une politique pour exécuter uniquement les exécutables signés, la configuration du mod du noyau sécurisé SELinux, la mise à jour du système d'exploitation et de l'application avec les correctifs de sécurité, etc.


Votre question est très large pour répondre directement. Au lieu de cela, je vais le diviser en plusieurs cas en fonction de la configuration du système et de ce que l'attaquant recherche:

Cas n ° 1: ordinateur personnel

Disons que l'ordinateur Linux en question est mon ordinateur portable personnel. J'utilise efficacement cela comme un système mono-utilisateur et je tape Sudo assez régulièrement - donc toutes les choses que vous avez mentionnées s'appliquent. De plus, si l'attaquant essaie de voler mes informations personnelles comme les numéros de carte de crédit, les documents fiscaux, etc., tout cela se trouve dans mon répertoire personnel où cet utilisateur y a accès. Si c'est un rançongiciel et veut crypter mes fichiers personnels - même chose. Ils veulent installer un processus d'arrière-plan pour faire de mon ordinateur un botnet, qui n'a pas besoin d'autorisations spéciales.

Cas n ° 2: serveur, compte administrateur

Les dommages causés par l'introduction de logiciels malveillants sur le compte d'un administrateur sont moindres que dans le cas de l'utilisateur final ci-dessus, car le compte d'administrateur ne contient probablement aucune donnée précieuse. mais même ainsi, un attaquant peut probablement faire des dégâts en ayant un renifleur de paquets à l'intérieur du réseau, ou en ouvrant un port qui permet à l'attaquant d'effectuer des tests de plume depuis l'intérieur du réseau. Ici, vous compteriez sur votre configuration de pare-feu pour vous protéger contre certains de ces problèmes et, espérons-le, vous informer de l'activité suspecte afin que vous puissiez la nettoyer.

Si l'administrateur tape Sudo régulièrement, alors oui, vous êtes probablement en difficulté.

Cas n ° 3: serveur, compte non administrateur

Imaginez que l'utilisation en question soit Tomcat - un utilisateur à très faible privilège qui exécute les applications du serveur Web. C'est le cas auquel les gens pensent habituellement lorsqu'ils parlent de " principe du moindre privilège ", et obtenir des logiciels malveillants sur ce compte sera le moins dangereux des trois cas que j'ai mentionnés.

Considérez également que Privilege Escalation des exploits existent pour linux qui permettraient à un utilisateur à faible privilège de contourner la sécurité du système d'exploitation et de se transformer en root. De manière générale, se tenir à jour avec les correctifs de sécurité vous protège contre cela, mais les acteurs suffisamment riches pour acheter des exploits sur le marché noir connaîtront les exploits du jour zéro qui ne sont pas connus du public et qui n'ont pas été corrigés.

33
Mike Ounsworth

On entend toujours ...

Est-ce que nous? Je ne.

Installer un programme non fiable en tant qu'utilisateur normal est une mauvaise idée avec Linux comme avec Windows ou Mac: ce programme a accès à toutes vos données et peut supprimer ces données, envoyer ces données à quelqu'un d'autre, etc. De plus, il peut faire des captures d'écran , contrôler d'autres applications s'exécutant sur le même écran X windows (même si elles s'exécutent en tant qu'utilisateur différent), peut récupérer des clés (ie enregistreur de frappe), ... Pour plus de détails, voir The Linux Security Circus: On GUI isolation =.

En dehors de cela, nous avons régulièrement des bogues d'escalade de privilèges, même dans les bogues Linux, qui peuvent être utilisés par un utilisateur non privilégié pour obtenir des autorisations au niveau racine ou même du noyau.

Par conséquent, n'installez aucun programme non fiable sur tout type de système, sauf si vous êtes prêt à compromettre ce système ou les données qui y sont stockées.

58
Steffen Ullrich

Ceci est un cas horrible de Security Theatre

Le théâtre de sécurité est la pratique ou la croyance de quelque chose qui ressemble à une amélioration de la sécurité, mais qui, en réalité, ne lui fait que peu de mal.

Cette fausse croyance existe depuis aussi longtemps que la rumeur suivante

Linux n'a pas de virus à cause de son système d'autorisation

C'est presque aussi bon que de dire

Je n'ai pas de virus sur mon ordinateur car je ne vois rien clignoter

Ce n'est pas parce que vous ne le voyez pas que c'est vrai. Fermer les yeux ne vous protège pas de l'intrus.

Dans toute réalité Linux, Mac OS, Windows, Android, Xbox, tout a des vulnérabilités qui permettraient une escalade vers un niveau de contrôle du système.

CEPENDANT ce n'est pas parce que l'attaque ne s'intensifie pas au niveau du système qu'elle n'est PAS EXTRÊMEMENT dangereuse. Ces applications avec un accès uniquement au niveau utilisateur peuvent toujours voler vos informations, enregistrer chacun de vos mouvements et conserver vos données contre rançon! Tout cela sans jamais être escaladé parce que ce sont les données auxquelles il a accès en tant que votre utilisateur.

Ces faits sont valables pour TOUT OS, quel que soit l'appareil. Si vous avez accès à la mémoire, il a accès à la mémoire. Cela signifie que même si vous ne le voyez pas, il y a toujours accès.


La bonne nouvelle

Parce que vous êtes un utilisateur régulier, cela signifie que l'attaque n'est pas déjà au niveau des privilèges root, ce qui signifie que l'accès qu'elle a limité à l'accès des utilisateurs, et aide à protéger les autres utilisateurs du système. Bien sûr, cela ne signifie pas que l'escalade ne peut pas se produire, cela signifie simplement que c'est beaucoup plus difficile.

9
Robert Mennell

Le système lui-même est à l'abri des comptes qui ne sont pas équivalents à root, mais cela n'aide pas beaucoup sur un bureau où la plupart de vos préoccupations sont vos propres données, et vous vous authentifiez régulièrement pour devenir root à partir de votre compte.

Si quelqu'un a un compte sur un système multi-utilisateurs correctement configuré et qu'il n'a pas les privilèges Sudo ou le mot de passe root, alors à moins de bogues dans les logiciels privilégiés, il n'y a rien que l'utilisateur puisse faire qui donnera les contrôler la machine. Un compte d'utilisateur qui peut avoir installé un logiciel malveillant doit être considéré comme un attaquant potentiel par le reste du système.

Sur mon bureau, j'ai ajouté un compte non privilégié auquel je peux Sudo, mais il ne peut pas Sudo à rooter. J'exécute parfois des logiciels auxquels j'ai un peu confiance, mais pas entièrement, sous ce compte, en particulier. s'il utilise la mise en réseau.

En théorie, puisque je donne à ce compte l'accès à mon serveur X, il pourrait augmenter ses privilèges avec des attaques par simulation de presse-papiers/frappe. C'est dans le même groupe Unix que mon compte habituel, et je suis sûr que je n'ai pas complètement supprimé l'autorisation d'écriture de groupe de certains fichiers importants, mais j'ai chmod 0644 ~/.bash{rc,_profile} et quelques autres fichiers importants. C'est donc un obstacle supplémentaire que certains logiciels malveillants n'auraient peut-être pas prévu.

5
Peter Cordes

La recette ici, bien qu'elle ne soit nullement infaillible, est incomplète ou erronée.

L'installation de logiciels non fiables sous votre compte non privilégié est un désastre.

L'installer dans un compte soigneusement préparé autre? Moins risqué, mais nullement garanti pour être sûr.

Si:

  • vous êtes sûr que votre système est configuré comme un système multi-utilisateur sécurisé (pas de bits aléatoires d'accès en écriture aux répertoires système, probablement plein SE Linux)
  • Vous créez un compte qui ne partage aucun groupe avec votre compte.
  • Vous avez soigneusement défini l'accès à toutes vos données comme quelque chose comme 0770 - pas d'accès à "autre" -

vous êtes alors aussi sûr que n'importe quel environnement qui dépend de la sécurité multi-utilisateurs sur un système Linux partagé. Cependant, ces balles représentent beaucoup de travail. Ne serait-il pas plus facile de démarrer un CD ou une VM?

1
bmargulies