# Un réseau de 500 sites : l’audit qui a trouvé douze mots de passe partagés

> Douze mots de passe identiques retrouvés sur cinq cents installations WordPress intercommunales : le signe d'un problème plus profond qu'une simple négligence.

- Auteur : WordPress Développement
- Publié le : 2023-08-28
- Mis à jour le : 2023-08-28
- Catégorie : Sécurité
- URL : https://www.wpmoderne.fr/securite/reseau-500-sites-audit-mots-de-passe-partages/

## L’essentiel

- Un mot de passe réutilisé sur plusieurs sites démultiplie l'impact d'une seule fuite
- Un gestionnaire de secrets centralisé élimine la copie manuelle des identifiants
- La rotation régulière ne remplace pas l'unicité de chaque mot de passe

Cinq cents installations WordPress distinctes, gérées pour le compte de communes et d'intercommunalités regroupées sur une même infrastructure mutualisée. L'audit de sécurité commandé avant une mise en conformité plus large n'avait pas pour objectif premier de traquer les mots de passe, mais l'un des scripts de vérification automatisée a fait remonter un résultat qui a immédiatement changé la priorité de la mission : douze mots de passe strictement identiques utilisés sur des comptes administrateur appartenant à des communes différentes, sans aucun lien organisationnel entre elles.

Ce résultat n'était pas le fruit d'une fuite de données externe, mais d'une pratique interne à l'équipe technique en charge du réseau : au fil des années, plusieurs prestataires successifs avaient réutilisé un même mot de passe « pratique à retenir » lors de la création rapide de nouveaux comptes administrateur, sans jamais formaliser de politique de génération d'identifiants uniques.

## Comment un mot de passe voyage d'un site à l'autre

L'origine du problème remonte à une pratique répandue mais rarement questionnée : lors du provisionnement d'un nouveau site sur le réseau, l'équipe technique créait un compte administrateur avec un mot de passe temporaire, souvent recopié d'une fiche de procédure interne plutôt que généré au cas par cas. Cette fiche de procédure, censée servir de modèle documentaire, avait fini par devenir la source réelle du mot de passe sur des dizaines d'installations, la case « à changer à la première connexion » n'ayant jamais été suivie d'effet sur douze d'entre elles.

- Aucun système ne forçait le changement du mot de passe temporaire après la première connexion.
- La procédure de provisionnement n'était pas outillée : elle reposait sur une checklist suivie manuellement, avec les oublis que cela implique à l'échelle de cinq cents sites.
- Aucun audit régulier ne comparait les hachages de mots de passe entre sites pour détecter les doublons.

## Le gestionnaire de secrets centralisé retenu

> L'essentiel à retenir : Un mot de passe réutilisé sur plusieurs sites démultiplie l'impact d'une seule fuite ; Un gestionnaire de secrets centralisé élimine la copie manuelle des identifiants ; La rotation régulière ne remplace pas l'unicité de chaque mot de passe

La correction structurelle a consisté à outiller le provisionnement avec un gestionnaire de secrets centralisé, générant un mot de passe unique et suffisamment long pour chaque nouveau compte administrateur, stocké de façon chiffrée et jamais recopié manuellement d'un document à l'autre. Le script de provisionnement du réseau a été modifié pour appeler la fonction native de WordPress plutôt qu'une valeur en dur :

```
function provisionner_compte_admin( $site_id, $email ) {
    $mot_de_passe = wp_generate_password( 24, true, true );

    $user_id = wp_insert_user( array(
        'user_login' => 'admin_' . $site_id,
        'user_email' => $email,
        'user_pass'  => $mot_de_passe,
        'role'       => 'administrator',
    ) );

    gestionnaire_secrets_stocker( $site_id, $user_id, $mot_de_passe );

    return $user_id;
}
```

`wp_generate_password()` génère un mot de passe aléatoire de la longueur demandée, avec caractères spéciaux activés, éliminant toute tentation de réutiliser une valeur mémorisable. Le mot de passe généré n'apparaît ensuite jamais en clair dans un document partagé : il est stocké directement dans le gestionnaire de secrets de l'équipe, consultable uniquement par les personnes habilitées, avec une journalisation de chaque consultation.

### Détecter les doublons déjà en place

Pour retrouver les douze mots de passe partagés sur l'existant, l'audit a comparé les hachages stockés en base `wp_users` entre les cinq cents installations, sans jamais avoir besoin de connaître les mots de passe en clair : deux hachages `bcrypt` identiques pour des comptes différents indiquent presque systématiquement un mot de passe source identique, sel de hachage mis à part selon la version de WordPress concernée. Cette approche a permis de cibler précisément les comptes à faire réinitialiser, sans opération invasive sur l'ensemble du parc.

## Étendre la vérification au-delà des seuls comptes administrateur

L'audit ne s'est pas arrêté aux comptes administrateur humains. Les identifiants d'intégrations techniques — accès FTP, comptes de service pour les sauvegardes automatisées, jetons d'API pour les outils de monitoring du réseau — ont fait l'objet de la même vérification, avec une découverte supplémentaire : trois identifiants FTP partagés entre plusieurs sites, hérités d'une même mise en place initiale par un prestataire aujourd'hui parti. Tous ont été régénérés et redistribués via le gestionnaire de secrets centralisé.

> Un mot de passe fort ne protège qu'un seul site s'il est unique ; réutilisé, il transforme chaque compromission en compromission de tout le réseau qui le partage.

## Notre verdict

La réutilisation de mots de passe entre sites d'un même réseau n'est presque jamais une décision délibérée : elle s'installe progressivement, portée par la pression du temps et l'absence d'outillage adapté à l'échelle. Un gestionnaire de secrets centralisé, couplé à une génération systématique via `wp_generate_password()`, élimine la tentation de recopier un mot de passe « qui a déjà fonctionné ailleurs », bien plus efficacement qu'une simple règle écrite dans une procédure que personne ne relit.
