Plateformes (WordPress, Drupal) sans agent
Tout ce qu’une organisation possède ne tourne pas sur un serveur où l’on peut installer un agent : une boutique WordPress chez un hébergeur mutualisé, un portail Drupal chez une agence. Une plateforme dans monsys est un tel site. Il rapporte lui-même vers le hub via Monsys Connect, un plugin qui ne parle qu’en sortie. Le hub ne se connecte jamais au site : sauf pour lire la preuve de propriété.
Ce que vous obtenez
Section intitulée « Ce que vous obtenez »- Inventaire : versions du core, de PHP et de la base de données, chaque plugin et thème avec sa version, actif/inactif et mise à jour disponible. Ils apparaissent aussi dans Inventaire → Composants (portée platform) : « où tourne le plugin X » couvre serveurs, conteneurs et sites externes.
- Vulnérabilités : composants confrontés à la NVD (CPE, sensible à la version et à l’édition) et, avec une clé Wordfence Intelligence, à un miroir du flux Wordfence. Les drapeaux KEV viennent de la CISA.
- Contrôles d’hygiène : mode debug, XML-RPC, édition de fichiers dans
l’admin, utilisateur
adminpar défaut, HTTPS, cron, mises à jour automatiques, nombre d’administrateurs. - Intégrité : fichiers du core comparés aux sommes de contrôle officielles de wordpress.org (quotidien). Un écart est le signal classique d’un web-shell.
- Événements : connexions échouées agrégées (par IP et nom d’utilisateur) et tout compte promu administrateur (signalé immédiatement).
- Détection de silence : aucun rapport pendant 1 h → alerte critique, comme pour un agent. L’alerte se résout d’elle-même au retour du site.
Les alertes commencent toujours par [domaine], pour rester lisibles en
notification push.
Ajouter une plateforme
Section intitulée « Ajouter une plateforme »- Inventaire → Plateformes → Ajouter une plateforme. Choisissez WordPress,
un nom et le domaine (nom d’hôte seul, p.ex.
shop.exemple.be). - Copiez la clé API (
msk_…) et le jeton de vérification (mvt_…). La clé n’est affichée qu’une fois ; elle peut être régénérée. - Installez et activez le plugin Monsys Connect sur le site. Collez clé et jeton sous Réglages → Monsys Connect.
- Cliquez sur Vérifier dans monsys. Le plugin publie le jeton sur
https://<domaine>/.well-known/monsys-verify.txt(repli :/?monsys_verify=1) ; le hub le lit avec la même protection anti-SSRF que la couche pentest. - Au premier rapport, le statut passe à actif.
Un site avec DISABLE_WP_CRON a besoin d’un cron externe qui exécute les
événements WP-Cron (la configuration de production recommandée). Le plugin le
détecte et signale alors le cron comme « en ordre ».
Le modèle de sécurité
Section intitulée « Le modèle de sécurité »- La clé API est en écriture seule : seul le point d’ingestion se trouve derrière. Une clé divulguée ne peut au pire que poster des données pour ce site : jamais lire, jamais toucher un autre site. Régénérez-la au moindre doute (TOTP requis).
- Seul le hachage de la clé est stocké. Le préfixe (
msk_3f9a…) est ce que vous voyez dans l’interface. - Le plugin n’envoie jamais de contenu, de données visiteurs, de mots de passe ni de lignes de journal brutes.
- Les actions (ci-dessous) ne sont remises qu’aux plateformes vérifiées.
Actions à distance sûres
Section intitulée « Actions à distance sûres »Un éditeur peut, avec TOTP, demander une action sur un composant : mettre à jour un plugin/thème, désactiver ou activer un plugin. La demande est signée (Ed25519) et transmise dans la réponse au prochain battement du plugin (≤ 5 min). Le plugin n’écoute donc toujours rien.
Chaque action suit ce chemin :
- Pré-contrôles : espace disque, droits d’écriture, pas de mode maintenance, accès direct au système de fichiers.
- Sauvegarde : zip du composant dans
wp-content/uploads/monsys-backups/(protégé, dix derniers conservés). - Application via l’upgrader WordPress.
- Post-contrôles : page d’accueil, admin-ajax et, si WooCommerce est présent : la boutique doivent répondre sans erreur fatale.
- Si un contrôle échoue, le plugin restaure la sauvegarde automatiquement
et signale
retour arrière. Une action refusée par les pré-contrôles ne change rien (échouée).
Seules des actions réversibles existent. Les mises à jour du core, les suppressions et les actions sur le plugin lui-même sont volontairement impossibles. Le verdict revient avec la trace complète des contrôles ; une action réussie est un ✅ silencieux, un retour arrière ou un échec un ⚠️.
Flux Wordfence (optionnel)
Section intitulée « Flux Wordfence (optionnel) »Wordfence Intelligence est gratuit, y compris en usage commercial, mais exige
depuis 2026 un compte et une clé API. Définissez WORDFENCE_API_KEY dans
l’environnement du hub ; le hub met le flux scanner en miroir une fois par
heure et chaque tenant lit le miroir. À chaque correspondance nous affichons
l’attribution requise (copyright, licence, lien vers l’enregistrement,
mention MITRE pour les CVE).