Petite étude du hack mondial

Cela fait maintenant presque 2 ans que j’ai un serveur qui tourne en (presque) continu, avec SSH sur le port par défault et fail2ban pour refouler les prétendants non désirables.

Comme fail2ban offre la possibilité d’envoyer un mail à chaque attaque, ainsi qu’un WHOIS sur l’ip de l’attaquant, il est possible de faire quelques statistiques. Voici d’abord les résultats, puis la méthode.

Résultats

Pays d’origine de l’attaque

Voici le top 10 des pays:

Pays Nombre d’attaque
Chine 974
Corée du sud 123
Inde 117
USA 100
France 44
Taiwan 42
Pérou 42
Russie 41
Allemagne 32
Hong-kong 28

Un total de 2018 informations de pays ont été extraites des 1044 mails.  Cette différence s’explique par le fait qu’une partie des WHOIS mentionnent plusieurs fois le pays (organisation, FAI, contact technique, ..). Cependant, ces informations en trop ne sont pas spécifiques à des pays en particulier, et n’impactent pas les statistiques.

Comme la Chine écrase les autres pays, ces données sont affichés de manière logarithmique sur les graphiques suivants:

On peut donc voir qu’on se fait allègrement pourrir par la Chine. Les pays les plus attaquants sont en règle générale des pays émergents et/ou très peuplés. Je pense qu’on peut attribuer la cinquième place de la France au fait que le serveur se situe sur un réseau francais (ou alors j’ai des voisins taquins).

Vous pouvez également regarder la liste complète des pays.

Nom d’utilisateur

Voici le top 10 des noms d’utilisateurs essayé par les attaquants:

Utilisateur Nombre d’attaque
test 607
admin 440
oracle 405
root 364
guest 210
user 135
sales 133
alias 131
samba 130
office 129

Un total de 9849 noms d’utilisateurs ont été extraits des mails (2581 différents).

On peut voir que les hackers visent logiquement au plus rentable. L’user root n’est cependant qu’en 4ème position, probablement car la première chose à faire sur un serveur est de désactiver l’accès root par SSH.

Vous pouvez également regarder la liste complète des noms d’utilisateurs.

Méthode

La première étape est de récupérer les mails au format texte. Comme Gmail n’offre pas de fonction d’exports, je me suis connecté à ma boite mail avec thunderbird en IMAP. Ensuite on fait une recherche avec les termes « fail2ban banned » et on exporte la selection au format eml.

La deuxième étape est d’extraire les informations. Pour ça, la ligne de commande est toute indiquée. Voici les commandes magiques:

# extraction des utilisateurs
grep -h -i ": Invalid user" *.eml | awk '{print $8}' > user &&
grep -h "Authentication failure" *.eml | awk '{print $11}' >> user &&
cat user | sort -f | uniq -ci | tr -s ' ' ';' | sed "s/^;//" | sort -nr -t ";" > user-count
#extraction des pays
grep -h -i "^country" *.eml | awk '{print $2}' > country &&
cat country | sort -f | uniq -ci | tr -s ' ' ';' | sed "s/^;//" | sort -nr -t ";" > country-count

Ici, grep pour sélectionner les bonnes lignes, awk pour récupérer le bon mot, sort et uniq pour trier et compter, et un coup de sed pour remplacer des espaces par des points-virgule pour contourner un comportement un peu étrange de sort qui considère que « 23 46″ est le nombre 2346.

La récupération des noms d’utilisateurs se fait en deux fois, car le message est différent si l’utilisateur existe réellement sur la machine.

Conclusion

Voilà, je vous laisse vous faire votre propre avis sur la chose. Personnellement, j’ai pu constater grâce à ce serveur et un autre, que changer le port par défaut de SSH, d’avoir des mots de passe complexes et d’utiliser fail2ban pour éviter les brutes forces amène à une relative tranquillité face à ces attaques. A moins bien sur de s’être fait des ennemis ou d’héberger la banque de France =)

5 réponses à to “Petite étude du hack mondial”

  • Jidey:

    Roh non mais euh, quand on regarde la liste des pays, comme dirait quelqu’un, « dehors les romanos » quoi! :)

  • nano:

    Salut,
    Pouvez-vous m’expliquer comment mettre en place fail2ban sur le NAS Synology, s’il vous plait ?
    Merci
    ps: vous faites de très bons articles, continuez comme ça.

  • nano:

    Merci à vous deux pour ce complément d’information.