ghrc.io semble être un site malveillant
(bmitch.net)- Une simple confusion typographique entre ghcr.io et ghrc.io crée une grave menace de sécurité
- ghrc.io ressemble au premier abord à un serveur nginx par défaut, mais il a été observé qu’il imite en interne l’API OCI
- Ce site incite les clients de conteneurs à envoyer des informations d’authentification sensibles via l’en-tête www-authenticate
- En cas de saisie accidentelle d’identifiants, par exemple avec docker login, ou d’utilisation d’un mauvais registre, une fuite d’identifiants peut se produire
- Si vous vous êtes connecté au mauvais serveur, il faut changer le mot de passe, révoquer le PAT et vérifier toute activité anormale sur le compte GitHub
Aperçu
Une simple faute de frappe, fréquente entre ghcr.io et ghrc.io, illustre un cas entraînant un problème de sécurité très dangereux. Une tentative de vol d’identifiants a été détectée sur ghrc.io, une version fautive de GitHub Container Registry (ghcr.io) utilisée par de nombreux développeurs et équipes.
Qu’est-ce que ghcr.io ?
- ghcr.io est un registre compatible OCI pour les images de conteneurs et les artefacts OCI
- Faisant partie de GitHub, il est utilisé comme registre populaire par de très nombreux projets open source
ghrc.io : ce qu’on voit en surface
- En accédant à ghrc.io, on voit simplement l’écran par défaut de nginx
- Les comportements de base, comme les erreurs 404 classiques, sont identiques à ceux d’un serveur nginx ordinaire
La nature du comportement malveillant
- Le problème central apparaît lors des appels à l’API OCI sous le préfixe
/v2/ - Lorsqu’on accède à ce chemin, le site renvoie une réponse 401 avec un en-tête
www-authenticate, reproduisant un comportement très proche d’un registre de conteneurs officiel - L’en-tête
www-authenticate: Bearer realm="https://ghrc.io/token"est présent - À cause de cet en-tête, des clients comme Docker, containerd, podman, Kubernetes, etc. tentent automatiquement d’envoyer les informations d’authentification de l’utilisateur vers
https://ghrc.io/token - La configuration par défaut de nginx ne comporte pas cet en-tête, il s’agit donc d’un paramétrage manifestement intentionnel
Risque : scénario de vol d’identifiants
- Ce schéma est considéré comme une attaque de vol d’identifiants par typo-squatting
- Le risque n’existe que si le client de l’utilisateur a saisi ou enregistré des identifiants pour ghrc.io
- Exemples de situations où de vrais identifiants peuvent être exposés
- Exécuter
docker login ghrc.io - Dans une GitHub Action, utiliser
docker/login-actionen définissant le registre sur ghrc.io - Enregistrer des identifiants de registre pour ghrc.io dans un secret Kubernetes puis tenter un image pull
- Exécuter
- Tenter simplement de push/pull une image vers ghrc.io n’expose pas les informations d’authentification (une tentative de jeton anonyme est faite puis une erreur est renvoyée)
Mesures à prendre
- Si vous vous êtes connecté par erreur à ghrc.io, vous devez immédiatement changer votre mot de passe et révoquer le PAT (personal access token) utilisé
- Il faut impérativement vérifier sur le compte GitHub toute connexion inhabituelle ou activité malveillante
- Un attaquant pourrait s’en servir pour ajouter des images malveillantes dans des dépôts ghcr.io ou obtenir l’accès au compte
Conclusion
- Il faut se méfier des sites de phishing utilisant des adresses proches de ghcr.io
- Une politique encore plus rigoureuse est nécessaire pour la gestion des informations de sécurité comme les identifiants, les jetons et les mots de passe
Aucun commentaire pour le moment.