libssh, explications sur la dernière faille

Cette box est une ébauche, je vais essayer de présenter vaguement SSH pour ceux qui ne connaissent pas puis je vais expliquer la nouvelle faille de la libssh : la CVE-2018-10933
https://www.cvedetails.com/cve/CVE-2018-10933/

J'ai voulu faire mon schéma en ASCII-Flow, si ça ne passe pas j'essaierai d'en faire un autrement.

Donc tout d'abord :
SSH c'est quoi ?

Un peu d'histoire de l'informatique...
Une fois l'informatique moderne et leurs connexions en réseau, les gens ont voulu se connecter à distance sur une machine depuis une autre. Pour ça fut utiliséé telnet qui permet tout simplement d'échanger des données dans les 2 sens et donc de se "connecter à distance" sur une machine.
Mais avec l'invention de l'interweb mondial, ces machines se sont retrouvées exposées et la naissances des premiers hackers a fait naître un shell "sécurisé", le rsh (puis le rbash, etc).

Malheureusement, si j'ai mis des guillemets à "sécurisé" c'est pas pour rien. Le rsh ou rbash ne rempli par réellement son but et est en plus très restrictif pour quelqu'un ayant les droits de se connecter, une solution a été créée : SSH !

Ce protocole permet de monter une connexion sécurisée et chiffrée, mais encore et toujours il y a des failles, erreurs et des chiffrements trop faibles. SSH2 a donc été créé, corrigeant toutes ces erreurs.


Donc pour résumer :
SSH est un protocole de connexion à distance d'une machine à une autre (pour faire simple)
Quand on parle de SSH, on parle en général de SSH2


Oui mais, libssh ?

libssh est ce que l'on appelle une implémentation du protocole SSH. Comme autre implémentation on peut parler du très utilisé OpenSSH.
A savoir qu'il existe encore une fois 2 versions de libssh :
- libssh
- libssh2

La nouvelle "faille" ne touche QUE libssh (et donc pas libssh2 ou toute autre implémentation).


C'est quoi cette faille ?

La partie la plus intéréssante !

Dans un premier temps, pour bien comprendre il faut savoir comment fonctionne l'authentification via libssh.
J'ai donc fait un petit schéma qui montre les échanges d'une connexion réussie.

(Voir dans la description puisqu'il ne passe pas en ASCII, j'ai fais un screen un peu dégueu)


Lorsque l'on regarde ce qui a été communiqué sur cette faille ( https://www.libssh.org/security/advisories/CVE-2018-10933.txt ) il nous suffit de remplacer le SSH_MSG_USERAUTH_REQUEST par la réponse SSH2_MSG_USERAUTH_SUCCESS et le serveur va traiter cette réponse comme la sienne et on se retrouve donc connecté sur le serveur sans avoir eu à s'authentifier.
Si "l'attaque" parraît simple c'est parce qu'elle l'est : https://www.exploit-db.com/exploits/45638/

Bien sûr, cette faille est corrigée à partir des version 0.7.6 et 0.8.4 !

Poster un commentaire
JackyLaPalourde

Le schéma dont je parle

IMG
Nell
Nell
5 ans

Beaucoup utilise encore la libssh1 ? y a plusieurs années de ça je bidouillais pas mal avec la libssh et il me semble que c'était déjà sur sa version 2.

JackyLaPalourde

@Nell: La question n'est pas vraiment de savoir si "beaucoup l'utilisent" parce que la réponse est "C'est surtout OpenSSH qu'on utilise", mais si elle est vraiment utilisée et si elle est plus utilisée ou non que la libssh2.

J'ai cherché un petit peu, voir ce qui pouvait changer entre les 2 versions et j'ai trouvé ça :
https://libssh2.org/libssh2-vs-libssh.html

Globalement il n'y a rien qui fait que la libssh2 soit vraiment meilleure, au contraire d'un point de vue maintenance et possibilités la libssh1 m'a l'air un peu plus sympa.
Donc je pense que oui la libssh1 est encore utilisée mais j'ai pas les chiffre par rapport aux autres implémentations.

Pouki
Pouki
5 ans

simple basique

JackyLaPalourde

@levrettetamere: Ok.

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.