Bonjour Michel,
Effectivement, le site DNN US n'était pas accessible pendant 3 jours suite à une
possible attaque. J'ai mentionné ce risque il a plus de 15 jours dans
ce post et cela est spécifié sur la page d'accueil de DNN FR. Comme promis, j'ai tenu la communauté informé et à ce jour il faut
absolument appliquer le dernier patch de sécurité diffusé par Microsoft Windows Update pour se prémunir définitivement contre cette attaque. Les conseils prodigués dans ce post (modifications du fichier web.config) ne sont donc plus d'actualité ! D'ailleurs, j'avais bien spécifié que cette recommendation de Microsoft n'était pas la Panacée. Raison pour laquelle Microsoft a dù réviser le code du framework .Net et diffuser ce correctif.
En fin de semaine dernière, l'équipe en charge de la sécurité chez DotNetNuke Corp a constaté une possible intrusion sur le site US (we discovered evidence that would
lead us to believe that a user
may have exploited the Oracle Padding vulnerability). Ceci ayant pour effet un risque d'élévation d'un compte utilisateur de base en SuperUser (compte host). Pour éviter les problèmes, ils ont dù arrêter le site pour décrypter puis encrypter les mots de passe des 800 000 et quelques comptes avec un nouveau jeu de clefs. Pour bien comprendre le problème voici les étapes :
- Lire les données d'un compte via l'API DNN.
- Décrypter le mot de passe avec l'ancien jeu de clefs.
- Encrypter le mot de passe avec le nouveau jeu de clefs.
- Ecrire les données du compte.
- Réperter l'opération 800 000 et quelques fois !
Même si la mise à jour d'un compte ne prend qu'une seconde (par hypothèse sur une bonne infrastructure), cela ferait la bagatelle de plus de 9 jours de traitement sans discontinuer. Alors comment ont-ils fait pour que cela ne dure "que" 3 jours ? Ils ont simplement mutualisé les ressources de plusieurs ordinateurs (au moins 3, plus probablement 4 ou 5).
La morale de cette histoire est qu'il faut toujours :
- Appliquer les régles de configuration optimale d'IIS (beaucoup de gens négligent ce point).
- Utiliser un bon Anti-Virus sur son serveur (cela peut aider, mais pas toujours).
- Utiliser un bon Firewall, de préférence matériel capable de détecter les attaques de type DoS (Denial of Service), ou un détecteur d'intrusion.
- Appliquer les derniers patch de sécurité de Microsoft.
- Maintenir à jour son installation DotNetNuke avec la dernière version disponible.
- Lire ce forum et/ou le forum US.
Gilles