Académique Documents
Professionnel Documents
Culture Documents
En plus de fournir un cryptage fort, SSH est largement utilisé par les
administrateurs réseau pour gérer les systèmes et les applications à distance, leur
permettant de se connecter à un autre ordinateur sur un réseau, d'exécuter des
commandes et de déplacer des fichiers d'un ordinateur à un autre.
SSH peut également être utilisé pour créer des tunnels sécurisés pour d'autres
protocoles d'application, par exemple, pour exécuter en toute sécurité des sessions
graphiques du système X Window à distance. Un serveur SSH, par défaut, écoute
sur le port standard 22 du protocole TCP (Transmission Control Protocol).
ssh UserName@SSHserver.example.com
Secure Shell est utilisé pour se connecter aux serveurs, apporter des modifications,
effectuer des téléchargements et quitter, soit à l'aide d'outils, soit directement via le
terminal. Les clés SSH peuvent être 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.
Tout en jouant un rôle central dans la gestion des identités et des accès, SSH fait
plus que s'authentifier via une connexion cryptée. Tout le trafic SSH est
crypté. Que les utilisateurs transfèrent un fichier, naviguent sur le Web ou
exécutent une commande, leurs actions sont privées.
Bien qu'il soit possible d'utiliser SSH avec un ID utilisateur et un mot de passe
ordinaires comme informations d'identification, SSH s'appuie plus souvent sur des
paires de clés publiques pour authentifier les hôtes les uns par rapport aux
autres. Les utilisateurs individuels doivent toujours utiliser leur ID utilisateur et leur
mot de passe - ou d'autres méthodes d'authentification - pour se connecter à l'hôte
distant lui-même, mais la machine locale et la machine distante s'authentifient
séparément l'une de l'autre. Ceci est accompli en générant une paire de clés
publiques unique pour chaque hôte dans la communication. Une seule session
nécessite deux paires de clés publiques : une paire de clés publiques pour
authentifier la machine distante auprès de la machine locale et une deuxième paire
de clés publiques pour authentifier la machine locale auprès de la machine distante.
SSH peut être utilisé de manière interactive pour activer les sessions de terminal et
doit être utilisé à la place du programme Telnet moins sécurisé. SSH est également
couramment utilisé dans les scripts et autres logiciels pour permettre aux
programmes et aux systèmes d'accéder à distance et en toute sécurité aux données
et autres ressources.
L'histoire de SSH
La première version de SSH est apparue en 1995 et a été conçue par Tatu Ylönen,
qui était, à l'époque, chercheur à l'Université de technologie d'Helsinki et qui a
ensuite lancé SSH Communications Security, un fournisseur de cybersécurité basé
en Finlande.
Au fil du temps, diverses failles ont été découvertes dans SSH-1 . Cette version est
maintenant considérée comme obsolète et non sûre à utiliser.
SSH-2, la version actuelle des protocoles Secure Shell, a été adoptée en tant que
spécification Standards Track par l'Internet Engineering Task Force (IETF) en
2006. SSH-2 n'est pas compatible avec SSH-1 et utilise un échange de clés
Diffie- Hellman et un contrôle d'intégrité renforcé qui utilise des codes
d'authentification de message pour améliorer la sécurité.
Étant donné que les données stockées dans un fichier SSH known_hosts peuvent
être utilisées pour obtenir un accès authentifié à des systèmes distants, les
organisations doivent être conscientes de l'existence de ces fichiers et doivent
disposer d'un processus standard pour conserver le contrôle des fichiers, même
après la suppression d'un système. de commission, car les disques durs peuvent
avoir ces données stockées en clair.
Les développeurs doivent être prudents lorsqu'ils intègrent des commandes ou des
fonctions SSH dans un script ou un autre type de programme. Bien qu'il soit
possible d'émettre une commande SSH qui inclut un ID utilisateur et un mot de
passe pour authentifier l'utilisateur de la machine locale auprès d'un compte sur
l'hôte distant, cela peut exposer les informations d'identification à un attaquant
ayant accès au code source.
La plus grande menace pour SSH est une mauvaise gestion des clés . Sans la
création, la rotation et la suppression centralisées appropriées des clés SSH, les
organisations peuvent perdre le contrôle sur qui a accès à quelles ressources et
quand, en particulier lorsque SSH est utilisé dans des processus automatisés
d'application à application.
SSH contre Telnet
Telnet a été l'un des premiers protocoles d'application Internet -- l'autre est FTP. Il
est utilisé pour initier et maintenir une session d'émulation de terminal sur un hôte
distant.
Alors que Telnet est principalement utilisé pour l'émulation de terminal, SSH peut
être utilisé pour faire de l'émulation de terminal - similaire à la
commande rlogin - ainsi que pour émettre des commandes à distance comme
avec rsh, transférer des fichiers à l'aide du protocole de transfert de fichiers SSH
( SFTP ) et tunneliser d'autres applications.
Alors que les deux s'appuient sur des paires de clés publiques/privées pour
authentifier les hôtes, seul le serveur est authentifié avec une paire de clés sous
TLS. SSH utilise une paire de clés distincte pour authentifier chaque connexion :
une paire de clés pour une connexion d'une machine locale à une machine distante
et une deuxième paire de clés pour authentifier la connexion de la machine distante
à la machine locale.
Une autre différence entre SSH et TLS est que TLS permet aux connexions d'être
chiffrées sans authentification ou authentifiées sans chiffrement. SSH crypte et
authentifie toutes les connexions.
SSH fournit aux professionnels de l'informatique et de la sécurité de l'information
(infosec) un mécanisme sécurisé pour gérer les clients SSH à distance. Plutôt
que d'exiger une authentification par mot de passe pour initialiser une connexion
entre un client et un serveur SSH, SSH authentifie les appareils eux-mêmes. Cela
permet au personnel informatique de se connecter à des systèmes distants et de
modifier les configurations SSH, y compris l'ajout ou la suppression de paires de
clés d'hôte dans le fichier known_hosts.
Implémentations SSH
SSH est un protocole ouvert. Il a été implémenté pour la plupart des plates-formes
informatiques. L'implémentation open source OpenSSH est celle que l'on trouve le
plus couramment sur Linux, Unix et d'autres systèmes d'exploitation basés sur
Berkeley Software Distribution (BSD), y compris macOS d'Apple.
OpenSSH a été porté pour fonctionner dans Windows PowerShell à partir de 2015.
En 2018, la prise en charge facultative d'OpenSSH a été ajoutée à Windows 10.
Alors que SSH est directement accessible par défaut dans la plupart des systèmes
d'exploitation de type Unix, la version portée de Microsoft d'OpenSSH doit être
explicitement activée dans Windows. Application Paramètres.
PuTTY est une autre implémentation open source de SSH. Bien qu'il soit
actuellement disponible pour Windows, macOS et Unix/BSD, PuTTY a été
initialement écrit pour fonctionner sous Windows. Il a longtemps été l'une des
meilleures options pour utiliser SSH sur un système Windows.
2. chut
Ce sont des versions sécurisées des anciens utilitaires Unix non sécurisés : rlogin,
rsh et rcp.
SSH utilise la cryptographie à clé publique pour authentifier l'ordinateur distant et
permet à l'ordinateur distant d'authentifier l'utilisateur, si nécessaire.
Commandes SSH
Bien qu'il existe des implémentations graphiques de SSH, le programme est
généralement appelé en ligne de commande ou exécuté dans le cadre d'un
script. L'exécution de la commande ssh seule, sans arguments tels qu'un hôte de
destination ou un ID utilisateur, renvoie une liste de paramètres et d'options de
commande SSH.
serveur ssh.exemple.org
Dans de nombreux cas, l'ID utilisateur de l'hôte distant sera différent, auquel cas la
commande doit être émise avec l'ID utilisateur de l'hôte distant, comme ceci :
ssh remote_host_userID@server.example.org
SSH peut également être utilisé à partir de la ligne de commande pour émettre une
seule commande sur l'hôte distant, puis quitter -- par exemple :
ssh exemple.org ls
Les tunnels SSH sont des outils puissants pour les administrateurs informatiques,
ainsi que pour les acteurs malveillants, car ils peuvent traverser un pare-feu
d'entreprise sans être détectés. Par conséquent, il existe des outils disponibles pour
empêcher l'utilisation non autorisée des tunnels SSH via un pare-feu d'entreprise.
1. Utilisez des clés SSH au lieu de mots de passe : Les clés SSH offrent une sécurité supérieure
aux mots de passe car elles sont plus difficiles à deviner ou à brute-forcer. Générez une paire
de clés SSH (une clé privée et une clé publique) et utilisez-les pour vous connecter aux
serveurs plutôt que d'utiliser un mot de passe.
2. Utilisez des mots de passe forts : Si vous devez absolument utiliser des mots de passe pour
vous connecter via SSH, assurez-vous qu'ils sont suffisamment complexes. Utilisez des
combinaisons de lettres majuscules et minuscules, de chiffres et de caractères spéciaux.
Évitez d'utiliser des mots courants, des informations personnelles ou des séquences faciles à
deviner.
3. Mettez à jour régulièrement OpenSSH : Assurez-vous que vous utilisez la dernière version
d'OpenSSH, le logiciel responsable de la mise en œuvre du protocole SSH. Les mises à jour
régulières garantissent que les dernières failles de sécurité sont corrigées, réduisant ainsi les
risques d'exploitation.
4. Limitez l'accès SSH : Réduisez les risques en limitant le nombre de machines qui peuvent
se connecter via SSH à vos serveurs. Limitez l'accès aux adresses IP spécifiques ou utilisez un
pare-feu pour n'autoriser que les connexions SSH depuis des réseaux de confiance. Cela aide
à empêcher les attaques par force brute ou les tentatives d'intrusion.
5. Désactivez l'accès root : Il est préférable de désactiver l'accès direct en tant que
superutilisateur (root) via SSH. Au lieu de cela, utilisez un compte d'utilisateur régulier pour
vous connecter et utilisez la commande "su" ou "sudo" pour effectuer des tâches
d'administration une fois connecté. Cela limite les possibilités d'attaques directes contre le
compte root.
6. Surveillez les journaux d'activité SSH : Activez la journalisation des connexions SSH pour
pouvoir surveiller les activités suspectes. Vérifiez régulièrement les journaux pour détecter
toute activité anormale ou toute tentative d'authentification échouée. Cela peut vous aider à
identifier rapidement les tentatives d'intrusion et à prendre les mesures nécessaires pour
renforcer la sécurité.
En suivant ces bonnes pratiques, vous pouvez renforcer la sécurité de vos connexions SSH et
réduire les risques d'attaques contre votre réseau.
1. Brute-force et attaques par force brute : Les attaquants peuvent tenter de deviner les
mots de passe ou les clés SSH en utilisant des méthodes de force brute, où ils essaient
différentes combinaisons jusqu'à trouver la bonne. Cela peut être évité en utilisant des mots
de passe forts ou, de préférence, en utilisant des clés SSH.
2. Vulnérabilités des versions obsolètes : Les versions obsolètes d'OpenSSH peuvent contenir
des vulnérabilités connues qui peuvent être exploitées par des attaquants. Les évaluations
régulières permettent de s'assurer que les dernières mises à jour de sécurité sont
appliquées, réduisant ainsi le risque d'exploitation de ces vulnérabilités.
3. Attaques par dictionnaire : Les attaquants peuvent utiliser des attaques par dictionnaire
pour essayer de deviner les mots de passe en utilisant des listes prédéfinies de mots
couramment utilisés. Utiliser des mots de passe forts et mettre en place des mesures de
prévention comme le blocage des adresses IP après un certain nombre de tentatives
infructueuses peut aider à réduire ce risque.
4. Attaques par déni de service (DoS) : Les attaques par déni de service visent à saturer le
serveur SSH en envoyant une quantité écrasante de demandes de connexion. Les
évaluations régulières peuvent inclure des tests de résistance aux attaques DoS pour
s'assurer que les serveurs peuvent faire face à ces tentatives d'attaque et continuer à
fonctionner normalement.
5. Usurpation d'identité (spoofing) : Les attaquants peuvent tenter de se faire passer pour un
utilisateur autorisé ou un serveur SSH légitime en utilisant des techniques de spoofing. Les
évaluations régulières peuvent aider à détecter de telles tentatives en analysant les journaux
d'activité et en surveillant les anomalies.
Les évaluations régulières aident à réduire le danger en identifiant les vulnérabilités, les
configurations incorrectes ou les comportements suspects dans le système SSH. Ces
évaluations peuvent comprendre des audits de sécurité, des analyses des journaux d'activité,
des tests de pénétration et des analyses de vulnérabilités. En identifiant et en corrigeant les
problèmes potentiels de manière proactive, les évaluations régulières renforcent la sécurité
de SSH et réduisent les risques d'attaques réussies.
1. Utilisez des images système fiables : Lorsque vous déployez des instances dans
le cloud, choisissez des images système fournies par des sources fiables. Ces
images système doivent être mises à jour régulièrement pour inclure les derniers
correctifs de sécurité.
2. Configurez un groupe de sécurité restrictif : Dans le cloud, utilisez les
fonctionnalités de groupe de sécurité pour contrôler l'accès SSH à vos instances.
Configurez des règles de groupe de sécurité pour n'autoriser que les adresses IP
spécifiques ou les plages d'adresses IP de confiance à se connecter via SSH.
Limitez également les ports ouverts au strict minimum nécessaire.
3. Utilisez des clés SSH pour l'authentification : Privilégiez l'utilisation de clés SSH
pour l'authentification plutôt que les mots de passe. Générez une paire de clés SSH
(privée et publique) et importez la clé publique dans votre instance cloud. De cette
manière, seules les personnes possédant la clé privée correspondante pourront se
connecter à l'instance.
4. Limitez les droits d'accès : Accordez les privilèges d'accès SSH de manière
restrictive. Évitez d'utiliser le compte root pour vous connecter via SSH et utilisez
plutôt un compte d'utilisateur régulier. Utilisez la commande "su" ou "sudo" pour
effectuer des tâches d'administration une fois connecté à l'instance.
6. Utilisez une passerelle SSH : Si vous avez plusieurs instances dans le cloud,
envisagez d'utiliser une passerelle SSH. Une passerelle SSH centralise les
connexions SSH et agit comme un point d'entrée unique pour accéder aux instances.
Cela permet de mieux contrôler et surveiller les connexions SSH.
2. Risques associés : Autoriser les connexions de tunnel SSH peut introduire des
risques potentiels, car cela permet à un utilisateur distant d'établir une connexion
depuis l'extérieur vers une ressource interne. Cela peut potentiellement ouvrir des
portes dérobées pour des activités malveillantes ou des tentatives d'intrusion si les
connexions ne sont pas correctement sécurisées.
Dans l'ensemble, autoriser les connexions de tunnel SSH via le pare-feu peut être
une fonctionnalité utile dans certains cas d'utilisation, mais cela doit être
accompagné de mesures de sécurité appropriées pour réduire les risques potentiels.
Il est recommandé de consulter les équipes de sécurité de votre organisation pour
évaluer la pertinence de cette fonctionnalité et mettre en place les mesures de
sécurité nécessaires.