GCP - Add Custom SSH Metadata
GCP - Ajouter des métadonnées SSH personnalisées
Modification des métadonnées
La modification des métadonnées sur une instance peut entraîner des risques de sécurité importants si un attaquant obtient les autorisations nécessaires.
Incorporation de clés SSH dans les métadonnées personnalisées
Sur GCP, les systèmes Linux exécutent souvent des scripts à partir de l'Environnement invité Linux Python pour Google Compute Engine. Un composant critique de cela est le démon des comptes, qui est conçu pour vérifier régulièrement le point de terminaison des métadonnées de l'instance pour les mises à jour des clés publiques SSH autorisées.
Par conséquent, si un attaquant peut modifier les métadonnées personnalisées, il pourrait faire en sorte que le démon trouve une nouvelle clé publique, qui sera traitée et intégrée dans le système local. La clé sera ajoutée dans le fichier ~/.ssh/authorized_keys
d'un utilisateur existant ou potentiellement créer un nouvel utilisateur avec des privilèges sudo
, en fonction du format de la clé. Et l'attaquant pourra compromettre l'hôte.
Ajouter une clé SSH à un utilisateur privilégié existant
Examiner les clés SSH existantes sur l'instance :
Exécutez la commande pour décrire l'instance et ses métadonnées afin de localiser les clés SSH existantes. La section pertinente dans la sortie se trouvera sous
metadata
, en particulier la cléssh-keys
.
Faites attention au format des clés SSH : le nom d'utilisateur précède la clé, séparé par un deux-points.
Préparer un fichier texte pour les métadonnées de clé SSH :
Enregistrez les détails des noms d'utilisateur et de leurs clés SSH correspondantes dans un fichier texte nommé
meta.txt
. Cela est essentiel pour conserver les clés existantes tout en ajoutant de nouvelles.
Générer une nouvelle clé SSH pour l'utilisateur cible (
alice
dans cet exemple) :
Utilisez la commande
ssh-keygen
pour générer une nouvelle clé SSH, en veillant à ce que le champ de commentaire (-C
) corresponde au nom d'utilisateur cible.
Ajoutez la nouvelle clé publique à
meta.txt
, imitant le format trouvé dans les métadonnées de l'instance.
Mettre à jour les métadonnées de clé SSH de l'instance :
Appliquez les métadonnées de clé SSH mises à jour à l'instance en utilisant la commande
gcloud compute instances add-metadata
.
Accéder à l'instance en utilisant la nouvelle clé SSH :
Connectez-vous à l'instance avec SSH en utilisant la nouvelle clé, accédant à l'invite de commande dans le contexte de l'utilisateur cible (
alice
dans cet exemple).
Créer un nouvel utilisateur privilégié et ajouter une clé SSH
Si aucun utilisateur intéressant n'est trouvé, il est possible d'en créer un nouveau auquel seront accordés des privilèges sudo
:
Clés SSH au niveau du projet
Il est possible d'élargir la portée de l'accès SSH à plusieurs Machines Virtuelles (VMs) dans un environnement cloud en appliquant des clés SSH au niveau du projet. Cette approche permet l'accès SSH à n'importe quelle instance dans le projet qui n'a pas explicitement bloqué les clés SSH au niveau du projet. Voici un guide résumé :
Appliquer des clés SSH au niveau du projet :
Utilisez la commande
gcloud compute project-info add-metadata
pour ajouter des clés SSH depuismeta.txt
aux métadonnées du projet. Cette action garantit que les clés SSH sont reconnues sur toutes les VMs du projet, sauf si une VM a activé l'option "Bloquer les clés SSH au niveau du projet".
Accéder aux Instances en Utilisant les Clés au Niveau du Projet :
Avec les clés SSH au niveau du projet en place, vous pouvez vous connecter en SSH à n'importe quelle instance dans le projet. Les instances qui ne bloquent pas les clés au niveau du projet accepteront la clé SSH, accordant l'accès.
Une méthode directe pour se connecter en SSH à une instance est d'utiliser la commande
gcloud compute ssh [INSTANCE]
. Cette commande utilise votre nom d'utilisateur actuel et les clés SSH définies au niveau du projet pour tenter l'accès.
Références
Last updated