Imunify360 — réponse aux incidents et faux positifs
Serveur cPanel/WHM + CloudLinux. La réaction appropriée face à « Imunify me bloque » est de comprendre CE QUI a déclenché le blocage avant de désactiver quoi que ce soit. Presque jamais la solution n'est de désactiver la protection ; il s'agit de whitelister ce qui est légitime et de documenter l'exception.
Règles de sécurité
- Confirmer l'hôte (
hostname -f) avant d'agir. - Ne pas désactiver les modules de sécurité globaux pour résoudre le cas d'un client. Résoudre avec l'exception la plus restreinte possible (IP, fichier, utilisateur).
- Nettoyage de malware, restauration et désactivation de protections : CONFIRMER avant.
- Toute exception (whitelist, règle désactivée) est documentée avec motif et date.
0. État de l'agent
imunify360-agent version
systemctl status imunify360 # service imunify360 status sur CL6
imunify360-agent doctor # diagnostic interne de l'agent
tail -100 /var/log/imunify360/console.log
1. Lire l'incident (qu'est-ce qui a bloqué le client ?)
Le détail se trouve dans l'onglet Incidents de l'interface utilisateur ; le champ Sensor indique l'origine. Les blocages d'Active Response et PAM apparaissent comme OSSEC. Avant de toucher aux règles, identifier : était-ce WAF (ModSecurity), force brute (OSSEC/PAM), graylist, ou malware ?
# L'IP du client est-elle dans une liste ?
imunify360-agent ip-list local list --purpose white --by-ip 1.2.3.4
imunify360-agent ip-list local list --purpose black --by-ip 1.2.3.4
2. IP légitime bloquée → whitelist
ip-list est la commande en vigueur ; whitelist/blacklist fonctionnent toujours comme alias dans de nombreuses versions mais sont dépréciés.
# Ajouter/supprimer (forme pratique qui continue de fonctionner) :
imunify360-agent whitelist ip add 1.2.3.4 --comment "IP bureau client X - 2026-06"
imunify360-agent whitelist ip delete 1.2.3.4
imunify360-agent blacklist ip add 9.9.9.9 --comment "scanner abusif"
# Consulter les listes (forme en vigueur) :
imunify360-agent ip-list local list --purpose white
3. Faux positif de WAF / ModSecurity
D'abord localiser la règle qui a déclenché (champ de l'incident). Si l'IP est légitime, la whitelister (section 2) suffit généralement. Pour ajuster les seuils ou les règles :
Config principale : /etc/sysconfig/imunify360/imunify360.config
Seuil PAM (BFM) : /etc/pam_imunify/i360.ini
Ne pas désactiver un ensemble de règles complet pour un cas ponctuel ; whitelister l'IP ou créer l'exception minimale. Tout changement dans ces fichiers : CONFIRMER et sauvegarder avant.
4. Malware dans un compte
# Scanner un compte (exclure maildir accélère et évite le bruit) :
imunify360-agent malware on-demand start --path=/home/UTILISATEUR --ignore-mask=/home*/*/mail
# Scanner tous les comptes :
imunify360-agent malware on-demand start --path=/home*/*/ --ignore-mask=/home*/*/mail
# Lister les fichiers malveillants (limite par défaut 50) :
imunify360-agent malware malicious list --limit 100
Nettoyage (CONFIRMER avant) : examiner la liste des malveillants et nettoyer depuis l'action d'Imunify (interface utilisateur/cleanup) ou, si le compte est très compromis, restaurer depuis une sauvegarde saine antérieure à l'infection. Vérifier la syntaxe de cleanup en vigueur sur le serveur avant de l'appliquer à l'aveugle. Après nettoyage : changer les mots de passe, mettre à jour le CMS/plugins et rescanner.
5. Fichier légitime marqué comme malveillant → faux positif
imunify360-agent submit false-positive --reason "thème propre, code interne" /home/UTILISATEUR/public_html/fichier.php
# Cas inverse (quelque chose de malveillant passé pour sain) :
imunify360-agent submit false-negative /chemin/complet/vers/le/fichier
Pour que le scanner ignore un fichier/dossier de façon stable, on utilise la whitelist du scanner (JSON avec path/reason/md5/recursive). Documenter le motif.
6. « Il me demande un captcha / je ne peux pas entrer »
Il s'agit généralement de graylist (l'IP du client est devenue grise en raison d'un comportement suspect) ou d'Active Response. Confirmer avec la section 1 et, si l'IP est celle du client, whitelister. Le captcha invisible et les timeouts d'OSSEC (défaut 600s) se gèrent par configuration.
Quand NE PAS désactiver les protections
- Si le doute est « je désactive le WAF pour que ça marche » → presque toujours c'est un whitelist d'IP ou une exception de fichier, pas la désactivation du module.
- Désactiver HardenedPHP ou désinstaller Imunify peut casser les mises à jour d'Apache/PHP : jamais comme raccourci de support.
Les actions qui changent l'état (nettoyer, restaurer, éditer la config, désactiver des modules) sont proposées et exécutées uniquement avec l'accord explicite de l'opérateur.