Visibilité de yunohost par shodan

Perso je suis assez sceptique par rapport à tout ce qui est décrit dans l’article. Forcément je suis biaisé car je suis dans la team de développement de YunoHost.

Mais l’essentiel de l’article se limite à présenter la complexité de l’informatique comme une fatalité, et que donc “cherche pas, c’est trop compliqué, il faut des gens avec de l’expertise pour faire les choses à la main sinon ça cassera” et que l’UX et la sécurité sont soit-disant des concepts incompatibles…

Pourtant, on travaille tous les jours avec des systèmes qui sont extrèmement compliqués mais sur lesquels on a réussi à construire des abstractions pour cacher cette complexité. Par exemple : ton ordinateur est un condensé d’électronique qui pourrait avoir 1000 raisons de tomber en panne chaque heure qui passe. Pourtant, moins de 0.1% des utilisateurs d’ordinateurs sauraient mettre en pratique la loi d’Ohm et utiliser un fer à souder. Au final, l’abstraction a été tellement paufinée et rendue robuste qu’il n’est plus nécessaire de savoir comment un ordinateur fonctionne au niveau hardware pour s’en servir et le maintenir. On peut voir ça comme une “perte” et on peut souhaiter que les gens devraient connaitre le fonctionnement des ordinateurs plutôt que de les “consommer”, mais il est illusoire de demander aux gens d’avoir un PhD en electronique pour “juste” utiliser un ordinateur.

Actuellement la situation de l’auto-hébergement est similaire à avant la démocratisation des ordinateurs, ou avant l’apparition des premières distro linux “grand public” comme Ubuntu. Il y a une tonne de travail en administration système qui est répétitif, compliqué et fait à la main pour la seule raison qu’il n’y a pas d’environnement standard et que peu de personnes ont cherché à automatiser les choses et à les rendres accessibles pour les profanes.

Bref. Sur le point Shodan spécifiquement :

Donc si jamais il y a une faille de sécurité dans YunoHost, vous avez 24 heures pour mettre à jour, sinon Shodan, vous vous le prenez dans la tronche et votre machine est infectée immédiatement.

Oui, l’interface d’admin est une surface d’attaque supplémentaire. Mais c’est loin d’être la seule. Sur Internet, les serveurs exposent typiquement du SSH, du HTTP(S), du mail, et d’autres choses. Donc cette remarque à propos de YunoHost est aussi valable pour des tonnes de grosses brique comme OpenSSH, SSL, nginx, apache, postfix, dovecot, Debian, PHP, … ou des applications web très répandues comme Wordpress ou Phpmyadmin.

Au final, cette remarque qui vise YunoHost est applicable à tout en général, et peut être résumé de la manière suivante : si tu met un serveur ou un service en ligne, il devient attaquable par n’importe qui. Certes. Est-ce que l’on va éteindre Internet pour autant, parce qu’au final, au premier 0-day concernant SSH, tout l’Internet se transforme en botnet …? En pratique, les failles qui permettent vraiment de rooter des machines par millier en un claquement de doigt ne sont pas légions…

On peut certes brouiller les pistes tel que suggéré, et il serait souhaitable qu’un tel mécanisme soit implémenté par défaut dans YunoHost, mais il faut aussi nuancer le risque avec le fait que (hypothétiquement) rooter 1000 machines me parrait à l’heure actuelle relativement peu intéressant pour un attaquant, comparé à du Wordpress ou du phpmyadmin où il y a un password bidon…

Imho, la vraie solution est à chercher dans le fait de :

  • avoir des vrais audits de sécurité sur les différentes surfaces d’attaques présentes sur un serveur YunoHost ;
  • avoir des temps de réaction raisonnable en cas de révelation de faille de sécurité critique (et possiblement des mises à jour automatiques dans le cas de faille de sécu).

Bref :wink:

Si tu veux vraiment bidouiller ça, je pense qu’il faut regarder dans /etc/nginx/conf.d/yunohost_admin.conf et tu devrais voir une ligne comme ça : https://github.com/YunoHost/yunohost/blob/unstable/data/templates/nginx/plain/yunohost_admin.conf#L53 qui corresponds à la redirection automatique vers /yunohost/admin.

Apriori ce comportement est souhaitable pour que, tant que le nom de domaine n’est pas encore correctement configuré (ou si il n’est plus bien configuré) l’utilisateur puisse tout de même avoir accès à l’interface d’admin juste avec l’IP. Peut-être qu’une solution pour ne pas leaker l’existence de ce /yunohost/admin automatiquement serait d’effectuer ce genre de redirection seulement pour des connexions en réseau local par exemple (et d’interdire son accès si l’on ne connait que l’IP…)

Mais si on creuse la question plus loin, on peut aussi se dire qu’avec les histoires de transparences des autorités de certifications sur l’émission des certificats (et notamment Lets Encrypt), il doit aussi être possible d’établir une liste des noms de domaines qui existent dans la nature :wink: .

5 Likes