Guacamole sur un plateau (5/5) : on passe à deux facteurs, et c‘est terminé !
Vous pouvez reprendre une activité normale !
Après une semaine de préparatif, on arrive à la fin de notre tuto pour installer Guacamole. Il ne reste plus qu’à ajouter un second facteur, qui passe tant qu’à faire par un second canal, afin de renforcer la sécurité.
Le 15 décembre 2023 à 17h22
4 min
Logiciel
Logiciel
Notre dossier sur Guacamole :
- Guacamole sur un plateau (1/5) : on monte un bastion sécurisé
- Guacamole sur un plateau (2/5) : Apache Tomcat et Let’s Encrypt
- Guacamole sur un plateau (3/5) : on écrase nos avocats (serveur et client)
- Guacamole sur un plateau (4/5) : on sécurise la base de données
- Guacamole sur un plateau (5/5) : on passe à deux facteurs, et c‘est terminé !
Mettons deux facteurs dans la boîte
Nous vous conseillons grandement d’utiliser une solution permettant de sécuriser l’authentification à votre application Guacamole, vu qu’on pourra accéder à vos serveurs depuis le web.
Parmi les options possibles proposées, vous avez du TOTP (mot de passe à usage unique basé sur le temps, Time based One Time Password en anglais) ou la solution Duo. Pour le TOTP, il y a bien évidemment Google Authenticator, mais si cela réalise un second facteur, cela ne passe pas par un second canal, c’est-à-dire un canal déconnecté du premier.
En effet, quand vous saisissez le code à 6 chiffres du TOTP, vous l’entrez dans la même interface sur le même serveur que le mot de passe (qui est le premier facteur d’authentification). Cela vous protège du vol de mot de passe, ce qui est toujours bon à prendre, mais cela ne va pas contrecarrer un keylogger qui pourra rejouer le même code TOTP s’il agit dans la minute
Certes, cette menace est peu probable, ce qui explique qu’un TOTP suffise en général, mais les banques (par exemple) savent bien que le TOTP n’est pas infaillible et que le passage par un second canal apporte un niveau supplémentaire de sécurité (nous disons bien “supplémentaire”, pas “absolu”).
Illustrons ici avec Duo, qu’on peut utiliser gratuitement tant qu’on reste dans le cadre limité d’une utilisation personnelle avec peu de machines à sécuriser et qui nous permettra d’avoir une authentification multicanale.
root@r:/# cd /guacd
root@r:/guacd# wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-auth-duo-1.5.3.tar.gz.asc
root@r:/guacd# wget https://downloads.apache.org/guacamole/1.5.3/binary/guacamole-auth-duo-1.5.3.tar.gz
root@r:/guacd# gpg -v guacamole-auth-duo-1.5.3.tar.gz.asc
root@r:/guacd# tar -xf guacamole-auth-duo-1.5.3.tar.gz
root@r:/guacd# cd guacamole-auth-duo-1.5.3/
root@r:/guacd/guacamole-auth-duo-1.5.3# cp guacamole-auth-duo-1.5.3.jar /etc/guacamole/extensions/
root@r:/guacd/guacamole-auth-duo-1.5.3# systemctl restart tomcat9
Pour le fichier propriétés, il faut adapter les valeurs :
root@r:/etc/guacamole# cat guacamole.properties
# Hostname and Guacamole server port
guacd-hostname: localhost
guacd-port: 4822
# MySQL properties
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacd
mysql-username: guacd_user
mysql-password: un_bon_mot_de_passe
# DUO
duo-api-hostname=api-xxxxx.duosecurity.com
duo-integration-key=xxxxxxxxxxxxxxxxxxxx
duo-secret-key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
duo-application-key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Comment obtenir les valeurs de clé nécessaires pour l’utilisation de Duo ? En allant sur duo.com, en créant son petit compte perso et en joutant une application de type « Web SDK ».
Recopiez et mémorisez les valeurs fournies dans l’écran suivant (qu’il faut valider).
Pour la dernière valeur (duo-application-key), mettez une valeur aléatoire. Pour en obtenir une en Python, vous pouvez par exemple essayer çà :
import os, hashlib
print(hashlib.sha1(os.urandom(32)).hexdigest())
Puis, on redémarre tout !
root@r:/etc/letsencrypt# systemctl restart tomcat9 guacd
Il ne reste qu’à ajouter vos serveurs, en fonction des types de connexions que vous souhaitez utiliser, avec “Nouvelle Connexion” dans le menu Paramètres puis Connexions.
N’oubliez pas des paramètres tels que « Agencement clavier » ou « nombre de couleurs », à ajuster selon vos goûts et vos contraintes (lissage des polices, affichage du fond d’écran, etc.).
Vous obtiendrez finalement un écran similaire à celui-ci :
Vous profiterez ainsi de vos machines distantes de façon efficace, en utilisant les caractéristiques et les avancées proposées par HTML 5 !
Sources
Guacamole sur un plateau (5/5) : on passe à deux facteurs, et c‘est terminé !
-
Mettons deux facteurs dans la boîte
-
Sources
Commentaires (8)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 16/12/2023 à 08h21
print(hashlib.sha1(os.urandom(32)).hexdigest())
Pourquoi se limiter à seulement 32 bits d’entropie ? os.urandom(128) et Au diable l’avarice !
Modifié le 16/12/2023 à 21h03
Modifié le 16/12/2023 à 10h01
[edit] la seule fenêtre de vulnérabilité avec un keylogger, c'est le délai entre le moment où le code est saisi, et où on le valide. Soit 5s au max. Donc autant dire que la fenêtre d'exploitation est extrêmement courte, et que les conditions pour y arriver drastiques. En effet, il faudrait un keylogger qui envoie en temps réel les info (en plus d'automatiser toute la chaine d'exploitation), ce qui devrait se faire détecter assez facilement par des outils de surveillance, car une requête envoyée à chaque touche saisie, ça laisse des traces.
Le 16/12/2023 à 21h27
Par ailleurs, il existe des versions (très) améliorées des keyloggers : les proxy locaux ou Man-in-the-Browser. Des malwares utilisant ce type de technique vont intercepter tout ce qui passe à destination d'internet : on va donc "lire" à la fois le mot de passe et l'éventuel code TOTP s'il est fourni par le même canal (d'où l'importance de la distinction entre second facteur et second canal). Quand on cherche à intercepter une connexion, on va écouter tout le temps, intercepter les informations de connexions dans le proxy local, les envoyer vers l'attaquant et rejouer l'authentification ailleurs, immédiatement, puis maintenir la connexion si besoin.
Ayant travaillé longtemps pour une banque, je t'assure que cette technique est réelle et très efficace. Je n'ai plus le nom du plus virulent (je crois que c'était Dridex) mais la seule véritable parade était (et est toujours) d'utiliser un vrai second canal. A noter que FIDO/FIDO2 permet aussi de créer un second canal "virtuel", sous certaines conditions, en permettant de valider un challenge en dehors du navigateur.
Le 16/12/2023 à 22h07
Extrait de la RFC 6238 :
Que l'on pourrait traduire par :
Oui, mais là, on change généralement de catégorie. Ce n'est plus un keylogger si le logiciel scrute le réseau. C'est de l'ordre de l'interception ou d'une attaque par l'homme du milieu.
Un keylogger est un dispositif (il peut être matériel ou logiciel) qui va enregistrer ce que l'utilisateur a saisie au clavier. Là, tu parles de logiciels qui vont examiner les flux réseaux. Si l'objectif recherché est le même (voler les identifiant), les moyens mis en oeuvre les classes dans des catégories très différentes.
Je n'ai jamais dis que les TOTP étaient une protection ultime. Dans ton article, c'est toi qui parle de keylogger, et qui dit que le TOTP ne protège pas des keylogger. Ce qui est erroné.
Par contre, je suis d'accord avec toi pour dire que l'OTP ne va pas protéger d'attaques plus poussées comme les attaques de l'homme du milieu, et que séparer les canaux rend les attaques très difficile à mettre en oeuvre, puisqu'il faut alors pouvoir scruter les 2 canaux en même temps, et en temps réel.
Le 16/12/2023 à 22h46
Le 18/12/2023 à 15h36
Mais si je clique sur le premier lien pour commencer la première partie : pouf ! plus de dossier, plus aucun lien pour naviguer vers les autres articles :-(
Le journaliste doit manuellement mettre à jour les liens sur les cinq articles pour qu'ils soient cohérents entre eux... et c'est rarement fait. (par manque de temps j'imagine, ce qui peut se comprendre)
Le 29/12/2023 à 15h59