Le compte à rebours est lancé pour Keyfactor Tech Days - réservez votre place dès aujourd'hui !

  • Accueil
  • Blog
  • SSH
  • Le quoi, le pourquoi et le comment du protocole SSH

Le quoi, le pourquoi et le comment du protocole SSH

SSH

L'environnement des entreprises se transforme. Les entreprises se sont lancées dans la transformation numérique en adoptant des technologies émergentes qui leur permettent d'évoluer rapidement et de changer leur façon de collaborer, en réduisant les coûts et en augmentant la productivité. Cependant, ces technologies ont fait disparaître le périmètre traditionnel et l'identité est devenue la nouvelle ligne de défense.

Les défis modernes exigent des approches de sécurité modernes. L'utilisation de mots de passe pour authentifier l'accès privilégié aux actifs critiques n'est plus acceptable. Les mots de passe sont tristement célèbres pour leur manque de sécurité, la lassitude qu'ils engendrent et le faux sentiment de sécurité qu'ils procurent. Les entreprises doivent adopter des solutions sans mot de passe - c'est là que l'authentification basée sur une clé SSH s'avère utile.

Qu'est-ce que le protocole SSH ?

Créé en 1995 par Tatu Ylönen, le protocole SSH, également connu sous le nom de Secure Shell ou Secure Socket Shell, est un protocole réseau qui offre aux administrateurs système un moyen sûr d'accéder à des ressources distantes via un réseau non sécurisé.

SSH fournit une authentification basée sur un mot de passe ou une clé publique et crypte les connexions entre deux points d'extrémité du réseau. Il s'agit d'une alternative sécurisée aux anciens protocoles de connexion (tels que telnet, rlogin) et aux méthodes de transfert de fichiers non sécurisées (telles que FTP).

En plus de fournir un cryptage puissant, SSH est largement utilisé par les administrateurs de réseau pour gérer les systèmes et les applications à distance, fournir les correctifs software , ou exécuter des commandes et déplacer des fichiers.

Fonctionnement du protocole SSH

Authentification du serveur (hôte)

Le protocole SSH est intégré aux serveurs Unix et Linux pour permettre des connexions sécurisées entre les systèmes. La connexion est établie par un client SSH qui souhaite se connecter à un serveur SSH. Le client SSH initie

le processus d'établissement de la connexion et utilise la cryptographie à clé publique pour vérifier l'identité du serveur SSH. Après la phase d'établissement de la connexion, le protocole SSH utilise des algorithmes de chiffrement symétrique et de hachage puissants pour garantir la confidentialité et l'intégrité des données échangées entre le client et le serveur.

L'image ci-dessous, adaptée de la norme NIST IR 7966, présente un flux simplifié d'une connexion SSH :

Blog SSH 1

1. Le client établit une connexion avec le serveur SSH.
2. Le serveur envoie sa clé publique au client.
3. La clé publique du serveur est enregistrée dans le fichier des hôtes connus du client.
4. Le client et le serveur négocient les paramètres de connexion et établissent la connexion.

Chiffrement et intégrité

Lors de l'établissement de la connexion, le client et le serveur négocient et conviennent de l'algorithme de cryptage symétrique à utiliser pour leur communication et génèrent la clé de cryptage à utiliser.

Le protocole SSH utilise des algorithmes de cryptage forts et standard, comme AES, pour sécuriser la communication entre les parties concernées. En outre, le protocole utilise des algorithmes de hachage, tels que SHA-2, pour garantir l'intégrité des données transmises.

Authentification du client (utilisateur)

Le protocole SSH permet l'authentification du client à l'aide de mots de passe traditionnels ou d'une clé publique. Toutefois, compte tenu des risques et de l'inefficacité de l'utilisation des mots de passe, l'authentification par clé publique est plus largement utilisée. Non seulement les clés SSH sont beaucoup plus puissantes que les mots de passe, mais elles permettent également aux administrateurs système de ne pas avoir à se connecter manuellement à l'aide d'un mot de passe.

Comment un utilisateur s'authentifie-t-il avec des clés SSH ? Il génère une paire de clés publique-privée avec un client SSH (par exemple OpenSSH) à l'aide de ssh-keygen command. Une fois créée, l'utilisateur place sa clé autorisée (clé publique) dans le fichier authorized_keys du serveur auquel il doit se connecter.

Lorsque l'utilisateur se connecte à distance à l'aide de l'authentification par clé, le serveur OpenSSH recherche les clés autorisées et l'utilisateur s'authentifie auprès du serveur avec sa clé privée correspondante.

Comme elle ne nécessite pas d'authentification manuelle, l'authentification par clé est souvent utilisée pour sécuriser les cas d'utilisation de l'automatisation des processus informatiques, tels que les transferts de fichiers automatisés sécurisés, les processus de sauvegarde et de copie, ou les outils de gestion de la configuration (c'est-à-dire Ansible, Terraform, Chef ou Puppet).

Cas d'utilisation courants du protocole SSH

Les connexions SSH ont été principalement utilisées pour sécuriser différents types de communications entre une machine locale et un hôte distant, notamment :

  • Accès à distance sécurisé aux ressources
  • Exécution de commandes à distance
  • Fourniture de correctifs et de mises à jour sur le site software
  • Transferts de fichiers interactifs et automatisés

 

Outre la création d'un canal sécurisé entre des ordinateurs locaux et distants, le protocole SSH est utilisé pour gérer l'infrastructure critique de l'entreprise, comme les routeurs, les serveurs hardware, les plateformes de virtualisation et les systèmes d'exploitation.

Les clés SSH sont utilisées pour automatiser l'accès aux serveurs et sont souvent utilisées dans les scripts, les systèmes de sauvegarde et les outils de gestion de la configuration. En raison de leur conception qui permet une connectivité au-delà des frontières organisationnelles, les clés SSH offrent des capacités d'authentification unique (SSO) permettant aux utilisateurs de passer d'un compte à l'autre sans avoir à saisir un mot de passe à chaque fois.

SSH dans un environnement sans périmètre

Les progrès technologiques et les situations d'urgence, comme la crise de santé publique COVID-19, ont relancé l'intérêt et l'adoption des sciences humaines.

Les entreprises ne se contentent pas de passer au nuage, elles utilisent une pléthore de plateformes PaaS, IaaS et SaaS basées sur le nuage. Dans le même temps, elles disposent encore d'un grand nombre d'anciennes applications orientées métier hébergées sur site. Dans cet environnement hybride et multicloud, le plus grand défi consiste à maintenir un système de gestion des identités et des accès (IAM) robuste et efficace.

Les mécanismes traditionnels d'authentification par mot de passe ne fonctionnent plus et, partout où ils sont présents, ils sont source de brouillard et de frictions, ce qui entraîne de nombreuses violations de données ou des incidents dus à l'utilisation abusive d'informations d'identification.

D'autre part, DevOps exploite des outils et des processus natifs et bien connus de manière agile et itérative au sein d'équipes autonomes et capables de publier rapidement et fréquemment, voire quotidiennement, des versions de code. En dépit de

Malgré les avantages évidents d'un cycle de publication très automatisé et très fréquent, il reste des défis à relever, notamment en ce qui concerne la sécurisation du site software . Les entreprises doivent s'assurer que les applications et les mises à jour n'ont pas été altérées ou modifiées par des acteurs malveillants pour servir de chevaux de Troie lorsqu'elles sont installées sur les appareils des utilisateurs finaux.

Enfin, la crise du COVID-19 a contraint des millions d'employés à travailler depuis leur domicile, en utilisant leurs propres appareils et en accédant aux actifs de l'entreprise par le biais de leur Wi-Fis domestique. Les équipes chargées de la sécurité informatique sont confrontées à de nombreux nouveaux défis : comment mettre en œuvre un système d'authentification forte pour garantir que seules les personnes et les appareils autorisés accèdent aux actifs sensibles de l'entreprise ?

Pour tous ces défis modernes, le protocole SSH est la solution moderne. Dans le cadre de DevOps, SSH est l'élément de base sécurisé qui permet le processus de construction et de mise en production rapide, fréquent et hautement automatisé favorisé par DevOps. Dans les environnements de travail multi-cloud et à distance, le protocole SSH offre la solution pour une gestion d'accès sans mot de passe, capable d'une signature unique (SSO) et d'une expérience sans friction. SSH peut également être utilisé pour émettre des certificats éphémères juste à temps, qui expirent lorsque l'autorisation est terminée.

En utilisant SSH avec des plateformes d'automatisation IAM, les organisations peuvent renforcer leurs schémas d'authentification non seulement pour les utilisateurs privilégiés (PAM), mais aussi pour chaque employé et/ou appareil demandant l'accès aux actifs de l'entreprise.

Les risques d'abus de clés SSH

Les cas d'utilisation ci-dessus soulignent l'importance des clés SSH et de leur gestion sécurisée et efficace. Le problème est que la plupart des organisations ne sont pas conscientes du grand nombre de clés SSH qu'elles détiennent et que, par conséquent, ces clés ne sont ni suivies ni gérées. Les clés non gérées exposent les organisations à des risques importants qui pourraient, dans le pire des cas, entraîner l'arrêt de systèmes d'information critiques pendant des mois.

Les clés SSH offrent le même accès que les noms d'utilisateur et les mots de passe. En outre, elles accordent souvent un accès root aux comptes privilégiés au niveau du système d'exploitation, ce qui donne une ligne command . Elles permettent également d'accéder à des ressources - serveurs de production, bases de données, routeurs, pare-feu, systèmes de reprise après sinistre, données financières, systèmes de paiement, propriété intellectuelle et informations sur les patients.

Un attaquant qui obtient l'accès root peut faire n'importe quoi sur le serveur - y compris injecter des données frauduleuses, détourner le cryptage software, installer des logiciels malveillants persistants ou carrément détruire le système. La confidentialité, l'intégrité et la continuité des opérations sont toutes compromises. Même si la clé donne un accès non root, les vulnérabilités locales d'escalade des privilèges peuvent souvent permettre à l'attaquant d'obtenir un accès root.

En voici quelques exemples :

  • À l'origine un trojan bancaire apparu en 2016, TrickBot a évolué vers une solution de crimeware universelle qui cible désormais principalement les environnements d'entreprise. En 2019, TrickBot a ajouté des capacités de capture de clés SSH pour PuTTY (client SSH pour Microsoft) et OpenSSH.
  • La campagne de crypto-minage CryptoSink, qui cible les systèmes Elasticsearch, ouvre les portes des serveurs cibles en y ajoutant les clés SSH de l'attaquant.
  • Le logiciel malveillant Kaji cible les appareils IoT qui ont laissé leur port SSH exposé sur l'internet. Selon les chercheurs qui ont découvert ce logiciel malveillant, une fois qu'il a accédé au compte racine d'un appareil, Kaiji l'utilise de trois manières. Premièrement, pour mener des attaques DDoS. Deuxièmement, pour mener d'autres attaques SSH par force brute contre d'autres appareils. Troisièmement, il vole les clés SSH locales et les transmet à d'autres appareils que le compte racine a gérés par le passé.
  • En 2016, le groupe de cybercriminels BlackEnergy, qui a ciblé les compagnies d'électricité et les médias ukrainiens, a utilisé un serveur SSH dissimulé appelé Dropbear. Selon les chercheurs d'ESET, les attaquants ont déployé une variante de ce site software sur des machines compromises qui avaient été préconfigurées pour accepter un mot de passe et une clé codés en dur pour l'authentification SSH. En exécutant SSH sur le serveur dans un réseau compromis, les attaquants peuvent revenir sur le réseau quand ils le souhaitent.

Conclusion

Pour profiter des avantages du protocole SSH et vous défendre contre l'utilisation abusive des clés SSH, vous devez garantir une visibilité et une intelligence totales sur toutes les clés SSH autorisées utilisées par l'entreprise sur site et dans le nuage.

Cependant, comme les attaquants peuvent également insérer leurs propres clés SSH dans les environnements cibles, il est important de ne pas se concentrer uniquement sur les clés connues, mais de découvrir et d'analyser toutes les clés utilisées au sein de votre organisation.

Pour en savoir plus sur les défis posés par la prolifération des clés SSH et sur la façon dont vous pouvez commencer à reprendre le contrôle, participez à notre prochain webinaire, Ghost Hunt : How to Find & Secure SSH Keys in Your Network (Chasse aux fantômes : comment trouver et sécuriser les clés SSH dans votre réseau).