KakapoWP KakapoWP
Connexion Essai gratuit
Centre d'aide/Security/Configurer la surveillance des fichiers

Configurer la surveillance des fichiers

S'applique à : Kakapo Security· 5 min de lecture

Premier relevé : créer l'état de référence

Au premier démarrage, il n'y a rien à comparer — le passage crée à la place l'état de référence : pour chaque fichier une somme de contrôle (sha256 là où PHP la fournit, sinon md5), avec la taille, la date de modification et la zone. Cela se déroule par petits lots, par défaut jusqu'à 400 fichiers ou 5 secondes par étape ; vous pouvez fermer la fenêtre et reprendre plus tard. Il n'y a pas de pourcentage lors du premier relevé, parce que personne ne connaît encore le nombre total — ce qui s'affiche, ce sont les fichiers lus et les répertoires en attente. Important d'emblée : la surveillance retient ce qu'elle trouve et le tient pour correct. Si vous n'êtes pas sûr de l'état de l'installation, lancez d'abord l'intégrité des fichiers (le cœur comparé à WordPress.org) et l'analyse des logiciels malveillants. Après un déménagement ou une restauration, « Abandonner l'état de référence » est la voie propre : toutes les sommes de contrôle et tous les constats disparaissent, le passage suivant refait le relevé. C'est irréversible.

Ce qui est contrôlé — et ce qui ne l'est pas

Le contrôle porte sur l'arborescence à partir du répertoire WordPress. Si wp-content ou le répertoire des plugins se trouve en dehors chez votre hébergeur, il s'ajoute comme racine propre et reçoit son propre préfixe dans l'affichage. Un wp-config.php situé un niveau au-dessus de l'installation est repris comme fichier isolé désigné nommément et contrôlé en premier au début de chaque passage — le répertoire parent lui-même n'est délibérément pas parcouru, car chez la plupart des hébergeurs s'y trouvent des installations étrangères et des sauvegardes. Sont exclus par défaut le répertoire uploads et 15 motifs intégrés de cache, de fichiers temporaires et de journaux (entre autres wp-content/cache, wp-content/upgrade, node_modules, .git, *.log) ; vous pouvez désactiver ces deux interrupteurs, le passage dure alors plus longtemps et chaque téléversement d'image produit un constat. Vous ajoutez vos propres motifs dans la liste d'exclusion : jusqu'à 100 entrées, de 200 caractères chacune au maximum. Un motif sans barre oblique touche chaque segment de chemin portant ce nom, un motif avec barre oblique est ancré à la racine, * s'applique à l'intérieur d'un segment. Un motif qui correspond à tous les chemins d'exemple est refusé — il désactiverait la surveillance sans que cela se voie dans la liste. Lors de la saisie, le nombre de fichiers de l'état de référence actuel qui tombent sous ce motif est compté et affiché. Ne sont pas lus les fichiers dépassant la limite de taille (par défaut 16 MB, réglable de 1 à 512), les fichiers illisibles et tout ce qui se trouve derrière un lien symbolique — ces cas figurent comme chiffres distincts dans le résultat et ne comptent expressément pas comme « manquant ».

Lire et appliquer les constats

Il y a trois types : modifié, nouveau, manquant. Pour chaque fichier, la liste contient au plus un constat ouvert, avec la première constatation, la dernière constatation et un compteur. La comparaison se fait avec le dernier état de référence confirmé, pas avec le dernier passage — c'est pourquoi un constat subsiste jusqu'à ce que vous l'appliquiez. Si le contenu redevient de lui-même conforme à l'état de référence (mise à jour annulée, fichier remis en place), le constat disparaît ; un nouveau fichier signalé qui a de nouveau disparu est inscrit avec son chemin dans le journal d'activité au lieu d'être supprimé en silence. « Appliquer l'état de référence » montre d'abord ce qui se passerait, puis travaille par blocs de 500 : les fichiers modifiés reçoivent leur nouvelle somme de contrôle, les nouveaux s'ajoutent, les manquants disparaissent. Les fichiers eux-mêmes ne changent pas — mais l'ancienne somme de contrôle est ensuite perdue, alors regardez tout ce que vous ne pouvez pas expliquer avant d'appuyer. Pour l'archivage, il existe un export CSV comportant jusqu'à 2000 constats ouverts avec l'ancienne et la nouvelle somme de contrôle. Vous devriez connaître deux limites : au-delà de 3000 constats ouverts, le comptage continue mais plus rien n'est enregistré (l'interface le signale), et de l'historique ne restent que les 500 constats appliqués les plus récents. Un passage interrompu ne détermine pas les fichiers manquants — pour cela, il faut une exécution complète.

Alerte immédiate pour les fichiers sensibles

Activé par défaut. « Sensible » ne veut pas dire ici « important », mais : qui peut modifier ce fichier exécute son propre code ou accède aux données d'accès. Il s'agit de wp-config.php, des configurations serveur (.htaccess, .htpasswd, .user.ini, php.ini, web.config), des drop-ins (db.php, object-cache.php, advanced-cache.php, sunrise.php et apparentés), des mu-plugins ainsi que des fichiers PHP à des endroits où il ne devrait pas y en avoir : dans le répertoire uploads, à la racine de WordPress et dans wp-content en dehors de plugins et themes. Ces alertes partent à la fin de chaque petit lot, pas seulement à la fin du passage — sur une grande installation, il y a des heures entre les deux. L'intervalle minimal est par défaut de 15 minutes (réglable de 0 à 1440) ; ce qui s'ajoute pendant ce temps est rassemblé et part avec l'alerte suivante, rien ne se perd. Une alerte énumère au plus 200 entrées, le reste est indiqué sous forme de nombre. À la fin du passage et en cas d'interruption, le reste est vidé sans égard pour l'intervalle. Vérifiez une fois le trajet avec l'alerte de test : elle vous dit expressément si wp_mail() a accepté ou refusé le message — quant à savoir s'il est distribué, c'est le serveur derrière qui en décide. Vous pouvez en outre inscrire vos propres motifs comme sensibles ; les constats ouverts sont alors immédiatement reclassés, pour que la liste n'affiche pas deux vérités.

Automatisme et calendrier

Par défaut, le passage ne s'exécute que si vous le lancez. Si vous activez l'automatisme, vous choisissez entre toutes les heures, deux fois par jour, une fois par jour (valeur par défaut) et une fois par semaine. La première échéance est volontairement placée 5 minutes dans le futur, pour qu'un passage ne démarre pas au milieu de votre travail dans l'administration. Le calcul part du début du dernier passage, avec 5 minutes de tolérance — sinon un passage long s'espacerait un peu plus à chaque fois. Le cron traite les mêmes petits lots et se replanifie toutes les 30 secondes tant que quelque chose reste en attente ; si vous êtes vous-même au volant dans le navigateur, il patiente 120 secondes et ne touche pas au volant. Deux conducteurs sur la même tâche sont exclus par un jeton qui est transmis avec chaque réponse ; le verrou expire au bout de 60 secondes, afin qu'un navigateur refermé ne bloque pas durablement la tâche. Si DISABLE_WP_CRON est défini dans votre installation, le message affiché à l'activation vous indique que le passage ne démarre que si wp-cron.php est appelé de l'extérieur — donc si une tâche cron est configurée côté serveur.

Cet article vous a-t-il été utile ?