Comment savoir si la connexion à la console est authentique?

13

Sous Windows, vous pouvez appliquer en appuyant sur Ctrl+ Alt+ Delpour déclencher une interruption qui affiche la fenêtre de connexion.

Lorsque vous vous connectez à une console d'un ordinateur Linux: comment savoir si cette connexion est réelle ou simulée pour voler mes informations d'identification?

Max Ried
la source

Réponses:

14

En supposant que vous souhaitez être protégé contre d'autres utilisateurs normaux du système (si l'adversaire a un accès root, tous les paris sont désactivés), vous pourriez en principe utiliser une clé d'attention sécurisée :

La clé d'attention sécurisée d'un système d'exploitation est un outil de sécurité qui sert de protection contre les programmes de capture de mots de passe de chevaux de Troie. C'est une façon imbattable de tuer tous les programmes qui pourraient être déguisés en applications de connexion. Les utilisateurs doivent apprendre à saisir cette séquence de touches avant de se connecter au système.

( Linux 2.4.2 Secure Attention Key (SAK) manipulation, Andrew Morton, 18 mars 2001 )

Cette question U&L connexe peut être intéressante: comment puis-je trouver la clé d'attention sécurisée (SAK) sur mon système et puis-je la désactiver?

dhag
la source
Que pourrait-il se passer lorsque SAK sera activé avec un serveur X allumé?
Incnis Mrsi
@IncnisMrsi: J'ai essayé cela; il semble être à peu près équivalent à Ctrl + Alt + Retour arrière en supposant que vous ne l'avez pas désactivé. Je me souviens que cela semblait un peu plus buggé, mais je ne me souviens d'aucun détail.
Kevin
Je l'ai frappé fréquemment sur mon vtty, et après un certain temps, la connexion n'est pas revenue. Cela semble bogué, mais +1 pour un SysRq réellement utile tous les jours.
Max Ried
@Kevin: Donc, si un utilisateur a exécuté un serveur X légitime (qui est nécessairement euid = 0, au moins sur les PC) sur un tty ≠ 7, SAK est désactivé dans sa configuration, alors SAK n'est-il pas invincible comme le prétendent les documents du noyau? Supposons qu'un DM GUI émulé s'exécute dessus.
Incnis Mrsi
@IncnisMrsi: Je pense que ce qu'il fait, c'est de tout tuer dans votre session et de relancer la chose "correcte", quelle qu'elle soit. Donc, si tty = 7, vous obtenez un X tout neuf, sinon vous obtenez login, etc. C'est un bug car certains DE fantaisistes comme GNOME n'aiment pas être tués de nulle part. Mais si votre attaquant a euid = 0, vous avez déjà perdu de toute façon.
Kevin
2

Tout d'abord, je ne suis pas sûr que vous puissiez être trop sûr de la fenêtre de connexion Ctrl+ Alt+ Delsous Windows, c'est aussi le rôle d'un virus / cheval de Troie pour pirater l'interruption, et sa mise en œuvre est très possible.

Deuxièmement, si un tel mécanisme est mis en œuvre à la fois sur Windows / Linux, cela signifie que les privilèges d'administrateur sont sûrement compromis.

Sous Linux, si quelqu'un a écrit un faux shell pour afficher une invite et récupérer vos informations d'identification, je suppose que les Ctrl+ Cou Ctrl+ de base Zpeuvent suffire, si ces signaux ne sont pas capturés pour découvrir l'astuce. La saisie de plusieurs informations d'identification erronées plusieurs fois peut vous aider à voir tout écart par rapport au comportement normal du minuteur.

Le fait de basculer entre différentes consoles augmente également la probabilité de découvrir l'astuce.

Mais dans tous les cas, vous ne pouvez pas être sûr à 100% sur tout type de système de fiabilité de votre fenêtre / invite de connexion.

netmonk
la source
0

Vous pouvez utiliser ctrl+ alt+ F1... F7pour accéder à un autre terminal et vous connecter à partir de là. Vous pouvez également utiliser ctrl+ zou ctrl+ c. Cependant, si quelqu'un essaie de voler votre identifiant et votre mot de passe à l'aide de cette méthode, il est toujours possible que vous soyez trompé. Cela dépend du système d'exploitation que vous utilisez, de qui y a eu accès et du type d'accès dont il disposait.

En général, vous ne pouvez jamais être sûr à 100%, mais si quelqu'un le faisait, je suppose qu'il a déjà un accès root - donc vos données de connexion n'auraient aucun sens pour lui.

MatthewRock
la source
3
Si je devais mettre en place un tel piège, j'aurais certainement mon programme exécuté sur chaque terminal. Gardez à l'esprit que ceux auxquels vous accédez avec les touches de contrôle ne sont pas particulièrement sûrs.
John WH Smith
Juste point; ce fut le meilleur qui me vint à l'esprit.
MatthewRock
Un système magique peut-il vous aider?
Max Ried
0

Un utilisateur (même pas root) ayant un accès physique à la console peut faire un tel truc.

Connectez-vous sshet vérifiez quels processus fonctionnent sur une console virtuelle que vous souhaitez vous connecter localement. Que ce soit getty(pour un TUI tty) ou un autre gestionnaire d'affichage légitime? A-t-il UID = 0?

Si l'un des deux est faux, la bannière du nom d'hôte login: est certainement falsifiée. Mais, comme les réponses de l'État l'ont déjà écrit, cela n'aide pas un contrevenant dont les privilèges sont déjà augmentés root.

Incnis Mrsi
la source
-1

Réponse courte: vous ne pouvez pas le dire.

Mais si la commande d'invite de connexion a été remplacée, cela signifie que l'attaquant a un accès root sur la machine. Dans ce cas, il pourrait également:

  • ont installé un enregistreur de frappe pour voler votre mot de passe. Vous pouvez atténuer le problème en utilisant un mot de passe unique, afin que l'attaquant ne puisse pas accéder aux autres services en ligne que vous utilisez;
  • Connectez-vous en tant que vous (ou tout autre utilisateur) sur la machine, simplement en changeant le mot de passe, ou accédez à vos fichiers (ou à ceux de quelqu'un d'autre).

Par conséquent, se demander si l'invite de connexion est légitime ou non est un point discutable.

En règle générale, vous ne devez pas vous connecter à une machine qui, selon vous, pourrait être compromise.

dr01
la source
8
Je pourrais concevoir un programme qui imite le comportement d'une invite de connexion et l'exécuter dans chaque ATS sans privilèges root (comme moi-même). Si cela est fait correctement, il serait impossible de distinguer l'invite réelle de la sortie du programme, vous invitant à entrer vos informations d'identification. Cependant, notez qu'il faudrait des privilèges root pour vous authentifier (ce qui rend le piège complètement transparent), donc si la connexion échoue et que vous êtes sûr de ne pas avoir fait de faute de frappe ... vous pouvez supposer que vous avez été piégé (aussi tard cependant).
John WH Smith
6
Vous ne l'installez pas. Vous utilisez simplement votre propre compte pour vous connecter à chaque terminal et y exécuter la fausse connexion. Les utilisateurs qui essaient d'utiliser un terminal après cela trouveront votre fausse invite, s'exécutant comme vous, pas le loginprogramme s'exécutant en tant que root. Je ne suppose pas que le loginprogramme réel a été compromis, en effet.
John WH Smith
7
@ dr01. Connectez-vous comme d'habitude. Lorsque vous êtes prêt à démarrer votre ~/bin/fakelogin, utilisez-le exec ~/bin/fakeloginpour qu'à la fermeture (pour une raison quelconque) votre compte d'utilisateur soit déconnecté et l'invite de connexion réelle présentée à l'autre utilisateur.
roaima
3
Normalement, lorsque vous essayez de voler un mot de passe dans une invite, vous le connectez et écrivez «Connexion invalide», puis quittez votre programme. Donc, pas besoin de s'authentifier en utilisant $euid=0.
Ned64
1
Pourquoi les downvotes?
dr01