Les causes du piratage

Il semble que ce soit une faille dans le logiciel awstats qui soit à l'origine de l'intrusion. La fourniture de paramètres inattendus par cette application web est vraisemblablement la méthode employée : au lieu de ne rien faire, l'application awstats se met à exécuter un code qui permet au pirate de s'introduire dans le système. C'est malheureusement une méthode classique pour détourner les applications web de leur fonction.

Dans ce cas précis on ne sait pas s'il s'agit d'une faille corrigée mais non mise à jour par l'administrateur (auquel cas il pourrait être fautif au moins partiellement) ou d'une faille non corrigée auquel cas il n'y a rien à faire d'autre que de sonder régulièrement sa machine pour savoir si tout est normal ou non... Et c'est ce qu'il a fait ![1]

Sniffer le réseau

Comme l'indiquait Joanna Rutkowska[2], pour savoir si votre machine opère sur Internet des actions non attendues, le plus sûr est de sniffer le réseau. Elle nous propose d'utiliser WireShark qui a le mérite d'avoir une interface graphique tout en étant multi-plateforme mais nécessite un bagage technique non négligeable. Ici Prospère utilise netstat puis tcpdump pour savoir ce qui transite depuis sa machine. netstat repère les services ouverts et leur processus associé, tcpdump capture ce qui est envoyé ou reçu sur le réseau.

L'inconvénient de sa commande netstat est qu'elle liste aussi les connexions réseau type unix, celles des processus dialoguant entre eux par exemple. Aussi on peut réduire la liste aux services non unix :

$ sudo netstat --inet -pa
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
tcp        0      0 localhost:2208          *:*                     LISTEN     2964/hpiod
tcp        0      0 *:1025                  *:*                     LISTEN     3389/nepenthes
tcp        0      0 *:imaps                 *:*                     LISTEN     3389/nepenthes
tcp        0      0 *:pop3s                 *:*                     LISTEN     3389/nepenthes
[...]

Enfin si vous voulez encore plus de détails sur les connexions actives uniquement :

$ sudo netstat --inet --program --extend --extend
Connexions Internet actives (sans serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        Utilisatr  Inode      PID/Program name
tcp        0      0 <mon-IP>:58968 athena.jabb:xmpp-client ESTABLISHED jm         13209      4809/gaim
[...]

Tenter de démasquer l'attaquant

Pour en savoir plus sur l'attaquant, Prospère utilise le classique nmap avec l'option -O qui permet de deviner le système d'exploitation de l'hôte en analysant ses réponses aux requêtes. Il cherche ensuite à en savoir plus sur son serveur de mail. L'astuce ici est de profiter d'une bannière de bienvenue un peu trop bavarde, ce qui est souvent le cas par défaut de nombreux services : bannière ssh, message d'erreur http (page non trouvée), etc. Si vous ne souhaitez pas divulguer d'informations sur votre serveur, comme le logiciel utilisé et son numéro de version par exemple, changez systématiquement ces messages. Bien sûr nmap aussi est capable de remonter ce genre d'information, bannière ou non, mais certainement moins précisément dans ce cas.

Rappelons que le numéro de version permet de savoir s'il n'y a pas quelques failles à exploiter sur votre machine en allant jeter un œil sur Secunia.com par exemple. C'est donc une très mauvaise idée de s'en vanter. Dans le cas du serveur polonais de Prospère, on a tous les détails nécessaires : Sendmail 8.13.4/8.13.3, application dont le passif en matière de sécurité n'est pas glorieux...

Malheureusement pour Prospère, les tentatives sont vaines de ce côté-ci car, pour aller plus loin, il faudrait soit contacter l'administrateur de la machine servant de base arrière (avec un whois par exemple), soit s'introduire aussi sur cette machine pour pister les pirates. Rappelons que cette dernière méthode est illégale sans l'accord du propriétaire !

Notes

[1] En effet si le pirate ne diffuse pas son logiciel malveillant à grande échelle par virus ou vers - ce qui est le cas sur les machines Linux - il est très peu probable qu'un logiciel antivirus ou assimilé puisse le détecter.

[2] voir le billet Les logiciels anti-virus sont inefficaces sur ce blog