Question:
L'invite système d'Ubuntu pour mon mot de passe n'est-elle pas usurpable?
Arseni Mourzenko
2017-08-13 18:10:06 UTC
view on stackexchange narkive permalink

Parfois, Ubuntu affiche la fenêtre suivante:

Screen shot of "Authenticate" dialog box asking for password

Cette fenêtre peut être causée par certains processus d'arrière-plan en cours d'exécution, comme un update, ou un processus qui signale des bogues à Canonical qui se manifeste de cette façon:

Screen shot of "System program problem detected" query box

Comme il s'agit de processus d'arrière-plan, la première fenêtre est non affiché en réponse à une action que j'ai effectuée moi-même, dans une situation où je m'attendais à ce que le système me demande le mot de passe. Cela signifie que:

  • Du point de vue de l'utilisateur, il n'y a aucune garantie que l'invite provient du système d'exploitation; il peut s'agir de n'importe quel programme malveillant qui n'avait qu'une autorisation limitée pour afficher une fenêtre, et qui, en demandant mon mot de passe, obtiendra un accès illimité à toute la machine.

  • Par en demandant régulièrement à l'utilisateur un mot de passe, le système apprend à l'utilisateur que donner son mot de passe système chaque fois qu'une application le demande est une chose parfaitement naturelle à faire.

Mes questions sont :

  • Existe-t-il un mécanisme de sécurité sous Linux en général ou Ubuntu en particulier qui empêche toute application d'afficher une boîte de dialogue qui semble identique à celle du système, me demandant mon mot de passe?

  • Comment de telles fenêtres devraient-elles être conçues pour augmenter la sécurité de l'utilisateur? Pourquoi ne pas implémenter un système similaire à Ctrl + Alt + Suppr lors de la connexion de Windows?

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/64019/discussion-on-question-by-arseni-mourzenko-isnt-ubuntus-system-prompt-for-my-p).
Six réponses:
Mike Ounsworth
2017-08-13 20:55:53 UTC
view on stackexchange narkive permalink

Vos points sont tous bons, et vous avez raison, mais avant de nous en indigner, nous devons nous rappeler comment fonctionne le modèle de sécurité Linux et ce qu'il est conçu pour protéger.

Rappelez-vous que Linux Le modèle de sécurité est conçu avec un terminal multi-utilisateurs uniquement ou un serveur SSH à l'esprit. Windows est conçu avec un poste de travail d'utilisateur final à l'esprit (mais j'ai entendu dire que la dernière génération de Windows est plus conviviale pour les terminaux). En particulier, la convention Linux fait un meilleur travail de sandboxing des applications dans les utilisateurs, tandis que dans Windows tout ce qui est important fonctionne en tant que système, tandis que l'interface graphique Linux (X Server) aspire à la sécurité, et l'interface graphique Windows a des éléments sophistiqués comme UAC intégré. Fondamentalement, Linux est (et a toujours été) un serveur d'abord et un poste de travail ensuite, tandis que Windows est l'inverse.


Modèles de sécurité

Pour autant que "le OS "(c'est-à-dire le noyau) est concerné, vous avez 7 consoles tty et un nombre quelconque de connexions SSH (aka" sessions de connexion ") - il se trouve que ubuntu est livré avec des scripts pour démarrer automatiquement l'interface graphique sur le tty7 session, mais pour le noyau, ce n’est qu’une autre application.

Les sessions de connexion et les comptes utilisateur sont assez bien séparés les uns des autres, mais Linux adopte un état d'esprit de sécurité selon lequel vous n'avez pas besoin de protéger un utilisateur d'eux-mêmes. Dans ce modèle de sécurité, si votre compte est compromis par des logiciels malveillants, c'est une cause perdue, mais nous voulons toujours l'isoler des autres comptes pour protéger le système dans son ensemble.

Par exemple, les applications Linux ont tendance à créer un utilisateur à faible privilège comme apache ou ftp avec lequel ils s'exécutent lorsqu'ils n'ont pas besoin de faire des choses rooty. Si un attaquant parvient à prendre le contrôle d'un processus apache en cours d'exécution, il peut brouiller d'autres processus apache , mais aura des difficultés à passer aux processus ftp .

Notez que Windows adopte ici une approche fondamentalement différente, en grande partie à travers la convention selon laquelle toutes les choses importantes fonctionnent en tant que système tout le temps. Un service malveillant sous Linux a moins de possibilités de faire de mauvaises choses qu'un processus malveillant s'exécutant en tant que système, donc Windows doit déployer des efforts supplémentaires pour protéger une personne disposant de droits d'administrateur contre «elle-même».

Les environnements GUI et un serveur X qui n'a pas été conçu pour la sécurité jettent une clé dans ce modèle de sécurité.


Gnome gksudo vs Windows UAC, et keyloggers

Sous Windows, lorsqu'un processus utilisateur demande une élévation de privilèges, le noyau lance une invite spéciale protégée dont la mémoire et le bus clavier / souris sont isolés du reste du reste de l'environnement de bureau. Il peut le faire car l'interface graphique est intégrée au système d'exploitation. Sous Linux, l'interface graphique (serveur X) n'est qu'une autre application, et par conséquent, les invites de mot de passe appartiennent au processus qui les a appelées, s'exécutant en tant que vous, partageant les autorisations de mémoire et un bus d'entrée avec chaque autre fenêtre et processus s'exécutant en tant que vous.

L'invite root ne peut pas faire les choses fantaisistes de l'UAC comme verrouiller le clavier parce que celles-ci doivent être déjà root ou nécessitent une refonte totale du serveur X (voir Wayland ci-dessous). Un catch-22 qui dans ce cas est un inconvénient de la séparation de l'interface graphique du noyau. Mais au moins, c'est conforme au modèle de sécurité Linux.

Si nous devions réviser le modèle de sécurité pour lutter contre cela en ajoutant un sandbox entre les invites de mot de passe et d'autres processus s'exécutant en tant qu'utilisateur dans la même session GUI , nous pourrions avoir à réécrire beaucoup de choses. Au moins, le noyau devrait devenir conscient de l'interface graphique afin qu'il soit capable de créer des invites (ce n'est pas vrai aujourd'hui). L'autre exemple incontournable est que tous les processus d'une session GUI partagent un bus de clavier.

Regardez-moi écrire un keylogger puis appuyez sur quelques touches dans une autre fenêtre :

  ➜ ~ xinput list
⎡ Pointeur de noyau virtuel id = 2 [pointeur maître (3)] ⎜ ↳ Pointeur XTEST de noyau virtuel id = 4 [pointeur esclave (2)] ⎜ ↳ Logitech K400 Plus id = 9 [pointeur esclave (2)] ⎜ ↳ ETPS / 2 Elantech Touchpad id = 13 [pointeur esclave (2)] ➜ ~ x test d'entrée Déclenchement de 9 touches 36 pression de touche 44 hdéclenchement de touche 44 appui de touche 40 relâchement de touche 40 appui de touche 33 l relâchement de touche 33 appui de touche 33 appui de touche 39 relâchement okey 33 relâchement de touche 39 touche appuyez sur 66 touche appuyez sur 31  

Tout processus en cours d'exécution comme vous pouvez renifler le mot de passe dans l'invite ou le terminal d'un autre processus, puis appeler sudo sur lui-même (cela découle directement du "pas besoin de vous protéger contre vous "état d'esprit), donc augmenter la sécurité des invites de mot de passe est inutile à moins que nous ne changions fondamentalement le modèle de sécurité et ne réécrivions massivement toutes sortes de choses.

(il convient de noter que Gnome semble au moins sandbox le bus de clavier sur l'écran de verrouillage et la nouvelle session s via "Changer d'utilisateur" car les éléments qui y sont saisis n'apparaissent pas dans le bus clavier de ma session)


Wayland

Wayland est un nouveau protocole qui vise à remplacer X11. Il verrouille les applications clientes afin qu'elles ne puissent pas voler des informations ou affecter quoi que ce soit en dehors de leur fenêtre. La seule façon pour les clients de communiquer entre eux en dehors de l'IPC extérieur est de passer par le compositeur qui les contrôle tous. Cependant, cela ne résout pas le problème sous-jacent et transfère simplement le besoin de confiance au compositeur.


Virtualisation et conteneurs

Si vous travaillez avec des technologies cloud, vous ' re sautant probablement de haut en bas en disant "Docker est la réponse !!". En effet, le brownie pointe pour vous. Bien que Docker lui-même ne soit pas vraiment destiné à améliorer la sécurité (merci @SvenSlootweg), il indique l'utilisation de la conteneurisation et / ou de la virtualisation comme une avancée compatible avec l'architecture Linux actuelle.

Deux distributions Linux notables, conçues en tenant compte de l'isolement inter-processus:

Qubes OS qui exécute des applications au niveau de l'utilisateur dans plusieurs VM séparées en "domaines de sécurité" tels comme travail, banque, navigation Web.

Android qui installe et exécute chaque application en tant qu'utilisateur à faible privilège distinct, obtenant ainsi une isolation au niveau des processus et du système de fichiers (chacun est confiné à son propre répertoire personnel) entre les applications.


Conclusion: Du point de vue d'un utilisateur final, il n'est pas déraisonnable de s'attendre à ce que Linux se comporte de la même manière que Windows, mais c'est l'un de ces cas où vous devez comprendre un peu comment le système sous-jacent fonctionne et pourquoi il a été conçu de cette façon. Le simple fait de changer l'implémentation des invites de mot de passe n'accomplira rien tant qu'il appartient à un processus qui vous appartient. Pour que Linux obtienne les mêmes comportements de sécurité que Windows dans le contexte d'un poste de travail GUI mono-utilisateur, il faudrait une refonte importante du système d'exploitation, donc il est peu probable que cela se produise, mais des choses comme Docker peuvent fournir une voie à suivre dans un Linux plus. de manière native.

Dans ce cas, la différence importante est que Linux est conçu au bas niveau pour être un serveur multi-utilisateurs et qu'ils prennent la décision de ne pas protéger un utilisateur d'eux-mêmes, alors que Windows est conçu pour être un poste de travail mono-utilisateur, vous devez donc disposer de protections inter-processus dans une session de connexion. Il est également pertinent que dans Windows, l'interface graphique fasse partie du système d'exploitation, tandis que sous Linux, l'interface graphique n'est qu'une autre application au niveau de l'utilisateur.

Je ne pouvais pas comprendre comment l'intégrer dans le corps, mais [xkcd obligatoire] (https://xkcd.com/1200/)
Je pense que "au bas niveau", les deux OS sont des serveurs multi-utilisateurs à part entière et totalement comparables.C'est la partie "GUI fait partie de Windows (!)" Et "la session X est juste un autre programme utilisateur" qui est importante.
Bien que tout cela soit factuellement correct, je vois peu de rapport avec la question ...
Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/63876/discussion-on-answer-by-mike-ounsworth-isnt-ubuntus-system-prompt-for-my-passw).
_N'oubliez pas que le modèle de sécurité Linux est conçu avec un serveur multi-utilisateur headless ou SSH à l'esprit, et dans ce contexte, Linux a plus de protections.Windows a été conçu en pensant au poste de travail de l'utilisateur final, et dans ce contexte, Windows offre davantage de protections._ D'où avez-vous conclu cela?
@JopV.Principalement de mes propres expériences;le serveur X aspire à la sécurité, et bien que je ne sois pas un expert de Windows, il semble que cela soit nul d'avoir plusieurs utilisateurs connectés simultanément à l'interface graphique et la convention selon laquelle tout ce qui est important fonctionne comme système plutôt que d'appliquer le principe du moindre privilège.Je suis heureux d'avoir changé d'avis.
"* Je ne serais pas choqué si nous commençons à voir des distributions Linux conteneuriser des navigateurs Web et d'autres applications à haut risque dans les années à venir *" [Qubes] (https://www.qubes-os.org/) le fait.
Cette réponse devrait probablement aborder le point de vue de Wayland sur la sécurité et la façon dont elle améliore les choses (mais ajoute simplement le compositeur comme une autre chose à laquelle vous devriez faire confiance)
@Timidger En fait, je ne connais pas assez Wayland pour en parler.N'hésitez pas à suggérer une modification.
@Will qui rendrait le code qui s'exécute directement dans le compositeur auquel vous ne faites pas confiance (ou le code qui pourrait contenir des bogues) plus sûr.Cependant, vous devez toujours faire confiance à l'implémentation du compositeur, car c'est la principale chose à laquelle les clients parlent.En d'autres termes, si vous imaginez un compositeur comme le serveur et les fenêtres / applications comme les clients, peu importe si le serveur ne peut pas écrire à votre domicile, mais il expose tout ce que vous tapez à n'importe quel client, ou laisse un client dessinern'importe quoi n'importe où et grattez les pixels des applications prétendument «fiables».Toutes les entrées passent par le compositeur.
@Timidger Comme d'habitude, ce qui compte comme "sécurisé" est dans l'œil du spectateur et par rapport à ce que vous essayez de protéger;)
Il est malheureux que cette réponse parle de Docker comme d'une mesure d'isolement.__Docker ne fournit pas d'isolation sécurisée contre les applications malveillantes__, car cela est hors de portée de ce pour quoi Docker est conçu (isolement contre la contamination accidentelle des dépendances et autres).Certaines technologies de conteneurisation (OpenVZ, LXC non privilégié) * peuvent * fournir une isolation sécurisée, mais Docker n'en fait certainement pas partie.De plus, les «conteneurs» et les «VM» ne sont pas le même genre de chose.
@SvenSlootweg J'utilise un (petit c) conteneur dans le sens où toutes les VM sont des conteneurs, mais tous les conteneurs ne sont pas des VM.L'article de wikipedia lié dit _ "En plus des mécanismes d'isolation, le noyau fournit souvent des fonctionnalités de gestion des ressources pour limiter l'impact des activités d'un conteneur sur d'autres conteneurs." _ Cela me semble être un certain niveau d'isolement sécurisé.
@MikeOunsworth "Un certain niveau" ne suffit pas, cependant, et "l'isolement contre les comportements malveillants" et "l'isolement contre la contamination accidentelle / la surutilisation des ressources" sont deux choses très différentes.Docker ne s'occupe que de ce dernier, pas du premier, et est donc * complètement * insuffisant lorsqu'il s'agit de malware.Voir aussi https://gist.github.com/joepie91/1427c8fb172e07251a4bbc1974cdb9cd#secure-isolation
@SvenSlootweg Cette modification est-elle en accord avec votre opinion?
deviantfan
2017-08-13 20:12:22 UTC
view on stackexchange narkive permalink

Existe-t-il un mécanisme de sécurité dans Linux en général ou Ubuntu en particulier qui empêche toute application d'afficher une boîte de dialogue qui semble identique à celle du système, me demandant mon mot de passe?

Réponse rapide: Non.

Du point de vue de l'utilisateur, il n'y a aucune garantie que l'invite provient du système d'exploitation; il pourrait s'agir de n'importe quel programme malveillant qui n'avait qu'une autorisation limitée pour afficher une fenêtre, et en demandant mon mot de passe, obtiendra un accès illimité à l'ensemble de la machine.

Si un programme malveillant est activé l'ordinateur, peu importe le programme qui affiche la boîte de dialogue.
S'il s'agit d'un programme malveillant, eh bien, comme décrit dans la phrase suivante, il n'a même pas besoin de vous montrer une boîte de dialogue. S'il s'agit d'un programme légitime, le programme malveillant peut "regarder" la fenêtre et ce que vous y tapez, dans des environnements de serveur X (le terminal est meilleur).

Solution?

Si vous avez des raisons de croire qu'un programme n'est pas digne de confiance, faites du sandbox (VM ou des choses moins importantes).

Sinon, ne pas demander de mots de passe . Cette boîte de dialogue est pratique pour les utilisateurs non techniques. Si vous êtes préoccupé par la sécurité, ou par un administrateur d'organisation ou similaire, il n'est absolument pas nécessaire d'afficher une requête de mot de passe GUI. Configurez correctement les autorisations des comptes d'utilisateurs non root (oui ou non, mais sans demander), et n'utilisez pas de bureau en tant que root (à cause de cela, et parce que c'est une tentation d'utiliser root plus souvent que nécessaire).

En demandant régulièrement à l'utilisateur son mot de passe, le système apprend à l'utilisateur que donner son mot de passe système chaque fois qu'une application le demande est une chose parfaitement naturelle à faire.

Comme décrit, ne leur demandez pas. En tant qu'administrateur, «vos» utilisateurs sont censés avoir des autorisations clairement définies.

Et, à propos des mises à jour automatiques en tant qu'administrateur de l'organisation: Êtes-vous fou :) Sérieusement, ne laissez pas de nombreux clients Ubuntu mettre à jour des choses aléatoires à des moments aléatoires. Que diriez-vous des images centrales qui sont maintenues et testées par vous, puis déployées; ou dans l'autre sens des choses comme Ansible?
Complètement indépendant de la sécurité, les mises à jour peuvent casser des choses. C'est pourquoi.

Alors que l'anarchie des mises à jour incontrôlées est en effet dangereuse, le moyen le plus simple (et probablement le plus courant) de contrôler les mises à jour est de ne pas les faire, ce qui est également dangereux.
C'est bien pour les entreprises, mais qu'en est-il des particuliers et des petites entreprises?Ils ne l'utilisent probablement que tel quel.En effet, c'est un argument de vente d'Ubuntu (pas de configuration élaborée).S'il n'est pas sûr dans sa configuration par défaut, devraient-ils le vendre à des utilisateurs individuels?
@Kevin Eh bien, "devrait" ... souvent, la commodité est le contraire de la sécurité.Et malheureusement, c'est une raison suffisante pour que la sécurité soit un problème pour de nombreux gestionnaires et autres employés.Si Ubuntu dit "nous ne vous laisserons jamais entrer un mot de passe dans une interface graphique, pas même XTerm, vous devez toujours ouvrir un terminal racine pour faire de telles choses", ce n'est pas quelque chose qui les aidera avec leur part de marché.
Et, de toute façon, un système d'exploitation «sécurisé» ne sera pas possible tant que nous ne savons pas contre quoi se protéger et à quel point les risques sont élevés.Ubuntu ne peut pas faire ce choix pour «tous» les utilisateurs, juste pour une partie de taille raisonnable.(Et cette partie n'a aucune idée de ce qu'est un terminal).
@deviantfan Et cette partie est également la plus sensible aux usurpations sudo.Windows n'a aujourd'hui que le nombre de malwares en raison de sa part de marché.Au fur et à mesure qu'Ubuntu augmente sa part, il devient une cible plus intéressante pour les logiciels malveillants, et l'incarnation actuelle du système d'exploitation ne peut pas défendre les utilisateurs finaux contre les attaquants intelligents.Il s'agit d'un échec de conception très important.
@T.Sar Eh bien, oui, mais quelle est la solution alors, qui convient à tous les groupes cibles?Exiger des terminaux n'est pas acceptable pour les utilisateurs non techniques sans administrateur qualifié (= la plupart des utilisateurs).Sécuriser ce dialogue n'est pas vraiment possible tant que X existe (et Wayland n'est pas encore terminé)
@deviantfan Je ne dis pas que vous devriez convenir à tous les groupes cibles, juste que pour la plus grande base d'utilisateurs d'Ubuntu (les utilisateurs finaux qui ne savent pas comment utiliser le terminal), l'implémentation actuelle est terrible.Cela, ajouté au faux sentiment de sécurité généré par des années de propagande «les systèmes basés sur Linux ne peuvent pas être infectés par des virus», crée un environnement très dangereux pour l'utilisateur moyen.Ubuntu, tel quel, est _dangerous_.Jusqu'à ce qu'Ubuntu trouve un moyen de protéger l'utilisateur profane de ce type d'attaque stupide, je ne le recommanderais à personne.
@deviantfan Vous n'avez pas besoin de remplacer complètement X - vous pouvez faire la même chose que UAC - lorsque vous avez besoin d'afficher l'invite, basculez vers une application privilégiée complètement distincte dans une session de terminal distincte qui semble simplement afficher l'ancienne interface graphique.C'est beaucoup plus simple que de remplacer X. Pas aussi fort que l'UAC, mais beaucoup plus fort que ce qu'ils ont maintenant, et vous pouvez éviter d'avoir à entrer le mot de passe (donc pas de faux dialogues).Si vous vous interrogez sur les sessions à distance, celles-ci sont également vulnérables (aux enregistreurs de frappe côté client) sous Windows, tout comme exécuter le système dans une machine virtuelle.
@Luaan Bonne idée, je ne suis pas sûr que mélanger des sessions autant soit vraiment plus facile que de remplacer X ...
Stig Hemmer
2017-08-14 12:41:16 UTC
view on stackexchange narkive permalink

Oui. Ce n'est pas sûr!

Personnellement, j'annule toujours ce dialogue. Non pas parce que cela pourrait être faux, mais parce que cela pourrait être réel.

Je suis censé accorder des privilèges accrus à "une application" simplement parce qu'elle le demande? Non, je ne pense pas.

Les mises à jour du système sont correctes, je les fais manuellement, mais cela m'ennuie que le système de rapport d'erreurs l'exige. Mauvaise conception.

Eh bien, le * dialogue * n'est pas particulièrement dangereux.Que les programmes puissent eux-mêmes * demander à être élevés * est un risque (ce serait le même risque sur la ligne de commande).Comme souvent, c'est une question de commodité.Si vous ne voulez pas exécuter automatiquement des programmes qui ont besoin de root privs en tant que root (connectez-vous à votre WLAN, mettez à jour votre installation, etc.), vous devrez ouvrir un shell root ou exécuter sudo pour cela (ce que vous faites apparemment avec votreaméliorer).Pas une mauvaise idée mais considérée comme trop lourde pour un OS orienté GUI.
Le problème est que les programmes qui ont besoin de privilèges root ne sont pas déjà suid.C'est pourquoi le suid existe.(Remarque: ne ** PAS ** suid le grand programme graphique entier. Créez un petit programme suid qui fait l'opération nécessaire et rien de plus)
Vous n'êtes clairement pas fan d'Ubuntu ou des interfaces graphiques, n'est-ce pas?
Je suis en général un fan d'Ubuntu, mais je pense qu'ils ont laissé tomber le ballon sur celui-ci.
@oldmud0 Vous ne vous souvenez pas quand Vista est sorti et que littéralement des dizaines de millions de personnes se sont plaints de devoir cliquer constamment sur "Ok" dans une boîte de dialogue UAC?La plainte devient encore pire dans Ubuntu lorsque vous devez taper le mot de passe à chaque fois.Certaines choses me déroutent quand ils demandent des autorisations d'escalade ..... comme l'installation de logiciels à partir du centre logiciel que seul l'utilisateur actuel utilisera (peut-être que cela a changé).Je pense que Stig fait valoir un point.Trop de choses demandent une élévation de privilèges.
Peter - Reinstate Monica
2017-08-14 09:41:05 UTC
view on stackexchange narkive permalink

Contrairement à ce que vous pensez, les méthodes (modernes) de Windows et d'Ubuntu pour gérer les niveaux de privilèges et l'élévation des privilèges sont assez similaires. La raison en est sûrement que les systèmes d'exploitation sont tous deux des systèmes multi-utilisateurs avec des cas d'utilisation similaires qui font face à des problèmes similaires.

Les deux systèmes d'exploitation restreignent ce qu'un utilisateur ordinaire peut faire (en exécutant des programmes, bien sûr). Un utilisateur peut détruire ses propres données, mais idéalement pas les autres (sauf s'il les a partagées), et idéalement ne peut pas compromettre ou endommager le système. Afin de lire et d'écrire des données système, un programme a besoin des privilèges d'administrateur (root) sur les deux systèmes d'exploitation, que seuls les programmes démarrés par l'administrateur / root ont habituellement.

Afin de rendre cela simple, les deux systèmes d'exploitation fournissent à l'utilisateur par défaut la possibilité d'exécuter des programmes uniques avec des "privilèges élevés" via sudo ou UAC. Les deux interfaces graphiques du système d'exploitation déclenchent une boîte de dialogue afin de donner à l'utilisateur une chance d'empêcher les programmes de s'exécuter en tant qu'administrateur / root. Les deux systèmes ont également la notion d'utilisateurs qui ne sont pas du tout autorisés à exécuter des programmes privilégiés.

La boîte de dialogue Ubuntu demande un mot de passe; la boîte de dialogue Windows UAC ne le fait pas. (Vous semblez penser qu'un programme a besoin d'autorisations spéciales pour afficher cette boîte de dialogue; ce n'est pas le cas. Le programme les demande avec la boîte de dialogue. Si quelqu'un simule la boîte de dialogue, il obtient votre (utilisateur) mot de passe, ce qui n’est pas un gain pour un programme qui s’exécute déjà sous cet utilisateur.)

En fin de compte, un programme malveillant peut prétendre qu’il a besoin de privilèges élevés pour quelque chose d’utile et déclencher le dialogue, mais une fois qu'il les a obtenus, formatez le disque dur. 1 C'est vrai pour les deux systèmes d'exploitation. Parce que sous Windows, généralement plus de logiciels tiers sont installés, la chance de frapper un tel programme est probablement plus élevée que pour Ubuntu.

Vous mentionnez que dans Windows, la boîte de dialogue UAC est généralement le résultat d'une action de l'utilisateur, par exemple l'installation d'un programme, tandis qu'Ubuntu déclenche la boîte de dialogue sans raison apparente. Une raison à laquelle je peux penser est que les mises à jour logicielles Windows sont initiées par le système d'exploitation afin qu'elles aient déjà des privilèges élevés. Peut-être qu'Ubuntu demande avant l'installation.

Ce serait vraiment bien d'avoir plus d'informations que simplement "J'ai besoin de votre passeport, de vos bottes et de votre veste". Je n'ai pas de système Ubuntu sous la main ici, mais je vois une légende «Détails» sur le côté gauche de la boîte de dialogue. Avez-vous regardé ce qui est dit? (Bien sûr, un programme malveillant pourrait simuler n'importe quel texte, mais vous pourrez peut-être vérifier si le programme présumé est effectivement en cours d'exécution.)


1 Ce qui ne serait pas c'est terrible, comparé à l'écrasement des données.
Eh bien, le truc Windows UAC a une protection supplémentaire qui rend l'usurpation d'identité plus difficile, voir https://blogs.msdn.microsoft.com/uac/2006/05/03/user-account-control-prompts-on-the-secure-desktop / so sur Ubuntu, il est beaucoup plus facile pour un programme malveillant de simuler la boîte de dialogue.
@schlenk Vous avez raison;L'intégration de l'interface graphique dans le système d'exploitation permet à MS Windows d'exiger une boîte de dialogue UAC obligatoire avant l'élévation des privilèges.Je me demande comment les serveurs Windows dont la console n'est peut-être pas occupée gèrent cela.Probablement tous les programmes qui auraient besoin d'une élévation à un moment donné s'exécutent immédiatement en tant qu'administrateur.Mais le problème de base semble être que Linux invite «à l'improviste» alors que l'invite UAC de Windows est (presque?) Toujours le résultat d'une interaction de l'utilisateur (démarrage d'un programme, etc.).Le principal avantage de sécurité de l'invite UAC est qu'elle ne peut pas afficher des informations erronées.
@PeterA.Schneider Vous obtenez l'invite Windows UAC lorsque vous êtes connecté via RDP, exactement comme si vous étiez à la console.Je ne sais pas si c'est très différent sous le capot, mais je suppose que ce n'est pas vraiment le cas.
Vous devez indiquer un mot de passe pour l'UAC Si vous n'êtes pas connecté en tant qu'administrateur ou si vous configurez UAC pour toujours le demander
La seule fois où je sais où l'invite UAC de Windows apparaît à l'improviste, c'est lorsqu'un programme qui démarre au démarrage nécessite des privilèges d'administrateur.Habituellement, ils n'apparaissent que dans les 10 premières minutes (sur un disque dur) ou 2-5 minutes (sur un SSD) du démarrage.
@T.Sar Oui, mais il y a une bonne raison que ce n'est pas la valeur par défaut - c'est en fait moins sécurisé.Cela vous rend vulnérable aux fausses invites UAC qui demandent votre mot de passe administrateur (ce qui ne peut pas être empêché par le système).Le simple fait de connaître le mot de passe ne vous permet pas non plus de vous élever sans l'invite UAC, mais cela peut vous causer des problèmes.Si vous êtes administrateur, inutile de demander le mot de passe;si vous ne l'êtes pas, il est supposé que l'administrateur réel fera suffisamment attention pour éviter cela (et ~ 99% du temps, l'administrateur va annuler de toute façon - pensez entreprise).
Sous Windows, les applications privilégiées peuvent lancer d'autres applications privilégiées sans invite - les services de mise à jour sont donc généralement installés en tant que privilégiés et aucune élévation n'est requise.S'ils se comportent bien, ils ne gèrent * que * l'installation et autorisent correctement les binaires, c'est donc un gain de sécurité net.De nombreux programmes ne se comportent pas bien, mais ça s'améliore - il commence à être que seules les installations et les fonctions réellement dangereuses nécessitent une élévation.En ce qui concerne l'interface graphique, vous * pouvez * ajouter un sous-système personnalisé - mais vous avez raison de dire que ce n'est pas une application 100% en mode utilisateur, contrairement à X.
o11c
2017-08-14 10:05:04 UTC
view on stackexchange narkive permalink

Le moyen le plus sûr de s'assurer que votre mot de passe n'a pas été espionné est d'utiliser la séquence SAK: alt-sysrq-k . Cela tuera tous les programmes sur le VT actuel (y compris X11) et init vous donnera une nouvelle invite de connexion. Les seules attaques dont je suis au courant impliquent soit de modifier le keymap du noyau, soit de compromettre init lui-même, qui nécessitent déjà un accès root ou supérieur.

Il existe plusieurs moyens légèrement moins complets (XTerm a moyen d'accéder à l'option «entrée exclusive» de X11), en fonction de la quantité de votre système en laquelle vous faites confiance, mais ... pourquoi ne devriez-vous pas pouvoir faire confiance à votre système?

La différence majeure entre Linux et les modèles de sécurité Windows sont que sous Linux, vous ne vous contentez pas de télécharger des exécutables aléatoires depuis Internet et de les exécuter. (Il y a des efforts pour empaqueter des applications Linux non approuvées dans un bac à sable de type Android, mais personne ne les utilise.)

Je n'appellerais pas cela un "mécanisme de sécurité" implémenté "sous Linux" ... C'est plutôt une solution de contournement.
La disponibilité de Magic SysRq n'est pas garantie.Comme beaucoup d'autres dans le noyau Linux, c'est une option sélectionnable.
@MichaelKjörling et tout comme dans le noyau Linux, vous ne l'avez probablement pas désactivé à moins de savoir ce que vous faites.
@o11c: de nombreuses distributions désactivent la plupart des fonctionnalités SysRQ hors de la boîte.Par exemple, `/ etc / sysctl.d / 10-magic-sysrq.conf` d'Ubuntu définit` kernel.sysrq = 176` = 128 + 32 + 16 = reBoot / powerOff, remount Ro et Sync sont les seules commandes activées.Voir également https://askubuntu.com/questions/11002/alt-sysrq-reisub-doesnt-reboot-my-laptop.IDK pourquoi ils désactivent SAK avec le vidage du contenu de la mémoire sur la console (qu'ils désactivent pour des raisons de sécurité).Mais apparemment, OpenSUSE utilise également 176.voir aussi https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1025467: enable 176, était totalement désactivé auparavant.
En quoi est-ce une réponse à la question?
Joshua
2017-08-15 08:16:04 UTC
view on stackexchange narkive permalink

Horrible, horrible manque de sécurité. Quand j'ai vu la conception du sudo graphique, j'ai mordu la balle et j'ai fait sudo passwd root suivi de apt-get remove sudo , alors j'ai vraiment énervé les gens d'ubuntu IRC en préconisant la désinstallation sudo.

Pourtant, je comprends toujours, ce n'est absolument pas sûr. C'était plutôt correct sur le terminal (d'autant plus quand les shells étaient plus faibles, c'était relativement inconnu et les attaques contre lui ne s'étaient pas vraiment développées) mais c'est un point faible flagrant maintenant.

Je vais plutôt démarrer une deuxième instance X en tant que root maintenant pour moins d'une fois par an, je dois donner une racine de programme graphique. (Je fais cela en démarrant X: 1 directement pas en exécutant startx donc rien d'autre que l'application cible ne s'exécute dans l'instance X de root). Si vous avez besoin de root plus souvent, je vous conseille apt-get install ssh et ssh -X root @ localhost .

Si vous voulez des raisons pour des votes négatifs ... a) la désinstallation de sudo n'aidera pas car cette boîte de dialogue n'est pas sudo.b) Cette question ne concerne pas la non-sécurité de sudo, car ce n'est pas le cas.c) Une deuxième instance X n'aidera pas beaucoup.d) X en tant que root?Pas du tout recommandable.e) ssh'ing la propre machine locale n'est pas plus sécurisé que sudo, bien au contraire (plus de possibilités d'erreurs de code ou de fausses configurations)
@deviantfan: La capture d'écran est clairement une invite sudo.X en tant que root n'est pas non sécurisé;ce sont les environnements X modernes qui s'en moquent.
Ce que vous appelez une "invite sudo" n'est pas exécuté par le programme sudo et ne peut donc pas être supprimé en désinstallant sudo.Essayez-le, par exemple.en affichant la liste des processus pendant que la fenêtre est ouverte.... Je ne sais pas ce que la modernité des environnements X a à voir avec quoi que ce soit.X, ancien et nouveau, repose sur des principes qui empêchent les fenêtres de mot de passe sécurisées.Il n'est pas possible de changer cela sans casser X.
Les séquences @deviantfan: Ctrl-Alt-Fx pour changer d'environnement et de terminaux X fonctionnent très bien.Le mythe selon lequel «X en tant que root n'est pas sûr» vient de la myriade de gestionnaires de fenêtres modernes dont presque aucun n'est durci à distance et ne devrait donc jamais être root.Il y en avait quelques-uns sûrs dans l'ancien temps.J'ai gardé ratpoison jusqu'à ce que mes problèmes oculaires deviennent trop graves pour ne pas avoir le support d'accessibilité.
a) Les combinaisons de touches Imho et le poison pour rats ne sont pas pertinents ici.b) Je n'ai pas dit que X en tant que root n'est pas automatiquement sécurisé.c) Merci de m'avoir averti de ne pas croire aux mythes sur la sécurité.Heureusement, je suis de toute façon un sceptique naturel, et je vérifie moi-même beaucoup de choses avant de les croire.d) Je n'en discute pas davantage, il n'y a aucune raison.
L'invite en question provient de Polkit.Système totalement différent.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...