Surveillance

Suivez l'activité de connexion, vérifiez l'intégrité des fichiers, détectez les logiciels malveillants et identifiez les vulnérabilités des extensions et thèmes depuis un seul tableau de bord.

Présentation

Surveillance est inclus dans tous les plans RakuWP et offre une vue centralisée de l'état de sécurité de vos sites WordPress. Il combine quatre composants en un seul tableau de bord accessible depuis le panneau RakuWP : surveillance des connexions, vérification de l'intégrité des fichiers, analyse des logiciels malveillants et détection des vulnérabilités.

Aucune configuration supplémentaire n'est requise côté WordPress. Une fois le plugin RakuWP actif sur un site, le panneau peut récupérer les données de surveillance à tout moment via l'API REST.

Tableau de bord

La page d'accueil de surveillance liste tous les sites liés à votre compte. Chaque ligne affiche le favicon du site, l'URL, l'entreprise, l'heure du dernier contact, les versions de WordPress et PHP, ainsi qu'un champ texte libre d'alerte que vous pouvez utiliser pour vos propres rappels.

Une barre d'état en haut résume combien de sites sont En ligne, en Alerte ou Hors ligne :

  • En ligne : le site s'est connecté au cours des dernières 24 heures.
  • Alerte : le dernier contact date de 24 à 72 heures, ou le site ne s'est jamais connecté.
  • Hors ligne : le site ne s'est pas connecté depuis plus de 72 heures, ou sa licence est inactive.

En cliquant sur un site, vous ouvrez sa page de détail, organisée en trois onglets : Surveillance des connexions, Intégrité des fichiers et Menaces et vulnérabilités.

Surveillance des connexions

Chaque tentative de connexion à votre site WordPress est enregistrée automatiquement. Le journal capture l'horodatage, le nom d'utilisateur, l'adresse IP, l'agent utilisateur et le résultat (réussite, échec ou verrouillé).

Comment ça fonctionne

  1. Le plugin RakuWP s'accroche aux événements d'authentification de WordPress et stocke chaque tentative dans la table wp_rakuwp_login_log.
  2. Les enregistrements de plus de 90 jours sont automatiquement supprimés.
  3. Le panneau récupère les journaux à la demande via l'API REST (paginés, 50 entrées par page).

Ce que vous voyez

Chaque entrée du journal affiche :

  • Un indicateur coloré : vert pour réussite, ambre pour échec, rouge pour verrouillé.
  • Date et heure de la tentative.
  • Le nom d'utilisateur utilisé.
  • L'adresse IP d'origine. En survolant l'IP, un popover de géolocalisation apparaît avec la ville, la région, le pays et le fournisseur d'accès.
  • Le navigateur et le système d'exploitation détectés à partir de la chaîne de l'agent utilisateur.

Protection de connexion

Lorsque la fonctionnalité de protection de connexion est activée dans Sécurité de base, le plugin applique également une limitation du nombre de tentatives :

  • Tentatives maximales : le nombre de connexions échouées autorisées dans la fenêtre de temps (par défaut : 5).
  • Durée du verrouillage : la durée pendant laquelle une IP est bloquée après avoir dépassé le seuil (par défaut : 30 minutes).
  • Fenêtre de tentatives : la période pendant laquelle les tentatives échouées sont comptabilisées (par défaut : 15 minutes).

Les tentatives verrouillées apparaissent dans le journal avec un indicateur rouge et sont comptabilisées dans le badge de l'onglet.

Intégrité des fichiers

L'intégrité des fichiers compare chaque fichier du noyau WordPress sur votre site aux sommes de contrôle officielles publiées par WordPress.org. Des fichiers modifiés ou manquants pourraient indiquer une compromission, une mise à jour échouée ou des modifications manuelles aux fichiers du noyau qui seront perdues lors de la prochaine mise à jour.

Comment ça fonctionne

  1. Une tâche cron WordPress (rakuwp_file_integrity_check) s'exécute une fois par jour.
  2. Le plugin récupère la liste des sommes de contrôle SHA-1 pour la version de WordPress installée depuis l'API de WordPress.org.
  3. Il calcule le hash de chaque fichier local du noyau et compare le résultat à la somme attendue. Les fichiers dans wp-content sont exclus.
  4. Les résultats (total des fichiers vérifiés, fichiers modifiés, fichiers manquants) sont stockés localement et peuvent être consultés par le panneau à tout moment.

Ce que vous voyez

Le panneau affiche une ligne de résumé avec le nombre de fichiers vérifiés et la date du dernier scan. Si tous les fichiers correspondent, une coche verte confirme l'intégrité. Sinon, un tableau liste chaque fichier concerné avec son état (modifié ou manquant).

Scan à la demande

Cliquez sur Scanner maintenant pour déclencher une vérification d'intégrité immédiate sans attendre le cron quotidien. Les résultats remplacent le scan précédent.

Analyse des logiciels malveillants

L'analyseur de logiciels malveillants inspecte les fichiers PHP dans vos répertoires de thèmes, extensions et mu-plugins à la recherche de motifs malveillants connus. Il utilise une base de données de signatures intégrée qui couvre les web shells, les portes dérobées, les appels eval() obfusqués, l'injection de code et d'autres menaces courantes.

Comment ça fonctionne

  1. Le scan est lancé depuis le panneau via l'onglet Menaces et vulnérabilités.
  2. Le plugin collecte tous les fichiers PHP dans wp-content/themes, wp-content/plugins et wp-content/mu-plugins.
  3. Les fichiers sont traités par lots de 50 (avec une limite de 2 Mo par fichier) pour éviter les dépassements de délai.
  4. Chaque fichier est testé contre la base de données de signatures par correspondance d'expressions régulières.
  5. Lorsque tous les lots sont terminés, les résultats sont stockés localement et renvoyés au panneau.

Ce que vous voyez

Si aucun logiciel malveillant n'est détecté, une coche verte confirme un scan propre. Sinon, un tableau liste chaque détection avec le chemin du fichier, le nom de la signature et le niveau de sévérité (critique, élevé ou moyen). La sévérité est codée par couleur pour une identification rapide.

Menaces et vulnérabilités

Cet onglet combine les résultats de l'analyse des logiciels malveillants avec une vérification des vulnérabilités qui croise chaque extension et thème installé avec une base de données publique de vulnérabilités.

Source des données de vulnérabilités

Les informations sur les vulnérabilités proviennent de WPVulnerability.net, une base de données gratuite et ouverte qui ne nécessite aucune clé d'API. Une tâche cron quotidienne sur le panneau récupère les enregistrements de vulnérabilités pour chaque slug d'extension et de thème trouvé sur tous les sites connectés. Les résultats sont mis en cache pendant 24 heures par slug, et les enregistrements de plus de 90 jours sont automatiquement supprimés.

Comment fonctionne la correspondance

Lorsque vous synchronisez un site, le panneau récupère la liste des extensions et thèmes installés (avec leurs numéros de version) depuis le site WordPress. Il vérifie ensuite chaque slug contre les données de vulnérabilités en cache. Une vulnérabilité est signalée lorsque la version installée est inférieure à la version contenant le correctif. Si aucun correctif n'a été publié, toutes les versions sont considérées comme affectées.

Niveaux de sévérité

La sévérité est dérivée du score CVSS de chaque vulnérabilité :

  • Critique : CVSS ≥ 9,0
  • Élevé : CVSS ≥ 7,0
  • Moyen : CVSS ≥ 4,0
  • Faible : CVSS < 4,0

Ce que vous voyez

Le tableau des vulnérabilités affiche le nom de l'extension ou du thème, sa version installée, une brève description de la vulnérabilité, le badge de sévérité et l'action recommandée (mettre à jour vers une version spécifique, ou « Aucun correctif disponible » si aucun patch n'existe encore). Cliquez sur n'importe quelle ligne pour ouvrir un modal de détail avec l'identifiant CVE, la date de publication et un lien vers l'avis complet.

Synchronisation

Cliquez sur Synchroniser maintenant pour obtenir des données à jour du site et les recroiser avec le cache de vulnérabilités. L'horodatage de la dernière synchronisation est affiché au-dessus des tableaux.

Notes d'alerte

Chaque site sur le tableau de bord de surveillance dispose d'un champ texte libre d'alerte (jusqu'à 500 caractères). Utilisez-le pour laisser des rappels pour vous ou votre équipe, comme « Maintenance prévue le 25 mars » ou « En attente de mise à jour d'extension. » Les notes sont enregistrées automatiquement pendant que vous tapez.

Authentification et sécurité

Toute communication entre le panneau et un site WordPress est authentifiée à l'aide de la clé de licence du site, envoyée dans l'en-tête X-RakuWP-Key. Les points d'accès du panneau sont également protégés par des jetons CSRF. Les adresses IP dans les journaux de connexion prennent en charge la détection multi-en-têtes pour les environnements avec proxy et CDN (Cloudflare, X-Forwarded-For, X-Real-IP).