mercredi 10 décembre 2008

Nouvelles vagues d'attaques par bruteforce SSH


Les attaques par bruteforce SSH existent depuis des années. Il s'agit tout simplement pour un attaquant de trouver un serveur SSH à attaquer (souvent par un scan de plages complètes d'adresses IP) et d'essayer d'obtenir un accès SSH. Pour cela, l'attaquant tente de trouver un identifiant et un mot de passe valide.

Ce type d'attaque laisse d'énormes traces dans les logs. On y voit clairement des tentatives de connexion avec des noms d'utilisateurs bien connus (guest, root, etc.) ou sortis d'une liste (alex, mike, etc.). De nombreuses tentatives infructueuses sont ainsi constatées, l'attaquant essayant souvent plusieurs dizaines de mots de passe courants (toto, frodo, starwars, barneystinson etc.).

Habituellement, une seule adresse IP était utilisée à ces fins. Il était très facile de faire bannir une adresse IP qui essayait de se logger sur plusieurs comptes, ou qui tentait de se connecter plus de x fois sur un compte.

Or depuis la semaine dernière, et même si je pense que la technique existe depuis beaucoup plus longtemps que ça, certains chercheurs en sécurité informatique s'inquiètent de voir apparaitre des tentatives d'attaque par bruteforce SSH provenant de botnets. (La synthèse d'Arbor Networks est bien rédigée, je vous laisse la lire, elle reprend d'autres posts également)

Ainsi, l'attaquant peut utiliser des centaines d'adresses IP différentes pour essayer de trouver un accès valide. Chaque IP ne sera vue qu'une ou deux fois, et ne sera pas bannie.

Afin de contrer ces attaques, il semble donc judicieux d'établir des règles strictes sur les accès:

  • verrouiller les comptes après X tentatives d'accès infructueux (je conseille 3 < X < 5);
  • ne pas autoriser les accès distants pour "root";
  • utiliser de préférences un port exotique pour votre serveur SSH;
  • faut-il encore le préciser, déployez une politique stricte de mots de passe : plus de 7 caractères, majuscules-minuscules-nombres-caractères spéciaux obligatoires;
  • dans le cas où vous êtes le seul à vous connecter à ce serveur, n'autoriser que les connexions à partir de vos adresses IP si possible.