Update (28 janvier 2008) : d'après Écrans, il y aurait entre 4 et 4,5 millions de comptes touchés, selon les sources. Joli score...


En fait, il y a deux choses qui me dérangent particulièrement dans cette histoire. La première, c'est le laisser-aller dans la conception de la base de données. Comme l'auteur de la news sur Slashdot, la possibilité de pomper des mots de passe en clair me laisse pensif. Je pourrais me contenter d'un commentaire laconique du genre "mais putain faut vraiment être trop con pour laisser des mots de passe en clair dans une base de données", mais ce serait un poil lapidaire. En particulier quand la plupart des SGBDR viennent avec une jolie collections de fonctions particulièrement adaptées à ce genre d'usage, en particulier des choses comme MD5() ou SHA1(). Il est vrai que c'est trop difficile d'authentifier les gens avec quelque chose d'aussi simple que :

SELECT * FROM users WHERE login='$login' AND pass=SHA1('$pass')

Quant à écrire le script qui va vous hasher tout les mots de passe de la table users, je n'ose même pas y penser... Et puis ce n'est pas comme si votre langage de programmation Web favori ne fournissait aucune fonction similaire...

D'aucuns rétorqueront qu'un germe ne ferait pas de mal, ce qui est complètement vrai. Une solution pourra être de se tourner vers des fonctions plus spécialisées, quand elles sont disponibles, comme ENCRYPT() pour un MySQL tournant sur Unix, ou se faire sa propre fonction sur un modèle bien éprouvé comme celui de md5-crypt.

Bref, les solutions, plus ou moins robustes, ne manquent pas pour ne pas laisser de mots de passe en clair dans une base de données. Je veux dire, une application grand public comme Dotclear 2 hashe ses mots de passe en HMAC SHA1. Même Wordpress utilise du MD5 avec un germe depuis la 2.5 paraît-il... C'est dire...


La seconde chose qui me titille, c'est le contenu du communiqué qui fleure bon la langue de bois et le foutage de gueule. Rien que l'introduction :

As is the case with many companies that maintain large 
databases of information, Monster is the target of illegal 
attempts to access and extract information from its database. 
We recently learned our database was illegally accessed and 
certain contact and account data were taken, including Monster 
user IDs and passwords, email addresses, names, phone numbers, 
and some basic demographic data.

On est un gros site avec pleins de données donc on se fait attaquer régulièrement. Genre ça en serait presque normal qu'ils se soient fait compromettre. Mais on vous jure, dès qu'on a su, on a pris les mesures qui s'imposaient. Lesquelles ? On en sait pas. Par exemple, est-ce qu'ils ont implémenté un hash de mot de passe ? No se. Une bonne mesure aurait pû être de communiquer sur l'ampleur des dégâts, ou prévenir les personnes impactées. C'est n'est apparemment pas au programme non plus...

We continue to devote significant resources to ensure Monster 
has appropriate security controls in place to protect our 
infrastructure, and while no company can completely prevent 
unauthorized access to data, Monster believes that by reaching 
out to job seekers, the company can help users better defend 
themselves against similar attacks.

Moi je crois surtout que si, effectivement, personne ne peut, à un moment ou à un autre, éviter de se faire déchirer, ça devrait inciter à réfléchir un peu à des mesures, souvent simples, de protection en profondeur, pour reprendre l'expression consacrée. Comme par exemple ne pas stocker de mots de passe en clair... Se faire pirater, ça arrive. Ce n'est pas vraiment là le soucis. Le vrai problème tient aux dimensions que ça prend parce que le système n'est pas conçu pour encaisser ce type d'incident.


Je râle, je râle, mais depuis dix minutes, je ne suis plus utilisateur de Monster, puisque ce site permet à présent de détruire son compte, fonction que je me suis empressé d'utiliser. Ce n'est pas comme si ma dernière mise à jour datait de mi-2004, le jour où j'ai effectivement remplacé la plupart des champs sensibles par des conneries. Ceci étant, je remercie Monster de sa sollicitude quand il m'avertit au moment de supprimer mon compte :

Sans votre compte, vous ne pourrez plus postuler aux offres 
aussi facilement et rapidement qu'aujourd'hui.

Si ça permet de rendre plus difficile la collecte de mes informations personnelles, je crois que je parviendrai à me faire une raison...

Et de me demander pourquoi je supprime mon compte. Hummm, en voilà une question qu'elle est bonne...